使用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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

超详细kkFileView打包部署Windows或Liunx

目录 前言 下载源码编辑打包 Windows下的部署 Liunx下的部署 前言 本文章主要以下载源码 自己编译打包的方式进行部署。 因为4.0.0之后官方不在初始jar包,所以自己拉代码吧,别偷懒,顺便看看代码怎么写的。 码云: kkFileView 下载源代码为4.4.0-beta版本,亲测可用 下载源…

软件架构之开发方法

软件架构之开发方法 第6章:开发方法6.1 软件生命周期6.2 软件开发模型6.2.1 瀑布模型6.2.2 演化模型6.2.3 螺旋模型6.2.4 增量模型6.2.5 构件组装模型 6.3 统一过程6.4 敏捷方法6.4.1 极限编程6.4.2 特征驱动开发6.4.3 Scrum6.4.4 水晶方法6.4.5 其他敏捷方法 6.5 软…

AJAX快速入门(一) express框架的安装和使用范例

主打一个有用 首先保证安装了nodejs环境 打开终端 初始化npm npm init安装express npm i express测试样例 目录结构 样例代码 express.js //引入express const express require(express);//创建应用对象 const app express();//创建路由规则 //req是请求对象&#x…

Centos7 安装老版本的chrome

查看自己linux是哪个centos版本 使用以下命令: cat /etc/centos-release我这里是centOS 7。然后在安装最新版的google-chrome时,总是会报错显示存在依赖环境的问题,使得无法安装成功chrome。 Package: google-chrome-stable (/google-chro…

YOLOv10改进 | 添加注意力机制篇 | 添加FocusedLinearAttention助力yolov10实现有效涨点(含二次创新PSA机制)

一、本文介绍 本文给大家带来的改进机制是Focused Linear Attention(聚焦线性注意力)是一种用于视觉Transformer模型的注意力机制(但是其也可以用在我们的YOLO系列当中从而提高检测精度),旨在提高效率和表现力。其解决了两个在传统线性注意力…

windows电脑桌面便签在哪里找?

在忙碌的工作中,我们经常会有很多事情需要记住。这时,电脑桌面便签就成为了我们的好帮手。那么,在Windows电脑上,我们该如何找到桌面便签呢?下面,就让我来为大家详细介绍一下。 其实,Windows电…

FFmpeg 实现从麦克风获取流并通过RTMP推流

使用FFmpeg库实现从麦克风获取流并通过RTMP推流,FFmpeg版本为4.4.2-0。RTMP服务器使用的是SRS,我这边是跑在Ubuntu上的,最好是关闭掉系统防火墙。拉流端使用VLC。如果想要降低延时,请看我另外一篇博客,里面有说降低延时…

前端Canvas入门——怎么用Canvas画一些简单的图案

Canvas作为前端的画图工具&#xff0c;其实用途还是蛮广泛的&#xff0c;但是很多前端学习课程其实都很少涉及到这块内容。 于是乎&#xff0c;就写下这个了。 当然啦&#xff0c;目前还在学习摸索中。 一些实战代码&#xff0c;仅供参考&#xff1a; <canvasid"ctx&…

Onekey正版steam分流下载工具

今天给大家介绍的是一款下载steam游戏的工具。Onekey工具&#xff0c;是一款游戏下载器&#xff0c;可以下载steam正版分流游戏。下载正版分流的网站很多&#xff0c;但是都是网盘或者迅雷下载&#xff0c;或者游戏盒子下载&#xff0c;速度都很慢。这款软件是用steam下载的&am…

《Windows API每日一练》9.1 资源-图标

本节讲述图标、鼠标指针位图、字符串资源表、自定义资源的添加和应用。 本节必须掌握的知识点&#xff1a; 图标 第56练&#xff1a;ICON图标资源 鼠标指针位图 字符串资源表 自定义资源 第57练&#xff1a;字符串资源表和自定义资源 9.1.1 图标 在 Windows 窗口编程中&…

机场的出租车问题折线图

分析并可视化机场离场车辆数数据 本文将详细介绍如何使用Python的正则表达式库re和绘图库matplotlib对机场离场车辆数数据进行分析和可视化。以下是具体步骤和代码实现。 数据资源&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rU-PRhrVSXq-8YdR6obc6Q?pwd1234 提…

AutoCAD 2025:探索设计的未来

AutoCAD 2025是Autodesk公司推出的一款最新版本的计算机辅助设计&#xff08;CAD&#xff09;软件。作为一名长期使用AutoCAD的用户&#xff0c;我深感这款软件在设计、绘图和建模方面的卓越性能。以下是我对AutoCAD 2025功能的详细介绍以及我的使用体验。 AutoCAD 2025的主要…

Linux学习笔记(二)账户和组

一、基本概念 用 户&#xff1a;用户id&#xff0c;被称为UID 基本组&#xff1a;账户id&#xff0c;被称为GID。用户只能加一个基本组。 0代表超级管理员&#xff0c;root账号。 附加组&#xff1a;用户能加多个基本组。 二、添加账户和组 创建用户名tom&#xff0c;失效…

星间链路与星地链路

目录 一、星间链路 1.1 层内星间链路&#xff08;Intra-layer ISLs&#xff09; 1.2 层间星间链路&#xff08;Inter-layer ISLs&#xff09; 1.3 实现方式 1.3.1 微波链路 1.3.2 激光链路 二、星地链路 2.1 星地链路的关键特性 2.1.2 Ka信关站 2.1.2 Q/V信关站 2.1…

【uniapp-ios】App端与webview端相互通信的方法以及注意事项

前言 在开发中&#xff0c;使用uniapp开发的项目开发效率是极高的&#xff0c;使用一套代码就能够同时在多端上线&#xff0c;像笔者之前写过的使用Flutter端和webview端之间的相互通信方法和问题&#xff0c;这种方式本质上实际上是h5和h5之间的通信&#xff0c;网上有非常多…

科研绘图系列:R语言分组柱状图一(Grouped Bar Chart)

介绍 分组柱状图(Grouped Bar Chart)是一种数据可视化图表,用于比较不同类别(分组)内各子类别(子组)的数值。在分组柱状图中,每个分组有一组并列的柱子,每个柱子代表一个子组的数值,不同的分组用不同的列来表示。 特点: 并列柱子:每个分组内的柱子是并列的,便于…

【LLM】二、python调用本地的ollama部署的大模型

系列文章目录 往期文章&#xff1a; 【LLM】一、利用ollama本地部署大模型 目录 文章目录 前言 一、ollama库调用 二、langchain调用 三、requests调用 四、相关参数说明&#xff1a; 总结 前言 本地部署了大模型&#xff0c;下一步任务便是如何调用的问题&#xff0c…

科普文:K8S中常见知识点梳理

简单说一下k8s集群内外网络如何互通的 要在 Kubernetes&#xff08;k8s&#xff09;集群内外建立网络互通&#xff0c;可以采取以下措施&#xff1a; 使用service&#xff1a; 使用Service类型为NodePort或LoadBalancer的Kubernetes服务。这可以使服务具有一个公共IP地址或端口…

探展2024世界人工智能大会之令人惊艳的扫描黑科技~

文章目录 ⭐️ 前言⭐️ AIGC古籍修复文化遗产焕新⭐️ 高效的文档图像处理解决方案⭐️ AIGC扫描黑科技一键全搞定⭐️ 行业级的知识库大模型加速器⭐️ 结语 ⭐️ 前言 大家好&#xff0c;我是 哈哥&#xff08;哈哥撩编程&#xff09;&#xff0c;这次非常荣幸受邀作为专业…

基于单片机的太阳能智能追光系统设计

摘 要&#xff1a; 光伏能源是一种发电新能源&#xff0c;具有高清洁度、高再生的特点&#xff0c;在能源紧张的当代其应用价值极高。目前&#xff0c;光伏能源发电主要利用光伏设备来实现&#xff0c;但在初期应用过程中&#xff0c;人们发现&#xff0c;太阳光的移动会决定光…