paddle ocr 文字识别模型训练 svtr

训练模型方法参考:https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/recognition.md

实践:https://aistudio.baidu.com/projectdetail/4482681

SVTR 算法原理

SVTR: Scene Text Recognition with a Single Visual Model Yongkun Du and Zhineng Chen and Caiyan Jia and Xiaoting Yin and Tianlun Zheng and Chenxia Li and Yuning Du and Yu-Gang Jiang IJCAI, 2022

假设我们要识别一张图片上的文本,这个过程可以分为几个阶段:

  1. 初步分块和特征提取:
    ○ 首先将图像分成小块,每个小块提取出初步的特征(例如颜色、形状等)。
  2. 组件级别的混合、合并和组合:
    ○ 对每个小块的特征进行混合、合并和组合。这一步骤是分层次进行的,每一层次都进一步整合前一层次的特征。
    ○ 例如,第一层次可能仅处理字符的局部特征(如笔画),而第二层次开始整合整个字符,第三层次则开始整合多个字符之间的关系。
  3. 全局和局部混合:
    ○ 全局混合:整合整张图片的特征,理解字符之间的相对位置和关系。
    ○ 局部混合:细化每个字符内部的细节,确保模型能够识别出单个字符的精确特征。
  4. 多层次感知:
    ○ 通过多层次的处理,模型不仅能够识别出每个字符,还能理解字符之间的关系,从而准确地识别出整个文本内容。

在这里插入图片描述

下载识别模型

https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/algorithm_rec_svtrv2.md

下载最新的SVTR2训练模型
https://paddleocr.bj.bcebos.com/openatom/openatom_rec_svtrv2_ch_train.tar

在这里插入图片描述

数据

https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/recognition.md

每张图片只有一行文字

ICDAR2015数据集(全英文)

在这里插入图片描述

中文数据集
参考:https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/dataset/datasets.md
中文文档文字识别
● 数据来源:https://github.com/YCG09/chinese_ocr

● 数据简介:
○ 共约364万张图片,按照99:1划分成训练集和验证集。
○ 数据利用中文语料库(新闻 + 文言文),通过字体、大小、灰度、模糊、透视、拉伸等变化随机生成
○ 包含汉字、英文字母、数字和标点共5990个字符(字符集合:https://github.com/YCG09/chinese_ocr/blob/master/train/char_std_5990.txt )
○ 每个样本固定10个字符,字符随机截取自语料库中的句子
○ 图片分辨率统一为280x32
https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/datasets/ch_doc1.jpghttps://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/datasets/ch_doc3.jpg

● 下载地址:https://pan.baidu.com/s/1QkI7kjah8SPHwOQ40rS1Pw (密码:lu7m)

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

100,000张图片,标签如下:

训练命令

下载Paddle OCR源码 git clone https://github.com/PaddlePaddle/PaddleOCR.git

配置文件参数解释:https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/config.md

使用下载的识别模型当预训练模型

训练模型命令:python tools/train.py -c configs/rec/SVTRv2/rec_svtrv2_ch.yml

识别模型训练速度较慢
在这里插入图片描述

第三轮差不多就达到精度最高98%
在这里插入图片描述

评估

python tools/eval.py -c configs/rec/SVTRv2/rec_svtrv2_ch.yml

如果用预训练模型预测,准确度只有68%
在这里插入图片描述

通过微调准确率提高了30%
在这里插入图片描述

推理命令

将训练得到best模型,转换成inference model

python  tools/export_model.py -c configs/rec/SVTRv2/rec_svtrv2_ch.yml -o Global.pretrained_model=output/rec_svtrv2_ch/best_accuracy Global.save_inference_dir=./inference/rec_svtrv2_ch

转换成功后,在目录下有三个文件:

在这里插入图片描述

使用自己的识别模型:

python tools/infer/predict_rec.py   --image_dir='E:/BaiduNetdiskDownload/DataSet/Chinese_dataset/images/img_0000001.jpg'  --rec_model_dir='./inference/rec_svtrv2_ch'  --rec_char_dict_path='

在这里插入图片描述

训练后参数分布会变,所以预测的图片与训练的图片分布相似时,准确率会更高。

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

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

相关文章

小论文写不出来?一文告别没思路!SCI级新算法闪耀登场,完整代码及应用直接获取

最近稍微有点忙,事情比较多,构思灵感花费了不少时间。这次发布的算法和前几个基于数学基本思想开发的算法不一样,是一种基于动物的一种算法,从动物的本能和行为中汲取灵感。本算法的开发,灵感撰写以及完整的算法已经全…

基于微信小程序+SpringBoot+Vue的资料分享系统(带1w+文档)

基于微信小程序SpringBootVue的资料分享系统(带1w文档) 基于微信小程序SpringBootVue的资料分享系统(带1w文档) 校园资料分享微信小程序可以实现论坛管理,教师管理,公告信息管理,文件信息管理,文件收藏管理等功能。该系统采用了Sp…

学习大数据DAY22 Linux 基 本 指 令 3与 在 Linux 系 统 中 配 置MySQL 和 Oracle

目录 网络配置类 ps 显示系统执行的进程 kill systemctl 服务管理 配置静态 ip 常见错误---虚拟机重启网卡失败或者网卡丢失 mysql 操作 上机练习 6---安装 mysql---参考《mysql 安装》文档 解锁 scott 重启后的步骤 上机练习 7---安装 oracle---参考《oracle 安装》…

【Gin】深度解析:在Gin框架中优化应用程序流程的责任链设计模式(下)

【Gin】深度解析:在Gin框架中优化应用程序流程的责任链设计模式(下) 大家好 我是寸铁👊 【Gin】深度解析:在Gin框架中优化应用程序流程的责任链设计模式(下)✨ 喜欢的小伙伴可以点点关注 💝 前言 本次文章分为上下两部分&#xf…

docker发布镜像到自己远程私有仓库

1、登录docker hub创建自己的仓库地址:https://hub.docker.com/repository/create 输入仓库名称 2.构建镜像 略过。。。。请自己查找别的资料,此篇文章只讲述镜像推送到远程 3.推送 假设你已经构建了一个镜像 web/online-editor:latest,现…

开源AI智能名片O2O商城小程序在拼团模式下的创新应用与策略分析

摘要 在数字化浪潮的推动下,社交电商以其独特的社交属性和裂变效应,成为电商领域的一股不可忽视的力量。拼团模式作为社交电商的重要分支,通过用户间的自发传播与集体购买行为,有效降低了商品价格,增强了用户粘性&…

Docker安装oracle19c

文章目录 Docker安装oracle19c1. 拉取镜像2. 创建目录并赋权3. 构建容器并启动4. 查看日志5. 登录docker容器里面6. 登录sqlplus 创建PDB用户7. 查看show pdbs7. 切换数据库8. 创建用户9. 授权10. 使用navicat连接11. 参考和感谢 Docker安装oracle19c 1. 拉取镜像 docker pul…

机器学习 | 回归算法原理——最小二乘法

Hi,大家好,我是半亩花海。很早便想学习并总结一本很喜欢的机器学习图书——立石贤吾的《白话机器学习的数学》,可谓通俗易懂,清晰形象。那就在此分享并作为学习笔记来记录我的学习过程吧!本章的回归算法原理基于《基于…

Ollama Linux 升级

Ollama 是一个开源的 LLM 部署工具,一键部署,超级好用,在 Mac 上支持自动更新,但是到了 LInux 就有些麻烦了,本文讲述如何在 Linux 下更新 Ollama。 重新安装 安装时使用的是如下脚本,升级时我们只要重新…

如何学习Doris:糙快猛的大数据之路(从入门到专家)

引言:大数据世界的新玩家 还记得我第一次听说"Doris"这个名字时的情景吗?那是在一个炎热的夏日午后,我正在办公室里为接下来的大数据项目发愁。作为一个刚刚跨行到大数据领域的新手,我感觉自己就像是被丢进了深海的小鱼—周围全是陌生的概念和技术。 就在这时,我的…

C#初级——枚举

枚举 枚举是一组命名整型常量。 enum 枚举名字 { 常量1, 常量2, …… 常量n }; 枚举的常量是由 , 分隔的列表。并且,在这个整型常量列表中,通常默认第一位枚举符号的值为0,此后的枚举符号的值都比前一位大1。 在将枚举赋值给 int 类型的…

2024.7.26(shell脚本)

一、shell基础 1、shell 概念 shell英文翻译过来是外壳的意思,作为计算机语言来理解可以认为它是操作系统的外壳。可以通过shell命令来操作和控制操作系统,比如Linux中的shell命令就包括Is、cd、pwd等等。 shell 在内核的基础上编写的一个应用程序,它连接了用户和Linux内核,从…

GPT-4o mini:AI技术的平民化革命

目录 引言一、GPT-4o mini简介二、性能表现三、技术特点四、价格与市场定位五、应用场景六、安全性与可靠性七、未来展望八、代码示例结语 引言 在人工智能的浪潮中,大模型技术一直是研究和应用的热点。然而,高昂的成本和复杂的部署常常让许多企业和开发…

03。正式拿捏ArkTS语言第一天

1, 打印日志命令 : console.log() 2, 三种基本数据类型: number 数字类型 (数字) string 字符串类型(例如:“我是字符串”) boolean 布尔类型 (true 或者 false) ***…

利用 ARP 欺骗,截获任意主机之间网络流量

ARP 欺骗实现原理: 通过伪造(未经请求)ARP 应答,从而改变受害端主机 ARP 表中的 IP-MAC 映射关系,将来自 LAN 上的受害端主机的数据包重定向到 LAN 上的另一台主机(攻击端,arpspoof 运行端&…

Idea 编译项目报错 java: java.lang.OutOfMemoryError:GC overhead limit exceeded

报错 java: java.lang.OutOfMemoryError: WrappedJavaFileObject[org.jetbrains.jps.javac.InputFileObjectpos13979: GC overhead limit exceeded解决 默认是700M,有的时候项目引入的依赖包比较大,可能超过了700M,需要扩大,根据实际情况设…

C++ 数字和数组解析

文章目录 1. 定义数字 2. 数学运算 3. 随机数 4. 数组 声明数组 初始化数组 5. 访问数组元素 6. 数组类型 7. 多维数组 二维数组 初始化二维数组 访问二维数组元素 8. 指向数组的指针 9. 传递数组给函数 10. 从函数返回数组 1. 定义数字 通常,当需要…

Unity UGUI 之 Mask

本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 本文在发布时间选用unity 2022.3.8稳定版本,请注意分别 1.什么是遮罩 遮罩是一…

基于springboot+vue+uniapp的养老院系统小程序

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

SSM电子商务系统-计算机毕业设计源码68470

基于SSM框架的电子商务系统的设计与实现 摘 要 随着电子商务的迅猛发展和计算机信息技术的全面跃升,网上购物系统由于其迎合了人们诉求和期望而渗入社会生活各个层面和角落。本文设计并实现了一个基于SSM框架的电子商务系统。该系统旨在为用户提供一个舒适且快捷的…