add applications (#8700)
* Add 20 applications Add 20 applications * Update README Update READMEpull/8719/head
parent
7e7630eb67
commit
9a6ebb8682
|
@ -27,6 +27,7 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
|
|||
|
||||
## 📣 近期更新
|
||||
|
||||
- 📚**2022.12 发布[《OCR产业范例20讲》电子书](./applications/README.md)**,新增蒙古文、身份证、液晶屏缺陷等**7个场景应用范例**
|
||||
- 🔨**2022.11 新增实现[4种前沿算法](doc/doc_ch/algorithm_overview.md)**:文本检测 [DRRG](doc/doc_ch/algorithm_det_drrg.md), 文本识别 [RFL](doc/doc_ch/algorithm_rec_rfl.md), 文本超分[Text Telescope](doc/doc_ch/algorithm_sr_telescope.md),公式识别[CAN](doc/doc_ch/algorithm_rec_can.md)
|
||||
- **2022.10 优化[JS版PP-OCRv3模型](./deploy/paddlejs/README_ch.md)**:模型大小仅4.3M,预测速度提升8倍,配套web demo开箱即用
|
||||
- **💥 直播回放:PaddleOCR研发团队详解PP-StructureV2优化策略**。微信扫描[下方二维码](#开源社区),关注公众号并填写问卷后进入官方交流群,获取直播回放链接与20G重磅OCR学习大礼包(内含PDF转Word应用程序、10种垂类模型、《动手学OCR》电子书等)
|
||||
|
|
|
@ -1,29 +1,32 @@
|
|||
[English](README_en.md) | 简体中文
|
||||
|
||||
# 场景应用
|
||||
# OCR产业范例20讲
|
||||
|
||||
PaddleOCR场景应用覆盖通用,制造、金融、交通行业的主要OCR垂类应用,在PP-OCR、PP-Structure的通用能力基础之上,以notebook的形式展示利用场景数据微调、模型优化方法、数据增广等内容,为开发者快速落地OCR应用提供示范与启发。
|
||||
|
||||
- [教程文档](#1)
|
||||
- [通用](#11)
|
||||
- [制造](#12)
|
||||
- [金融](#13)
|
||||
- [交通](#14)
|
||||
基于在各类垂类场景中落地的经验,PaddleOCR联合**北京师范大学副教授柯永红、云南省能源投资集团财务有限公司智能化项目经理钟榆星、信雅达科技股份有限公司高级研发工程师张少华、郑州三晖电气股份有限公司工程师郭媛媛、福建中烟工业有限责任公司工程师顾茜、内蒙古阿尔泰电子信息技术有限公司CTO欧日乐克、安科私(北京)科技有限公司创始人柯双喜等产学研同仁共同开源《OCR产业范例20讲》电子书**,通过Notebook的形式系统展示OCR在产业界应用的具体场景的调优过程与落地经验。该书包含以下特点:
|
||||
|
||||
- [模型下载](#2)
|
||||
- 20例OCR在工业、金融、教育、交通等行业的关键场景应用范例;
|
||||
- 覆盖从问题抽象、数据处理、训练调优、部署应用的全流程AI落地环节,为开发者提供常见的OCR优化思路;
|
||||
- 每个范例配有交互式Notebook教程,通过代码展示获得实际结果,便于学习修改与二次开发;
|
||||
- GitHub和AI Studio上开源本书中涉及的范例内容和代码,方便开发者学习和使用。
|
||||
|
||||
<a name="1"></a>
|
||||
|
||||
## 教程文档
|
||||
|
||||
《OCR产业范例20讲》中包含如下教程。如需获取整合后的电子版,请参考[资料下载](#2)
|
||||
|
||||
<a name="11"></a>
|
||||
|
||||
### 通用
|
||||
|
||||
| 类别 | 亮点 | 模型下载 | 教程 | 示例图 |
|
||||
| ---------------------- | ------------------------------------------------------------ | -------------- | --------------------------------------- | ------------------------------------------------------------ |
|
||||
| 高精度中文识别模型SVTR | 比PP-OCRv3识别模型精度高3%,<br />可用于数据挖掘或对预测效率要求不高的场景。 | [模型下载](#2) | [中文](./高精度中文识别模型.md)/English | <img src="../doc/ppocr_v3/svtr_tiny.png" width=200> |
|
||||
| 手写体识别 | 新增字形支持 | [模型下载](#2) | [中文](./手写文字识别.md)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/7a8865b2836f42d382e7c3fdaedc4d307d797fa2bcd0466e9f8b7705efff5a7b" width = "200" height = "100" /> |
|
||||
| 类别 | 亮点 | 模型下载 | 教程 | 示例图 |
|
||||
| ---------------------- | ------------------------------------------------------------ | -------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
|
||||
| 高精度中文识别模型SVTR | 比PP-OCRv3识别模型精度高3%,<br />可用于数据挖掘或对预测效率要求不高的场景。 | [模型下载](#2) | [中文](./高精度中文识别模型.md)/English | <img src="../doc/ppocr_v3/svtr_tiny.png" width=200> |
|
||||
| 手写体识别 | 新增字形支持 | [模型下载](#2) | [中文](./手写文字识别.md)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/7a8865b2836f42d382e7c3fdaedc4d307d797fa2bcd0466e9f8b7705efff5a7b" width = "200" height = "100" /> |
|
||||
| 蒙文识别 | 新语种识别支持 | 即将开源 | [中文](./蒙古文书籍文字识别.md)/English | <img src="https://user-images.githubusercontent.com/50011306/206182391-431c2441-1d1d-4f25-931c-b0f663bf3285.png" width = "200" height = "100" /> |
|
||||
| 甲骨文识别 | 新语种识别支持 | [模型下载](#2) | [中文](https://aistudio.baidu.com/aistudio/projectdetail/5216041?contributionType=1)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/b973566a4897458cb4ed76ecbc8e4a838d68ac471a504c0daa57c17bc203c4e0" width = "200" height = "100" /> |
|
||||
|
||||
<a name="12"></a>
|
||||
|
||||
|
@ -35,21 +38,24 @@ PaddleOCR场景应用覆盖通用,制造、金融、交通行业的主要OCR
|
|||
| 液晶屏读数识别 | 检测模型蒸馏、Serving部署 | [模型下载](#2) | [中文](./液晶屏读数识别.md)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/901ab741cb46441ebec510b37e63b9d8d1b7c95f63cc4e5e8757f35179ae6373" width = "200" height = "100" /> |
|
||||
| 包装生产日期 | 点阵字符合成、过曝过暗文字识别 | [模型下载](#2) | [中文](./包装生产日期识别.md)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/d9e0533cc1df47ffa3bbe99de9e42639a3ebfa5bce834bafb1ca4574bf9db684" width = "200" height = "100" /> |
|
||||
| PCB文字识别 | 小尺寸文本检测与识别 | [模型下载](#2) | [中文](./PCB字符识别/PCB字符识别.md)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/95d8e95bf1ab476987f2519c0f8f0c60a0cdc2c444804ed6ab08f2f7ab054880" width = "200" height = "100" /> |
|
||||
| 电表识别 | 大分辨率图像检测调优 | [模型下载](#2) | | |
|
||||
| 液晶屏缺陷检测 | 非文字字符识别 | | | |
|
||||
| 电表识别 | 大分辨率图像检测调优 | [模型下载](#2) | [中文](https://aistudio.baidu.com/aistudio/projectdetail/5297312?forkThirdPart=1)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/9d4ebb5bf8544bbeabfacbfa539518c8e1ae68cbc3d74f67a3eb576ca94754a2" width = "200" height = "100" /> |
|
||||
| 液晶屏缺陷检测 | 非文字字符识别 | [模型下载](#2) | [中文](https://aistudio.baidu.com/aistudio/projectdetail/4268015)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/c06b363d7ddb4b22b80701258c0a18003c40bca1d64a472698ee1bf746198e3a" width = "200" height = "100" /> |
|
||||
|
||||
<a name="13"></a>
|
||||
|
||||
### 金融
|
||||
|
||||
| 类别 | 亮点 | 模型下载 | 教程 | 示例图 |
|
||||
| -------------- | ----------------------------- | -------------- | ----------------------------------------- | ------------------------------------------------------------ |
|
||||
| 表单VQA | 多模态通用表单结构化提取 | [模型下载](#2) | [中文](./多模态表单识别.md)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/a3b25766f3074d2facdf88d4a60fc76612f51992fd124cf5bd846b213130665b" width = "200" height = "200" /> |
|
||||
| 增值税发票 | 关键信息抽取,SER、RE任务训练 | [模型下载](#2) | [中文](./发票关键信息抽取.md)/English | <img src="https://user-images.githubusercontent.com/14270174/185393805-c67ff571-cf7e-4217-a4b0-8b396c4f22bb.jpg" width = "200" /> |
|
||||
| 印章检测与识别 | 端到端弯曲文本识别 | [模型下载](#2) | [中文](./印章弯曲文字识别.md)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/498119182f0a414ab86ae2de752fa31c9ddc3a74a76847049cc57884602cb269" width = "150" /> |
|
||||
| 通用卡证识别 | 通用结构化提取 | [模型下载](#2) | [中文](./快速构建卡证类OCR.md)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/981640e17d05487e961162f8576c9e11634ca157f79048d4bd9d3bc21722afe8" width = "300" /> |
|
||||
| 身份证识别 | 结构化提取、图像阴影 | | | |
|
||||
| 合同比对 | 密集文本检测、NLP关键信息抽取 | [模型下载](#2) | [中文](./扫描合同关键信息提取.md)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/54f3053e6e1b47a39b26e757006fe2c44910d60a3809422ab76c25396b92e69b" width = "300" /> |
|
||||
| 类别 | 亮点 | 模型下载 | 教程 | 示例图 |
|
||||
| ------------------ | --------------------------------- | -------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
|
||||
| 表单VQA | 多模态通用表单结构化提取 | [模型下载](#2) | [中文](./多模态表单识别.md)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/a3b25766f3074d2facdf88d4a60fc76612f51992fd124cf5bd846b213130665b" width = "200" height = "200" /> |
|
||||
| 增值税发票 | 关键信息抽取,SER、RE任务训练 | [模型下载](#2) | [中文](./发票关键信息抽取.md)/English | <img src="https://user-images.githubusercontent.com/14270174/185393805-c67ff571-cf7e-4217-a4b0-8b396c4f22bb.jpg" width = "200" /> |
|
||||
| 印章检测与识别 | 端到端弯曲文本识别 | [模型下载](#2) | [中文](./印章弯曲文字识别.md)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/498119182f0a414ab86ae2de752fa31c9ddc3a74a76847049cc57884602cb269" width = "150" /> |
|
||||
| 通用卡证识别 | 通用结构化提取 | [模型下载](#2) | [中文](./快速构建卡证类OCR.md)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/981640e17d05487e961162f8576c9e11634ca157f79048d4bd9d3bc21722afe8" width = "300" /> |
|
||||
| 银行电子回单 | 回单关键信息抽取 | --- | [中文](https://aistudio.baidu.com/aistudio/projectdetail/5267489?contributionType=1)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/1c935a1e468e4911aadd1e8e9c30ca15420dc85fe95d49ce85c3c38ffff75adb" width = "200" /> |
|
||||
| 身份证识别 | 结构化提取、图像阴影 | [模型下载](#2) | [中文](https://aistudio.baidu.com/aistudio/projectdetail/4255861?contributionType=1)/English | <img src='https://ai-studio-static-online.cdn.bcebos.com/4e2054032a9244a7a713e07e0dca00167685ecbc98ce484987e8c3c51208d08d' width='300'> |
|
||||
| 合同比对 | 文本检测参数调整、NLP关键信息抽取 | --- | [中文](./扫描合同关键信息提取.md)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/54f3053e6e1b47a39b26e757006fe2c44910d60a3809422ab76c25396b92e69b" width = "300" /> |
|
||||
| 研报识别与实体统计 | 密集文本检测、NLP实体识别 | [模型下载](#2) | [中文](https://aistudio.baidu.com/aistudio/projectdetail/2574084)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/0bec003acb6444a69d8e3368962ca07452e9db6520ff44ceb5480011bc736609" width = "300" /> |
|
||||
| 通用表格识别 | 表格数据生成 | --- | [中文](https://aistudio.baidu.com/aistudio/projectdetail/5099668?contributionType=1)/English | <img src="https://ai-studio-static-online.cdn.bcebos.com/da82ae8ef8fd479aaa38e1049eb3a681cf020dc108fa458eb3ec79da53b45fd1" width = "300" /> |
|
||||
|
||||
<a name="14"></a>
|
||||
|
||||
|
@ -63,16 +69,13 @@ PaddleOCR场景应用覆盖通用,制造、金融、交通行业的主要OCR
|
|||
|
||||
<a name="2"></a>
|
||||
|
||||
## 模型下载
|
||||
## 资料下载
|
||||
|
||||
如需下载上述场景中已经训练好的垂类模型,可以扫描下方二维码,关注公众号填写问卷后,加入PaddleOCR官方交流群获取20G OCR学习大礼包(内含《动手学OCR》电子书、课程回放视频、前沿论文等重磅资料)
|
||||
如需下载**《OCR产业范例20讲》和上述场景中已经训练好的垂类模型**,可以扫描下方二维码,关注公众号填写问卷后,加入PaddleOCR官方交流群获取20G OCR学习大礼包(内含《动手学OCR》电子书、课程回放视频、前沿论文等重磅资料)
|
||||
|
||||
<div align="center">
|
||||
<img src="https://ai-studio-static-online.cdn.bcebos.com/dd721099bd50478f9d5fb13d8dd00fad69c22d6848244fd3a1d3980d7fefc63e" width = "150" height = "150" />
|
||||
</div>
|
||||
|
||||
如果您是企业开发者且未在上述场景中找到合适的方案,可以填写[OCR应用合作调研问卷](https://paddle.wjx.cn/vj/QwF7GKw.aspx),免费与官方团队展开不同层次的合作,包括但不限于问题抽象、确定技术方案、项目答疑、共同研发等。如果您已经使用PaddleOCR落地项目,也可以填写此问卷,与飞桨平台共同宣传推广,提升企业技术品宣。期待您的提交!
|
||||
|
||||
<a href="https://trackgit.com">
|
||||
<img src="https://us-central1-trackgit-analytics.cloudfunctions.net/token/ping/l63cvzo0w09yxypc7ygl" alt="traffic" />
|
||||
</a>
|
||||
<a href="https://trackgit.com"><img src="https://us-central1-trackgit-analytics.cloudfunctions.net/token/ping/l63cvzo0w09yxypc7ygl" alt="traffic" /></a>
|
||||
|
|
|
@ -0,0 +1,268 @@
|
|||
# 蒙古文书籍文字识别
|
||||
|
||||
本范例将使用OCR技术实现蒙古文书籍文字识别检测和识别,通过本章您可以掌握:
|
||||
|
||||
- 蒙古文的基本知识
|
||||
- 如何制作蒙古文字典与合成数据
|
||||
- 如何进行识别模型微调
|
||||
|
||||
本范例由内蒙古阿尔泰电子信息技术有限公司CTO欧日乐克、苏日图、达布希腊图、歆琪乐与飞桨联合打造
|
||||
|
||||
## 背景介绍
|
||||
|
||||
蒙古文文字识别技术在蒙古文信息处理领域成为一个亟待解决的问题。但由于诸多主客观原因,产品化蒙古文文字识别技术上有一段距离。而书籍的数字化是其中一项重要的课题,但因为涉及相关技术较多,难度较高,在整体上解决蒙古文书籍文字识别技术还不成熟。
|
||||
|
||||

|
||||
|
||||
*基本概念
|
||||
```txt
|
||||
字:即字符,不同于汉字的字(Character)一字一形,并包含字意,蒙古文的字类似于英语的
|
||||
字母(Letter)是一种表音文字,但却拥有若干字形(Glyph),若干个字构成一个词。
|
||||
|
||||
名义字符:Unicode十大法则中规定,"Character is not Glyph"(字符不是字形)。
|
||||
于是像蒙古文一样有形态变化的文字就有了一个字形代表其他形态的字形。该字形被记录在
|
||||
Unicode基本表中并分配编码。如蒙古文 ᠠ([a]) 为 a 的独立形式,分配码位\u1820,
|
||||
记作uni1820.isol,代表所有词首uni1820.init、词中uni1820.medi和词尾1820.fina形式。
|
||||
|
||||
变形显现字符:除名义字符外的其他没有实际编码位置的字形。在蒙古文文本中看到的字符皆为通过
|
||||
Unicode Scripts Processor(简称USP)处理后显示出来的字符。
|
||||
|
||||
词:语言里最小的可以独立运用的单位,等同于英语的word,以空格分割的字符串。
|
||||
```
|
||||
|
||||
### 项目难点
|
||||
|
||||
- 1.蒙古文字符的复杂性
|
||||
|
||||
一形多字
|
||||
|
||||

|
||||
|
||||
多字一形
|
||||
|
||||

|
||||
|
||||
- 2.蒙古文排版方向(竖写、换行左->右)
|
||||
|
||||
书写方向与换行方向会影响识别后的排序以及文字方向。
|
||||
|
||||

|
||||
|
||||
- 3.蒙古文字宽、行宽的不一致性
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
- 4.字符中的部件难以区分(MVS、NNBSP点的处理,以及合体字形)
|
||||
|
||||
蒙古文中有一些有关形态变化的控制字符,其中最频繁出现的有 Mongolian Vowel Separator
|
||||
(MVS,\u180E),和 Narrow No-Break Space(NNBSP,\u202F)。该两个控制符正常
|
||||
情况下在文本中是透明的,比空格窄,不能换行。MVS用于连接词干与词尾a、e元音,NNBSP则
|
||||
用于连接词与词附加成分(可以理解成分写后缀)。MVS会引发双向形变,而NNBSP则会引发后位
|
||||
形变。
|
||||
|
||||
此外,蒙古文中有一些字形为另一个字形的组成部件,导致识别时不好对应结果。
|
||||
|
||||
|
||||
针对以上问题, 本例选用PP-OCRv3这一开源超轻量OCR系统进行蒙古文文本识别系统的开发。我们首先使用数据合成工具合成了250万数据,基于这部分数据进行训练,通过精准切除白色边缘,随机加入标点符号,调整评估集数据使识别精度提升至75.78%。效果如下:
|
||||
|
||||
| 策略 | 精度 %|
|
||||
| :--------------- | :-------- |
|
||||
| 合成数据训练 | 42.38|
|
||||
| 优化合成训练 | 75.78|
|
||||
|
||||
具体流程为:
|
||||
- 第一步,选取真实语料并校对,并把语料副本转换为非Unicode编码版本
|
||||
- 第二步,选择多种字体生成,按行生成,生成时建议使用非Unicode字体生成
|
||||
- 第三步,从真实的扫描文本图片中按行切割保存,并保证对每个图进行Unicode编码的标注
|
||||
评估集数据均采用真实图片样本。
|
||||
- 第四步,开始训练
|
||||
- 第五部,识别文字
|
||||
|
||||
评估集数据的质量对模型的训练效率也起到很大的作用。
|
||||
|
||||
## 快速体验
|
||||
### 环境搭建
|
||||
|
||||
本任务基于Aistudio完成, 具体环境如下:
|
||||
|
||||
- 操作系统: Linux
|
||||
- PaddlePaddle: 2.3
|
||||
- PaddleOCR: Release/2.5
|
||||
- text_renderer: master
|
||||
|
||||
下载PaddlleOCR代码并安装依赖库:
|
||||
```bash
|
||||
git clone -b dygraph https://gitee.com/paddlepaddle/PaddleOCR
|
||||
|
||||
# 安装依赖库
|
||||
cd PaddleOCR
|
||||
pip install -r PaddleOCR/requirements.txt
|
||||
```
|
||||
|
||||
### 模型推理
|
||||
将下载或训练完成的模型放置在`PaddleOCR/output`下, 然后使用如下命令即可快速进行模型推理
|
||||
```bash
|
||||
python tools/infer_rec.py -c configs/rec/PP-OCRv3/multi_language/Mongolian_PP-OCRv3_rec.yml \
|
||||
-o Global.pretrained_model=output/v3_Mongolian_mobile/best_accuracy \
|
||||
Global.infer_img=doc/imgs_words/
|
||||
```
|
||||
|
||||
<!-- #region -->
|
||||
## 数据准备
|
||||
|
||||
本项目从真实语料中生成250万张图片作为训练集。另外生成1万张图片作为验证集。
|
||||
|
||||
### 语料准备
|
||||
蒙古文由于编码原因生成图片时不能直接用 Unicode 字符串生成。蒙古文 Unicode 的本质是音码,伴随复杂的形态变化,如果没有对应的复杂文本处理程序则只能显示蒙古文的名义字符,而非变形显现字符。
|
||||
因此如果想生成蒙古文图片则需要: 1.调用Windows系统的 USP10.dll,2.用支持形码的字体生成。
|
||||
本项目使用了第二种方案,即使用形码的字体生成图片,并对应 Unicode 标签。
|
||||
|
||||
直接使用 Unicode 生成的情况(字符会分开并以名义字符显示):
|
||||
|
||||

|
||||
|
||||
$$\mbox{左列为Unicode生成图片,右列为Unicode文本}$$
|
||||
|
||||

|
||||
|
||||
$$\mbox{左列为Unicode文本,右列为形码生成图片}$$
|
||||
|
||||
生成图片时建议将字符串长度保持在5个词(平均30个字符),否则训练较为困难。
|
||||
|
||||
### 图片处理
|
||||
|
||||
部分训练图片示例如下:
|
||||
|
||||

|
||||
|
||||
为验证模型对实际图片的效果,验证图片采用了真实扫描图片。在扫描完整的页面后对
|
||||
|
||||
标签文件格式如下:
|
||||
|
||||
<img src='https://ai-studio-static-online.cdn.bcebos.com/c7d98953fba24ed28a8f4e189b9d7cf81babdacc3fc3465b9cb65d09691dd4c8' width='800'>
|
||||
|
||||
|
||||
|数据集类型|数量|
|
||||
|---|---|
|
||||
|训练集| 250万|
|
||||
|验证集| 1.1万|
|
||||
<!-- #endregion -->
|
||||
|
||||
<!-- #region -->
|
||||
数据文件结构如下:
|
||||
|
||||
```txt
|
||||
PaddleOCRv3
|
||||
├── train_data # 训练数据文件夹
|
||||
│ ├── texts
|
||||
│ │ ├── train1.txt # 生成的训练数据标签,与图片文档一一对应
|
||||
│ │ ├── train2.txt
|
||||
│ │ ├── train3.txt
|
||||
│ │ ├── train4.txt
|
||||
│ │ ├── train11.txt
|
||||
│ │ ├── train20.txt
|
||||
│ │ ├── train21.txt
|
||||
│ │ └── train22.txt
|
||||
│ ├── image1 # 生成的训练图片
|
||||
│ ├── image2
|
||||
│ ├── image3
|
||||
│ ├── image4
|
||||
│ ├── image11
|
||||
│ ├── image20
|
||||
│ ├── image21
|
||||
│ └── image22
|
||||
├── test_data # 验证数据文件夹
|
||||
│ ├── test_data.txt # 验证数据标签
|
||||
│ ├── 0 # 每个文件夹有34张图片
|
||||
│ ├── 1
|
||||
: :
|
||||
: :
|
||||
│ └── 409
|
||||
```
|
||||
### 制作字典
|
||||
|
||||
根据 Unicode 编码顺序制作一个包含所有蒙古文字符的文本字典,建议保存到./ppocr/utils/dict目录下面,并在yml文件中更改地址。
|
||||
|
||||
<img src='https://ai-studio-static-online.cdn.bcebos.com/825976d0134c4b94a07ca2c8249d8d53f6f5834453cd4fb093d9fa8bc644cd4f' width='200'>
|
||||
|
||||
|
||||
## 基于合成数据训练
|
||||
### 模型训练和评估
|
||||
|
||||
准备好合成数据后,我们可以使用以下命令训练数据:
|
||||
<!-- #endregion -->
|
||||
```bash
|
||||
cd ${PaddleOCR_root}
|
||||
python tools/train.py -c configs/rec/PP-OCRv3/multi_language/Mongolian_PP-OCRv3_rec.yml
|
||||
```
|
||||
如果想从断点继续训练:
|
||||
```bash
|
||||
cd ${PaddleOCR_root}
|
||||
python tools/train.py -c configs/rec/PP-OCRv3/multi_language/Mongolian_PP-OCRv3_rec.yml \
|
||||
-o Global.checkpoints=./output/v3_Mongolian_mobile/best_accuracy
|
||||
```
|
||||
可填各参数含义如下:
|
||||
|
||||
```txt
|
||||
-c: 指定使用的配置文件,Mongolian_PP-OCRv3_rec.yml对应于OCRv3识别模型。
|
||||
-o: 覆盖配置文件中参数
|
||||
Global.pretrained_model: 指定使用的预训练模型
|
||||
Global.checkpoints: 断点位置
|
||||
Global.epoch_num: 指定训练的epoch数
|
||||
Global.eval_batch_step: 间隔多少step做一次评估
|
||||
Train.dataset.data_dir: 训练数据集路径
|
||||
Train.dataset.label_file_list: 训练集文件列表
|
||||
Train.loader.batch_size_per_card: 训练单卡batch size
|
||||
Eval.dataset.data_dir: 评估数据集路径
|
||||
Eval.dataset.label_file_list: 评估数据集文件列表
|
||||
Eval.loader.batch_size_per_card: 评估单卡batch size
|
||||
```
|
||||
|
||||
### 模型推测
|
||||
训练好的模型推测如下:
|
||||
```bash
|
||||
python tools/infer_rec.py -c configs/rec/PP-OCRv3/multi_language/Mongolian_PP-OCRv3_rec.yml \
|
||||
-o Global.pretrained_model=output/v3_Mongolian_mobile/best_accuracy \
|
||||
Global.infer_img=doc/imgs_words/
|
||||
```
|
||||
## 用真实数据测试模型
|
||||
|
||||
训练完成后可以测试模型。可将测试图片指定到某文件夹:
|
||||
```shell
|
||||
PaddleOCRv3
|
||||
├── doc
|
||||
├── imgs_words
|
||||
│ ├── arabic
|
||||
│ ├── belarusian
|
||||
│ ├── bulgarian
|
||||
: :
|
||||
: :
|
||||
│ ├── mongolian # 在此放入真实蒙古文图片,一个图片一行
|
||||
│ └── uyghur
|
||||
```
|
||||
快速推测
|
||||
|
||||
```bash
|
||||
python tools/eval.py -c configs/rec/PP-OCRv3/multi_language/Mongolian_PP-OCRv3_rec.yml \
|
||||
-o Global.checkpoints=./output/v3_Mongolian_mobile/best_accuracy
|
||||
```
|
||||
推测结果将被记录在predicts_ppocrv3_Mongolian.txt文件中。
|
||||
|
||||
```shell
|
||||
PaddleOCRv3
|
||||
├── output
|
||||
│ ├── rec
|
||||
│ │ └── predicts_ppocrv3_Mongolian.txt
|
||||
│ └── v3_Mongolian_mobile
|
||||
```
|
||||
|
||||
部分结果:三列分别为推测结果、真实标签、图片
|
||||
|
||||

|
||||
|
||||
|
||||
## 总结
|
||||
|
||||
本例选用PP-OCRv3这一开源超轻量OCR系统进行蒙古文文本识别系统的开发。加入250万合成数据,在现有模型基础上进行微调,通过修正训练集,设定评估标准,最终将蒙古文识别精度从42%提升至75%。
|
Loading…
Reference in New Issue