参考:https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/detection.md
原理
DBNET论文 Real-time Scene Text Detection with Differentiable Binarization
参考:https://blog.csdn.net/qq_35756383/article/details/118679258
Real-Time Scene Text Detection with Differentiable Binarization and Adaptive Scale Fusion
配置文件
训练参数参考:https://blog.csdn.net/qq_52852432/article/details/131817619
模型
下载检测模型:https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/models_list.md
选择原始的MobileNetV3_large_x0_5_pretrained
数据
参考:https://aistudio.baidu.com/projectdetail/4483048
https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/dataset/ocr_datasets.md
ICDAR 2015
来源:ICDAR 2015
下载地址:https://rrc.cvc.uab.es/?ch=4&com=downloads
特点:
这是一个基于ICDAR 2015的数据集,主要用于文本检测和识别任务。
数据集包含了多种文本样本,包括不同语言、字体、大小和背景的文本图片。
ctw1500
来源:CTW1500
下载地址:https://paddleocr.bj.bcebos.com/dataset/ctw1500.zip
特点:
这是一个大规模的文本检测数据集,包含1500张图片。
数据集涵盖了多种文本样本,包括复杂的背景、多行文本、不同字体和大小的文本。
Total Text
来源:Total-Text
下载地址:https://paddleocr.bj.bcebos.com/dataset/total_text.tar
特点:
这是一个用于文本检测的数据集,包含1500张图片。
数据集包含了多种复杂的文本样本,包括多行文本、曲线文本、不同字体和大小的文本。
TD TR
来源:TD-TR
下载地址:https://paddleocr.bj.bcebos.com/dataset/TD_TR.tar
特点:
这是一个用于文本检测的数据集,包含多种复杂的文本样本。
数据集涵盖了多种文本样本,包括多行文本、曲线文本、不同字体和大小的文本。
这些数据集都可以用于文本检测和识别任务,适用于不同的模型训练和评估。
下载icdar2015.tar
格式
推理命令
python tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.checkpoints=./output/db_mv3/latest Global.infer_img=./doc/imgs_en/img_12.jpg
训练过程
python tools/train.py -c configs/det/det_mv3_db.yml
50epoch
90epoch
135epoch
165epoch
200epoch
800epoch
1150epoch
1200epoch
lastest最后一轮
best效果最好的一轮
总结:训练过程中检测效果并不稳定
时间:使用4090 24G显存训练了大概一天
验证命令
训练过程中,默认保存两种模型,一种是latest命名的最新训练的模型,一种是best_accuracy命名的精度最高的模型。
使用保存的模型参数评估在测试集上的precision、recall和hmean:
python tools/eval.py -c configs/det/det_mv3_db.yml -o Global.checkpoints=./output/db_mv3/best_accuracy
[2024/07/16 15:08:03] ppocr INFO: hmean:0.6728133565910789
[2024/07/16 15:08:03] ppocr INFO: is_float16:False
[2024/07/16 15:08:03] ppocr INFO: precision:0.6965944272445821
[2024/07/16 15:08:03] ppocr INFO: recall:0.6506024096385542
[2024/07/16 15:08:03] ppocr INFO: fps:27.85333465651546
[2024/07/16 15:08:03] ppocr INFO: best_epoch:1114
[2024/07/16 15:08:03] ppocr INFO: start_epoch:1115
eval model:: 100%|██████████████████████████████████████████████████████████████████████████████████████████▊| 499/500 [00:20<00:00, 24.57it/s]
[2024/07/16 15:08:23] ppocr INFO: metric eval ***************
[2024/07/16 15:08:23] ppocr INFO: precision:0.6965944272445821
[2024/07/16 15:08:23] ppocr INFO: recall:0.6506024096385542
[2024/07/16 15:08:23] ppocr INFO: hmean:0.6728133565910789
[2024/07/16 15:08:23] ppocr INFO: fps:47.020003697873406
检测模型转inference 模型方式
# 加载配置文件`det_mv3_db.yml`,从`output/det_db`目录下加载`best_accuracy`模型,inference模型保存在`./output/det_db_inference`目录下
python tools/export_model.py -c configs/det/det_mv3_db.yml -o Global.pretrained_model="./output/det_db/best_accuracy" Global.save_inference_dir="./output/det_db_inference/"
DB检测模型inference 模型预测:
python tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.checkpoints=./output/db_mv3/best_accuracy Global.infer_img=./doc/imgs_en/img_10.jpg PostProcess.box_thresh=0.6 PostProcess.unclip_ratio=1.5
python tools/infer/predict_det.py --det_algorithm="DB" --det_model_dir="./output/det_db_inference/" --image_dir="./doc/imgs_en/img_12.jpg" --use_gpu=True
# 如果是其他检测,比如EAST模型,det_algorithm参数需要修改为EAST,默认为DB算法:python3 tools/infer/predict_det.py --det_algorithm="EAST" --det_model_dir="./output/det_db_inference/" --image_dir="./doc/imgs/" --use_gpu=True
训练模型转inference 模型之后预测效果不一致?
PP-OCRv4
同样的数据集,配置文件选择ch_PP-OCRv4_det_cml.yml
没有预训练模型
参数讲解
训练过程
130轮精度最高,于是停止训练
常见问题
PP-OCRv4检测模型是用了哪些数据集训练的