143、CIoU 到 EIoU 的替换实验:在不同尺度 YOLOv11(n/s/m/l)上的精度变化

143、CIoU 到 EIoU 的替换实验:在不同尺度 YOLOv11(n/s/m/l)上的精度变化
143、CIoU 到 EIoU 的替换实验:在不同尺度 YOLOv11(n/s/m/l)上的精度变化一、从一次线上事故说起去年双十一大促前夜,我负责的工业质检模型突然在产线上出现大量漏检——小目标螺丝钉的召回率从0.92暴跌到0.78。排查了三天,最后发现是CIoU损失函数在训练小目标时,宽高比惩罚项把梯度带偏了。当时我盯着TensorBoard里那条诡异的loss曲线,突然意识到:CIoU的v项(宽高比一致性)在小目标上就是个定时炸弹。那次事故后,我花了两个月时间,在YOLOv11的四个尺度版本(n/s/m/l)上系统对比了CIoU和EIoU的表现。今天这篇笔记,就是那次事故的完整复盘,包含踩坑记录和可复现的代码。二、CIoU的致命缺陷:小目标上的宽高比陷阱先看CIoU的公式:CIoU = IoU - (ρ²(b, bgt) / c²) - αv其中v = (4/π²) * (arctan(w/h) - arctan(wgt/hgt))²,α是平衡系数。问题出在v的梯度计算上。当目标很小(比如10x10像素),宽高比稍微偏差一点,v的梯度就会剧烈震荡。更坑的是,α在IoU接近0时会被放大,导致小目标训练初期梯度爆炸。我做过一个极端测试:在YOLOv11n上训练COCO小目标子集(面积32²),CIoU的loss在epoch 3-5时出现NaN,换成EIoU后全程稳定。EIoU的改进很直