129、轻量化 Head 设计:用 Depthwise Conv 加 1×1 Conv 替代标准检测头卷积

📅 2026/7/6 5:33:35
129、轻量化 Head 设计:用 Depthwise Conv 加 1×1 Conv 替代标准检测头卷积
129、轻量化 Head 设计:用 Depthwise Conv 加 1乘1 Conv 替代标准检测头卷积从一次显存爆炸说起去年秋天调一个YOLOv11n的工业检测模型,输入分辨率压到640×640,batch size设到32,结果RTX 3090直接OOM。排查半天,发现检测头三个分支的卷积层占了将近40%的参数量。当时项目要求模型必须跑在Jetson Orin NX上,显存只有8G,还得同时跑前后处理。标准检测头里那三个独立的3×3卷积,每个输出通道256,三个分支加起来就是3×256×256×3×3 ≈ 1.77M参数——对于轻量级模型来说,这简直是显存黑洞。后来翻YOLOv6的代码,发现他们早就在用轻量化检测头了。核心思路很简单:把标准卷积拆成Depthwise Conv + Pointwise Conv(1×1 Conv)。Depthwise Conv负责空间特征提取,计算量只有标准卷积的1/9(3×3核情况下),1×1 Conv负责通道融合。组合起来参数量大约是标准卷积的1/3到1/4,而且精度损失通常可以控制在0.3 mAP以内。标准检测头到底哪里重先看一眼YOLOv11默认的检测头结构。每个尺度分支(P3/P4/P5)都有一个独立的卷积层,输入来自Neck输出的特征图,输出通道数通常是256(大模型)或128(小模型)。代码里大概是这样的: