073、YOLOv11改进-Inner-IoU损失函数即插即用涨点方案与对比实验
073、YOLOv11改进-Inner-IoU损失函数即插即用涨点方案与对比实验上周调一个工业缺陷检测模型,YOLOv11s在PCB板焊点数据集上跑了200轮,mAP@0.5:0.95卡在78.3%死活上不去。翻看验证集预测结果,发现大量漏检集中在焊点边缘区域——模型对边界框的回归精度明显不够,尤其是小目标焊点,预测框和真实框的IoU普遍在0.6以下徘徊。换了几种数据增强策略,效果微乎其微。后来翻到一篇关于Inner-IoU的论文,抱着试试看的心态把损失函数换了,同样的训练配置,mAP直接跳到80.1%。今天就把这个即插即用的改进方案拆开揉碎讲清楚。为什么CIoU在YOLOv11里不够用了YOLOv11默认用的CIoU损失,考虑了重叠面积、中心点距离和宽高比三个维度。按理说挺全面了,但实际调试中你会发现一个问题:CIoU对边界框的惩罚梯度在IoU接近0.5-0.7这个区间时特别平缓。这意味着当预测框已经大致框住目标但不够精确时,损失函数给的反向传播信号很弱,模型容易陷入局部最优。更致命的是,CIoU的宽高比惩罚项在实际计算中经常出现梯度爆炸——别问我怎么知道的,上周debug到凌晨三点,发现loss曲线突然跳变,最后定位到是宽高比项的分母接近零导致的。虽然YOLOv11源码里加了epsilon防除零,但数值稳定性依然堪忧。Inner-IoU的思路很直接:不再直接用完整边界框计算IoU,而是取边界框内部的一个“有效区域”来计算。这个有效区域通过一个缩放因子ratio控制,ratio1时相当于只关注目标的核心区域,ratio1时则扩大关注范围。