CPU端超快backbone---PP-LCNetV1/PP-LCNetV2

最近在看ppocrv4相关的代码,看到里面运用了一种高效的backbone---PP-LCNet,目前这个模型有3个版本,V3网上没有相关解析也没有论文,我粗略查看了一下源码,运用的方法大致跟V2差不多,所以我在这里只解析V1和V2

PP-LCNetV1

PP-LCNetV1 的结构非常简单,以至于我们模型设计常用的跳跃连接都不使用,其结构主要由深度可分离卷积组成(深度卷积+逐点卷积),并结合SE通道注意力机制进行特征提取,不过SE模块做了一些加速处理,以提高在CPU端的计算效率,具体来说就是减少了全连接的层数,使用h-swish来近似代替复杂度更高的-sigmoid。V1的整体结构如下图所示。


PP-LCNetV1.png

可以看到V1 基本不用我们模型设计里的一些技巧操作,如拼接concat或逐元素elementwise-add相加,这些操作不仅会降低模型的推理速度,而且在小型模型上也不会提高准确度。由于整体结构相当简单,作者估计也担心精度太差,所以标配hard-switch激活函数。

PP-LCNetV2

V2在V1的基础上增加了当下较为流行的技巧---重参数化,整体结构如下图所示。


PP-LCNetV2.png

可以看到V2并不是所有block都用重参数,只用在最后2个Block,同时在最后一个block增加了残差连接,以及全系激活函数换回了relu,理由是有很大一部分硬件设施对于h-swish的加速不理想,虽然精度有提高,但速度下降很大,有点得不偿失。其中重参数模块中使用了多尺度卷积核,用于提取不同感受野的特征信息。
重参数.png

整体 PP-LCNet系列结构上的创新不大,主要是小修小改,瞄准点是速度快然后精度也不差,适用于CPU端模型的设计,如果是GPU端的话我比较推荐百度的HGNet系列模型。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容