33 YOLOv11损失函数魔改:用Focal-EIoU解决密集遮挡场景下的定位漂移开篇先跟你讲个真实故事。上个月我帮一家安防公司优化他们的交通监控模型,场景是十字路口的车流检测。训练集里车辆稀疏的时候,mAP能到0.78,可一到早晚高峰,车辆密集排队时,mAP直接掉到0.52。更离谱的是,很多车的预测框会“漂移”——明明车头朝东,预测框却歪到隔壁车道去了。我一看训练日志,损失曲线在密集场景下剧烈震荡,尤其是CIoU loss的数值波动特别大。问题出在哪?CIoU虽然考虑了宽高比,但在大量目标互相遮挡时,它的惩罚机制反而让模型“顾此失彼”——为了匹配宽高比,牺牲了定位精度。痛点拆解:为什么CIoU在密集场景下会失效?先看一个常见的错误认知:很多人觉得CIoU已经考虑了重叠面积、中心点距离和宽高比,应该够用了。但实际在密集遮挡场景,问题出在CIoU的宽高比惩罚项上。CIoU的惩罚项长这样:R_CIoU = ρ²(b, b_gt) / c² + αv其中v是宽高比一致性度量,α是平衡系数。问题在于:当两个目标的宽高比相似但实际尺寸差异很大时,这个惩罚项会给出几乎相同的值。比如一个轿车和一个SUV,宽高比相近,但尺寸差了一倍,CIoU的惩罚却差不多,导致模型对尺寸不敏感。来看一个反例代码,展示CIoU在密集场景下的问题: