100、C3k2_DBB:多样化分支块嵌入 C3k2 的多尺度多分支特征丰富方案
100、C3k2_DBB:多样化分支块嵌入 C3k2 的多尺度多分支特征丰富方案从一次深夜调试说起凌晨两点,我盯着 tensorboard 上那条死活上不去的 mAP 曲线,咖啡已经凉透了。当时正在做一个小目标检测项目——无人机视角下的行人检测,YOLOv11 的 baseline 在 VisDrone 上跑了 50 个 epoch,mAP@0.5 卡在 42.3% 死活不动。换 backbone、调学习率、加数据增强,能试的都试了,曲线像被焊死了一样。问题出在哪?我翻了一遍特征图可视化,发现 C3k2 模块输出的特征图在浅层和深层之间缺乏有效的多尺度交互。C3k2 本身是个不错的模块,但它的分支结构相对单一——两个分支都是标准卷积,特征表达能力有限。当时脑子里闪过一个念头:如果把 DBB(Diverse Branch Block)塞进 C3k2 的分支里,让每个分支都能提取不同尺度和感受野的特征,会不会打破这个僵局?结果证明这个想法是对的。替换后 mAP 直接跳了 2.1 个点,参数量只增加了 0.3M。今天就把这个 C3k2_DBB 的完整实现和踩坑记录分享出来。DBB 模块:为什么它能“白嫖”性能DBB 的核心思想很简单:训练时用多分支结构(1x1、3x3、avg pooling 等分支并行),推理时通过结构重参数化合并成单个 3x3 卷积。这样训练时享受多分支带来的丰富特征表达能力,推理时又不增加额外计算量。但直接套用 DBB 到 C3k2 里有个坑——C3k2 内部有两个并行的分支,如果两个