目录
paddleOCR模型训练&评估&测试
下载工具安装及使用
下载迅雷
使用迅雷下载文件
文本检测模型
资料准备
下载数据集
下载标注文件
组织数据集路径
开始训练
下载预训练模型
组织预训练模型路径
确定配置文件路径
修改配置文件1
修改配置文件2
开始训练
模型评估
修改配置文件
指定评估的数据集和标签路径
进行评估
模型测试
修改配置文件
进行模型测试
文本识别模型
资料准备
下载数据集
下载标注文件
组织数据集路径
准备字典集
开始训练
下载预训练模型
组织预训练模型
确定配置文件路径
修改配置文件1
修改配置文件2
开始训练
模型评估
修改配置文件
指定评估的数据集和标签路径
进行评估
模型测试
修改配置文件
进行模型测试
下载地址:https://www.xunlei.com/
步骤1:打开迅雷软件,单击“+”图标。
步骤2:弹出如下对话框,将下载链接复制到对话框中,完成下载
例如:下载“icdar2015标注文件”:
本文以icdar2015数据集为例,介绍PaddleOCR中检测模型的训练,评估和测试。
icdar2015数据集可从官方网站(https://rrc.cvc.uab.es/?ch=4&com=downloads)下载,需先注册,下载后只使用图片集,不采用配套的标注文件,标注文件的获取见下节。
下载界面
数据集形式
使用迅雷软件,下载标注文件,下载连接如下:
https://paddleocr.bj.bcebos.com/dataset/train_icdar2015_label.txt
https://paddleocr.bj.bcebos.com/dataset/test_icdar2015_label.txt
标注文件形式如下:
按照如下形式将数据集和标注文件放置在PaddleOCR目录中,分别是两个文件夹和两个文件。
按照如下形式将数据集和标注文件放置在PaddleOCR目录中,分别是两个文件夹和两个文件。
PaddleOCR的检测模型当前支持3个主干,即MobileNetV3,ResNet18_vd和ResNet50_vd,可以根据需要使用PaddleClas中的模型替换主干,使用迅雷软件,下载预训练模型文件,下载连接如下:
MobileNetV3预训练模型连接: https://paddle-imagenet-models-name.bj.bcebos.com/MobileNetV3_large_x0_5_pretrained.tar ResNet18_vd预训练模型连接: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet18_vd_pretrained.tar ResNet50_vd预训练模型连接: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_vd_ssld_pretrained.tar |
按照如下形式将解压后的预训练模型放置在PaddleOCR目录中
打开program.py脚本,找到class ArgsParser构造函数,修改为如下形式(注意相对路径填写正确):
在config/det文件夹下找到det_mv3_db_v1.1.yml文件,只需要将“pretrain
_weights”指定为2.2.1节获取的预训练模型路径。
(注意相对路径填写正确,“./ ”表示同级目录,“../”表示上级目录,“../../”表示上上级目录,以运行的.py文件为当前路径)
若电脑性能不足,将配置文件中“train_batch_size_per_cart”修改为2。
在config/det文件夹下找到det_db_icdar15_reader.yml文件,将下图所示的四个路径正确填写。
运行train.py脚本,始模型训练,训练界面如下:
训练结果保存在文件“./output/det_db/”文件夹下,如下图所示:
PaddleOCR有三个用于评估OCR检测任务性能的指标:Precision,Recall和Hmean。
假设模型训练结果如下,在det_db文件夹下,我们使用训练400代的模型对测试集做评估,查看训练效果。
打开“det_mv3_db_v1.1.yml”文件,指定“checkpoints”为400代训练后的模型(注意:在对模型做评估时,“infer_img”要为空,否则报错,未详阅代码,原因暂时不详!!!)。
参考2.2.5节内容,在det_db_icdar15_reader.yml文件中,EvalReader字段下设置评估的数据集和标签文件路径。
运行“eval.py”脚本,在控制台会打印出Precision,Recall和Hmean测试结果。
假设模型训练结果如下,在det_db文件夹下,我们使用训练400代的模型对测试集做检测,查看训练效果。
打开“det_mv3_db_v1.1.yml”文件,
运行脚本“infer_det.py”文件,开始对指定路径下的图片做检测,检测结果保存在“./output/det_db/det_results/”文件夹下,如下图所示:
登录官方网站icdar2015上(https://rrc.cvc.uab.es/?ch=4&com=downloads),需要注册后才可下载,下载后只需要图片文件,自带的标注文件不需要。
数据集如下所示:
使用迅雷软件,下载标注文件,下载连接如下:
训练集标注文件下载链接: https://paddleocr.bj.bcebos.com/dataset/rec_gt_train.txt 测试集标注文件下载链接: https://paddleocr.bj.bcebos.com/dataset/rec_gt_test.txt |
标注文件形式如下,注意按照实际情况修改标注文件中存放图像的文件夹名称。
将数据集和标间文件放置在“./train_data/ic15_data/”文件夹下,共两个文件夹两个文件,形式如下所示:
训练数据集标注文件,注意测试数据集存放在“train”文件夹下,标注文件要做响应修改,否则训练时提示找不到图片。
最后,需要提供字典({word_dict_name} .txt),以便在训练模型时,可以将出现的所有字符映射到字典索引。
因此,词典需要包含所有您希望正确识别的字符。{word_dict_name} .txt必须以以下格式编写并以utf-8
编码格式保存:
源码提供了众多的字典集,无特殊需要,不需要自己组织字典集,字典集存储路径如下:
存储路径 |
说明 |
ppocr/utils/ppocr_keys_v1.txt |
是具有6623个字符的中文词典。 |
|
是一本具有63个字符的英语词典 |
|
是一本具有118个字符的法语词典 |
|
是日本字典,有4399个字符 |
|
是韩文字典,有3636个字符 |
|
是一本具有131个字符的德语词典 |
首先下载预训练模型,您可以下载训练后的模型以对icdar2015数据进行训练。
使用迅雷软件,下载预训练模型,下载连接如下:
https://paddleocr.bj.bcebos.com/rec_mv3_none_bilstm_ctc.tar |
按照如下形式将解压后的预训练模型放置在PaddleOCR目录中:
打开program.py脚本,找到class ArgsParser构造函数,修改为如下形式(注意相对路径填写正确):
在config/rec文件夹下找到rec_icdar15_train.yml文件,只需要将“pretrain_ weights”指定为3.2.1节获取的预训练模型路径
(注意相对路径填写正确,“./ ”表示同级目录,“../”表示上级目录,“../../”表示上上级目录,以运行的.py文件为当前路径)
若电脑性能不足,将配置文件中“train_batch_size_per_cart”修改为20。
在config/det文件夹下找到rec_icdar15_reader.yml文件,将下图所示的四个路径正确填写。
运行train.py脚本,始模型训练,训练界面如下:
训练结果保存在文件“./output/rec_CRNN/”文件夹下,如下图所示:
假设我们对3.2.6节训练的模型做评估,查看训练效果,查看./output/rec_CRNN文件夹下,会发现最终模型训练次数为900代,我们对该模型做评估
打开“rec_icdar15_train.yml”文件,指定“checkpoints”为900代训练后的模型(注意:在对模型做评估时,“infer_img”要为空,否则报错,未详阅代码,原因暂时不详!!!)。
参考3.2.5节内容,在rec_icdar15_reader.yml文件中,EvalReader字段下设置评估的数据集和标签文件路径。
运行“eval.py”脚本,运行界面如下,评估结果:精度为0.68,评估样本数:2077,正确识别数:1414.
假设模型训练结果如下,在rec_RCNN文件夹下,我们使用训练900代的模型对测试集做检测,查看训练效果。
打开“rec_icdar15_train.yml”文件,
运行脚本“infer_rec.py”文件,开始对指定路径下的图片做检测,检测结果显示在控制台上,如下图所示