当前位置:   article > 正文

PaddleOCR 手写识别模型:标注到训练_paddleocr 手写中文模型

paddleocr 手写中文模型

本文记录一下自己标注的数据,到训练后模型转换的流程;本文只训练识别模型。

版本数据

Python == 3.8
Paddlepaddle >=2.0
PaddleOCR >= 2.0

这里数据使用的是中科院手写数据集及网上开数据;整合后处理尺寸最大为640*32;训练24w,测试1.7w;可直接用于paddleOCR的训练。

数据下载链接:
https://aistudio.baidu.com/aistudio/datasetdetail/102884

流程

  1. 首先使用PPOCRLabel工具标注。
  2. 数据合成工具Style-Text(看需求使用)。
  3. 编写脚本变更训练所需要的数据格式。
  4. 修改训练cfg,下载预训练模型,开始训练。
  5. 模型转换,推理测试。

标注

  • 这里需要先安装PyQt5等其他依赖项
cd ./PPOCRLabel
python PPOCRLabel.py --lang ch
  • 1
  • 2

在这里插入图片描述

  • 标注后会在图片路径下保存一个label.txt,格式如图:

在这里插入图片描述

  • 实际train.txt需要将以上格式转化为SimpleDataSet格式(并且对应需要将图片切出 320*32 大小):
  • 注意路径与标签的分隔需要使用 \t 分割

在这里插入图片描述

  • 最终目录格式如下

在这里插入图片描述

训练

  1. 下载预训练模型
  2. 修改配置文件cfg,附:配置文件参数表
  3. 主要修改数据路径,添加预训练模型,epoch,batch等
  4. 所有路径的 ‘:’ 后面需要先加一个空格,否则会报错。
  5. 开始训练:
python tools/train.py -c ./configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml 2>&1 | tee train_rec.log
  • 1

转换

  • 训练好的模型文件不能直接使用,需要经过转换
python ./tools/export_model.py 
-c ./configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml 
-o Global.pretrained_model=./ch/best_accuracy 
Global.load_static_weights=False 
Global.save_inference_dir=./out/
  • 1
  • 2
  • 3
  • 4
  • 5

推理

python tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_mobile_v2.0_det_infer/"  --rec_model_dir="./inference/ch_ppocr_mobile_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True
  • 1

我这里训练的手写体数据,原来的打印体精度变差很多。。。
在这里插入图片描述

遇到报错

  1. win10下报错 OMP: Error****************** ;需在代码前加上一下代码:
import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'
  • 1
  • 2
  1. 配置文件下,所有路径的 ‘:’ 后面需要先加一个空格,否则会报错。

参考

https://github.com/PaddlePaddle/PaddleOCR
http://www.nlpr.ia.ac.cn/databases/handwriting/Download.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/132610
推荐阅读
相关标签
  

闽ICP备14008679号