一、本文介绍
本文记录的是利用PP-LCNet
中的DepSepConv模块
优化YOLOv11
中的C3k2
。本文利用DepSepConv模块
改善模型结构,使模型在几乎不增加延迟的情况下提升网络准确度。
模型 | 参数量 | 计算量 | 推理速度 |
---|---|---|---|
YOLOv11m | 20.0M | 67.6GFLOPs | 3.5ms |
Improved | 17.4M | 55.5GFLOPs | 2.7ms |
专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:YOLOv11改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!
二、PP-LCNet介绍
PP-LCNet
:一个轻量级的CPU卷积神经网络
2.1 PP-LCNet结构设计
2.1.1 特点
论文中总结了一系列在不增加推理时间的情况下提高精度的方法,并结合这些方法实现了精度和速度的更好平衡。基于此提出了设计轻量级CNN的一些通用规则。
2.1.2 模块原理
基本块:使用
MobileNetV1
中提到的DepthSepConv
作为基本块,该模块不会增加模型的推理速度和额外的操作,且已被英特尔CPU加速库深度优化,推理速度可超越其他轻量级块。激活函数:将
BaseNet
中的激活函数从ReLU
替换为H-Swish
,大大提高了性能,同时推理时间几乎不变。SE模块:
SE模块
有助于对网络通道进行加权以获得更好的特征,但在英特尔CPU上会增加推理时间。通过实验发现,将SE模块添加到网络尾部附近的块中,可以发挥更好的作用,实现更好的精度 - 速度平衡。卷积核大小:实验发现,在网络尾部用5×5卷积核替换3×3卷积核,可以在低延迟和高准确性的情况下达到替换几乎所有层的效果,因此只在尾部进行此替换操作。
1×1卷积层:在
GAP
后的网络输出维度较小,直接添加最终分类层会丢失特征的组合。为了给网络更强的拟合能力,在最终GAP层
后添加了一个1280维大小的1×1卷积(相当于FC层),可以在几乎不增加推理时间的情况下让模型存储更多信息。
论文:https://arxiv.org/pdf/2109.15099.pdf
源码:https://github.com/PaddlePaddle/PaddleClas
三、实现代码及YOLOv11修改步骤
模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址: