PadleOCR训练自己的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标注工具(里面有安装教程)

或者直接安装

pip install PPOCRLabel  # 安装

# 选择标签模式来启动
PPOCRLabel --lang ch  # 启动【普通模式】,用于打【检测+识别】场景的标签
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文件 命令如下: 

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

#  将生成的模型转换成    infer 文件                                                                        最好的模型轮数                                  保存的目录地址
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模型替换成自己路径下的模型即可

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

import os
from PIL import Image

def batch_ocr(input_dir, output_dir):
    from paddleocr import PaddleOCR, draw_ocr

    ocr = PaddleOCR(det_model_dir='inference_model/det',rec_model_dir='inference_model/rec', use_angle_cls=True, use_gpu=False)

    # 遍历输入文件夹下的所有图片文件
    for filename in os.listdir(input_dir):
        if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):
            img_path = os.path.join(input_dir, filename)

            # 进行 OCR 识别
            result = ocr.ocr(img_path, cls=True)[0]

            # 获取识别结果的坐标、文本和置信度
            boxes = [line[0] for line in result]
            txts = [line[1][0] for line in result]
            scores = [line[1][1] for line in result]

            # 读取原始图片
            image = Image.open(img_path).convert('RGB')

            # 在原始图片上绘制识别结果
            im_show = draw_ocr(image, boxes, txts, scores, font_path='doc/fonts/simfang.ttf')
            im_show = Image.fromarray(im_show)

            # 保存绘制结果的图片
            output_path = os.path.join(output_dir, filename)
            im_show.save(output_path)


if __name__ == '__main__':
    # Ocr()
    input_dir = r'text_img/Eval_img'
    output_dir = r'text_img/result_img'

    batch_ocr(input_dir, output_dir)

参考文献:

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

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

PaddleOCR训练自己的数据

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值