080、DCNv2 插入 Neck 的 P3 和 P4 层:对多尺度目标形状变化的鲁棒性测试
一、从一次真实调试说起
上个月做智慧交通项目,摄像头架在立交桥下,车流密集。白天还好,一到傍晚,那些斜着停的共享单车、被风吹歪的锥桶、还有从侧面拍到的公交车——YOLOv11 baseline 在 P3 和 P4 层上的检测框开始飘。不是漏检,是框的形状完全不对,尤其是长宽比异常的目标,比如横着停的电动车(宽高比 3:1 以上),模型直接给框成正方形。
我盯着 TensorBoard 里的 feature map 看了半天,发现 P3 和 P4 层的感受野虽然覆盖了多尺度,但卷积核的采样点全是固定的网格。目标一旦发生非刚性形变(比如被压扁的纸箱、扭曲的横幅),固定采样点根本抓不住边缘信息。这时候我想到了 DCNv2——可变形卷积 v2,它不光能学偏移,还能学每个采样点的权重,相当于给卷积核装上了“可调节的触手”。
二、DCNv2 的核心:别把它当普通卷积
DCNv2 和普通 Conv2d 最大的区别在于:它多了一个 offset 分支和一个 modulation 分支。offset 分支输出每个采样点的 (x, y) 偏移量,modulation 分支输出 0~1 之间的权重系数。这两个分支的输入都是当前层的 feature map,通过一个额外的 3x3 卷积(注意这里踩过坑:这个卷积的 kernel size 必须和主卷积一致,否则 offset 的维度会错位)来生成。
<
订阅专栏 解锁全文

198

被折叠的 条评论
为什么被折叠?



