paddleocr文本检测改进变迁

数据增强:

BDA(Base Data Augmentation):放射变化,左右翻转,大小裁剪。

图像变换类:RandAugment

图像混叠类:CopyPaste 

超参数:

  • Cosine 学习率下降策略

Cosine学习率策略指的是学习率在训练的过程中,按照余弦的曲线变化。在 整个训练过程中,Cosine学习率衰减策略使得在网络在训练初期保持了较大的学习速率,在后期学习率会逐渐 衰减至0,其收敛速度相对较慢,但最终收敛精度较好。

  • 学习率预热策略

学习率预热指的是将学习率从一个很小的值开始,逐步增加到初始较大的学习率。它可以保证模型在训练初 期的稳定性。使用学习率预热策略有助于提高图像分类任务的准确性。

主干

v1,v2,v3去掉SE-net的MobileNetV3

v4使用PP-LCNetV3替换MobileNetv3 backbone,PP-OCRv4学生检测模型hmean从78.24%提升到79.08%。

Head

 V1:在主干为MobileNetV3的基础上

  • 轻量级特征金字塔网络DBFPN结构

neck:FPN 特征金字塔网络 

head:引出2个分支。一个负责预测概率图(probability map)另一个负责预测阈值图(threshold map)。概率图经过阈值图处理,进行二值化后得到二值图.

DB可微二值化:由于标准的二值化不可微分,无法在训练期间和分割网络一起优化。可微的二值化方法可以通过使用近似的步函数来执行二值化,这种近似的二值化函数是可微分的,因此可以在训练期间与分割网络一起优化。在训练过程中优化二值化阈值的好处是可以通过梯度反向传播来提高性能。通过使用可微分的二值化方法,如Differentiable Binarization (DB),可以使二值化过程在训练期间是端到端可训练的。公式(1)是标准二值化,公式(2)是可微分二值化

文本检测器的特征融合(neck)部分DBFPN与目标检测任务中的FPN结构类似,融合不同尺度的特征图,以提 升不同尺度的文本区域检测效果。 为了方便合并不同通道的特征图,这里使用 1×1 的卷积将特征图减少到相同数量的通道。 概率图和阈值图是由卷积融合的特征图生成的,卷积也与inner_channels相关联。因此,inner_channels对模型 尺寸有很大的影响。当inner_channels由256减小到96时,模型尺寸由7M减小到4.1M,速度提升48%,但精度只是略有下降。

  •  DSR: 训练中动态增加shrink ratio

threshold_map 是由polygon进行内外延展而来,shrink_ratio设置得越大,延展得越小。动态shrink ratio(dynamic shrink ratio): 在训练中,shrink ratio由固定值调整为动态变化,随着训练epoch的增加,shrink ratio从0.4线性增加到0.6。该策略在PP-OCRv4学生检测模型上,hmean从76.97%提升到78.24%。

 V3:在主干为MobileNetV3的基础上

  • Deep Mutual Learning教师模型LK-PAN:大感受野的PAN结构

LK-PAN (Large Kernel PAN(双金字塔结构)) 是一个具有更大感受野的轻量级PAN结构,核心是将PAN结构的path augmentation中卷积核从3*3改为9*9。通过增大卷积核,提升特征图每个位置覆盖的感受野,更容易检测大字体的文字以及极端长宽比的文字。使用LK-PAN结构,可以将教师模型的hmean从83.2%提升到85.0%。

  • Deep Mutual Learning学生模型RSE-FPN:残差注意力机制的FPN结构

RSE-FPN(Residual Squeeze-and-Excitation FPN)如下图所示,引入残差结构和通道注意力结构,将FPN中的卷积层更换为通道注意力结构的RSEConv层,进一步提升特征图的表征能力。考虑到PP-OCRv2的检测模型中FPN通道数非常小,仅为96,如果直接用SEblock代替FPN中卷积会导致某些通道的特征被抑制,精度会下降。RSEConv引入残差结构会缓解上述问题,提升文本检测效果。进一步将PP-OCRv2中CML的学生模型的FPN结构更新为RSE-FPN,学生模型的hmean可以进一步从84.3%提升到85.4%。

 V4:在主干为LCNetV3的基础上

  • PFHead:并行head分支融合结构

PFhead结构如下图所示,PFHead在经过第一个转置卷积后,分别进行上采样和转置卷积,上采样的输出通过3x3卷积得到输出结果,然后和转置卷积的分支的结果级联并经过1x1卷积层,最后1x1卷积的结果和转置卷积的结果相加得到最后输出的概率图。之后和DBHeaH中 threshold_maps, binary_maps进行concat.

PaddleOCR/ppocr/modeling/heads/det_db_head.py at v2.7.5 · PaddlePaddle/PaddleOCR · GitHub

PP-OCRv4学生检测模型使用PFhead,hmean从76.22%增加到76.97%。

模型调整(剪枝、量化、知识蒸馏)

  • v1: 裁剪滤波器的方法FPGM

PGM将 卷积层中的每个滤波器都作为欧几里德空间中的一个点,它引入了几何中位数这样一个概念,即与所有采样点距离之和最小的点。如果一个滤波器的接近这个几何中位数,那我们可以认为这个滤波器的信息和其他滤波器重合,可以去掉。 FPGM与基于范数的裁剪算法的对比如下图所示。

PaddleSlim/docs/zh_cn/api_cn/dygraph/pruners/fpgm_filter_pruner.rst at release/2.0.0 · PaddlePaddle/PaddleSlim · GitHub

  • v2: CML知识蒸馏策略

知识蒸馏的方法在部署中非常常用,通过使用大模型指导小模型学习的方式,在通常情况下可以使得小模型 在预测耗时不变的情况下,精度得到进一步的提升,从而进一步提升实际部署的体验。 标准的蒸馏方法是通过一个大模型作为 Teacher 模型来指导 Student 模型提升效果,而后来又发展出 DML 互 学习蒸馏方法,即通过两个结构相同的模型互相学习,相比于前者,DML 脱离了对大的 Teacher 模型的依赖, 蒸馏训练的流程更加简单,模型产出效率也要更高一些。 PP-OCRv2 文字检测模型中使用的是三个模型之间的 CML (Collaborative Mutual Learning) 协同互蒸馏方法,既 包含两个相同结构的 Student 模型之间互学习,同时还引入了较大模型结构的 Teacher 模型。

  • v3:DML:教师模型互学习策略

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

  • v4:CML:添加Student和Teacher网络输出的KL div loss

PP-OCRv4检测模型对PP-OCRv3中的CML(Collaborative Mutual Learning) 协同互学习文本检测蒸馏策略进行了优化。在计算Student Model和Teacher Model的distill Loss时,额外添加KL div loss,让两者输出的response maps分布接近,由此进一步提升Student网络的精度,检测Hmean从79.08%增加到79.56%,端到端指标从61.31%增加到61.87%。

损失函数

Ls 是概率map的loss,Lb 是二值map的loss,均使用二值交叉熵loss(BCE),为了解决正负样本不均衡问题,使用hard negative mining, α和β分别设置为1.0和10 .

 

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值