PP-OCRv3优化策略详细解读

导 读
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://github.com/paddlepaddle/paddleocr
下面我们就对上述升级依次进行说明:
01 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:无标注数据挖掘方案
优化策略解读详见第六节。
02 ppocrlabelv2多项重磅更新
ppocrlabel是首款开源的ocr半自动数据标注工具,大幅减少开发者标注ocr数据的时间。2021年,项目获得wave summit 2021优秀开源项目奖、启智社区优秀项目奖。经过一年的更新迭代,ppocrlabel结合产业实际落地需求,正式发布ppocrlabelv2,更新内容如下:
●新增标注类型:表格标注、关键信息标注、不规则文字图像的标注(印章、弯曲文本等)
●新增功能:锁定框、图像旋转、数据集划分、批量处理等
●易用性提升:新增whl包安装、以及优化多处标注体验
表格标注动图、kie标注动图(横向拉动)
03 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模型的训练部署需求。
04 《动手学ocr》电子书
《动手学ocr》是paddleocr团队携手华中科技大学博导/教授,iapr fellow 白翔、复旦大学青年研究员陈智能、中国移动研究院视觉领域资深专家黄文辉等产学研同仁,以及ocr开发者共同打造的结合ocr前沿理论与代码实践的教材。主要特色如下:
●覆盖从文本检测识别到文档分析的ocr全栈技术
●紧密结合理论实践,跨越代码实现鸿沟,并配套教学视频
●notebook交互式学习,灵活修改代码,即刻获得结果
06 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加速。
01
lk-pan:大感受野的pan结构
lk-pan (large kernel pan) 是一个具有更大感受野的轻量级pan结构,核心是将pan结构的path augmentation中卷积核从3*3改为9*9。通过增大卷积核,提升特征图每个位置覆盖的感受野,更容易检测大字体的文字以及极端长宽比的文字。使用lk-pan结构,可以将教师模型的hmean从83.2%提升到85.0%。
02
dml:教师模型互学习策略
dml 互学习蒸馏方法,通过两个结构相同的模型互相学习,可以有效提升文本检测模型的精度。教师模型采用dml策略, hmean从85%提升到86%。将pp-ocrv2中cml的教师模型更新为上述更高精度的教师模型,学生模型的hmean可以进一步从83.2%提升到84.3%。
03
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加速。
01
svtr_lcnet:轻量级文本识别网络
svtr_lcnet是针对文本识别任务,将transformer网络和轻量级cnn网络pp-lcnet 融合的一种轻量级文本识别网络。使用该网络,并且将输入图片规范化高度从32提升到48,预测速度可比情况下,识别准确率达到73.98%,接近pp-ocrv2采用蒸馏策略的识别模型效果。
02
gtc:attention指导ctc训练策略
gtc(guided training of ctc),利用attention指导ctc训练,融合多种文本特征的表达,是一种有效的提升文本识别的策略。使用该策略,识别模型的准确率进一步提升到75.8%(+1.82%)。
03
textconaug:挖掘文字上下文信息的数据增广策略
textconaug是一种挖掘文字上下文信息的数据增广策略,可以丰富训练数据上下文信息,提升训练数据多样性。使用该策略,识别模型的准确率进一步提升到76.3%(+0.5%)。
04
textrotnet:自监督的预训练模型
textrotnet是使用大量无标注的文本行数据,通过自监督方式训练的预训练模型。该模型可以初始化svtr_lcnet的初始权重,从而帮助文本识别模型收敛到更佳位置。使用该策略,识别模型的准确率进一步提升到76.9%(+0.6%)。
05
联合互学习策略
udml(unified-deep mutual learning)联合互学习是pp-ocrv2中就采用的对于文本识别非常有效的提升模型效果的策略。在pp-ocrv3中,针对两个不同的svtr_lcnet和attention结构,对他们之间的pp-lcnet的特征图、svtr模块的输出和attention模块的输出同时进行监督训练。使用该策略,识别模型的准确率进一步提升到78.4%(+1.5%)。
06
无标注数据挖掘方案
uim(unlabeled images mining)是一种非常简单的无标注数据挖掘方案。核心思想是利用高精度的文本识别大模型对无标注数据进行预测,获取伪标签,并且选择预测置信度高的样本作为训练数据,用于训练小模型。使用该策略,识别模型的准确率进一步提升到79.4%(+1%)。
经过上述文本检测和文本识别9个方面的优化,最终pp-ocrv3在速度可比情况下,在中文场景端到端hmean指标相比于pp-ocrv2提升5%,效果大幅提升。具体指标如下表所示:
在英文数字场景,基于pp-ocrv3单独训练的英文数字模型,相比于pp-ocrv2的英文数字模型提升11%,如下表所示。
在多语言场景,基于pp-ocrv3训练的模型,在有评估集的四种语系,相比于pp-ocrv2,识别准确率平均提升5%以上,如下表所示。同时,paddleocr团队基于pp-ocrv3更新了已支持的80余种语言识别模型。


iPhone8遇冷!iPhoneX将10月27日开售,苹果能否重回辉煌?
欧美市场仍占主流,日本供应商加速抢滩阿里国际站
目前市面上空气净化器都用什么样的传感器
小米VR眼镜正式版开箱评测
基于AHDL语言和CPLD技术实现PCI总线板卡的设计开发
PP-OCRv3优化策略详细解读
魅族POP Pro耳机充电盒外观设计专利图曝光
紫光西部数据荣膺2019 IDC软件定义存储创新者
AX58100 EtherCAT的应用优势
AF-GSM数据网关采集器的功能
贴片电阻有什么特性?贴片电阻的命名方法
最强小米路由器诞生!搭载 MIPS 双核处理器
一种新型的ZCS PWM半桥变换器
SM5623系列超低功耗0.7uA稳压芯片,替代ME6214系列
OpenHarmony中软件模块的单链表实现
如何制作Gopro夜视仪
pt2262数据码与编码格式
工厂机器人自动化软件的特点是怎样的
电力微气象多要素监测预警装置的特点是什么
I2C总线的特点及工作原理解析