PaddleOCR字符检测中对DBNet的优化论文解读(原创)(PP-OCR: A Practical Ultra Lightweight OCR System)

概览

源码:https://github.com/PaddlePaddle/PaddleOCR/tree/release/2.6.1

  • PaddleOCR引入一系列策略来增强模型能力或减小模型尺寸。
  • 本文只对检测部分进行分享,其他部分后续补充。

DBNet优化策略

Light Backbone

  1. backbone 对文本检测器的模型大小有显著影响。应选择轻骨架。MobileNetV1、MobileNetV2、MobileNetV3和ShuffleNetV2系列通常被用作轻主干。
  2. 主干网络来源https://github.com/PaddlePaddle/PaddleClas/
  3. MobileNetV3在推理时间和精度上都有较好的表现,百度选择了 MobileNetV3_large_x0.5,作为精度和效率的权衡。
    来源:paddleocr
  • 这里没有对比原文的Res18感觉还是很难直观的感受到差异。算是一点小吐槽

Light Head

  • 文本检测器的头部在对象检测方面与FPN (Lin et al. 2017)架构相似,并融合了不同尺度的特征图,以提高小文本区域检测的效果。
  • 为了便于合并不同分辨率的特征图,通常采用1 × 1卷积将特征图减少到相同的通道数(称为inner_channels)。
  • 该概率图和阈值图由融合后的特征图和卷积生成,卷积也与上述inner_channels相关。因此,inner_channels对模型尺寸有很大的影响。当inner_channels从256减少到96时,模型尺寸从7M减少到4.1M,但精度略有下降。(实际代码中好像并不全使用了这个策略)

Remove SE

SE是 Squeeze-and-excitation networks提出的
来源:paddleocr

  • SE块显式地对通道之间的相互依赖关系进行建模,并自适应地重新校准通道特征响应。
  • MobileNetV3的搜索空间中包含了SE块,并且有大量的SE块在MobileNetV3体系结构中。然而,当输入分辨率较大时,如640×640时,很难用SE块估计通道特征响应。精度提高有限,但时间成本很高。当从主干中删除SE块时,模型尺寸从4.1M减小到2.5M,但精度没有影响。

Cosine Learning Rate Decay

  • 这里就是学习率的一些策略,现在的代码中基本都使用了各式各样的学习率策略,但是paddleocr实际代码中有一些配置文件并没有提供学习率的优化策略,所以也不是全部使用了这个优化。

Learning Rate Warm-up

  • 这个策略就是说一般情况下使用上面学习率衰减策略时会让学习率开始时较大,然后逐渐减小
  • 但是在训练过程开始时,使用过大的学习率可能会导致数值不稳定,建议使用较小的学习率。当训练过程稳定时,使用初始学习率。

FPGM Pruner

剪枝是提高神经网络模型推理效率的另一种方法。为了避免模型剪枝导致的模型性能下降,我们使用FPGM(He et al.2019b)在原始模型中寻找不重要的子网络。FPGM以几何中值为准则,将卷积层中的每个滤波器看作欧氏空间中的一个点。然后计算这些点的几何中值,用类似的值重新移动过滤器,如下图所示。每层的压缩比对于修剪模型也很重要。统一修剪每一层通常会导致显著的性能下降。在PP-OCR中,根据(Li et al.2016)中的方法计算每层的修剪灵敏度,然后用于评估每层的冗余度。

FPGM论文:https://arxiv.org/pdf/1811.00250.pdf

FPGM项目地址:https://github.com/he-y/filter-pruning-geometric-median

PFEC论文:https://arxiv.org/abs/1608.08710

参考

https://www.cnblogs.com/dan-baishucaizi/p/14382263.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值