当前位置:   article > 正文

PadleOCR训练自己的ocr模型之训练步骤_自己训练ocr

自己训练ocr

目录

一、前期准备

1、代码

2、标注工具

二、环境配置

CPU环境:

 库的安装:

三、数据准备

1、数据集准备

2、数据集结构

2.1 数据集文件结构

四、训练模型

1、训练模型获取

2、det模型训练

2.1 找到det模型对应的yml文件

2.2 修改配置文件的参数(我这里以det_mv3_db.yml为例,需要修改的参数都差不多)

2.2.1 第一部分

2.2.2 第二部分

2.2.3 第三部分

2.3 开始训练

3、rec模型训练

3.1 找到rec模型对应的yml文件

3.2 修改配置文件的参数(我这里以rec_chinese_lite_train_v2.0.yml为例,需要修改的参数都差不多)

3.2.1 第一部分

3.2.2 第二部分

3.2.3 第三部分

3.3 开始训练

五、转换成推理模型

 六、测试

参考文献:


一、前期准备

1、代码

目前用的是2.6版本的

paddleocr的源代码

2、标注工具

ocr标注工具(里面有安装教程)

或者直接安装

  1. pip install PPOCRLabel # 安装
  2. # 选择标签模式来启动
  3. PPOCRLabel --lang ch # 启动【普通模式】,用于打【检测+识别】场景的标签
  4. PPOCRLabel --lang ch --kie True # 启动 【KIE 模式】,用于打【检测+识别+关键字提取】场景的标签

二、环境配置

CPU环境:

paddlepaddle-GPU或者CPU版本的安装教程

官网的安装教程

 库的安装:

在文件配置完后,训练时看缺什么库就安什么库

三、数据准备

1、数据集准备

可以参考我写的笔记

2、数据集结构

2.1 数据集文件结构

四、训练模型

1、训练模型获取

paddleocr之gitcode

github可能下载不了模型,只能用gitcode的

下载之后在PaddleOCR-release-2.6根目录下建立Preliminary_training文件夹,并将训练模型解压至该文件夹下。如下图所示:

2、det模型训练

2.1 找到det模型对应的yml文件

在项目的configs里面找到需要修改的yml文件

2.2 修改配置文件的参数(我这里以det_mv3_db.yml为例,需要修改的参数都差不多)
2.2.1 第一部分

2.2.2 第二部分

2.2.3 第三部分

2.3 开始训练

激活环境进入到PaddleOCR-releas-2.6根目录下。输入以下指令开始模型训练

python tools/train.py -c configs/det/"自己选的 det 的yml文件路径"

出现以下画面则代表成功

3、rec模型训练

3.1 找到rec模型对应的yml文件

3.2 修改配置文件的参数(我这里以rec_chinese_lite_train_v2.0.yml为例,需要修改的参数都差不多)
3.2.1 第一部分

3.2.2 第二部分

3.2.3 第三部分

3.3 开始训练

 激活环境进入到PaddleOCR-releas-2.6根目录下。输入以下指令开始模型训练

python tools/train.py -c configs/rec/"自己选的 rec 的yml文件路径"

出现以下画面则代表成功

  最后训练好可以在./output 下面查看训练后的模型

 

五、转换成推理模型

需要将生成的转换成为infer文件 命令如下: 

需要修改三个地方,改的时候去掉引号

  1. # 将生成的模型转换成 infer 文件 最好的模型轮数 保存的目录地址
  2. python tools/export_model.py -c configs/"det or rec 对应的yml地址" -o Global.checkpoints=./output/"需要转换的模型地址"/best_accuracy Global.save_inference_dir=./"模型保存地址"/

例如我的是

det 和 rec

python tools/export_model.py -c configs/det/det_mv3_db.yml -o Global.checkpoints=./output/label_ocr_11_7/det/best_accuracy Global.save_inference_dir=./inference_model/det/
python tools/export_model.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml -o Global.pretrained_model=./output/label_ocr_11_7/rec/best_accuracy Global.save_inference_dir=./inference_model/rec/

转换后的模型会保存在你创建的目录下

 六、测试

将det和rec模型替换成自己路径下的模型即可

这个代码是预测文件夹的示例

  1. import os
  2. from PIL import Image
  3. def batch_ocr(input_dir, output_dir):
  4. from paddleocr import PaddleOCR, draw_ocr
  5. ocr = PaddleOCR(det_model_dir='inference_model/det',rec_model_dir='inference_model/rec', use_angle_cls=True, use_gpu=False)
  6. # 遍历输入文件夹下的所有图片文件
  7. for filename in os.listdir(input_dir):
  8. if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):
  9. img_path = os.path.join(input_dir, filename)
  10. # 进行 OCR 识别
  11. result = ocr.ocr(img_path, cls=True)[0]
  12. # 获取识别结果的坐标、文本和置信度
  13. boxes = [line[0] for line in result]
  14. txts = [line[1][0] for line in result]
  15. scores = [line[1][1] for line in result]
  16. # 读取原始图片
  17. image = Image.open(img_path).convert('RGB')
  18. # 在原始图片上绘制识别结果
  19. im_show = draw_ocr(image, boxes, txts, scores, font_path='doc/fonts/simfang.ttf')
  20. im_show = Image.fromarray(im_show)
  21. # 保存绘制结果的图片
  22. output_path = os.path.join(output_dir, filename)
  23. im_show.save(output_path)
  24. if __name__ == '__main__':
  25. # Ocr()
  26. input_dir = r'text_img/Eval_img'
  27. output_dir = r'text_img/result_img'
  28. batch_ocr(input_dir, output_dir)

参考文献:

PaddlePaddle / PaddleOCR Public训练自己的数据集

PaddleOCR训练自己的数据集(已踩坑windows10)

PaddleOCR训练自己的数据

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

闽ICP备14008679号