- PP-OCR: A Practical Ultra Lightweight OCR System论文地址
- PP-OCRv2: Bag of Tricks for Ultra Lightweight OCR System论文地址
- PP-OCRv3: More Attempts for the Improvement of Ultra Lightweight OCR System论文地址
- PaddleOCR Github OCR工具库 43.5K个star
- PP-OCRv1由百度发表于
2020年9月
,截止2024年10月份,引用数是197。是PP-OCR系列的第一篇论文。 - PP-OCRv2由百度发表于
2021年9月
,截止2024年10月份,引用数是59。是PP-OCR系列的第二篇论文。 - PP-OCRv3由百度发表于
2022年6月
,截止2024年10月份,引用数是83。是PP-OCR系列的第三篇论文。 - PP-OCRv4由百度发表于
2023年9月
,截止2024年10月份,代码已发布,论文还没发布。
文章目录
1. PaddleOCR工具包
基于PaddlePaddle框架的优秀的多语言光学字符识别(OCR)工具包,就是从这篇论文起家的,这篇论文是第一个版本,截止2024年10月份,已经更新到PP-OCRv4了(v4代码已发布,论文还没出来)。下面是这个工具包的介绍:
-
Awesome multilingual OCR toolkits:
- 这指的是一个非常棒的、支持多种语言的OCR工具包。OCR技术用于将图片中的文字转换为机器可读的文本。
-
based on PaddlePaddle:
- 表示这个工具包是基于PaddlePaddle框架开发的。PaddlePaddle是由百度开发的一个开源深度学习平台。
-
practical ultra lightweight OCR system:
- 这个系统是实用的,并且非常轻量级,意味着它占用的资源很少,可以容易地部署在不同的环境中。
-
support 80+ languages recognition:
- 这个工具包能够支持80种以上的语言的文字识别功能。
-
provide data annotation and synthesis tools:
- 它提供了数据标注工具和合成工具,这有助于用户准备训练数据。
-
support training and deployment among server, mobile, embedded and IoT devices:
- 指的是这个工具包支持在服务器、移动设备、嵌入式系统以及物联网(IoT)设备上进行模型训练和部署。
2. 论文摘要
论文摘要描述了一个名为PP-OCR的超轻量级光学字符识别(OCR)系统的研究。下面逐步解释摘要的意思:
-
应用背景:
- OCR技术已经被广泛应用于多个场景中,如办公自动化(OA)系统、工厂自动化、在线教育、地图制作等。
-
存在挑战:
- 尽管如此,由于文本外观的多样性以及对计算效率的需求,OCR仍然是一个具有挑战性的任务。
-
研究贡献:
- 在本文中,研究人员提出了一种实用的超轻量级OCR系统,称为PP-OCR。
- 整个PP-OCR模型的大小仅为3.5M,用于识别6622个汉字;而识别63个字母数字符号时模型大小为2.8M。
-
实现方法:
- 研究人员介绍了一系列策略来增强模型能力或减少模型大小。
- 还提供了基于真实数据的消融实验结果。
-
数据集与模型:
- 发布了多个预训练模型用于中文和英文识别,包括使用97K张图像训练的文字检测器、使用600K张图像训练的方向分类器,以及使用17.9M张图像训练的文字识别器。
-
多语言支持:
- 提出的PP-OCR也在其他几种语言的文字识别任务上进行了验证,包括法语、韩语、日语和德语。
-
开源与代码共享:
- 所有上述提到的模型都是开源的,并且代码可以在GitHub仓库中找到,地址是https://github.com/PaddlePaddle/PaddleOCR。
3. 实验结果-Accuracy=0.65
3.1. 实验设置
3.1.1. 用什么数据集?
如表1所示,为了实现一个实用的OCR系统,我们构建了一个大规模的汉英识别数据集作为实验数据集。
对于text detection
,有97k张训练图像和500张验证图像。在训练图像中,有68K张图像是真实的场景图像,它们来自于一些公共数据集和百度图像搜索。使用的公共数据集包括LSVT(发布于2019)、RCTW-17(发布于2017)、MTWI 2018(发布于2018)、CASIA-10K(发布于2018)、SROIE(发布于2019)、MLT 2019(发布于2019)、BDI(发布于2011)、MSRA-TD500(发布于2012)和CCPD 2019(发布于2018)。百度图像搜索中的训练图像大多是文档文本图像。剩下的29K合成图像主要关注长文本、多方向文本和表格文本的场景。所有的验证图像都来自于真实的场景。
对于direction classification
,有600k的训练图像和310K验证图像。在训练图像中,有100K张图像是真实的场景图像,它们来自于公共数据集(LSVT,RCTW-17,MTWI 2018)。它们是水平的文本,是从修正和裁剪图像的Ground Truth得来的。剩下的500K合成图像主要集中在反向文本上。我们使用垂直字体来合成一些文本图像,然后水平地旋转它们。所有的验证图像都来自于真实的场景。
对于text recognition
,有17.9M的训练图像和18.7K的验证图像。在训练图像中,有190万张图像是真实的场景图像,它们来自于一些公共数据集和百度图像搜索。所使用的公共数据集包括LSVT、RCTW-17、MTWI 2018和CCPD 2019。剩下的16M合成图像主要关注不同背景、平移、旋转、透视变换、线干扰、噪声、垂直文本等场景。合成图像的语料库来自于真实的场景图像。所有的验证图像也都来自于真实的场景。
为了快速进行消融实验并选择合适的策略,我们从真实场景训练图像中选择4k个图像用于text detection,从真实场景训练图像中选择300k图像用于text recognition。
此外,我们还收集了300张不同真实应用场景的图像,以评估整个OCR系统,包括合同、车牌、工牌、火车票、测试表、表格、证书、街景图像、名片、数字仪表等。图3和图4显示了测试集的一些图像。
此外,为了验证PP-OCR对于其他语言的应用,我们还收集了一些用于字母数字符号识别、法语识别、韩语识别、日语识别和德语识别的语料库。然后合成带方向文本的图像以进行text recognition。一些用于字母数字符号识别的图像来自公共数据集,ST(发布于2016年)和SRN(发布于2020年)。表2显示了这些统计数据。由于用于text detection的MLT 2019包括了多语言图像,因此用于汉英识别的文本检测器也可以支持多语言文本检测。由于数据有限,我们还没有找到合适的数据来训练多语言的 direction classification。
用于text detection 和text recognition的数据合成工具从text_render(论文2018)中进行了修改。
3.1.2. 用什么训练参数?
我们使用Adam优化器对所有模型进行训练,并采用余弦学习率衰减作为学习率调度。不同任务的初始学习率、批处理大小和Epoch见表4。当我们得到训练好的模型时,可以使用FPGM修剪器和PACT的QAT模型进一步减小模型规模。FPGM修剪器和PACT量化的训练过程与之前相似。
在推理期间,我们使用HMean来评估text detector的性能。精度是评估direction classifier o或 text recognizer的性能的指标。F-score用于评估OCR系统的性能。为了计算F-score分数,一个正确的文本识别结果应该是准确的位置和相同的文本。G