116、P2 小目标检测层添加:高分辨率特征图、Anchor 重聚类与 Loss 权重调整全套代码 116、P2 小目标检测层添加:高分辨率特征图、Anchor 重聚类与 Loss 权重调整全套代码从一次深夜调试说起凌晨两点,我盯着TensorBoard上那条死活不降的mAP曲线,咖啡已经凉透了。项目是无人机航拍图像检测,目标小到只有十几个像素——停车场里的车牌、农田里的害虫、监控画面里远处的人脸。YOLOv11默认的P3-P5输出层,下采样倍数分别是8、16、32,对于这些小目标来说,特征图分辨率根本不够用。我试过直接插值放大,试过在Neck里加转置卷积,效果都像隔靴搔痒。直到我翻出YOLOv5时代的老笔记,看到当时给P2层加检测头的方案,才意识到问题出在哪:不是特征图不够大,而是整个检测头的设计逻辑——Anchor尺寸、Loss权重、特征对齐——都需要跟着变。今天这篇笔记,就是那次调试后沉淀下来的完整方案,代码可以直接跑,注释里写满了踩过的坑。为什么P2层能救小目标YOLOv11的Backbone输出四个尺度的特征图:P2(1/4下采样)、P3(1/8)、P4(1/16)、P5(1/32)。默认检测头只用了P3-P5,P2被当作“浅层特征”扔给了Neck做融合。但P2层的感受野只有4个像素,对于16x16像素以下的目标,这是唯一能保留完整空间信息的特征层。我做过一个极端测试:在VisDrone数据集上,目标面积小于32x32像素的样本占60%以上。只用P3-P5时,这些小目标的召回率不到15%。加上P2检测头后,召回率直接跳到42%。代价是计算量增加了约18%,