使用paddleOCR训练自己的数据集到ONNX推理

一、环境安装

1、安装paddlepaddle;
https://www.paddlepaddle.org.cn/
在这里插入图片描述
这里安装2.6.1的话使用onnx会出现swish算子报错的问题

python -m pip install paddlepaddle-gpu==2.5.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

验证是否成功安装

python
import paddle
paddle.utils.run_check()

2、安装paddleOCR
直接按照,失败,失败安装的包就手动安装

pip install paddleocr -i https://mirror.baidu.com/pypi/simple

或者

git clone https://gitee.com/PaddlePaddle/PaddleOCR
cd PaddleOCR
python -m pip install -r requirments.txt
pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple

3、安装onnx

pip install paddle2onnx -i https://mirror.baidu.com/pypi/simple
pip install onnxruntime -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成
在这里插入图片描述
4、验证是否安装正常

cd D:\CodeGitDownload\PaddleOCR
paddleocr --image_dir ./doc/imgs/11.jpg --use_angle_cls true --use_gpu false

在这里插入图片描述

二、数据集标注

打开标注软件,在PaddleOCR代码中

python PPOCRLabel.py --lang ch

在这里插入图片描述
使用说明:https://blog.csdn.net/Castlehe/article/details/115699134
注意:如果要训练识别模型应该在文件-》导出识别结果,不然rec文件夹中没数据;
在这里插入图片描述
标注完成后提出软件,,对刚才标注的图片进行划分

python gen_ocr_train_val_test.py --trainValTestRatio 6:2:2 --datasetRootPath E:/Dataset--recRootPath E:/Dataset/rec --detRootPath E:/Dataset/det

三、训练

因为识别的产品字符只包含了数字和字母,而且经过测试发现检测推理模型是可以直接用,所有这里使用英文识别模型,不再训练推理模型。
模型下载
在这里插入图片描述

下载所需文件内容参考:
在这里插入图片描述
修改yaml文件参数,主要如下;
在这里插入图片描述
在这里插入图片描述
开始训练

python tools/train.py -c E:/ModelOCR/en_PP-OCRv4_rec.yml

训练结束后,将训练模型(.pdopt、/.pdparams)转为推理模型(.pdmodel、/.pdiparams)

python tools/export_model.py -c E:/ModelOCR/en_PP-OCRv4_rec.yml -o Global.checkpoints=E:/ModelOCR/train_rec_output/best_accuracy Global.save_inference_dir=E:/ModelOCR/infer_rec_output/
python tools/infer/predict_rec.py --image_dir="E:/Dataset/neimeng0707/rec/train/Image_20230818133344612_crop_0.jpg" --rec_model_dir="E:/ModelOCR/infer_rec_output/" --rec_image_shape="3, 48, 320" --rec_char_dict_path="E:/ModelOCR/en_dict.txt"

在这里插入图片描述

三、ONNX推理

paddle2onnx --model_dir E:/ModelOCR/infer_rec_output --model_filename inference.pdmodel --params_filename inference.pdiparams --save_file E:/ModelOCR/infer_rec_output/inference.onnx --opset_version 11 --enable_onnx_checker True

这里使用C++的ONNX进行推理,参考https://github.com/hpc203/PaddleOCR-v3-onnxrun-cpp-py
考虑兼容问题,版本用的是:onnxruntime-win-x64-1.12.0
使用训练后的模型推理效果如下,B错识别为8,收集数据集后重新迭代训练即可优化;
在这里插入图片描述
在这里插入图片描述

其他参考链接:
https://blog.csdn.net/qq_52852432/article/details/131817619
https://github.com/PaddlePaddle/PaddleOCR

后续可优化的方向:
1、opencv的dnn部署;
2、端到端模型训练;
3、简化流程;

机器视觉交流+w:gaoshijue666

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
训练自己的数据,你需要按照以下步骤进行操作: 1. 数据准备:收集和标注你自己的OCR数据集。确保每个样本都有对应的图像和标注文件,标注文件应包含每个图像中文本框的位置和对应的文本内容。 2. 安装PaddleOCR:按照PaddleOCR官方文档提供的指引,安装好PaddleOCR的依赖和环境。 3. 数据格式转换:将你的数据集转换为PaddleOCR支持的格式。可以使用PaddleOCR提供的工具或编写自定义脚本来完成数据格式转换。 4. 模型配置:根据你的数据集特点和需求,修改PaddleOCR的配置文件。配置文件中包含了模型结构、训练参数等信息。 5. 模型训练使用准备好的数据集和配置文件,运行训练脚本开始训练过程。训练过程可能需要一定时间,具体时间取决于数据集规模和硬件性能。 6. 模型评估和调优:训练完成后,使用评估脚本评估模型性能。根据评估结果,可以调整模型配置、优化数据集或训练策略,进一步提升模型性能。 7. 模型导出和部署:训练完成的模型可以导出为推理模型,用于实际应用场景中的文本识别任务。PaddleOCR提供了丰富的部署方式,包括Python API、C++预测库、PaddleLite等。 请注意,以上步骤仅为一般性指导,实际操作可能会因数据集特点、训练需求等而有所差异。建议参考PaddleOCR官方文档中提供的详细教程和示例代码,以获取更具体的指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值