0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PP-OCRv3优化策略详细解读

OpenCV学堂 来源:OpenCV学堂 作者:OpenCV学堂 2022-05-12 09:21 次阅读

导 读

OCR方向的工程师,之前一定听说过PaddleOCR这个项目,

累计Star数量已超过20000+,

频频登上GitHubTrending和Paperswithcode日榜月榜第一,

在Medium与Papers with Code 联合评选的《Top Trending Libraries of 2021》,从百万量级项目中脱颖而出,荣登Top10!

在《2021中国开源年度报告》中被评为活跃度Top5!

称它为OCR方向目前最火的repo绝对不为过。

50c8f90e-d101-11ec-bce3-dac502259ad0.gif

PaddleOCR影响力

50d8baba-d101-11ec-bce3-dac502259ad0.gif

PP-OCRv3效果

本次PaddleOCR最新发版,带来四大重磅升级,包括:

一、发布超轻量OCR系统PP-OCRv3:中英文、纯英文以及多语言场景精度再提升5% - 11%!

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

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

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

传送门:https://github.com/PaddlePaddle/PaddleOCR

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

01PP-OCRv3优化策略详细解读

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

从效果上看,速度可比情况下,多种场景精度均有大幅提升:

1.中文场景,相比于PP-OCRv2中文模型提升超5%;

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

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

5168759c-d101-11ec-bce3-dac502259ad0.png

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

519f2448-d101-11ec-bce3-dac502259ad0.png

具体的优化策略包括:

1.检测模块

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

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

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

2.识别模块

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

●GTC:Attention指导CTC训练策略

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

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

●UDML:联合互学习策略

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

优化策略解读详见第六节。

02PPOCRLabelv2多项重磅更新

PPOCRLabel是首款开源的OCR半自动数据标注工具,大幅减少开发者标注OCR数据的时间。2021年,项目获得Wave Summit 2021优秀开源项目奖、启智社区优秀项目奖。经过一年的更新迭代,PPOCRLabel结合产业实际落地需求,正式发布PPOCRLabelv2,更新内容如下:

●新增标注类型:表格标注、关键信息标注、不规则文字图像的标注(印章、弯曲文本等)

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

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

51b0f9d4-d101-11ec-bce3-dac502259ad0.gif

52145060-d101-11ec-bce3-dac502259ad0.gif

52759db6-d101-11ec-bce3-dac502259ad0.gif

52afbf78-d101-11ec-bce3-dac502259ad0.gif

表格标注动图、KIE标注动图(横向拉动)

03OCR产业落地工具集

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

53865196-d101-11ec-bce3-dac502259ad0.png

其中特色能力如下:

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交互式学习,灵活修改代码,即刻获得结果

540dfd76-d101-11ec-bce3-dac502259ad0.png

543ad3d2-d101-11ec-bce3-dac502259ad0.png

544772ae-d101-11ec-bce3-dac502259ad0.png

06PP-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。消融实验如下表所示。

55253350-d101-11ec-bce3-dac502259ad0.png

553462a8-d101-11ec-bce3-dac502259ad0.png

测试环境: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个优化策略进行识别模型加速,消融实验如下表所示。

5567bfae-d101-11ec-bce3-dac502259ad0.png

注:测试速度时,实验01-03输入图片尺寸均为(3,32,320),04-08输入图片尺寸均为(3,48,320)。在实际预测时,图像为变长输入,速度会有所变化。测试环境:Intel Gold 6148 CPU,预测时开启MKLDNN加速。

55b4f45e-d101-11ec-bce3-dac502259ad0.png

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%,效果大幅提升。具体指标如下表所示:

5612412c-d101-11ec-bce3-dac502259ad0.png

在英文数字场景,基于PP-OCRv3单独训练的英文数字模型,相比于PP-OCRv2的英文数字模型提升11%,如下表所示。

563cfe76-d101-11ec-bce3-dac502259ad0.png

在多语言场景,基于PP-OCRv3训练的模型,在有评估集的四种语系,相比于PP-OCRv2,识别准确率平均提升5%以上,如下表所示。同时,PaddleOCR团队基于PP-OCRv3更新了已支持的80余种语言识别模型。

5687fb92-d101-11ec-bce3-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2484

    浏览量

    46525
  • OCR
    OCR
    +关注

    关注

    0

    文章

    137

    浏览量

    16125

原文标题:GitHub star 20000+,这个项目价值百万

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    10.2 策略优化策略评估(3)#人工智能

    人工智能优化
    jf_49750429
    发布于 :2022年11月28日 09:34:30

    触摸屏知识及软件优化策略

    触摸屏知识及软件优化策略
    发表于 08-20 10:04

    用vivado HLS优化设计大规模矩阵相乘,求详细具体的优化策略

    , dataflow, memory partition在内的多种优化策略具体怎么在这段代码里摆放优化,以及输入输出矩阵的interface, resource设置。要详细具体的
    发表于 08-27 21:11

    【InTime试用体验】使用简易、策略选择精确度高的一款时序优化软件

    :每个子版本运行次数3)Maximum Runtime:每次运行最大消耗时间,超出该消耗时间,则终止该次运行2.选择Recipe运行优化 Strat Recipe进行时序优化,软件开始自动设置
    发表于 07-05 11:00

    Linux系统的性能优化策略

    近年来,世界上许多大软件公司纷纷推出各种Linux服务器系统及Linux下的应用软件。目前,Linux 已可以与各种传统的商业操作系统分庭抗礼,在服务器市场,占据了相当大的份额。本文分别从磁盘调优,文件系统,内存管理以及编译优化等方面来论述 Linux系统的优化调优
    发表于 07-16 06:23

    【免费直播】李增和大家一起学习S参数的相关知识及提取解读分析优化S参数的方法

    参数的优化和改进的策略与常用互联链路改善技巧。参与直播观众将获得哪些知识点:1、了解S参数的意义。2、熟悉S参数的应用场景及S参数中传输通道分析指标标准。3、掌握Sigrity PowerSI提取S参数
    发表于 11-28 16:33

    【免费直播】李增和大家一起学习S参数的相关知识及提取解读分析优化S参数的方法

    优化和改进的策略与常用互联链路改善技巧。参与直播观众将获得哪些知识点:1、了解S参数的意义。2、熟悉S参数的应用场景及S参数中传输通道分析指标标准。3、掌握Sigrity PowerSI提取S参数
    发表于 11-28 16:37

    【免费直播】李增和大家一起学习S参数的相关知识及提取解读分析优化S参数的方法

    优化和改进的策略与常用互联链路改善技巧。参与直播观众将获得哪些知识点:1、了解S参数的意义。2、熟悉S参数的应用场景及S参数中传输通道分析指标标准。3、掌握Sigrity PowerSI提取S参数
    发表于 11-29 11:31

    FPGA设计应用及优化策略有哪些?

    EDA技术具有什么特征?FPGA是什么原理?FPGA设计应用及优化策略基于VHDL的FPGA系统行为级设计
    发表于 04-15 06:33

    工程师解读从MIMO到波束赋形的详细教程

    工程师解读从MIMO到波束赋形的详细教程
    发表于 05-19 06:40

    如何用Arm虚拟硬件在Arm Cortex-M上部署PaddlePaddle

    文本检测算法称为DB,文本识别算法称为CRNN。如图 2 所示,PP-OCRv3 的整体流程类似于PP-OCRv2,但对检测模型和识别模型进行了一些进一步的优化。例如,文本识别模型引入
    发表于 09-02 14:48

    arm SoC平台部署PP-OCR v2显示安装404找不到是为什么?

    /fp32bmodel/ch_PP-OCRv2_det_fp32_b1b4.bmodel --det_batch_size 4】 出现OSError: Could not find library geos_c
    发表于 09-18 08:14

    时序分析的优化策略详细说明

    本文档的主要内容详细介绍的是FPGA的时序分析的优化策略详细说明。
    发表于 01-14 16:03 17次下载
    时序分析的<b class='flag-5'>优化</b><b class='flag-5'>策略</b><b class='flag-5'>详细</b>说明

    时序分析的优化策略详细说明

    本文档的主要内容详细介绍的是FPGA的时序分析的优化策略详细说明。
    发表于 01-14 16:03 19次下载
    时序分析的<b class='flag-5'>优化</b><b class='flag-5'>策略</b><b class='flag-5'>详细</b>说明

    插电式混合动力汽车的增程器控制策略解读

    研究了插电式混合动力汽车的增程器控制策略,包括定点发电控制策略和功率跟随控制策略,重点聚焦于功率跟随策略下的发电优化方法、定点发电
    发表于 06-28 16:00 573次阅读
    插电式混合动力汽车的增程器控制<b class='flag-5'>策略</b><b class='flag-5'>解读</b>