YOLOv11的Small Object Aware STAL标签分配源码剖析 从TAL到STAL,揭秘YOLO系列小目标检测精度跃升的底层密码前言:一次让我失眠的调优经历去年冬天,我在调一个电力巡检场景的YOLOv11检测模型时遇到了一个令人崩溃的问题——绝缘子上的细小裂缝(目标尺寸大约只有8×6像素)几乎全部漏检。换backbone、调学习率、堆数据增强,能试的都试了,mAP@50:95死死卡在47.3%纹丝不动。凌晨两点,我盯着终端上那串冰冷的数字,差点把咖啡泼到键盘上。直到我鬼使神差地翻开ultralytics/utils/tal.py的源码——好家伙,默认的TaskAlignedAssigner在YOLOv11里居然还沿用着v8的静态top-k策略,小目标在IoU匹配中全面落败,正负样本比例严重失衡。那次之后,我花了整整两周,把YOLOv11的标签分配机制从头到尾撸了一遍。今天这篇文章,就是那次踩坑之旅的完整记录。一、问题:为什么YOLOv11的小目标总是被“吃掉”?1.1 小目标检测的“正样本饥饿”困境在深入源码之前,我们先要理解一个根本性问题:为什么小目标在YOLOv11的默认标签分配中总是处于劣势?微小目标在几何属性上具有天然劣势。一个6×6像素的目标,如果预测框偏移1-2个像素,IoU就可能从0.5骤降到0.1

本周精选

本月热点