三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

065、YOLOv11改进-SlimNeck轻量级Neck设计即插即用参数量与mAP权衡实验

065、YOLOv11改进-SlimNeck轻量级Neck设计即插即用参数量与mAP权衡实验

065、YOLOv11改进-SlimNeck轻量级Neck设计即插即用参数量与mAP权衡实验

上周调一个边缘部署的检测模型,客户要求参数量控制在3M以内,mAP还不能掉太多。YOLOv11n跑下来参数量2.8M,勉强达标,但mAP只有37.2,客户说“再提两个点”。我试了加C2f模块,参数量直接飙到3.4M,被砍了。后来翻到一篇轻量级Neck设计的论文,把SlimNeck塞进去试了试,参数量2.9M,mAP到了38.7。这个模块值得单独拿出来聊聊。

为什么Neck会成为瓶颈

YOLOv11的Neck部分沿用了CSPNet的设计思路,用C2f做特征融合。这个结构在参数量和计算量上其实有冗余——每个C2f里都塞了多个Bottleneck,特征图在通道维度上反复压缩再扩张。对于大模型来说这是好事,能学到更丰富的语义信息。但轻量级场景下,这些冗余直接变成了参数量爆炸的导火索。

我踩过一个坑:在YOLOv11n的Neck里直接堆C2f,参数量从2.8M涨到3.5M,mAP只涨了0.3。这个性价比太低了。SlimNeck的思路很直接——用深度可分离卷积替代标准卷积,同时调整特征融合路径,减少不必要的通道变换。

SlimNeck的核心设计

SlimNeck不是凭空造出来的结构,它基于两个观察:一是Neck中的特征图分辨率已经比较低(P3/P4/P5),通道数却很大,这时候用标准卷积做融合太奢侈;二是FPN+PAN的结构里,上采样和下采样路径存在重复计算。

具体实现上,SlimNeck做了三件事:<

← 返回列表