112、Slim-Neck 轻量化 Neck 的第一步:GSConv 替换 Neck 中的标准卷积

📅 2026/7/4 15:15:12
112、Slim-Neck 轻量化 Neck 的第一步:GSConv 替换 Neck 中的标准卷积
112、Slim-Neck 轻量化 Neck 的第一步:GSConv 替换 Neck 中的标准卷积从一次深夜调试说起去年年底,我在给一个工业缺陷检测项目做模型压缩。客户要求模型在 Jetson Orin NX 上跑到 60 FPS,同时 mAP 不能掉超过 1 个点。YOLOv8 的 Neck 部分用了大量标准卷积,参数量占整个模型的 35% 左右。我试过剪枝、量化,效果都不理想——剪枝后精度掉得厉害,量化后边缘检测直接崩了。那天晚上我盯着 TensorBoard 上的 loss 曲线发呆,突然想起之前读过一篇关于 GSConv 的论文。GSConv 的设计思路很直接:用分组卷积和逐点卷积的组合来模拟标准卷积的输出,但计算量只有标准卷积的 60%-70%。我当时想,既然 Neck 是特征融合的关键路径,能不能只替换 Neck 里的卷积,保留 Backbone 不动?结果第二天跑完消融实验,mAP 掉了 0.3 个点,但参数量减少了 22%,推理速度提升了 18%。这个 trade-off 在工业场景下完全可接受。后来我把这个方案写进了 YOLOv11 的改进代码里,今天就把完整的实现步骤和踩坑记录分享出来。GSConv 的核心思想:别被名字唬住GSConv 全称是 Ghost Shuffle Convolution,本质上是一种轻量卷积结构。它的计算流程分三步:先用一个 1x1 逐点卷积降维(比如把输入通道从 256 降到 128)