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

news2024/9/27 19:15:29

一、环境安装

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1909560.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++11——新特性超详细总结

目录 一、C11介绍 二、为什么要用C11 三、新特性总结 1、类型推导(auto/decltype) 2、序列for循环语句 3、 lamdba表达式 4、构造函数:委托构造和继承构造 5、容器(array/forward_list) 6、垃圾回收机制 7、…

MySQL Buffer Pool

总结自:小林coding,bojiangzhou 虽然说 MySQL 的数据是存储在磁盘里的,但是也不能每次都从磁盘里面读取数据,这样性能是极差的。 要想提升查询性能,加个缓存就行了嘛。所以,当数据从磁盘中取出后&#xff…

大话C语言:第29篇 指针

1 指针概念 指针:地址的变量化形式,其存储的是内存中某个存储单元的地址。它是地址的数值表示。 指针变量:一种特殊的变量,它专门用于存放变量的地址(即指针)。 注意,指针和指针变量的区别&am…

uniapp+uview实现手机端上传照片带水印(保姆级全过程)

目录 前言:实现思路 步骤一、在界面使用uview的u-upload组件、放置canvas标签 步骤二、在afterRead方法中获取照片url,并创建画布生成水印,再将生成水印的照片上传到服务器 1、afterRead方法 2、照片加水印的方法 3、上传照片至服务器 …

项目管理:这样制定计划,让你事半功倍

在项目管理中,制定计划是成功的关键,一个完善的计划不仅能够明确项目的方向和目标,还能为团队成员提供清晰的行动指南。 制定计划的四大要素——做什么、怎么做、何时做、谁来做,为这一过程提供了坚实的框架。而甘特图作为一种直观…

OS Copilot:新手测评体验

文章目录 前言一、OS Copilot(阿里云操作系统智能助手)简介二、测评体验总结OS Copilot 产品体验评测OS Copilot 产品功能反馈 前言 本文简单分享一下自己使用OS Copilot测评体验。 一、OS Copilot(阿里云操作系统智能助手)简介 …

普通人必看!AI绘画商业变现全攻略(附教程)

大部分的设计师除了主业以外,都会利用空余时间去接单做副业。 单子包括但不限于产品/品牌LOGO、电商产品图设计、海报、室内设计图等等,单价在几十到上千不等 引起了我的思考,我们普通人有没有机会,也能像他们一样去接单赚钱吗&a…

挖K脚本检测指南

免责声明:本文仅做分享... 目录 挖K样本-Win&Linux-危害&定性 Linux-Web 安全漏洞导致挖K事件 Windows-系统口令爆破导致挖K事件 --怎么被挖K了??? 已经取得了权限. 挖K样本-Win&Linux-危害&定性 危害:CPU 拉满,网络阻塞&…

Spring最早的源码

地址:Spring最早的源码

Uniapp组件使用的详细步骤

官方文档:uni-app官网 (dcloud.net.cn) 一般用到的组件都在这里: 看介绍里面的注意事项,有注意的地方认真查看,使用的时候例如,以下示例日历,把代码粘贴到你的文件里,然后下载组件 1&#xff…

商家转账到零钱分销返佣场景驳回处理办法

在处理商家转账到零钱分销返佣场景被驳回的问题时,商家需要了解驳回的原因,并采取相应的措施来解决这些问题。下面将详细介绍几种常见的驳回原因以及应对策略: 1. 多级分销模式问题 • 原因:如果业务模式涉及多级分销,…

数据安全治理:从库级权限申请到表级权限申请

背景 随着数据安全意识的提高,企业越来越重视数据治理和权限管理。传统数仓大多对库级别进行读写授权,仅对人工标记的敏感库进行表级别授权,但由于敏感等级是由人为标记,错误率较高,故期望将权限申请流程细化到表级申…

Datawhale AI 夏令营 机器学习挑战赛

一、赛事背景 在当今科技日新月异的时代,人工智能(AI)技术正以前所未有的深度和广度渗透到科研领域,特别是在化学及药物研发中展现出了巨大潜力。精准预测分子性质有助于高效筛选出具有优异性能的候选药物。以PROTACs为例&#x…

PHP调查问卷小程序系统源码

📊【问卷新风尚】调查问卷系统小程序,让数据收集更简单! 📱【指尖轻点,问卷即刻生成】 告别繁琐的问卷设计过程,调查问卷系统小程序让你在指尖轻点间,就能轻松创建出专业、美观的问卷。无论是…

文章SameStr(五):图5代码

“Publication Figure 5” 百度云盘链接: https://pan.baidu.com/s/15g7caZp354zIWktpnWzWhQ 提取码: 4sh7 Libraries Standard Import library(tidyverse) library(cowplot) library(scales) library(ggpubr)Special library(caret) library(randomForest) library(vip)…

Kudu分区策略

Kudu表的分区策略主要有三种:范围分区(Partition By Range)、哈希分区(Partition By Hash)和高级分区(Partition By Hash And Range)。这些策略都要求分区字段必须包含在主键中。 范围分区&…

内网-有道词典离线翻译安装

一、外部操作 1、在外部下载有道翻译桌面版 下载地址 2、安装到指定目录 3、登录下载离线翻译包 进入设置 -》离线增强-》离线翻译数据包-》翻译包 选择汉英互译 4、找到离线包位置 C:\Users\用户\AppData\Local\Yodao ,此处查看自己用户所在C盘位置 二、内网…

【ai】pycharm添加本地解释器

解释器右键可以重命名 系统的解释器竟然安装了4个 可以先使用python虚拟环境中的解释器 虚拟环境虽然是属于其他的项目的,但是看起来也可以给自己的当前项目用: 添加了 别的项目里虚拟环境的解释器

科研加速器FlowUs你的智能论文助手与协作伙伴|文献整理软件|论文进度跟踪|AI辅助研究|科研时间管理

FlowUs这个科研神器简直太棒了!试了一下,你的论文进度一目了然,就像有了一个智能助手在帮你规划每一天。日历视图让你的计划和截止日期清晰可见,再也不用担心错过任何重要的研究里程碑。 日历视图:FlowUs的日历视图功能…

DBeaver安装教程(开发人员和数据库管理员通用数据库管理工具)

前言 DBeaver 是一个通用的数据库管理工具和 SQL 客户端,支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLDB, Derby, 以及其他兼容 JDBC 的数据库。DBeaver 提供一个图形界面用来查看数据库结构、执行SQL查询和脚本,浏览和导出数据&a…