若该文为原创文章,转载请注明原文出处。
PaddleOCR检测模型训练及验证测试
1、准备数据集
在PaddleOCR目录下新建文件夹:train_data, 这个文件夹用于存放数据集的。
使用的是网上大佬提供的车牌识别数据集,下载后,解压到train_data目录下。可以自己网上找,了可以找我要数据集,或自己标注数据集。
2、配置文件
在PaddleOCR主目录下:configs/det/ch_ppocr_v2.0/下,
复制ch_det_mv3_db_v2.0.yml为ch_det_mv3_db_v2.0.yml_test_plate.yml
我们使用ch_det_mv3_db_v2.0.yml_test_plate.yml这个文件来训练
3、配置文件修改
打开ch_det_mv3_db_v2.0.yml_test_plate.yml配置文件,修改以下4个内容:
1.训练后模型存储目录;
2.是否训练可视化;
3.训练数据集图片和标注位置;
4.测试数据集图片和标注位置;
其他参数如pretrained_model等可以在训练时在命令行中指定.其它的看官方文档
ch_det_mv3_db_v2.0.yml_test_plate.yml文件内修改:
注意:我的电脑没有gpu,所以use_gpu需要修改成false,如果你有GPU,则为true.
建议用GPU不然训练时间过长。
测试我用的是CPU,实际我用的是网上的服务器来训练的,训练了十几个小时。
#训练后模型存储目录
Global:
use_gpu: False
epoch_num: 300 # 训练轮数,默认1200
log_smooth_window: 20
print_batch_step: 2
save_model_dir: ./output/ch_ppocr_mobile_v2.0_det/ # 训练后模型存储目录
use_visualdl: true # 训练可视化是否开启
#修改训练数据集图片和标注位置
Train:
dataset:
name: SimpleDataSet
data_dir: ./train/plate_images/images_det/train # 修改训练数据集图片位置
label_file_list:
- ./train/plate_images/images_det/det_label_train.txt # 修改训练数据集标注位置
#测试数据集图片和标注位置
Eval:
dataset:
name: SimpleDataSet
data_dir: ./train/plate_images/images_det/test # 修改测试数据集图片位置
label_file_list:
- ./train/plate_images/images_det/det_label_test.txt # 修改测试数据集标注
这是注意epoch_num,默认是1200,我只是验证,而且没有GPU,所以降低了epoch_num数。
4、使用官方的权重文件进行预测
打开PaddleOCR/doc/doc_ch/models_list.md at release/2.6 · PaddlePaddle/PaddleOCR · GitHub
下载权重文件
下载后,解压,把权重文件放到PaddleOCR\pretrain_models\目录下,pretrain_models目录自己创建。
接下来先预测一下:
预测命令:
python tools/eval.py -c "./configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml_test_plate.yml" -o Global.checkpoints="./pretrain_models/ch_ppocr_server_v2.0_det_train/best_accuracy"
5、训练
训练命令:
python tools/train.py -c "./configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml_test_plate.yml" -o Global.pretrained_model="./pretrain_models/ch_ppocr_server_v2.0_det_train/best_accuracy"
断点续训:
-o Global.checkpoints:保存的文件路径
python tools/train.py -c "./configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml_car_plate.yml" -o Global.pretrained_model="./mode/det/ch_ppocr_server_v2.0_det_train/best_accuracy" -o Global.checkpoints="./output/ch_db_mv3/latest"
6、測試
使用训练模型–测试1张图
-o Global.infer_img:文件位置
python tools/infer_det.py -c "./configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml_car_plate.yml" -o Global.infer_img="./train_data/car_plate_images/images_det/test/test_5.jpg" Global.pretrained_model="./output/ch_ppocr_mobile_v2.0_det/latest"
使用训练模型–测试文件夹内所有图片
新建文件夹imgs 放测试的图片 -o Global.infer_img:文件夹位置
python tools/infer_det.py -c "./configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml_car_plate.yml" -o Global.infer_img="./imgs/" Global.pretrained_model="./output/ch_db_mv3/latest"
训练模型保存为用于部署的推理模型
保存路径:output文件夹内
python tools/export_model.py -c "./configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml_car_plate.yml" -o Global.pretrained_model="./output/ch_db_mv3/latest" Global.save_inference_dir="./output/"
如有侵权,或需要完整代码,请及时联系博主。