译者注:

我有逛豆瓣社区的习惯,因此不经意间会看到一些外文翻译成中文书的评价。“书是好书,翻译太臭”、“中文版别看”、“有能力尽量看原版”...在翻译PP-OCR的时候,我有认真校对每一句话,但难免有一些歧义在里头,比如 Ablation study of PACT quantization for text recognition. 可以有两种解读:

  1. PACT量化在文本识别上的消融研究
  2. 用于文本识别的PACT量化消融研究

其实按照语法第二种会更好一些,但是个人读起来第一种更加顺口,也不知道哪一种更适合读者的风格。我在尽量保证原始味道的情况下,对一些不好翻译的词和句调整了语义和语序,这一点在词上更为明显,希望大家能够理解。文中难免有一些词翻译的不准确,或者说他们的概念就不太好用一个词代替,我在文末(附录)里都写上了,如果没有写上,可能是我功力不够没有找到,还望读者能够批评指出~

论文地址:《PP-OCR: A Practical Ultra Lightweight OCR System》

PP-OCR: 一个实用的超轻量OCR系统

摘要

  光学字符识别系统已广泛应用于办公自动化、工厂自动化、在线教育、地图制作等多种应用场景。然而,由于文本呈现形式的多样性和对计算效率的要求,OCR仍然是一项具有挑战性的任务。在本文中,我们提出了一个实用的超轻量OCR系统,即PP-OCR。用于识别6622个汉字的PP-OCR整体模型尺寸只有3.5M,用于识别63个字母数字符号的模型尺寸只有2.8M。我们引入了一系列策略来提高模型的能力或减小模型的尺寸。并给出了相应的消融(原文:ablation)实验结果。同时发布了几个预先训练好的中英文识别模型,包括文本检测器(使用了97K张图像)、方向分类器(使用了600K张图像)和文本识别器(使用了17.9M张图像)。此外,提出的PP-OCR也在其他语言识别任务中得到验证,包括法语、韩语、日语和德语。上面提到的所有模型都是开源的,并且代码可以在GitHub仓库中获得,即 https://github.com/PaddlePaddle/PaddleOCR

1 简介

  光学字符识别(OCR)是一种针对图像中的文本进行自动识别的技术,如图 1 所示,它有着悠久的研究历史和广泛的应用场景,如文档电子化,身份认证,数字金融系统和车牌识别。此外,在工厂中,通过自动提取产品的文本信息,可以更方便地管理产品。学生的离线作业或试卷可以通过OCR系统电子化,使教师和学生之间的交流更加有效。OCR还可以用于标记街景图像的兴趣点(POI),提高地图的制作效率。丰富的应用场景赋予了OCR技术巨大的商业价值,同时也带来了许多挑战。


\[图1:所提出PP-OCR系统的一些识别结果
\]

  多种文本的外观 图像中的文本一般可分为两大类:场景文本和文档文本。场景文本是指自然场景中的文本,如图 3 所示,它们通常会因透视、缩放、弯曲、杂乱、字体、多语言、模糊、光照等因素而发生剧烈变化,而图 4 所示的文档文本在实际应用中更经常遇到。由字符密集性(原文:high density)和长文本引起的不同难题有待解决。另外,文档图像文本识别往往需要构造结果,这就引入了一项新的困难任务。

\[图3:一些包含场景文本的图像
\]
\[图4:一些包含文档文本的图像
\]

  计算效率 在实际应用中,需要处理的图像往往是海量的,这使得计算效率成为设计OCR系统的一个重要标准。考虑到代价,CPU比GPU更适合使用。特别的,OCR系统需要在许多场景中的嵌入式设备上运行,比如移动电话,这就需要考虑模型的大小。平衡模型的尺寸和性能是困难的,但有很大的价值。在本文中,我们提出了一个实用的超轻量级OCR系统,名为PP-OCR,该系统由文本检测、检测框校正和文本识别三部分组成,如图 2 所示。

\[图 2:所提出的PP-OCR框架。图中的模型大小是关于中英文字符识别的。对于字母
\]
\[数字符号识别,文本识别的模型大小仅为0.9M。其余部分都是同样的尺寸。
\]

  文本检测 文本检测的目的是定位图像中的文本区域。在PP-OCR中,我们使用可微二值化(DB) (Liao 等人 2020)作为基于简单分割网络的文本检测器。简单的DB后处理使得它非常高效。为了进一步提高其有效性和效率,我们采用了以下六种策略:轻主干(原文:light backbone)、轻头部(原文: light head)、去除SE模块、余弦学习率衰减、学习率预热、FPGM 裁剪。最后,文本检测器的模型尺寸减小到1.4M。

  检测框校正 在识别检测到的文本之前,需要将文本框转换为水平矩形框进行后续的文本识别。由于检测帧由4个点组成,易于通过几何变换实现。然而,矫正框可能会反转。因此,需要一个分类器来确定文本的方向。如果文本框被反转(原文:reverse),则需要进一步翻转(原文:flip)。训练文本方向分类器是一项简单的图像分类任务。我们采用以下四种策略来提高模型的能力和减小模型的尺寸:轻主干、数据增强、调整输入分辨率和PACT量化。最后,文本方向分类器的模型大小为500KB。

  文本识别 在PP-OCR中,我们使用CRNN (Shi, Bai and Yao 2016)作为文本识别器,它在文本识别中得到了广泛的应用。CRNN集成了特征提取和序列建模。该算法采用连接主义时间分类(CTC)损失避免预测与标签的不一致性。为了提高文本识别器的模型能力和减小模型尺寸,本文采用了以下9种策略:轻主干、数据增强、余弦学习率衰减、调整特征图分辨率、正则化参数、学习率预热、轻头部、预训练模型和PACT量化。最后,用于中英文识别的文本识别器的模型大小只有1.6M,用于字母数字符号识别的大小只有900KB。

  为了实现一个实用的OCR系统,我们构建了一个大规模的中英文识别数据集作为例子。具体来说,文本检测数据集有97K幅图像,方向分类数据集有600K幅图像,文本识别数据集有17.9M幅图像。我们选取少量数据快速进行消融实验,并选择合适的策略,在图 2 中做了大量的消融实验来展示不同策略的效果。此外,我们还验证了所提出的PP-OCR系统用于其他语言的识别,包括字母数字符号、法语、韩语、日语和德语。

  本文的其余部分组织如下。在第2节,我们提出一系列(原文:the bag of有误)模型增强或瘦身策略。第3节探讨实验结果,第4节得出结论。

2 增强或瘦身策略

2.1 文本检测

  本节将详细介绍用于增强文本检测器的模型能力或减小模型大小的六种策略。图 5 展示了文本检测器DB的架构。

\[图5:文本检测器DB的架构。这个数据来源于DB论文(Liao et al. 2020)。
\]
\[红色和灰色矩形分别表示文本检测器的主干和头部。
\]

  轻主干网络 主干的大小对文本检测器的模型大小有重要影响。因此,在构建超轻量化模型时,应该选择轻的主干。随着图像分类的发展, MobileNetV 1,MobileNetV2 ,MobileNetV3 和ShuffleNetV2系列是常用的轻主干。每个系列都有不同的规模。多亏 PaddleClas 提供了如图 6 所示的CPU推理时间和超过20种主干网络的准确率,我们发现当预测时间相同时,MobileNetV3可以达到更高的精度。在规模的选择上,我们依据经验采用 MobileNet V3_large_x0.5 来平衡精度和效率。值得一提的是,PaddleClas提供了多达24个系列的图像分类网络结构和训练配置,122个模型的预训练权重及其评价指标,如ResNet、ResNet-vd、SEResNeXt、Res2Net、Res2Net_vd、DPN、DenseNet、EfficientNet、Xception、HRNet等。

\[图6:ImageNet 1000分类的一些轻主干的性能,包括MobileNetV1, MobileNetV2
\]
\[MobileNetV3和ShuffleNetV2系列。在骁龙855上测试推理时间,批大小设为1。
\]

  轻头部 文本检测器的头部与目标检测中的FPN (Lin 等人 2017)架构类似,通过融合不同尺度的特征图,提高小文本区域检测的效果。为了方便地合并不同分辨率的特征图,通常使用1 x 1卷积来将特征图减少到相同数量的通道(我们简称为inner_channels)。

  概率图和阈值图由卷积融合的特征图生成,这些卷积融合特征图也与上述的inner_channels相关联。因此inner_channels对模型尺寸有很大的影响。当inner_channels从256减小到96时,模型尺寸从7M减小到4.1M,但精度只有略微下降。

  移除SE模块 SE是压缩-激励(原文:squeeze-and-excitation)(Hu, Shen, and Sun 2018)的缩写。如图 7 所示,SE明确地对通道之间的相互依赖进行建模,并自适应地重新校准通道上的特征响应。由于SE块可以显著提高视觉任务的准确率,MobileNetV3的搜索空间中包含了它们,并且在MobileNetV3架构中有许多SE模块。但是,当输入分辨率较大时,例如640×640,很难用SE块估计通道上的特征响应。精度的提高有限,但时间成本很高。当SE块从主干上移除时,模型大小从4.1M减小到2.5M,但准确率没有影响。

\[图7:SE模块架构。这张图片来自论文(Hu, Shen, and Sun 2018)。
\]

  余弦学习率衰减 学习率是控制学习速度的超参数。学习率越低,损失值的变化越慢。虽然使用低学习率可以确保你不会错过任何局部最小值,但这也意味着收敛速度很慢。在训练的早期,权值处于随机初始化状态,因此我们可以设置较大的学习率来更快的收敛。在训练的后期,由于权值接近于最优值,因此需要使用相对较小的学习率。余弦学习速率衰减已成为提升模型准确率的首选学习率衰减策略。在整个训练过程中,余弦学习速率衰减保持着较大的学习速率,因此其收敛速度较慢,但最终的收敛精度较好。图 8 比较了不同的学习速率衰减方式。

\[图8:不同学习率衰减方法的比较
\]

  学习率预热 (He 等人 2019a)的论文表明,使用学习率预热操作有助于提高图像分类的准确率。在训练过程的开始,使用过大的学习率可能会导致数值不稳定,建议使用较小的学习率。当训练过程稳定时,使用初始学习率。对于文本检测,实验表明该策略也是有效的。

  FPGM裁剪 裁剪是提高神经网络模型推理效率的另一种方法。为了避免模型裁剪导致的模型性能下降,我们使用FPGM (He 等人 2019b)在原始模型中查找不重要的子网络。FPGM采用几何中值作为判别准则,将卷积层中的每个滤波器视为欧几里得空间中的一个点,然后计算这些点的几何中值,并去除具有相似值的滤波器,如图 9 所示。每一层的压缩比对于模型裁剪也很重要,均匀地修剪每一层通常会导致显著的性能下降。在PP-OCR中,根据(Li 等人 2016)的方法计算各层的裁剪敏感性(原文:pruning sensitivity),然后用该方法评估各层的冗余。

\[图9:FPGM裁剪插图。这张图像来自论文(He 等人 2019b)。
\]

2.2 方向分类

  在本节中,我们将详细介绍四种提高方向分类器模型能力或减小模型尺寸的策略。

  轻主干 我们还采用与文本检测器相同的MobileNetV3作为方向分类器的主干。由于这个任务相对简单,我们依据经验使用MobileNetV3_small_x0.35来平衡准确性和效率。当使用较大的骨干,准确性不会提高更多。

  数据增强 (Yu 等人 2020)这篇论文展示了一些图像处理操作来训练一个文本识别器,如旋转、透视失真(原文:perspective distortion)、运动模糊和高斯噪声。这些过程简称为BDA(基础数据增强)。它们被随机地添加到训练图像中。实验表明,BDA也适用于方向分类器的训练。除了BDA之外,为了提高图像分类的效果,最近提出了一些新的数据增强操作,如自动增强(Cubuk 等人 2019)、随机增强(Cubuk 等人 2020)、剪贴(原文:CutOut)(DeVries and Taylor 2017)、随机擦除 (Zhong 等人 2020)、捉迷藏(原文:HideAndSeek)(Singh and Lee 2017)、网格遮挡(Chen 2020)、混合(原文:Mixup)(Zhang 等人 2017)和最小切(原文:Cutmix)(Yun 等人 2019)。但实验表明,除了随机增强和随机擦除外,大部分方法都不能用于方向分类器的训练。随机增强效果最好。最后,我们在方向分类的训练图像中加入BDA和随机增强。

  输入分辨率 一般来说,当标准化图像的输入分辨率提高时,精度也会提高。因为方向分类器的主干是非常轻的,适当提高分辨率不会使计算时间明显增加。在之前的大多数文本识别方法中,一幅经过标准化的图像的高宽分别设为32和100。然而,在PP-OCR中,高和宽分别设为48和192,来提高方向分类器的准确率。

  PACT量化 量化使神经网络模型具有较低的时延、更小的体积和更低的计算功耗。目前量化主要分为两大类:离线量化和在线量化。离线量化是一种定点量化方法,它使用诸如KL散度和移动平均等方法来确定量化参数,并且不需要再训练。在线量化是在训练过程中确定量化参数,其量化损失比离线量化方式要小。

  PACT(PArameterized Clipping acTivation)(Choi 等人 2018)是一种新的在线量化方法,可以提前从激活中去除一些异常值。去除异常值之后。该模型可以学习更合适的量化尺度。用于PACT的预处理激活公式如下:

  普通的PACT激活值的预处理是基于ReLU函数的。所有大于某个阈值的激活值都会被截断。然而,激活函数在MobileNetV3中不仅有ReLU,还有硬平滑(原文:hard swish)。使用普通的PACT量化会导致较高的量化损失。因此,我们将激活预处理公式修改如下,以减少量化损失。

  我们采用改进的PACT量化方法对方向分类器模型进行量化。此外,在PACT参数中加入系数为0.001的L2正则化,以提高模型的鲁棒性。

  上述FPGM裁剪和PACT量化的实现基于 PaddleSlim 。PaddleSlim是一个用于模型压缩的工具包。它包含了一组压缩策略,如裁剪、不动点量化、知识蒸馏、超参数搜索、神经结构搜索等。

2.3 文本识别

  本节将详细介绍用于增强文本识别器的模型能力或减小模型尺寸的九种策略。图 10 显示了文本识别器CRNN的架构。

  轻主干 我们同样采用MobileNetV3作为文本识别器的主干,与文本检测相同。根据经验选用MobileNetV3_small_x0.5来平衡精度和效率的经验。如果你对模型大小不是很敏感,MobileNetV3_small_x1.0也是一个不错的选择。模型尺寸仅增加了2M,精度却有明显提高。

\[图10:文本识别器CRNN的架构。这张图像来自于论文(Shi, Bai, Yao 2016)。红色和灰色矩形分别表示文本识别器的主干和头部。
\]

  数据增强 除了前面提到的在文本识别中常用的BDA,TIA (Luo 等人 2020)也是一种有效的文本识别数据增强方法。如图 11 所示,首先在图像上初始化一组基准点。然后用几何变换随机移动这些点以生成一个新的图像。在PP-OCR,我们把BDA和TIA添加到文本识别的训练图像中。

\[图11:数据增强图例,TIA。这张图像来自论文(Luo 等人 2020)。
\]

  余弦学习率衰减 就像文本检测中提到的那样,余弦学习速率衰减已经成为首选的降低学习率的方法。实验表明,余弦学习速率衰减策略对提高模型的文本识别能力也是有效的。

  特征图分辨率 为了适应多语言识别,特别是中文识别,在PP-OCR中CRNN输入的高宽分别被设置为32和320。那么,原始MobileNetV3的步幅并不适合文本识别。如图 12 所示,为了保持更多的水平信息,我们修改了除第一个下降采样特征图的步幅,从(2,2)到(2,1)。为了保留更多的垂直信息,我们进一步修改了第二个下采样特征图的步幅,从(2,1)到(1,1)。因此,第二个下采样特征图 \(s_2\) 的步长会严重影响整个特征图的分辨率和文本识别器的精度。在PP-OCR中,根据经验\(s_2\)被设置为(1,1),以获得较好的性能。

\[图12:特征图分辨率修改说明。表来自论文(Howard et al. 2019)
\]

  正则话参数 过拟合是机器学习中的一个常见术语。一个简单的理解是模型在训练数据上表现良好,但在测试数据上表现不佳。为了避免过拟合,人们提出了许多正则(原文:regular)方法。其中,权重衰减是一种常用的避免过拟合的方法。在最终的损失函数之后,L2正则化(L2_decay)被添加到损失函数中。在L2正则化的帮助下,网络倾向于选择较小的值。最后整个网络的参数趋于0,从而提高了模型的泛化性能。对于文本识别,L2_decay对识别的准确性有很大的影响。

  学习率预热 与文本检测类似,学习率预热也有助于文本识别。实验表明,使用该策略对文本识别也是有效的。

  轻头部 采用全连接层将序列特征编码为普通预测字符。序列特征的维度对文本识别器的模型大小有影响,特别是对字符超过6000个的汉字识别。同时,并不是维数越高,表示序列特征的能力越强。在PP-OCR中,根据经验将序列特征的维度设为48。

  预训练模型 如果训练数据较少,可以对在大数据集如ImageNet上训练的网络进行微调,以达到快速收敛和更好的准确率。在图像分类和目标检测中的迁移学习表明,该策略是有效的。在实际场景中,用于文本识别的数据往往有限。如果模型是用数千万个样本训练的,即使这些样本是合成的,采用上述模型可以显著提高精度。我们通过实验验证了该策略的有效性。

  PACT量化 除了跳过LSTM层外,我们采用相似的方向分类量化方案来减少文本识别器的模型大小。由于LSTM量化的复杂性,目前还不能对这些层进行量化。

3 实验

3.1 实验装置

  数据集 如表 1 所示,为了实现一个实用的OCR系统,我们构建了一个大规模的中英识别数据集作为例子。

\[表1:中英文识别数据集统计
\]

  对于文本检测,有97K张训练图像和500张验证图像。在训练图像中,有68K的图像是真实的场景图像,这些图像来自于一些公共数据集和百度图像搜索。使用的公共数据集包括LSVT (Sun 等人 2019)、 RCTW-17(Shi 等人 2017)、MTWI 2018(He and Yang 2018)、CASIA-10K(He 等人 2018)、SROIE(Huang 等人 2019)、MLT 2019(Nayef 等人 2019)、BDI(Karatzas 等人 2011)、MSRA-TD500 (Yao 等人 2012)和CCPD 2019(Xu 等人 2018)。从百度图像搜索得到的训练图像大多是文档文本图像。剩下的29K合成图像主要针对长文本、多方向文本和表格文本场景。所有验证图像都来自真实场景。

  对于方向分类,有600K训练图像和310K验证图像。在训练图像中,100K的真实场景图像来自于公共数据集(LSVT,RCTW-17,MTWI 2018)。它们是对图像的标注(原文:ground truth)进行校正和裁剪的水平文本。剩下的500K合成图像主要聚焦在翻转文本上。我们使用垂直字体合成一些文本图像,然后水平旋转它们。所有验证图像都来自真实场景。

  对于文本识别,有17.9M的训练图像和18.7K的验证图像。在训练图像中,1.9M幅图像是真实场景图像。它们来自一些公共数据集和百度图像搜索。使用的公共数据集包括LSVT、RCTW-17、MTWI 2018和CCPD 2019。其余的16M合成图像主要聚焦于不同背景、平移、旋转、透视变换、线干扰、噪声、垂直文字等场景。合成图像的语料库来自真实的场景图像。所有验证图像也来自真实场景。

  为了快速进行消融实验,选择合适的策略,我们从真实场景训练图像中选择4k图像进行文本检测,从真实场景训练图像中选择300k图像进行文本识别。

  此外,我们还收集了300张针对不同实际应用场景的图像来评估整个OCR系统,包括合同样本、车牌、铭牌、火车票、工作表(原文:test sheets)、表格、证书、街景图片、名片、数字仪表等。图 3 和图 4 展示了一些测试集的图像。

  此外,为了验证所提出的PP-OCR在其他语言中的应用,我们还收集了一些用于字母数字符号识别、法语识别、韩语识别、日语识别和德语识别的语料库,然后合成文本行图像进行文本识别。一些用于字母数字符号识别的图像来自公共数据集ST(Gupta, Vedaldi 和 Zisserman 2016)和SRN(Yu 等人 2020)。表 2 显示了统计数据。自包含多语言的文本检测MIT 2019年以来,中英文识别文本检测器也支持多语言文本检测。由于数据有限,我们还没有找到合适的数据来训练多语言的方向分类器。

\[表2:多语言识别数据集统计
\]

  在文本检测和文本识别中使用的数据合成工具是根据text_render(Sansterl 2018)改进的。

  实现细节 我们使用Adam优化器对所有的模型进行测试,并采用余弦学习率衰减作为学习率方法(原文:schedule)。在表 4 可以找到不同任务的初始学习率、批大小和迭代次数。将上述模型作为预先训练好的模型,可以使用FPGM裁剪和PACT量化来进一步减小模型的尺寸。FPGM裁剪和PACT量化的训练过程与之前相似。

\[表4:模型训练实现细节
\]

  在推理阶段,HMean用于评估文本检测器的性能。准确率常常用来评估方向分类器或文本识别器的性能。F-score用于评价OCR系统的性能。为了计算F-score,正确的文本识别结果应该是准确的定位和内容一致的文本。在单个T4 GPU上测试GPU推理时间。在Intel(R) Xeon(R) Gold 6148上测试CPU推理时间。我们使用骁龙855(SD 855)来评估量化模型的推理时间。

3.2 文本检测

  表 5 比较了不同文本检测主干的性能,HMean、模型尺寸和MobileNetV3不同规模的推理时间差别(原文:change)巨大。在PP-OCR中,我们选择 MobileNetV3_large_x0.5 来平衡准确率和效率。

\[表5:比较文本检测不同主干的性能
\]

  表 3 给出了文本检测头部的inner_channel、SE、余弦学习率衰减、学习率预热的消融研究。首先,将检测器头部的内通道从256减少到96个,模型尺寸减小了41%,推理时间加快了近50%,HMean仅略有下降。因此,减小内通道是让检测器“瘦身”(原文:lighten)的有效方法。当移除检测器主干的SE块时,模型尺寸减小了36.6%,推理时间进一步加快了18.8%。同时,HMean不会受到影响。因此,对于文本检测,SE块的精度提高有限,但时间代价非常高。最后,使用余弦学习率衰减代替固定学习率或学习率预热,HMean会有明显提高。同时,模型尺寸和推理时间不会受到影响。余弦学习率衰减和学习率预热对文本检测是一种有效的策略。

\[表3:文本检测在头部、SE、余弦学习率衰减、学习率预热的inner\_channel的消融研究
\]

  表 6 展示了文本检测在FPGM裁剪的消融研究。通过FPGM裁剪,模型的尺寸减小了46.2%并且在SD855设备推理时间加快了18.9%,HMean仅略有下降。因此,FPGM裁剪能有效修剪文本检测模型。

\[表6:文本检测的FPGM裁剪消融研究
\]

3.3 方向分类

  表 7 比较了用于方向分类的不同主干的性能。不同规模(0.35, 0.5)MobileNetV3的准确率接近。MobileNetV3_small_x0.35的模型大小和推断时间要好得多。另外,在之前的一些工作中,ShuffleNetV2常常用来训练一个方向分类器。从表中可以看到,无论是准确率、模型大小还是推理时间,ShuffleNetV2都不是一个好的选择。

\[表7:方向分类不同主干的性能比较
\]

  表 9 展示了用于方向分类的数据增强的消融研究。在没有数据增强的情况下,文本导向器分类的基线准确率仅为88.79%。当我们采用BDA ,准确率能提高2.55%。我们也验证了随机擦除和随机增强对文本方向分类是有用的。因此,在PP-OCR中,我们使用BDA和随机增强来训练一个方向分类器。

\[表9:方向分类数据增强消融实验
\]

  表 8 显示了用于方向分类的输入分辨率和PACT量化消融研究。当输入分辨率从3×32×100调整到3×48×192时,分类精度有所提高,但预测速度基本不变。此外,我们还验证了量化策略对提高文本方向分类器的预测速度是有效的。模型尺寸减小了45.9%,推理时间提高了25.86%。准确率略有提高。

\[表8:方向分类的输入分辨率和PACT量化消融实验
\]

3.4 文本识别

  表 10 比较了用于文本识别的不同主干的性能。MobileNetV3不同尺度的精度、模型尺寸和推理时间都有较大区别(原文:change)。在PP-OCR中,我们选择MobileNetV3_small_x0.5来平衡精度和效率。

\[表10:不同主干在文本识别上的性能比较。头部的通道数量被设为256
\]

  表 11 比较了用于文本识别的CRNN头部的通道数。将通道数量从256减少到48个,模型尺寸从23M减少到4.6M,推理时间提高了近30%。然而,准确率不会受到影响。可见,在一个轻量级文本识别器中,头部的通道数对模型尺寸有很大的影响。

\[表11:头部通道数量在文本识别上的消融实验。只使用BDA作为数据增强。
\]

  表 12 显示了数据增强、余弦学习率衰减、调整第二个下采样特征图步幅、正则化参数L2_decay和用于文本识别的学习率预热的消融研究。

\[表12:多种策略在文本识别上的消融实验。
\]
\[主干为MobieNetV3\_small\_x0.5。头部通道数为48。
\]

  为了验证每种策略的优势,把基本实验称为策略S1。使用BDA时,准确率提高3.12%。数据增强对文本识别是非常必要的。当我们进一步(原文:further)采用余弦学习率衰减时,准确率将提高1.47%。余弦学习速率对准确率是一种有效的策略。接下来,当我们增加特征图的分辨率,同时将第二幅下采样特征图的步幅从(2, 1)减小到(1, 1),准确率提高5.27%。然后,当我们进一步将正则化参数L2_decay从0调整到1e-5,准确率可以提高3.4%。特征图分辨率和L2_decay对性能有很大的影响。最后,我们使用学习率热身将准确率提高0.62%。采用TIA数据增强,准确率将提高0.91%。学习率预热和TIA也是用于文本识别的有效策略。

  表 13 给出了用于文本识别的PACT量化消融研究。当我们使用PACT量化时。模型大小减少了67.39%,推理时间加快了8.3%。由于没有对LSTM进行量化,加速度并不明显。然而,准确性得到了显著的提高。因此,PACT量化也是减小文本识别器模型大小的一种有效策略。

\[表13:多种策略在文本识别上的消融实验。主干为MobieNetV3_small_x0.5。头部通道数为48。
\]

  最后,我们将说明预训练模型的效果。我们利用17.9M训练图像来学习一个文本识别器。然后,用这个模型作为预训练模型来微调用于消融研究样本。当我们使用上面的预训练模型,准确率从65.81%提升到69%,效果很明显。

3.5 系统性能

  表 14 显示了用于OCR系统的裁剪和量化的消融研究。当我们使用“瘦身”方法时,模型尺寸减小了55.7%,推理时间加快了12.42%,F-score没有影响。推理时间包括系统各部分的预处理和后处理。因此,FPGM裁剪和PACT量化也是减小模型尺寸的有效策略。

\[表14:裁剪或量化在OCR系统中的消融实验
\]

  为了比较所提出的超轻量级OCR系统和大规模OCR系统之间的差距,我们还训练了一个大规模OCR系统,这个系统使用Res18_vd作为文本检测器主干,Res34_vd作为文本识别器主干。表 15 显示了比较结果。大规模OCR系统的F-score高于超轻量OCR系统,但超轻量系统的模型尺寸和推理时间明显更好一些。

\[表15:超轻量OCR系统和某大规模系统比较
\]

  图 13 和图 14 显示了本文提出的用于中英文识别的PP-OCR系统的一些图像结果。图 15 显示了用了本文提出的多语言识别的PP-OCR系统的一些图像结果。

\[图13:基于PP-OCR得到的一些中英文识别结果
\]
\[图14:基于PP-OCR得到的一些中英文识别结果
\]
\[图15:基于PP-OCR得到的一些多语言识别结果
\]

4 结论

  在本文中,我们提出了一个实用的超轻量级OCR系统,PP-OCR。其中用于识别6622个汉字的整体模型尺寸只有3.5M,用于识别63个字母数字符号的模型尺寸只有2.8M。我们引入了一系列策略来增强模型能力和轻量化模型,并给出了相应的实验。同时,在大规模数据集训练的基础上,发布了一些实用的超轻量光学字符识别模型。


附录 1:ablation study 消融实验

  目的其实就是为了控制变量。比如说你为了提升baseline的性能,给它加了两个模块A,B,加完之后效果果然提高了很多。于是你急急忙忙开始写论文,写到你的贡献,你给了两条:1.模块A,2.模块B。但是这样写有个问题:尽管AB同时加上去对模型有提升效果,但是你并没有证明A、B两个模块分别都是有意义的。所以为了验证A、B两个模块是不是真的都有用,你需要做ablation study。方法也很简单:

  1. 在baseline的基础上加上模块A,看效果。
  2. 在baseline的基础上加上模块B,看效果。
  3. 在baseline的基础上同时加上模块AB,看效果。

  然后结果可能是,实验1和实验2的结果都不如实验3,那么说明AB都是有用的;然而也有可能你会发现实验1的结果和实验3一样,甚至更好。这就说明你的想法是有问题的,模块B其实并没有起到作用,提升只来自于模块A。综上所述,ablation study就是你在同时提出多个思路提升某个模型的时候,为了验证这几个思路分别都是有效的,做的控制变量实验的工作。

作者:SleepyBag

链接:https://www.zhihu.com/question/60170398/answer/673961942

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

附录 2:常用数据合成工具

PP-OCR论文翻译的更多相关文章

  1. 深度学习论文翻译解析(三):Detecting Text in Natural Image with Connectionist Text Proposal Network

    论文标题:Detecting Text in Natural Image with Connectionist Text Proposal Network 论文作者:Zhi Tian , Weilin ...

  2. 论文翻译:2020_RESIDUAL ACOUSTIC ECHO SUPPRESSION BASED ON EFFICIENT MULTI-TASK CONVOLUTIONAL NEURAL NETWORK

    论文翻译:https://arxiv.53yu.com/abs/2009.13931 基于高效多任务卷积神经网络的残余回声抑制 摘要 在语音通信系统中,回声会降低用户体验,需要对其进行彻底抑制.提出了 ...

  3. [论文翻译] 分布式训练 Parameter sharding 之 ZeRO

    [论文翻译] 分布式训练 Parameter sharding 之 ZeRO 目录 [论文翻译] 分布式训练 Parameter sharding 之 ZeRO 0x00 摘要 0x01 综述 1.1 ...

  4. [原创]Faster R-CNN论文翻译

    Faster R-CNN论文翻译   Faster R-CNN是互怼完了的好基友一起合作出来的巅峰之作,本文翻译的比例比较小,主要因为本paper是前述paper的一个简单改进,方法清晰,想法自然.什 ...

  5. R-CNN论文翻译

    R-CNN论文翻译 Rich feature hierarchies for accurate object detection and semantic segmentation 用于精确物体定位和 ...

  6. SSD: Single Shot MultiBoxDetector英文论文翻译

    SSD英文论文翻译 SSD: Single Shot MultiBoxDetector 2017.12.08    摘要:我们提出了一种使用单个深层神经网络检测图像中对象的方法.我们的方法,名为SSD ...

  7. R-FCN论文翻译

    R-FCN论文翻译 R-FCN: Object Detection viaRegion-based Fully Convolutional Networks 2018.2.6   论文地址:R-FCN ...

  8. 深度学习论文翻译解析(四):Faster R-CNN: Down the rabbit hole of modern object detection

    论文标题:Faster R-CNN: Down the rabbit hole of modern object detection 论文作者:Zhi Tian , Weilin Huang, Ton ...

  9. 深度学习论文翻译解析(二):An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition

    论文标题:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application ...

  10. 深度学习论文翻译解析(一):YOLOv3: An Incremental Improvement

    论文标题: YOLOv3: An Incremental Improvement 论文作者: Joseph Redmon Ali Farhadi YOLO官网:YOLO: Real-Time Obje ...

随机推荐

  1. Java入门(2)

    阅读书目:Java入门经典(第7版) 作者:罗格斯·卡登海德 一个简单的计算平方根的程序: 1 package com.java24hours; 2 3 public class Root { 4 p ...

  2. iptables从入门到掌握

    防火墙简述 防火墙(firewall)一词本是建筑用于,本意是为了保护建筑物不受火灾侵害的.被借鉴到了在网络通信领域中,表示保护局域网或主机不受网络攻击的侵害. 防火墙: 工作在主机或者网络边缘,对于 ...

  3. python爬虫构建代理ip池抓取数据库的示例代码

    爬虫的小伙伴,肯定经常遇到ip被封的情况,而现在网络上的代理ip免费的已经很难找了,那么现在就用python的requests库从爬取代理ip,创建一个ip代理池,以备使用. 本代码包括ip的爬取,检 ...

  4. ClassNotFoundException: java.util.ArrayList$SubList 错误

    ClassNotFoundException: java.util.ArrayList$SubListjava.lang.RuntimeException: java.lang.ClassNotFou ...

  5. Js中函数声明和函数表达式的区别

    先看以下几段烧脑的代码: f();//=>? var f = function () { console.log("var"); } function f() { conso ...

  6. Python_爬虫项目

    1.爬虫--智联招聘信息搜集    原文链接 1 #-*- coding: utf-8 -*- 2 import re 3 import csv 4 import requests 5 from tq ...

  7. centos搭建dns服务

    原文:(https://www.myjinji.top/articles/2020/04/02/1585800289945.html)[https://www.myjinji.top/articles ...

  8. tp5 日志的用途以及简单使用

    相信大家对日志这个词都很熟悉,那么日志通常是用来做什么的呢? 找错误和监控 正常来说,日志对维运的帮助是最大的,特别是服务器或者是程序出现错误的时候. 那么现在我们就来看看,tp框架的日志是怎么设置的 ...

  9. 关于AOP思想,建议你看看这份五年开发总结的笔记,写的太详细了

    前言 OOP(Object Oriented Programing)面向对象编程 以对象为基本单位进行程序开发,通过对象间的彼此协同,相互协调,完成程序的构建 POP(Producer Oriente ...

  10. Guitar Pro小课堂之弹唱和弦转换小技巧

    吉他相对其他乐器的便携性,还有其便于弹唱的特点,受到了很多音乐萌新们的喜爱.对于刚刚接触吉他的萌新来说,学琴初期弹唱的时候经常会因为和弦卡顿的转换,和因为食指力度不够或技巧不对无法顺利演奏的大横按,导 ...