尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

YOLOv8损失函数改进:Wise-IoU替换CIoU涨点实战与原理

YOLOv8损失函数改进:Wise-IoU替换CIoU涨点实战与原理 简介目标检测任务中损失函数直接决定模型回归头的收敛方向是影响精度上限的关键设计之一。常见的IoU系列损失如GIoU、DIoU、CIoU等各自在几何度量上做出不同约束但CIoU过度依赖宽高比惩罚项对尺寸差异和困难样本不敏感容易在训练中后期被低质量框干扰。Wise-IoUWIoU从距离注意力与动态非单调聚焦机制出发自适应调整每个预测框的梯度增益在保持收敛稳定的同时有效提升中难度样本的回归质量从而显著改善mAP50-95。该方案广泛适用于车牌检测、工业零件检测、小目标与遮挡场景仅需修改模型中的损失函数文件无需调整网络结构即可体验涨点。本文基于YOLOv8在CCPD2020数据集上的实测对比CIoU、GIoU、DIoU、SIoU、EIoU及WIoU v3的表现并给出可直接复现的修改步骤与常见问题处理适合已能跑通训练、希望低成本优化模型精度读者参考。 YOLOv8出来之后各种改进里最好上手、涨点又稳的操作就是动bbox loss。我最近把默认的CIoU换成了Wise-IoUWIoU在CCPD2020车牌检测数据集上mAP50-95从0.734涨到0.751还没专门调参。我把改动步骤、代码位置、踩过的坑全部整理出来顺便把EIoU、GIoU、DIoU、SIoU的切换方法一并解决。已经会用YOLOv8跑通训练但想涨点、又不想大改模型结构的人可以直接照着抄。如果你只是想找个“低成本改进方案”换loss永远是性价比最高的一招改一个文件几乎不动模型结构不用重新设计C2f或者Head。而且这套逻辑可以平移到YOLOv5、YOLOv9、YOLOv10核心内容都一样。1. 先搞清楚YOLOv8默认的CIoU到底哪里不行1.1 CIoU的宽高比惩罚项为什么会捣乱YOLOv8默认用的是CIoU Loss也就是Complete IoU Loss。它在DIoU的基础上加了一个长宽比惩罚项目的是让预测框和真实框的宽高比也能对齐。这个思路听起来没问题但实际训练时它是会“捣乱”的。CIoU的宽高比惩罚项v公式是v (4 / math.pi ** 2) * (atan(w_gt / h_gt) - atan(w_pred / h_pred)) ** 2。问题在于v对预测框宽度和高度的偏导数符号相反假设预测框某一轮迭代后宽度变大了一点、高度变小了一点宽高比可能正好不变或者变化很小v的梯度方向就乱了。这在训练初期尤其致命因为预测框还在乱飘v经常给出一个与整体收敛方向不一致的梯度拉慢训练节奏。另一个更让人无语的地方是当预测框和真实框的宽高比很接近时v的值会非常小但两个框的大小可能差很多。比如一个100x200的框和一个10x20的框宽高比完全一样v几乎等于0但它们的尺寸差异明摆着CIoU却认为这两个框已经“形状一致”了惩罚等于没加。也就是说CIoU对尺寸差异不敏感只在宽高比差异明显时才有反馈。还有一个被很多人忽略的问题CIoU把所有预测框都一视同仁无论这个框是清晰可见的普通目标还是被遮挡、模糊、标注质量差到离谱的困难样本惩罚力度完全一样。训练到中后期模型很容易被那几个永远学不会的低质量框带偏整体泛化能力下降。我在自己的数据集上对比过CIoU确实暴露出这类问题尤其是数据里有大量小目标和遮挡场景时更明显。1.2 Wise-IoU的核心动态非单调聚焦Wise-IoU简称WIoU没有继续折腾宽高比它把重点放在了两件事上一个是用“距离注意力”替代复杂的几何惩罚另一个是用“动态非单调聚焦机制”调节每个框对loss的贡献。先说距离注意力。WIoU把预测框中心与目标框中心的距离通过指数函数映射成一个加权系数R距离越远、惩罚越大同时用最小外接框的宽高做归一化避免引入额外的尺度敏感。这个思路和DIoU有点像但表达方式不同不搞复杂的宽高比推导直接用指数加权把“离得远”的样本压下去训练初期收敛更快。再说动态非单调聚焦机制。这里我拿Focal Loss做类比就好理解了。Focal Loss用一个固定调制因子去降低简单样本的权重但WIoU不是固定的它维护一个滑动平均的均值loss用它来衡量当前每个框的“离群程度”beta。当某个预测框的loss远大于均值时说明这个框很可能是低质量样本模型给它的梯度增益r会自动调小当loss离均值不远时r接近最大模型会重点优化这些“普通质量”的样本。这个机制每轮都在变因为均值在变、每个框的loss也在变所以叫“动态非单调”。我自己的理解是WIoU其实是在给模型加一个“注意力筛选器”让训练过程不被极端样本绑架。它不追求在所有数据集上都大幅涨点但通常能把中难度样本的回归精度拉上去这部分正是mAP50-95最容易提升的区间。1.3 我的实测涨幅到底算不算“幸福涨点”我在CCPD2020车牌检测数据集上做了对比实验训练集6000张、验证集2000张使用YOLOv8s输入尺寸640x640batch size16训练300个epoch优化器SGD初始学习率0.01其余训练参数保持默认。Loss类型mAP50mAP50-95相对CIoU提升CIoU原版0.8910.734-GIoU0.8840.727-0.007DIoU0.8890.730-0.004SIoU0.8940.7400.006EIoU0.8970.7450.011WIoU v3scaleTrue0.9020.7510.017注意这是单次实验没做多折平均所以别把绝对数值当权威结论。但趋势很清楚GIoU和DIoU在这个数据集上甚至有一点掉点SIoU和EIoU属于正常小涨WIoU v3涨得最多。我后来又跑了几个自建的工业零件数据集mAP本文还有配套的精品资源点击获取
返回列表