PP-OCR: 3.5M超轻量中英文OCR模型详解(三) 文本方向分类器优化瘦身策略


PP-OCR: A Practical Ultra Lightweight OCR System
论文地址:https://arxiv.org/abs/2009.09941
代码地址:https://github.com/PaddlePaddle/PaddleOCR

本文主要介绍PP-OCR中文本方向分类器优化瘦身策略,首先会介绍实验环境,然后介绍超轻量骨干网络选择、数据增强、增大输入分辨率和PACT 量化的基本思路和消融实验。

1. 实验环境

文本方向分类器的消融实验采用的是全量数据训练和评估。识别准确率指标用来评估方向分类器的效果。使用单个T4 GPU卡测试GPU时间,Intel® Xeon® Gold 6148 处理器测试CPU时间,骁龙855在手机上测试量化模型时间。

2. 超轻量骨干网络选择

和文本检测类似,PP-OCR也是采用MobileNetV3作为文本方向分类器的骨干网络。由于这个任务相对比较简单,所以使用了MobileNetV3_small_x0.35作为骨干网络。表1对比了MobileNetV3_small_x0.35和MobileNetV3_small_x0.5,识别准确率差别不大,但是模型大小减小非常明显。此外,对比了其他方法使用的ShuffleNetV2_x0.5,从准确率,模型大小,以及预测速度看,MobileNetV3_small_x0.35更加合适。

PP-OCR: 3.5M超轻量中英文OCR模型详解(三) 文本方向分类器优化瘦身策略_第1张图片
表1 文本方向分类器使用不同骨干网络的效果

3. 数据增强

在文本识别任务中,经常使用的数据增强方式是基本的图像处理,例如图像旋转,图像透视变换,运动模糊和高斯噪声。这些操作简称为BDA (Base Data Augmentation)。最近图像分类有一些数据增强方法,例如AutoAugment,RandAugment,CutOut,RandErasing,HideAndSeek,GridMask,Mixup,Cutmix,如下图所示(图片来源于PaddleClas,https://github.com/PaddlePaddle/PaddleClas)。由于文本方向分类器是一个基本图像分类任务,上述方法是否有可能提升文本方向分类器效果。PP-OCR做了大量消融实验,如表1所示。不使用任何数据增广,文本方向分类器的识别准确率是88.79%。使用基础数据增广BDA,识别准确率提升到91.34%,提升非常明显。在与图像分类常用的数据增强方法结合,发现RandomErasing和RandAugment提升非常明显,其余效果不明显,甚至变得更差。在PP-OCR最终的训练方案中,使用BDA+RandAugment数据增广方式。

PP-OCR: 3.5M超轻量中英文OCR模型详解(三) 文本方向分类器优化瘦身策略_第2张图片
PP-OCR: 3.5M超轻量中英文OCR模型详解(三) 文本方向分类器优化瘦身策略_第3张图片
表1 不同数据增广方式对于文本方向分类器识别效果的影响
在这里插入图片描述

表2 不同输入分辨率和PACT 量化的消融实验

4.输入分辨率

一般对于图像分类任务,输入图像的分辨率增加,识别准确率也会增加,但是相应的耗时也会增加。但是由于图像方向分类器使用的非常轻量的网络,适当的增加输入分辨率,效果会提升明显,预测时间不会明显增加。332100是文本识别经常使用的一个分辨率。从表2可以看出,当输入分辨率从332100增加到348192,识别准确率提升将近2%,但是预测时间基本没有变换。可见适当增加分辨率,收益非常明显。

5.PACT 量化

量化也是提升预测效率的一种非常重要的手段。目前量化一般分为两类:离线量化和在线量化。离线量化不需要训练,利用平均值决定量化参数。在线量化是通过训练决定量化参数。PACT量化是一种在线量化方法,核心关注激活函数异常点处理。当移除了异常点,则可以学习比较合适的量化参数。原始的PACT处理激活函数的公式如下:
在这里插入图片描述

原始的PACT主要考虑的是ReLU激活函数,所有的输入大于一定阈值就被截断。但是MobileNetV3里面不仅只有ReLU激活函数,还有hard_swish,原始的PACT导致比较高的量化误差。因此,PP-OCR使用的PACT量化方法是进行了如下改进,进行两个方向的截断,从而降低量化误差。
在这里插入图片描述

从表2可以看出,使用PACT量化,模型大小从0.85M减小到0.46M,预测速度从3.21ms加速到2.38ms,加速明显,识别准确率基本没有影响。上述改进的PACT 量化的实现可以关注github repo PaddleSlim(https://github.com/PaddlePaddle/PaddleSlim)


感谢大家关注,PP-OCR: 3.5M超轻量中英文OCR模型详解系列总共有4个部分,列表如下:
(一) 简介、方案概览和数据
(二) 文本检测优化瘦身
(三) 文本方向分类器优化瘦身
(四) 文本识别优化瘦身
欢迎大家star PaddleOCR(https://github.com/PaddlePaddle/PaddleOCR),支持该repo的建设。感兴趣的朋友,可以加入Repo里面的PaddleOCR技术交流微信群,一起讨论OCR相关问题。

你可能感兴趣的:(PaddleOCR,深度学习,python相关,python,计算机视觉,人工智能,ocr,深度学习)