PP-OCRv2:超轻OCR系统的万能包

PP-OCRv2:超轻OCR系统的万能包

摘要

光学字符识别(OCR)系统已广泛应用于多种场景,但设计兼顾精度与效率的OCR系统仍具挑战性。我们此前提出的超轻量OCR系统PP-OCR在平衡两者方面取得进展。本文进一步提出PP-OCRv2,通过五项关键技术提升性能:

  1. 检测模型优化
    • 协同互学习(CML):结合教师-学生蒸馏与学生间互学习,提升检测鲁棒性。
    • CopyPaste数据增强:合成文本实例平衡样本分布,验证对检测任务有效。
  1. 识别模型优化
    • 轻量CPU网络(PP-LCNet):基于MobileNetV1改进,针对Intel CPU优化,速度提升38%。
    • 统一深度互学习(U-DML):双学生网络互监督,无需预训练教师模型,准确率提升4.6%。
    • 增强CTC损失:引入Center Loss增大相似字符间距,准确率再提0.9%。

实验表明,PP-OCRv2在同等推理成本下精度较PP-OCR提升7%,速度较服务器版(ResNet骨干)提升220%,总模型大小仅11.6M,支持移动端与服务器部署。代码已开源(GitHub/PaddleOCR)。


1. 引言

OCR技术历经二十年发展,广泛应用于文档电子化、身份认证、车牌识别等领域。PP-OCR(2020)作为实用化轻量系统,采用DB算法(检测)和CRNN(识别),结合19项策略优化模型体积与性能。

图2:PP-OCRv2的框架。绿色框中的策略与PP-OCR相同,橙色框中的策略为PP-OCRv2新增,灰色框中的策略将在未来被PP-OCRv2-tiny采用。

图2展示了PP-OCRv2的系统框架。如绿色框所示,大部分策略沿用了PP-OCR方案。橙色框内为PP-OCRv2新增策略:

  • 文本检测:引入协同互学习(CML)和复制粘贴(CopyPaste)技术
    • CML通过两个学生网络和一个教师网络协同训练,构建更鲁棒的文本检测器
    • CopyPaste作为新型数据增强方法(Ghiasi等,2021),经证实能有效提升目标检测与实例分割任务性能,本研究验证其同样适用于文本检测任务
  • 文本识别:采用轻量化CPU网络(PP-LCNet)(Cui等,2021)、统一深度互学习(U-DML)及中心损失函数(CenterLoss)
    • PP-LCNet是基于Intel CPU优化的轻量级主干网络(由MobileNetV1改进而来)
    • U-DML通过双学生网络协同提升识别精度
    • CenterLoss用于缓解相似字符的误判问题
      我们通过系列消融实验验证了上述策略的有效性。

图2灰色框内策略已在PP-OCR中被证实有效,但本文未作验证。后续将应用于PP-OCRv2-tiny模型以加速推理。

全文结构如下:第2章详述新增增强策略,第3章讨论实验结果,第4章给出结论。


2 增强策略

2.1 文本检测

协同互学习(CML

为解决文本检测蒸馏中的两大问题:1)当教师模型与学生模型精度相近时,传统蒸馏方法提升有限;2)二者结构差异较大时,传统蒸馏效果显著受限,我们采用CML方法(Zhang等,2017)。如图3所示,该框架由多个学生模型和教师模型构成超级网络,其创新性在于:蒸馏后学生模型的检测精度可超越教师模型。

实现机制

  • 模型架构
    • 教师模型采用ResNet18主干网络
    • 学生模型采用缩放系数0.5的MobileNetV3大型版本
  • 训练流程
    1. 固定教师模型参数,仅优化学生模型
    2. 学生模型通过三重监督信号学习:
      • 真实标注(Ground Truth)
      • 同伴模型后验熵(基于DML方法)
      • 教师模型输出知识

损失函数设计

  1. 真实损失(GTLoss)
    基于DB算法(Liao等,2020b)的复合损失:

其中:

  • (概率图损失):二元交叉熵

  • (二值图损失):Dice损失

  • (阈值图损失):L1损失

  • 超参数

  1. 同伴损失(DML Loss)
    通过KL散度衡量双学生模型输出分布差异:

相比原始DML,本方案采用同步训练加速收敛

  1. 蒸馏损失(Distill Loss)
    对教师模型概率图进行膨胀操作(核矩阵


    )以增强知识迁移:

超参数

,膨胀操作

可提升教师模型响应区域准确性

最终,训练PP-OCR检测模型CML方法采用的总损失函数如下:

CopyPaste是一种创新的数据增强技术,已被证实能有效提升目标检测与实例分割任务的性能(Ghiasi等,2021)。该技术通过合成文本实例来平衡训练集中的正负样本比例,这是传统图像旋转、随机翻转和随机裁剪等增强方法无法实现的。由于所有文本均位于前景且相互独立,CopyPaste会将文本无重叠地粘贴到随机选择的背景图像上。图4展示了CopyPaste的典型示例

2.2 文本识别

图5:PP-LCNet网络结构。虚线框表示可选模块。主干部分采用标准卷积层。DepthSepConv代表深度可分离卷积,DW表示深度卷积,PW表示逐点卷积,GAP表示全局平均池化。

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

  1. **更好的激活函数。**为提升MobileNetV1的拟合能力,我们将网络中的激活函数由ReLU替换为H-Swish。该改进在推理时间仅轻微增加的情况下,可显著提升模型精度。
  2. **在适当位置添加 SE 模块。**SE模块(Hu等,2018)自提出以来已被众多网络采用,能通过通道加权获取更优特征。但考虑到Intel CPU上SE模块会增加推理耗时,我们通过大量实验发现:越接近网络末端,SE模块效果越显著。因此仅在网络尾部区块添加SE模块,其内部两层分别采用ReLU和H-Sigmoid激活函数,实现了精度与速度的最佳平衡。
  3. 更大的卷积核。 虽然MixNet(Tan等,2019)证明混合尺寸卷积核能提升性能,但会降低推理速度。我们选择 在网络尾部将3×3卷积核替换为5×5卷积核,扩大感受野以捕获更全局的特征, 在最小化速度损耗的前提下提升性能。
  4. **GAP 后更大的 1x1 卷积层维度。**针对PP-LCNet在全局平均池化(GAP)后特征维度较小的问题,直接连接最终的分类层会丢失特征的组合信息。我们在最终分类层前增加1280维1×1卷积层。该设计在不影响推理速度的情况下,显著增强了特征组合能力。

通过以上四项改进,我们的模型在 ImageNet 上表现出色,表 4 列出了在英特尔 CPU 上与其他轻量级模型的性能指标对比。

统一深度互学习 (U-DML)

深度互学习(Deep mutual learning, DML)(Zhang et al. 2017)是一种两个学生网络相互学习的方法,它不需要一个带有预训练权重的大型教师网络来进行知识蒸馏。在 DML 中,对于图像分类任务,损失函数包含两部分:(1) 学生网络与真实标签(groundtruth)之间的损失函数;(2) 学生网络输出软标签之间的 Kullback--Leibler 散度(KL-Div)损失。

Heo 提出了 OverHaul(Heo et al. 2019),其中使用学生网络和教师网络之间的特征图距离进行蒸馏过程。对学生网络的特征图进行变换以保持特征图对齐。

为了避免过于耗时的教师模型训练过程,本文在 DML 的基础上提出了 U-DML,在蒸馏过程中也对特征图进行监督。图 6 展示了 U-DML 的框架。蒸馏过程涉及两个网络:学生网络和教师网络。它们具有完全相同的网络结构,但初始化权重不同。目标是对于相同的输入图像,两个网络不仅预测结果相同,特征图也应相同。

总损失函数由三部分组成:(1) CTC 损失。由于两个网络都是从头开始训练的,CTC 损失可用于促进网络收敛;(2) DML 损失。期望两个网络的最终输出分布相同,因此需要 DML 损失来保证两个网络之间分布的一致性;(3) 特征损失。两个网络结构相同,因此期望它们的特征图也相同,特征损失可用于约束两个网络中间特征图之间的距离。

CTC损失

本文采用CRNN作为文本识别基础架构,该架构整合了特征提取与序列建模能力。通过连接时序分类(CTC)损失函数(Graves等,2006)解决预测结果与真实标签的对齐问题。由于两个子网络均需从头训练,CTC损失同时作用于师生网络:

其中:

  • 表示学生网络的头部输出

  • 表示教师网络的头部输出

  • 为输入图像的真实标签

DML损失

传统DML方法需分别更新子网络参数。为简化训练流程,本方案同步计算双网络间的KL散度损失并联合更新参数:

    • :分布



      的KL散度(Kullback-Leibler Divergence)


    • :学生和教师网络的概率输出(通过Softmax计算)

KL散度计算基于Softmax归一化输出:

特征损失

为使学生网络的主干输出与教师网络对齐,参考Overhaul方法引入特征损失。该损失直接计算二者L2距离,无需特征图变换:

式中:

  • 为学生网络主干输出

  • 为教师网络主干输出

  • 采用均方误差(MSE)作为度量标准

总损失函数

最终,U-DML训练过程的总损失函数定义如下:

训练策略

实验发现分段学习率策略更适用于蒸馏训练:

  • 由于特征损失的引入会延长模型收敛时间
  • 采用800训练轮次(epochs)与分段学习率策略
  • 在文本识别蒸馏任务中取得最佳效果

CRNN架构改进

针对标准CRNN的CTC-Head部分:

  • 原始结构仅使用单层全连接(FC),特征解码能力较弱
  • 改进为双层FC结构
  • 在推理零开销的前提下,识别准确率提升约1.5%

增强型CTC损失

在中文识别任务中存在大量相似字符,其外观差异极小,极易导致误识别。PP-OCRv2为此设计了增强型CTC损失,该损失融合了原始CTC损失与度量学习中的中心损失思想(Wen等,2016),经改进适配序列识别任务。具体定义如下:

关键参数说明

  1. 特征对齐
    • :时间步


      的特征向量

    • :类别


      的中心向量

    • 标签对齐难点:CRNN算法(施等,2016)存在特征与标签不对齐问题,xt 无直接对应标签

  • 解决方案 :采用贪婪解码策略获取伪标签:
    yt=argmax(W⋅xt)(12)
    (W 为CTC-Head参数矩阵)
  1. 实验参数
    • 平衡系数

      经实验验证最优

    • 中心损失约束使相似字符特征空间分离


3. 实验与结论

3.1 实验设置

数据集

我们在与PP-OCR工作(Du等,2020)相同的数据集上进行实验:

  • 文本检测
    • 训练集:97K图像(68K真实场景图像 + 29K合成图像)
      • 真实图像来源:百度图片搜索及9大公开数据集
        LSVT(Sun等,2019)RCTW-17(Shi等,2017)MTWI 2018(He等,2018)
        CASIA-10K(He等,2018)SROIE(Huang等,2019)MLT 2019(Nayef等,2019)
        BDI(Karatzas等,2011)MSRA-TD500(Yao等,2012)CCPD 2019(Xu等,2018)
      • 合成图像特征:聚焦长文本、多向文本及表格内文本
    • 验证集:500张真实场景图像
  • 文本识别
    • 训练集:1,790万图像
      • 真实图像:190万(源自公开数据集及百度图片搜索)
      • 合成图像:1,600万(覆盖背景/旋转/透视变换/噪声/垂直文本等场景)
      • 语料来源:真实场景文本
    • 验证集:1.87万张真实场景图像
  • 系统评估集
    • 300张实际应用场景图像
    • 涵盖合同样本、车牌、铭牌、火车票、试卷、表格、证书、街景、名片、数字仪表等

注:文本检测与识别采用的数据合成工具基于text render(Sanster, 2018)改进

实现细节

本工作采用与PP-OCR(Du等,2020)相似的训练策略(详见图2)。所有模型均使用Adam优化器进行训练,初始学习率设为0.001。主要差异在于学习率调度策略:

  • 文本检测模型 :采用余弦学习率衰减(cosine learning rate decay)
  • 文本识别模型 :采用分段衰减策略 (piece-wise decay)
    检测与识别模型在训练初期均进行预热训练(warm-up)以提升稳定性。

训练参数配置
  1. 文本检测模型
    • 总训练轮次:700轮
    • 预热轮次:2轮
    • 单卡批量大小:8
    • 硬件配置:单张NVIDIA T4 GPU
  1. 文本识别模型
    • 总训练轮次:700轮(初始学习率0.001) + 100轮(学习率衰减至0.0001)
    • 预热轮次:5轮
    • 单卡批量大小:128
推理评估指标
  • 文本检测器性能
    使用调和平均值(Hmean)评估检测框准确率
  • 端到端OCR系统
    采用端到端Hmean(结合检测与识别结果)
  • 文本识别器性能
    整句准确率(Sentence Accuracy)作为核心指标
推理速度测试环境
  • GPU推理:NVIDIA T4 GPU(单卡)
  • CPU推理:Intel Xeon Gold 6148处理器

3.2 文本检测

表2展示了文本检测任务中DML(深度互学习)、CML(协同互学习)和CopyPaste数据增强策略的消融实验结果。实验以PP-OCR轻量级检测模型为基线,测试阶段将输入图像长边缩放至960像素。结果显示:

  • DML策略 :Hmean指标提升近 2%
  • CML策略 :Hmean指标进一步提升 3% (较基线累计提升 5%
  • CopyPaste数据增强 :Hmean指标再提升 0.6% (最终累计提升 5.6%

核心结论

在模型结构不变的前提下,PP-OCRv2检测模型较PP-OCR的Hmean指标实现 3.6% 的绝对提升 (原文累计提升5.6%但基线为PP-OCR轻量模型,最终对比PP-OCR时净提升3.6%),且推理速度保持不变。

⚠️ 注:推理时间包含预处理与后处理全流程耗时。


3.3 文本识别

表3展示了PP-LCNet轻量骨干网络、U-DML联合互学习策略及Enhanced CTC损失的消融实验结果:

  • PP-LCNet替换MobileNetV3
    • 识别准确率提升 2.6%
    • 模型体积增加3M,但因网络结构优化,单样本推理时间从 7.7ms降至6.2ms
  • U-DML策略 :准确率再提升 4.6%(显著增益)
  • Enhanced CTC损失 :准确率进一步增加 0.9%

综合效果

所有策略联合使识别准确率绝对提升 8.1% ,模型体积增加3M,但平均推理时间加速 1.5ms

PP-LCNet泛化性验证

在ImageNet-1k等挑战性数据集上的测试表明(表4),PP-LCNet在速度与精度上均优于MobileNetV3等轻量网络,成为兼顾高效与强表征的轻量化骨干网络。


3.4 系统性能

表5对比了PP-OCRv2与PP-OCR轻量版/服务器版的性能:

  • PP-OCR服务器版
    • 检测骨干:ResNet18-vd
    • 识别骨干:ResNet34-vd
    • 特点:Hmean更高,但推理速度显著慢于轻量版
  • PP-OCRv2轻量版
    • 相同推理成本下,Hmean较PP-OCR轻量版提升 7.3%
    • 性能与PP-OCR服务器版相当,但速度更快

图9可视化展示了PP-OCRv2与PP-OCR轻量版/服务器版的端到端识别结果对比,印证上述结论。

4 结论

本文提出了一种更鲁棒的超轻量级OCR实用系统PP-OCRv2。通过集成协同互学习(CML)、CopyPaste数据增强、轻量化CPU网络(PP-LCNet)、统一深度互学习(U-DML)及中心损失函数等系列策略,显著增强了前代PP-OCR模型的性能。实际场景测试表明:在同等推理成本下,PP-OCRv2的识别精度显著超越PP-OCR(具体提升幅度见第三章实验分析)。本文同步发布了多个超轻量级OCR实用模型及其对应的大规模数据集,为工业落地提供了完整解决方案。