2021SC@SDUSC

目录

一、前情回顾和背景介绍

1.1 PP-OCR文字识别策略回顾

1.2 PP-OCRv2的背景

1.3  PP-OCRv2的简介

二、PP-OCRv2策略介绍

2.1  新增策略简介

2.1.1  文本检测器新增策略

2.1.2  文本识别器新增策略

2.2  新增策略详解

2.2.1  文本检测器

2.2.2  文本识别器

三、PP-OCRv2的实验测试及结果

总结



一、前情回顾和背景介绍

1.1 PP-OCR文字识别策略回顾

策略的选用主要是用来增强模型能力和减少模型大小。下面是PP-OCR文字识别器所采用的九种策略:

  • 轻主干,选用采用 MobileNetV3 large x0.5 来权衡精度和效率;
  • 数据增强,BDA (Base Dataaugmented)和TIA (Luo et al. 2020);
  • 余弦学习率衰减,有效提高模型的文本识别能力;
  • 特征图辨析,适应多语言识别,进行向下采样 feature map的步幅修改;
  • 正则化参数,权值衰减避免过拟合;
  • 学习率预热,同样有效;
  • 轻头部,采用全连接层将序列特征编码为预测字符,减小模型大小;
  • 预训练模型,是在 ImageNet 这样的大数据集上训练的,可以达到更快的收敛和更好的精度;
  • PACT量化,略过 LSTM 层;

1.2 PP-OCRv2的背景

光学字符识别(0CR) 系统已广泛应用于各种应用场景。设计0CR系统仍然是一项具有挑战性的任务。

在之前的工作中,我们提出了一种实用的超轻量级OCR系统(PP-OCR)来平衡精度和效率。为了提高PP- OCR的准确性并保持高效率,在本文中将介绍,根据Paddle Paddle官方文档提出的一种更鲁棒的OCR系统,即PP -OCRv2。

PP -OCRv2引入了一系列技巧来训练更好的文本检测器和更好的文本识别器,其中包括协作互学习(CML)、 CopyPaste, 轻量级CPU 网络(PP-LCNet)、统一深度互学习(U-DML) 和增强CTCLoss 。
        在真实数据上的实验表明,在相同的推理成本下,PP-0CRv2的精度比PP-0CR 高7%。 它也可以与使用ResNet系列作为主干的PP-OCR 的服务器模型相媲美。上述所有模型都是开源的,代码可在GitHub 存储库PaddleOCR中找到。

1.3  PP-OCRv2的简介

OCR (Optical Character Recognition) ,如图1所示,经过近二十年来的深入研究,具有多种应用场景,如证件电子化、身份认证、数字金融系统、车牌识别等。在实际构建OCR系统时,不仅要考虑精度,还要考虑计算效率。

在之前,我们提出了-种实用的超轻量级0CR系统(PP-OCR) (Du et al. 2020) 来平衡精度和效率。它由文本检测、检测框校正和文本识别三部分组成。可微二值化(DB) (Liao et al. 2020a) 用于文本检测,CRNN (Shi, Bai, and Yao 2016) 用于文本识别。系统采用19种有效策略对模型进行优化和瘦身。为了提高PP-0CR的准确性并保持效率,在本文中,我们介绍一种更强大的OCR系统,即PP- -0CRv2。它引入了一系列技巧来训练更好的文本检测器和更好的文本识别器。图2说明了PP-0CRv2 的框架,大多数策略遵循PP-0CR,如绿框所示。这橙色框中的策略是PP- 0CRv2中的附加策略。

二、PP-OCRv2策略介绍

2.1  新增策略简介

2.1.1  文本检测器新增策略

在文本检测中,引入了协作互学习(CML) 和CopyPaste。CML.利用两个学生网络和一个教师网络来学习更强大的文本检测器。CopyPaste 是一种新颖的数据增强技巧,已被证明可有效提高对象检测和实例分割任务的性能(Ghiasi 等人,2021 年)。我们表明它也适用于文本检测任务。

2.1.2  文本识别器新增策略

在文本识别方面,引入了轻量级CPU网络(PP-LCNet)(Cui et al. 2021)、 Unified-Deep Mutual Learning (U-DML) 和CenterLoss。PP-LCNet是-种新设计的基于Intel CPU的轻量级主干网,它是从MobileNetV1 (Howard et al. 2017)修改而来的。U-DML利用两个学生网络来学习更准确的文本识别器。CenterLoss 的作用是放松相似人物的失误。我们进行了一系列消融实验来验证上述策略的有效性。此外,图2中灰色框中的策略被证明在PP-OCR 中是有效的。但这些都没有在本文中得到验证。将来,我们将采用它们来加快PP- OCRv2 - tiny中的推理速度。

2.2  新增策略详解

2.2.1  文本检测器

Col laborative Mutual Learning (CML)

        PP-OCRv2提出了CML方法(Zhang et al. 2017) 来解决文本检测蒸馏的问题。

蒸馏有两个问题: 1. 如果teacher model的准确率接近student model,一般蒸馏方法带来的改进是有限的。2.如果teacher model的结构和student model的结构有很大的不同,一般的蒸馏方法带来的改进也很有限。
        框架组成:是由多个分别命名为student model和teacher model的模型组成的超级网络,如图3所示。CML方法可以实现蒸馏后student model的准确率超过teacher model在文本检测中的准确率。
        流程简介:在CML中,两个student model使用DML.方法相互学习(Zhang et al. 2017)。同时,有一个teacher model来指导两个student model的学习。teacher model使用ResNet18 作为主干,student model使用规模为0. 5的MobinenetV3 大型模型作为主干。
        优化student model:CML旨在优化student model模型。teacher model的参数被冻结,只有student model以设计的损失进行训练。一般来说,student model的监督信息包含三个部分,包括groundtruth标签、另一个student model的后验熵和teacher model的输出。相应地,存在三个损失函数,包括groundtruth loss Ls时、student model的peer loss L和distill teacher model L的损失。

  • 地面实况损失,称为GTLoss, 是为了确保训练受到真实标签的监督。我们使用DB算法(Liao et al. 2020b)来训练子学生模型。因此,ground truth loss L是一个组合损失,由概率图lp的损失、二值图lb,的损失和阈值图lt的损失组成)遵循DB。GTLoss的公式如下,其中lp、lb和lt分别是二元交叉熵损失、Dice损失和L1损失。a、 β分别是默认值5和10的超参数。

  • 子学生模型参考DML 方法相互学习(Zhang et al.2017)。但与DML.不同的是,子学生模型在每次迭代中同时训练,以加快训练过程。KL散度用于计算学生模型之间的距离。学生模型之间的peer loss如下,

  • distill损失反映了教师模型对子学生模型的监督。教师模型可以为学生模型提供丰富的知识,这对于提高性能很重要。为了获得更好的知识,我们扩大了教师模型的响应概率图以增加对象区域。这个操作可以稍微提高教师模型的准确率。蒸馏损失如下,其中lp、lb和lt分别是二元交叉熵损失、Dice损失。y 是超参数默认为5。fm是核为矩阵[[1, 1], [1, 1]] 的扩张函数。

  • 最后,在训练PP- 0CR检测模型的CML方法中使用的损失函数如下:

CopyPaste

        CopyPaste是一种新颖的数据增强技巧,已被证明可有效提高对象检测和实例分割任务的性能(Ghiasi 等人,2021 年)。它可以合成文本实例来平衡训练集中正负样本的比例,这是传统的图像旋转、随机翻转和随机裁剪无法实现的。由于前景中的所有文本都是独立的,CopyPaste 将文本粘贴在随机选择的背景图像上而不会重叠。图4是CopyPaste的示例

2.2.2  文本识别器

Lightweight CPU Network (PP-LCNet)


        轻量级CPU网络(PP-LCNet) 为了在Intel CPU上获得更好的精度-速度权衡,我们设计了一个基于Intel CPU的轻量级主干网,在启用mkldnn 的情况下提供更快、更准确的OCR识别算法。整个网络的结构如图5所示。与MobileNetV3 相比,由于MobileNetV1的结构使得在Intel CPU上启用
MKLDNN时更容易优化推理速度,因此网络基于MobileNetV1 (Howard et al. 2017) ).为了让Mobi leNetV1有更强的特征提取能力,我们对其网络结构做了一些改动。改进策略将从以下四个方面进行说明。

  1. 更好的激活功能。为了增加Mobi leNetV1的拟合能力,我们替换了激活在原始ReLU的H-Swish网络中的函数,它可以带来准确度的显着提高,而推理时间仅略有增加。
  2. SE模块在适当的位置。SE (Hu, Shen, and Sun 2018)模块自提出以来已被大量网络使用。它是一种对网络通道进行加权以获得更好特征的好方法,被用于许多轻量级网络,例如MobileNetV3(Howard et al.2019)。但是,在Intel CPU上,SE模块增加了推理时间,因此我们无法将其用于整个网络。事实上,通过大量的实验,我们发现越靠近网络尾部,SE模块越有效。所以我们只需将SE模块添加到网络尾部附近的块中。这会导致更好的精度-速度平衡。SE模块中两层的激活函数分别是ReLU和H- Sigmoid。
  3. 更大的卷积核。卷积核的大小往往会影响网络的最终性能。在mixnet(Tan and Le 2019) 中,作者分析了不同大小的卷积核对网络性能的影响,最终在网络的同一层混合了不同大小的核。然而,这种混合会减慢模型的推理速度,因此我们尝试在推理时间增加尽可能少的情况下增加卷积核的大小。最后,我们将网络尾部卷积核的大小设置为5 5。
  4. GAP后更大尺寸的1xl 卷积层。在PPLCNet中,GAP后网络的输出维度很小,直接连接最终分类层会丢失特征的组合。为了赋予网络更强的拟合能力,我们将一个1280维大小的1x1 conv 连接到最终的GAP层,这将在不增加推理时间的情况下增加模型大小

通过这四项更改,模型在ImageNet上表现良好。

Unified-Deep Mutual Learning (U-DML)

统一深度互学习(U-DML) 深度互学习(Zhang et al.2017)是一种方法,其中两个student网络相互学习,知识提炼不需要具有预训练权重的更大的教师网络。

在DML 中,对于图像分类任务,损失函数包含两部分: (1) 学生网络和groundtruth之间的损失函数。(2) 学生网络输出软标签之间的Kullback-Leibler散度(KL-Div) 损失。
        Heo提出了OverHaul (Heo et al. 2019), 其中学生网络和教师网络之间的特征图距离用于蒸馏过程。对学生网络特征图进行变换以保持特征图对齐。为了避免太耗时的教师模型训练过程,在本文中,基于DML, 我们提出了U-DML, 其中特征图也在蒸馏过程中受到监督。图6显示了U-DML. 的框架,过程有两个网络:学生网络和教师网络。它们具有完全相同的网络结构,但具有不同的初始化权重。目标是对于相同的输入图像,两个网络可以得到相同的输出,不仅对于预测结
果,对于特征图也是如此。
        总损失函数由三部分组成:

  • CTC损失。由于这两个网络是从头开始训练的,因此可以使用CTC 损失来进行网络的收敛
  • DMIL 损失。预计两个网络的最终输出分布是相同的,因此需要DMIL. loss来 保证两个网络之间分布的一致性

  • 特征损失。两个网络的架构是一样的,所以他们的特征图应该是一样的,特征损失可以用来约束两个网络的中间特征图距离

  • 最后,U-DML 训练过程的总损失如下所示:


Enhanced CTCLoss

        中文识别任务中存在很多相似的字符。它们在外观上的差异非常小,经常被误认。在PP-
OCRv2中,我们设计了一个增强型CTCLosS, 它结合了原始CTCLoss和CenterLoss (Wen et al. 2016)在度量学习中的思想。做了一些改进,使其适用于序列识别任务。

增强型CTCLoss 定义如下:

其中,xt是时间戳t的特征。cy是 yt类的中心。由于CRNN (Shi、 Bai和Yao 2016) 算法中特征和标签之间的错位,我们没有xt的明确标签yto 我们采用贪心解码策略得到yt,W是CTC头的参数:

三、PP-OCRv2的实验测试及结果

下次补充,这次先讲这么多。


总结

本篇文章介绍的大多是策略实现理论知识。不太容易理解,下篇文章讲一下PP-OCRv2利用上述增强算法的效率测试结果,利用表格更加直观感受。另外稍带一下代码讲解。因为PP-OCRv2本体还是PP-OCR所以只讲一下PP-OCRv2在文本识别模型中使用的策略部分。

软件工程应用与实践(十):PP-OCRv2的简单介绍相关推荐

  1. <2021SC@SDUSC>博客(1)山东大学软件工程应用与实践-038号JPress小组课题介绍

    2021SC@SDUSC Jpress项目介绍 JPress,一个使用Java开发,类似WordPress的产品.天生融合微信生态系统,简单易上手.致力于为企业打造自主自属的营销平台,用技术助力企业营 ...

  2. 山东大学软件工程应用与实践——GMSSL开源库(四)——SM9数字签名算法及验证的源代码分析

    2021SC@SDUSC 目录 一.引言 二.密钥的生成数字签名与签名验证相关代码 1.判定函数 2.签名的初始化函数 3.签名执行函数 4.真正的签名函数 5.签名验证初始化函数 6.签名验证执行函 ...

  3. 软件工程应用与实践(15)——请求与响应

    2021SC@SDUSC 文章目录 一.概述 二.源码分析 2.1 响应 2.2 请求 三.总结 一.概述 在老年健康知识图谱系统中,后端与前端的交互是很重要的,在前端向后端发送请求的过程中,后端需要 ...

  4. WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍...

    WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式.正 ...

  5. 山东大学2019级软件工程应用与实践——基于人工智能的多肽药物分析问题(十二)

    2021SC@SDUSC 基于人工智能的多肽药物分析问题 主题:蛋白质预训练模型(6) 代码分析 Benchmark Section ProtTrans/Benchmark/ProtAlbert.ip ...

  6. 2021SC@SDUSC山东大学软件学院软件工程应用与实践--quark renderer代码分析 第十二篇 绘画系统分析(3):连线(line)

    2021SC@SDUSC 这是绘画系统的第三个大部分,连线,连线的内容包括最上层的链接线抽象类,和细分的直线,折线,贝塞尔曲线以及内外旋轮曲线五个部分. 首先是连接线抽象类. 连接线抽象类,需要成为连 ...

  7. 山东大学软件工程应用与实践——GMSSL开源库(十)——重要的大整数

    2021SC@SDUSC 文章标题 BIGNUM的结构 大整数的加减法(绝对值加减) 绝对值加减 带符号加减 大整数的乘法 经典乘法 递归和comba乘法 小结 无论是SM2.SM9等国密算法还是以R ...

  8. 山东大学2019级软件工程应用与实践——基于人工智能的多肽药物分析问题(七)

    2021SC@SDUSC 基于人工智能的多肽药物分析问题 主题:蛋白质预训练模型 学习论文: <ProtTrans: Towards Cracking the Language of Life' ...

  9. 山东大学软件工程应用与实践——GMSSL开源库(一) ——WINDOWS下GMSSL的安装与编译的超详细保姆级攻略

    2021SC@SDUSC GMSSL简介 GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法.SM2国密数字证书及基于SM2证书的SSL/TLS安全 ...

  10. 2021SC@SDUSC山东大学软件学院软件工程应用与实践--Ebiten代码分析 源码分析(三)

    2021SC@SDUSC 目录 一.概述 二.代码分析 1.Update() 2.Draw() 3.Layout() 一.概述 本文将介绍ebiten在RunGame函数中逐帧执行的Update()方 ...

最新文章

  1. 解决request中文乱码问题
  2. 淘宝网的技术发展史(三)——分布式时代
  3. 谁不在清了的飞鸽传书
  4. ORACLE监听问题
  5. linux开坑记--常用的3个命令
  6. 任正非回应“华为营收下降300亿美元”;今日头条澄清「通讯录不属于用户隐私」;Kotlin 1.3.40发布 | 极客头条...
  7. C-Sharp网络编程案例解析(Socket类的使用)
  8. 支付宝架构到底有多牛逼!原来是这样的,真的超乎想象~
  9. Cognos 10.2.1安装
  10. 读书笔记——晶体管电路设计
  11. 实用网址(永久更新中)
  12. 解决is exceeding the 65535 bytes limit问题
  13. Jquery(一)选择器
  14. python中pd series_pd.Series的基本操作
  15. ZONe Energy Programming Contest E - Sneaking (最短路)
  16. 00815 计算机基础,国开(山东)00815-计算机应用基础-模块1 windows 7 操作系统——客观题-辅导资料...
  17. (精华2020年6月9日更新)Angular实战篇 axio的封装
  18. 最新游戏陪玩语音聊天系统源码+视频搭建教程
  19. model_zoo里面有各种预训练模型
  20. Android 心形图片心形ImageView、带边框的的心形图片和圆形图片

热门文章

  1. [prolog 基础系列] Prolog 的使用以及 Knowledge Base
  2. 联通家庭宽带光猫DDNS设置
  3. 梨花众创 - PacketView工业控制协议分析系统 简介
  4. 接口请求 Provisional headers are shown
  5. 利用Google Drive將英文版的PDF翻译成中文版的PDF
  6. 正态分布的概率密度函数 python_多元正态分布概率密度函数的三维绘图
  7. 【一键安装+Docker】无视系统,十几个ROS版本任你选择
  8. python截图(长图和短图)方法封装
  9. 趋势病毒软件卸载攻略
  10. 《偷影子的人》书评分享:那份属于我的感动