034、YOLOv11检测头Transformer化——Transformer Decoder风格检测头替换解耦头的代码实现与性能对比
2026/8/4 21:50:33 网站建设 项目流程

034、YOLOv11检测头Transformer化——Transformer Decoder风格检测头替换解耦头的代码实现与性能对比

一个让我失眠三天的bug

上个月做无人机视角的小目标检测,YOLOv11s baseline在VisDrone上mAP卡在27.3%死活上不去。我盯着TensorBoard里那些模糊的预测框,突然意识到问题可能不在backbone,而在检测头——解耦头虽然快,但对小目标的上下文建模能力太弱了。当时脑子里冒出一个念头:如果把检测头换成Transformer Decoder结构,让每个预测位置都能看到全局特征,会不会有突破?

这个想法让我兴奋了一整夜,但第二天实现时就被现实狠狠打脸——训练直接炸了,loss变成NaN,梯度爆炸得比马斯克的火箭还猛。后来花了三天排查,发现是Decoder的cross-attention初始化有问题,加上位置编码没处理好。今天就把这个坑填平,把完整的实现方案和踩过的雷都写出来。

为什么解耦头不够用了

YOLOv11的解耦头本质上是两个并行的卷积分支,一个做分类一个做回归。这种设计在COCO这种通用场景下表现不错,但遇到遮挡严重、尺度变化大的场景就露怯了——每个特征点只能看到局部感受野,缺乏全局上下文。Transformer Decoder的self-attention天然具备全局建模能力,而且通过cross-attention还能动态地从特征图中“查询”目标信息,这比固定卷积核灵活得多。

我选择的方案是:保留YOLOv11的bac

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询