百度飞浆Paddle OCR检测和识别【OCR数据收集、标注、数据集划分、检测识别模型训练、导出模型】

news2024/9/21 8:06:33

文章目录

  • 前言
  • 一、OCR数据集采集
  • 二、OCR数据标注
  • 三、划分数据集
  • 四、数据训练
  • 五、导出模型


前言

1、我的电脑没有GPU,如果不使用AI Studio训练的话,第一遍我是按照CPU进行环境配置和训练的,可以参考这篇文章,我按着弄了一遍,可以使用的。
2、使用AI Studio平台进行数据GPU训练,每天都可以领到可以使用的点数,作为零氪用户也可以使用A100训练,完全够用的。Ai Studio进行训练方便简单快捷,不需要配置复杂的环境,或者解决各种离谱的代码报错。本文使用Ai Studio进行训练的。


提示:Paddle OCR分为两部分:检测【det】和识别【rec】,需要分别进行训练,然后拿到训练结果还需要生成模型,Paddle版本最好2.5.2的,使用2.6.1的导出的模型没办法供后续开发使用

一、OCR数据集采集

图片大小不影响训练,将图片进行采集。

二、OCR数据标注

tools文件地址:提取码:umys

1、解压并安装tools文件下的miniconda,建议安装在D盘下的某个目录中,【C盘权限问题比较多后续会麻烦】
在这里插入图片描述
在这里插入图片描述

安装完成之后,检查 我的电脑-》属性-》高级系统变量-》path中是否有下框标红路径,没有的话需要加上【你自己的安装路径】,我的安装路径在D:\miniconda3,示例:
在这里插入图片描述

2、拿到tools文件夹下的.condarc 文件放在“C:\Users\XXX”下【XXX是你的本机用户名】,【我的用户名为29162】示例:
在这里插入图片描述

3、在最近安装找到anaconda prompt,【没找到可以在搜索框搜索】右键管理员身份打开。
①输入 conda create -n OCRTest python=3.8 【这个命令是创建了个环境,其中OCRTest是新取的环境名,这里取名以OCRTest为例】
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

输入“y”
显示到这里说明新环境创建成功
②把tools文件下的PaddleOCR-dygraph.zip解压,可以放到你自己的路径下,【我的路径是D:\BaiduNetdiskDownload\PaddleOCR-dygraph\PaddleOCR-dygraph,并以这个路径为例】
③在刚刚的Anaconda窗口中输入
conda activate OCRTest 【命令行前面的base变为OCRTest说明环境激活成功】
d:
cd D:\BaiduNetdiskDownload\PaddleOCR-dygraph\PaddleOCR-dygraph\PPOCRLabel 【注意,是进入到了PPOCRLabel路径下了】
在这里插入图片描述

④输入以下命令 【请按照截图中的步骤进行安装和运行,指令贴在下面了,方便粘贴使用】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
此处贴上上面用到的指令,方便粘贴使用

conda install paddlepaddle==2.6.1 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/win-64   
python PPOCRLabel.py
pip install xlrd
python PPOCRLabel.py
pip install PyQt5

如果遇到Proceed ([y]/n)?   直接输入y
如果遇到paddle报错,请输入:
conda install paddlepaddle==2.6.1 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/win-64  
如果遇到cv2报错,请输入
cd ..
pip install -r requirements.txt
如果报错OMP: Error #15: Initializing libiomp5md.dll
set KMP_DUPLICATE_LIB_OK=TRUE

⑤至此,标注软件成功安装并打开啦!!!

解压xunlianji,并在标注软件界面选择 文件-》打开目录-》①选择你刚刚解压完的图片所在文件夹路径,②文件-》自动导出标记结果,界面如下,快捷键信息如下【常用快捷键w是新建标注框,d是切换下一张】。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

手动缩小识别框,确保数字全部被识别框包裹。

自动标注会有一些错误,我们需要的仅仅是正确的号码牌数字
以下是几类错误,需要手动修改,每次手动修改识别结果后需要按下回车键。
1、多了英文符号的,需要在右侧红色框框里去掉英文符号
在这里插入图片描述

全部标注完成后,依次点击“文件”下的导出Label,导出recLabel按钮。最后生成的文件如下:
在这里插入图片描述

还有生成了文件夹,用于rec识别:
在这里插入图片描述


三、划分数据集

把图片和标注数据按照Label.txt文件以8:1:1【6:2:2也行,具体按照实验要求来】划分,手动或者编码划分,划分后的结果如下:
在这里插入图片描述

四、数据训练

数据训练分为det检测训练和rec识别训练,paddle 2.5.2的环境,在Ai Studio训练。
在这里插入图片描述

1、det的训练:
det训练地址

算力点每日运行获取,使用GPU训练
在这里插入图片描述
依次点击pip安装,最后点击运行,启动环境成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
训练完成后在AIstudio查看推理效果,下载模型文件。

2、rec训练
训练网址:rec训练地址

依次pip后点击运行
上传数据集后开始训练和推理,步骤同det
注:rec的数据集是前面标注生成的检测数据集:
在这里插入图片描述
在这里插入图片描述

五、导出模型

从AI Studio下载下来的模型文件为
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
需要使用如下命令进行导出【按照自己的路径进行修改,第一个路径是你从AIStudio下载下来的需要进行模型转换的路径,model是文件名;第二个路径是你想导出到的路径】:

det生成模型:

python tools/export_model.py -c configs/det/ch_PP-OCRv4/ch_PP-OCRv4_det_teacher.yml -o Global.checkpoints=./output/ch_PP-OCRv4/det_best_model/model Global.save_inference_dir=./output/db_lqq_infer/det_model

rec生成模型:

python tools/export_model.py -c configs/rec/ch_PP-OCRv4/ch_PP-OCRv4_rec.yml -o Global.checkpoints=./output/ch_PP-OCRv4/det_best_model/model Global.save_inference_dir=./output/db_lqq_infer/rec_model

最后生成的模型文件det和rec格式均为:
在这里插入图片描述

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

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

相关文章

安克创新25届校招CATA北森测评:笔试攻略、真题题库、高分技巧

安克创新自适应能力CATA测评是该公司用于评估候选人认知能力的计算机自适应测评系统。该测评系统由北森题库提供支持,是国内唯一被国际计算机自适应测验协会(IACAT)收录的产品。测评主要评估以下几个维度: 言语能力:测试理解言语信息并基于这…

25届计算机专业毕设选题推荐-基于python+Django协调过滤的新闻推荐系统

💖🔥作者主页:毕设木哥 精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻 实战项目 文章目录 实战项目 一、基于协调过滤的新闻推荐系统…

浅谈穷举法

穷举法 穷举法是一种通过逐一列举所有可能情况来寻找解决方案的方法。就像找到一把钥匙打开一把锁,我们会尝试每一把钥匙直到找到正确的那一把。比如,如果你忘记了自己的密码,可以尝试每一种可能的组合直到找到正确的密码为止 穷举法的结构 …

【计算机网络 - 基础问题】每日 3 题(十六)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…

spring boot启动报错:so that it conforms to the canonical names requirements

springboot 2.x的版本中对配置文件中的命名规范有了强制性的要求,如下图所示中的dataSource属性属于驼峰格式,但是在springboot 2.x中不允许使用驼峰形式。 根据错误提示可知将其使用 - 来分割即可 错误信息的含义:“Canonical names should…

51单片机-红外遥控器(NEC标准)

作者:Whappy 时间:2024.9.20 总结一下!基础实验到这儿里就圆满结束,历经25天,将51单片机学完并亲自手敲代码近5000行,在手敲代码过程中,明显感觉的看和敲,明显就是不同的感觉&…

基于PHP的CRM管理系统源码/客户关系管理CRM系统源码/php源码/附安装教程

源码简介: 这是一款基于PHP开发的CRM管理系统源码,全称客户关系管理CRM系统源码,它是由php源码开发的,还附带了一整套详细的安装教程哦! 功能亮点: 1、公海管理神器:不仅能搞定公海类型&…

阿里开源多模态大模型Ovis1.6,重塑出海电商AI格局

阿里开源Ovis1.6:多模态领域再夺第一 阿里再一次证明了自己在多模态领域的实力。这一次,阿里国际AI团队开源的多模态大模型Ovis1.6,不仅成功开源,还在多模态评测基准OpenCompass上击败了Qwen2VL-7B、InternVL2-26B和MiniCPM-V-2.…

springboot jar包瘦身

现在的项目结构是业务包引用comomn包,common包里又引用了很多其他的jar包,导致业务包打包出来动则就是一百甚至两百兆,现在要做到把公共的包放出来,放到一个单独的文件夹,业务包里只放业务代码。 现在只需要修改maven …

Python 操作 Arduino 入门

本文翻译整理自:Arduino With Python: How to Get Started https://realpython.com/arduino-python/ 文章目录 一、Arduino平台1、Arduino硬件2、Arduino软件 二、“Hello, World!”与Arduino1、上传眨眼示例草图2、连接外部组件3、使用面包板 三、“Hello, World!”…

【Day02-JS+Vue+Ajax】

1. JS介绍 在前面的课程中,我们已经学习了HTML、CSS的基础内容,我们知道HTML负责网页的结构,而CSS负责的是网页的表现。 而要想让网页具备一定的交互效果,具有一定的动作行为,还得通过JavaScript来实现。那今天,我们就…

Charles抓包工具测试实战

总结 工作原理 主要功能 优点 安装与配置 安装 组件介绍 Charles代理设置 Charles访问控制 客户端 Windows代理设置 MacOS代理设置 IOS手机代理设置 Android手机代理设置 Charles抓包实战 分析问题 抓包 后台出了问题 抓取https数据 全是乱码 Windows证书安装 Charles ht…

项目文件配置

1. 参数配置化 1.1 问题分析 1.2 问题解决 Value 注解通常用于外部配置的属性注入,具体用法为:Value("${配置文件中的key}") 2. yml配置文件 2.1 SpringBoot提供了多种属性配置方式 2.2 常见配置文件格式对比 2.3 yml 基本语法 大小写敏…

如何利用nw.js打包vue项目

引言 最近有一个开发windows桌面应用的需求, 需要将vue项目打包成.exe文件,最好是变成可安装版(非绿色版)。特此记录一下如何通过nw.js将vue项目打包成.exe。可能这种方式不是最优,仅供大家参考! nw.js简介(以下描述来自nw.js官…

SAP abap-platform-rap-opensap 使用 ABAP RESTful 应用程序编程模型 (RAP)构建应用程序

openSAP 课程“使用 ABAP RESTful 应用程序编程模型 (RAP) 构建应用程序”的示例。 Description This repository offers optional hands-on exercises for the free openSAP Course Building Apps with the ABAP RESTful Application Programming Mode…

【已解决】华为AR100-S路由器 恢复出厂后,找不到5G wifi的设置

前两帖讨论了华为AR100-S路由器: 一是用电脑浏览器访问web管理界面报错的解决,详情点这里! https://blog.csdn.net/weixin_62598385/article/details/142215136 再就是如何回复出厂,也即如何复位, 详情点这里&#xff…

计算机网络nat 映射案列

1 拓扑案列 2 配置 pc 访问外网 # interface LoopBack192 ip address 192.168.1.1 255.255.255.0 # interface Vlan-interface1 ip address 10.1.1.1 255.255.255.0 # # ip route-static 0.0.0.0 0 10.1.1.2 # local-user admin class manage password hash $h$6$0XD4lC…

前端组件库

vant2现在的地址 Vant 2 - Mobile UI Components built on Vue

sqli-lab靶场学习(四)——Less11-14(post方法)

前言 第1-10关都是get方法,本关开始进入post方法。其实post也好get也好,本质都差不多,使用的技巧也基本相同。 Less11 第11关打开是一个输入用户名密码的界面 显然登陆对话框会使用post方式提交,这里我们尝试在Username一栏通过…