一、本文介绍
本文记录的是基于NWD的YOLOv11的损失函数改进方法研究。目前的IoU-Loss在一些情况下不能提供梯度来优化网络,例如当预测边界框P和真实边界框G没有重叠(即$|P \cap G| = 0$),或者P完全包含G或反之(即$|P \cap G| = P$或G),而这两种情况在微小物体检测中非常常见。CIoU
和DIoU
虽然能处理上述两种情况,但它们基于IoU,对微小物体的位置偏差很敏感。而==本文的改进方法能够使模型解决这些问题,实现对小目标的精确检测==。
专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:YOLOv11改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!
二、NWD设计原理
NWD损失函数
设计的原理及优势如下:
2.1 NWD计算原理
- 首先将边界框建模为二维高斯分布,对于两个二维高斯分布$mu_1 = N(m_1, \sum_1)$和$\mu_2 = N(m_2, \sum_2)$,其二阶Wasserstein距离定义为:$W_2^2(\mu_1, \mu_2) = \parallel m_1 - m_2\parallel_2^2 + Tr(\sum_1 + \sum_2 - 2(\sum_2^{\frac{1}{2}}\sum_1\sum_2^{\frac{1}{2}})^{\frac{1}{2}})$,可简化为:$W_2^2(\mu_1, \mu_2) = \parallel m_1 - m_2\parallel_2^2 + \parallel \sum_1^{\frac{1}{2}} - \sum_2^{\frac{1}{2}}\parallel_F^2$。
- 对于从边界框A = $(c x_a, c y_a, w_a, h_a)$和B = $(c x_b, c y_b, w_b, h_b)$建模的高斯分布$N_a$和$N_b$,可进一步简化为:$W_2^2(\mathcal{N}_a, \mathcal{N}_b) = \parallel ([c x_a, c y_a, \frac{w_a}{2}, \frac{h_a}{2}]^T, [c x_b, c y_b, \frac{w_b}{2}, \frac{h_b}{2}]^T)\parallel_2^2$。
- $W_2^2(\mathcal{N}_a, \mathcal{N}_b)$是距离度量,不能直接用作相似度量(即像IoU一样的值在0和1之间),所以使用其指数形式归一化,得到新的度量NWD:$NWD(\mathcal{N}_a, \mathcal{N}_b) = exp(-\frac{\sqrt{W_2^2(\mathcal{N}_a, \mathcal{N}_b)}}{C})$,其中C是一个与数据集密切相关的常数,在实验中经验性地设置为AI - TOD的平均绝对大小,并取得了最佳性能,且在一定范围内是稳健的。
NWD损失函数
设计为:$\mathcal{L}_{NWD} = 1 - NWD(\mathcal{N}_p, \mathcal{N}_g)$,其中$N_p$是预测框P的高斯分布模型,$N_g$是真实边界框G的高斯分布模型。
2.2 NWD优势
- 尺度不变性:与IoU相比,
NWD
对边界框的尺度变化不敏感,更适合测量微小物体之间的相似性。 - 对位置偏差的平滑性:IoU对微小物体的位置偏差过于敏感,而
NWD
因位置偏差产生的变化更平滑,这表明在相同阈值下,NWD
有可能比IoU更好地区分正/负样本。 - 能测量非重叠或相互包含边界框的相似性:即使边界框没有重叠或重叠可忽略,
NWD
也能测量它们之间的分布相似性。 - 提供梯度:根据上述介绍,
NWD损失函数
在$|P \cap G| = 0$和$P \cap G| = P$或G的情况下都能提供梯度。
论文:https://arxiv.org/pdf/2110.13389
源码:https://github.com/jwwangchn/NWD
三、实现代码及YOLOv11修改步骤
模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址: