0%

OCR-工业字符检测实践

1. PaddleOCR

  • 使用PPOCRLabel标注,完成自定义训练数据集的准备;
  • 训练文本检测模型;
  • 训练文本识别模型;
  • 训练模型转换为inference模型;
  • 基于python引擎的PP-OCR模型推理预测,串联检测+识别。

2. PPOCRLabel

PPOCRLabel是一款适用于OCR领域的半自动化图形标注工具,内置PP-OCR模型对数据自动标注和重新识别。使用Python3和PyQT5编写,支持矩形框标注和四点标注模式,导出格式可直接用于PaddleOCR检测和识别模型的训练。

使用步骤:

  • cd ./PPOCRLabel
  • python .\PPOCRLabel.py —lang ch
  • 打开待标注文件夹,加载标注图像
  • 勾选 文件/自动导出标记结果
  • 标注
  • 导出识别结果(切小图)

3. 训练文本检测模型

1
2
3
4
5
6
7
8
9
10
11
12
# 单机单卡训练 mv3_db 模型
python3 tools/train.py -c configs/det/det_mv3_db.yml \
-o Global.pretrained_model=./pretrain_models/MobileNetV3_large_x0_5_pretrained

# 单机多卡训练,通过 --gpus 参数设置使用的GPU ID
python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/det/det_mv3_db.yml \
-o Global.pretrained_model=./pretrain_models/MobileNetV3_large_x0_5_pretrained

# 多机多卡训练,通过 --ips 参数设置使用的机器IP地址,通过 --gpus 参数设置使用的GPU ID
python3 -m paddle.distributed.launch --ips="xx.xx.xx.xx,xx.xx.xx.xx" --gpus '0,1,2,3' tools/train.py -c configs/det/det_mv3_db.yml \
-o Global.pretrained_model=./pretrain_models/MobileNetV3_large_x0_5_pretrained

4. 训练文本识别模型

1
2
3
4
5
6
7
8
9
# GPU训练 支持单卡,多卡训练
# 训练icdar15英文数据 训练日志会自动保存为 "{save_model_dir}" 下的train.log

#单卡训练(训练周期长,不建议)
python3 tools/train.py -c configs/rec/rec_icdar15_train.yml

#多卡训练,通过--gpus参数指定卡号
python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/rec/rec_icdar15_train.yml

5. 转换为inference模型部署

1
2
3
4
5
6
7
#1. 文本检测模型转inference模型
python tools/export_model.py -c configs/det/det_mv3_db.yml -o Global.pretrained_model="./output/sense_ocr_det/best_accuracy" Global.save_inference_dir="./sense_model/sense_det/"

#2. 文本识别模型转inference模型
python tools/export_model.py -c configs/rec/rec_icdar15_train.yml -o Global.pretrained_model=./output/sense_ocr_rec/best_accuracy Global.save_inference_dir=./sense_model/sense_rec/


6. 联合文本检测+文本识别测试

1
2
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/00018069.jpg" --det_model_dir="./sense_model/sense_det/" --rec_model_dir="./sense_model/sense_rec/" --use_angle_cls=false

image-20220124174811464

image-20220124174909037