Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

机器之心编辑部发布

王炸:这个GitHub 20000+ Star的OCR项目迎来四大重磅升级

PaddleOCR 可称得上 OCR 方向目前最火的 repo。

OCR 方向的工程师,之前一定听说过 PaddleOCR 这个项目,累计 Star 数量已超过 20000+,频频登上 GitHub Trending 和 Paperswithcode 日榜月榜第一,在 Medium 与 Papers with Code 联合评选的《Top Trending Libraries of 2021》,从百万量级项目中脱颖而出,荣登 Top10!在《2021 中国开源年度报告》中被评为活跃度 Top5!称它为 OCR 方向目前最火的 repo 绝对不为过。

PaddleOCR 影响力。

PP-OCRv3 效果。

本次 PaddleOCR 最新发版,带来四大重磅升级,包括如下:
  • 发布超轻量 OCR 系统 PP-OCRv3:中英文、纯英文以及多语言场景精度再提升 5% - 11%!

  • 发布半自动标注工具 PPOCRLabelv2:新增表格文字图像、图像关键信息抽取任务和不规则文字图像的标注功能。

  • 发布 OCR 产业落地工具集:打通 22 种训练部署软硬件环境与方式,覆盖企业 90% 的训练部署环境需求。

  • 发布业界首个交互式OCR开源电子书《动手学OCR》,覆盖OCR全栈技术的前沿理论与代码实践,并配套教学视频。

官网地址:https://www.paddlepaddle.org.cn

Gitee: https://gitee.com/paddlepaddle/PaddleOCR

GitHub:https://github.com/PaddlePaddle/PaddleOCR

下面我们就对上述升级依次进行说明:

一、PP-OCRv3 优化策略详细解读

PP-OCR 是 PaddleOCR 团队自研的超轻量 OCR 系统,面向 OCR 产业应用,权衡精度与速度。近期,PaddleOCR 团队针对 PP-OCRv2 的检测模块和识别模块,进行共计 9 个方面的升级,打造出一款全新的、效果更优的超轻量 OCR 系统:PP-OCRv3。

从效果上看,速度可比情况下,多种场景精度均有大幅提升:
  1. 中文场景,相比 PP-OCRv2,中文模型提升超 5%;

  2. 英文数字场景,相比 PP-OCRv2,英文数字模型提升 11%;

  3. 多语言场景,优化 80 + 语种识别效果,平均准确率提升超 5%。

全新升级的 PP-OCRv3 的整体框架图(粉色框中为 PP-OCRv3 新增策略)如下图。检测模块仍基于 DB 算法优化;而识别模块不再采用 CRNN,更新为 IJCAI 2022 最新收录的文本识别算法 SVTR (论文名称:SVTR: Scene Text Recognition with a Single Visual Model),并对其进行产业适配。
具体的优化策略包括:

1. 检测模块

  • LK-PAN:大感受野的 PAN 结构

  • DML:教师模型互学习策略

  • RSE-FPN:残差注意力机制的 FPN 结构

2. 识别模块

  • SVTR_LCNet:轻量级文本识别网络

  • GTC:Attention 指导 CTC 训练策略

  • TextConAug:挖掘文字上下文信息的数据增广策略

  • TextRotNet:自监督的预训练模型

  • UDML:联合互学习策略

  • UIM:无标注数据挖掘方案

优化策略解读详见 “第六节:PP-OCRv3 优化策略详解”。

二、PPOCRLabelv2 多项重磅更新

PPOCRLabel 是首款开源的 OCR 半自动数据标注工具,大幅减少开发者标注 OCR 数据的时间。2021 年,项目获得 Wave Summit 2021 优秀开源项目奖、启智社区优秀项目奖。经过一年的更新迭代,PPOCRLabel 结合产业实际落地需求,正式发布 PPOCRLabelv2,更新内容如下:
  • 新增标注类型:表格标注、关键信息标注、不规则文字图像的标注(印章、弯曲文本等)

  • 新增功能:锁定框、图像旋转、数据集划分、批量处理等

  • 易用性提升:新增 whl 包安装、以及优化多处标注体验

从上到下依次为表格标注、KIE 标注、不规则文字图像的标注以及图像旋转、批处理、撤销。

三、OCR 产业落地工具集

考虑到真实产业应用面对的各种软硬件环境和不同的场景需求,基于飞桨训推一体的功能完备,本次升级发布 OCR 产业落地工具集,打通 22 种训练部署软硬件环境与方式,包括 3 种训练方式、6 种训练环境、3 种模型压缩策略和 10 种推理部署方式,如下表所示:
其中特色能力如下:

1. 分布式训练:飞桨分布式训练架构具备 4D 混合并行、端到端自适应分布式训练等多项特色技术。在 PP-OCRv3 识别模型训练中,4 机加速比达到 3.52 倍,精度几乎无损。

2. 模型压缩:飞桨模型压缩工具 PaddleSlim 功能完备,覆盖模型裁剪、量化、蒸馏和 NAS。PP-OCR 模型经过裁剪量化后,模型大小从 8.1M 压缩至 3.5M,移动端平均预测耗时减少 36%。

3. 服务化部署:飞桨服务化部署引擎 Paddle Serving,提供性能优越、功能可靠的模型即服务能力。针对 PP-OCR 模型的服务化部署,采用全异步的 Pipeline Serving,可将吞吐量提升 2 倍以上。

4. 移动端 / 边缘端部署:飞桨轻量化推理引擎 Paddle Lite 适配了 20+ AI 加速芯片,可以快速实现 OCR 模型在移动设备、嵌入式设备和 IOT 设备等高效设备的部署。

5. 云上飞桨:面向飞桨框架及其模型套件的部署工具箱,支持 Docker 化部署和 Kubernetes 集群部署两种方式,满足不同场景与环境下 OCR 模型的训练部署需求。

除了以上三项重大升级外,此次发布的开源电子书《动手学 OCR》由 PaddleOCR 团队、复旦大学青年研究员陈智能、中国移动研究院视觉领域资深专家黄文辉以及广大 OCR 开发者共同打造,覆盖了从文本检测识别到文档分析的 OCR 全栈技术。

四、PP-OCRv3 优化策略详解

1. 检测模块优化策略

PP-OCRv3 检测模块对 PP-OCRv2 中的 CML(Collaborative Mutual Learning) 协同互学习文本检测蒸馏策略进行了升级。如下图所示,CML 的核心思想结合了①传统的 Teacher 指导 Student 的标准蒸馏与 ②Students 网络之间的 DML 互学习,可以让 Students 网络互学习的同时,Teacher 网络予以指导。

PP-OCRv3 分别针对教师模型和学生模型进行进一步效果优化。其中,在对教师模型优化时,提出了大感受野的 PAN 结构 LK-PAN 和引入了 DML(Deep Mutual Learning)蒸馏策略;在对学生模型优化时,提出了残差注意力机制的 FPN 结构 RSE-FPN。消融实验如下表所示。

测试环境:Intel Gold 6148 CPU,预测时开启 MKLDNN 加速。

(1)LK-PAN:大感受野的 PAN 结构

LK-PAN (Large Kernel PAN) 是一个具有更大感受野的轻量级 PAN 结构,核心是将 PAN 结构的 path augmentation 中卷积核从 3*3 改为 9*9。通过增大卷积核,提升特征图每个位置覆盖的感受野,更容易检测大字体的文字以及极端长宽比的文字。使用 LK-PAN 结构,可以将教师模型的 hmean 从 83.2% 提升到 85.0%。

(2)DML:教师模型互学习策略

DML 互学习蒸馏方法,通过两个结构相同的模型互相学习,可以有效提升文本检测模型的精度。教师模型采用 DML 策略, hmean 从 85% 提升到 86%。将 PP-OCRv2 中 CML 的教师模型更新为上述更高精度的教师模型,学生模型的 hmean 可以进一步从 83.2% 提升到 84.3%。

(3)RSE-FPN:残差注意力机制的 FPN 结构

RSE-FPN(Residual Squeeze-and-Excitation FPN)引入残差结构和通道注意力结构,将 FPN 中的卷积层更换为带有残差结构的通道注意力结构的 RSEConv 层,进一步提升特征图的表征能力。进一步将 PP-OCRv2 中 CML 的学生模型的 FPN 结构更新为 RSE-FPN,学生模型的 hmean 可以进一步从 84.3% 提升到 85.4%。

2. 识别模块优化策略

PP-OCRv3 的识别模块是基于文本识别算法 SVTR 优化。SVTR 不再采用 RNN 结构,通过引入 Transformers 结构更加有效地挖掘文本行图像的上下文信息,从而提升文本识别能力。直接将 PP-OCRv2 的识别模型,替换成 SVTR_Tiny,识别准确率从 74.8% 提升到 80.1%(+5.3%),但是预测速度慢了将近 11 倍,CPU 上预测一条文本行,将近 100ms。

因此,如下图所示,PP-OCRv3 采用如下 6 个优化策略进行识别模型加速,消融实验如下表所示。
注:测试速度时,实验 01-03 输入图片尺寸均为 (3,32,320),04-08 输入图片尺寸均为 (3,48,320)。在实际预测时,图像为变长输入,速度会有所变化。测试环境:Intel Gold 6148 CPU,预测时开启 MKLDNN 加速。
(1)SVTR_LCNet:轻量级文本识别网络

SVTR_LCNet 是针对文本识别任务,将 Transformer 网络和轻量级 CNN 网络 PP-LCNet 融合的一种轻量级文本识别网络。使用该网络,并且将输入图片规范化高度从 32 提升到 48,预测速度可比情况下,识别准确率达到 73.98%,接近 PP-OCRv2 采用蒸馏策略的识别模型效果。

(2)GTC:Attention 指导 CTC 训练策略

GTC(Guided Training of CTC),利用 Attention 指导 CTC 训练,融合多种文本特征的表达,是一种有效的提升文本识别的策略。使用该策略,识别模型的准确率进一步提升到 75.8%(+1.82%)。

(3)TextConAug:挖掘文字上下文信息的数据增广策略

TextConAug 是一种挖掘文字上下文信息的数据增广策略,可以丰富训练数据上下文信息,提升训练数据多样性。使用该策略,识别模型的准确率进一步提升到 76.3%(+0.5%)。

(4)TextRotNet:自监督的预训练模型

TextRotNet 是使用大量无标注的文本行数据,通过自监督方式训练的预训练模型。该模型可以初始化 SVTR_LCNet 的初始权重,从而帮助文本识别模型收敛到更佳位置。使用该策略,识别模型的准确率进一步提升到 76.9%(+0.6%)。

(5)UDML:联合互学习策略

UDML(Unified-Deep Mutual Learning)联合互学习是 PP-OCRv2 中就采用的对于文本识别非常有效的提升模型效果的策略。在 PP-OCRv3 中,针对两个不同的 SVTR_LCNet 和 Attention 结构,对他们之间的 PP-LCNet 的特征图、SVTR 模块的输出和 Attention 模块的输出同时进行监督训练。使用该策略,识别模型的准确率进一步提升到 78.4%(+1.5%)。

(6)UIM:无标注数据挖掘方案

UIM(Unlabeled Images Mining)是一种非常简单的无标注数据挖掘方案。核心思想是利用高精度的文本识别大模型对无标注数据进行预测,获取伪标签,并且选择预测置信度高的样本作为训练数据,用于训练小模型。使用该策略,识别模型的准确率进一步提升到 79.4%(+1%)。

3. 整体效果对比

经过上述文本检测和文本识别 9 个方面的优化,最终 PP-OCRv3 在速度可比情况下,在中文场景端到端 Hmean 指标相比于 PP-OCRv2 提升 5%,效果大幅提升。具体指标如下表所示:
在英文数字场景,基于 PP-OCRv3 单独训练的英文数字模型,相比于 PP-OCRv2 的英文数字模型提升 11%,如下表所示。
在多语言场景,基于 PP-OCRv3 训练的模型,在有评估集的四种语系,相比于 PP-OCRv2,识别准确率平均提升 5% 以上,如下表所示。同时,PaddleOCR 团队基于 PP-OCRv3 更新了已支持的 80 余种语言识别模型。

理论PaddleOCR
相关数据
复旦大学机构

复旦大学(Fudan University),简称“复旦”,位于中国上海,由中华人民共和国教育部直属,中央直管副部级建制,国家双一流(A类)、985工程、211工程建设高校,入选珠峰计划、111计划、2011计划、卓越医生教育培养计划、卓越法律人才教育培养计划、国家建设高水平大学公派研究生项目,九校联盟(C9)、中国大学校长联谊会、东亚研究型大学协会、环太平洋大学协会的重要成员,是一所世界知名、国内顶尖的全国重点大学。

相关技术
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

数据挖掘技术

数据挖掘(英语:data mining)是一个跨学科的计算机科学分支 它是用人工智能、机器学习、统计学和数据库的交叉方法在相對較大型的数据集中发现模式的计算过程。 数据挖掘过程的总体目标是从一个数据集中提取信息,并将其转换成可理解的结构,以进一步使用。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

规范化技术

规范化:将属性数据按比例缩放,使之落入一个小的特定区间,如-1.0 到1.0 或0.0 到1.0。 通过将属性数据按比例缩放,使之落入一个小的特定区间,如0.0到1.0,对属性规范化。对于距离度量分类算法,如涉及神经网络或诸如最临近分类和聚类的分类算法,规范化特别有用。如果使用神经网络后向传播算法进行分类挖掘,对于训练样本属性输入值规范化将有助于加快学习阶段的速度。对于基于距离的方法,规范化可以帮助防止具有较大初始值域的属性与具有较小初始值域的属相相比,权重过大。有许多数据规范化的方法,包括最小-最大规范化、z-score规范化和按小数定标规范化。

语言识别技术

在自然语言处理中,语言识别或语言猜测是确定给定内容所使用的自然语言的问题。针对该问题的计算方法被视为文本分类的特例,并用各种统计方法解决。

推理引擎技术

推理机是实施问题求解的核心执行机构,常见于专家系统。它是对知识进行解释的程序,根据知识的语义,对按一定策略找到的知识进行解释执行,并把结果记录到动态库的适当空间中去。

信息抽取技术

信息/数据抽取是指从非结构化或半结构化文档中提取结构化信息的技术。信息抽取有两部分:命名实体识别(目标是识别和分类真实世界里的知名实体)和关系提取(目标是提取实体之间的语义关系)。概率模型/分类器可以帮助实现这些任务。

模型优化技术

像卷积神经网络(CNN)这样的深度学习模型具有大量的参数;实际上,我们可以调用这些超参数,因为它们原本在模型中并没有被优化。你可以网格搜索这些超参数的最优值,但需要大量硬件计算和时间。改进模型的最佳方法之一是基于在你的领域进行过深入研究的专家的设计和体系结构,他们通常拥有强大的硬件可供使用。常见的简单模型优化技巧包括迁移学习、dropout、学习率调整等

感受野技术

一个感觉神经元的感受野是指这个位置里适当的刺激能够引起该神经元反应的区域。感受野一词主要是指听觉系统、本体感觉系统和视觉系统中神经元的一些性质。

量化技术

深度学习中的量化是指,用低位宽数字的神经网络近似使用了浮点数的神经网络的过程。

推荐文章
暂无评论
暂无评论~