RT-DETR改进策略【损失函数篇】| NWD损失函数,提高小目标检测精度

简介: RT-DETR改进策略【损失函数篇】| NWD损失函数,提高小目标检测精度

一、本文介绍

本文记录的是基于NWD的RT-DETR的损失函数改进方法研究。目前的IoU-Loss在一些情况下不能提供梯度来优化网络,例如当预测边界框P和真实边界框G没有重叠(即$|P \cap G| = 0$),或者P完全包含G或反之(即$|P \cap G| = P$或G),而这两种情况在微小物体检测中非常常见。CIoUDIoU虽然能处理上述两种情况,但它们基于IoU,对微小物体的位置偏差很敏感。而==本文的改进方法能够使模型解决这些问题,实现对小目标的精确检测==。


专栏目录:RT-DETR改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:RT-DETR改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!

二、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


三、实现代码及RT-DETR修改步骤

模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址:

https://blog.csdn.net/qq_42591591/article/details/143741128

相关文章
|
11月前
|
机器学习/深度学习
RT-DETR改进策略【损失函数篇】| 替换激活函数为Mish、PReLU、Hardswish、LeakyReLU、ReLU6
RT-DETR改进策略【损失函数篇】| 替换激活函数为Mish、PReLU、Hardswish、LeakyReLU、ReLU6
525 2
RT-DETR改进策略【损失函数篇】| 替换激活函数为Mish、PReLU、Hardswish、LeakyReLU、ReLU6
|
机器学习/深度学习 编解码 IDE
用于低分辨率图像和小物体的新 CNN 模块SPD-Conv
用于低分辨率图像和小物体的新 CNN 模块SPD-Conv
用于低分辨率图像和小物体的新 CNN 模块SPD-Conv
|
11月前
|
人工智能 计算机视觉
YOLOv11改进策略【损失函数篇】| NWD损失函数,提高小目标检测精度
YOLOv11改进策略【损失函数篇】| NWD损失函数,提高小目标检测精度
1539 6
YOLOv11改进策略【损失函数篇】| NWD损失函数,提高小目标检测精度
|
11月前
RT-DETR改进策略【损失函数篇】| 通过辅助边界框计算IoU提升检测效果(Inner_GIoU、Inner_DIoU、Inner_CIoU、Inner_EIoU、Inner_SIoU)
RT-DETR改进策略【损失函数篇】| 通过辅助边界框计算IoU提升检测效果(Inner_GIoU、Inner_DIoU、Inner_CIoU、Inner_EIoU、Inner_SIoU)
630 0
RT-DETR改进策略【损失函数篇】| 通过辅助边界框计算IoU提升检测效果(Inner_GIoU、Inner_DIoU、Inner_CIoU、Inner_EIoU、Inner_SIoU)
|
11月前
|
关系型数据库 决策智能
RT-DETR改进策略【损失函数篇】| Slide Loss,解决简单样本和困难样本之间的不平衡问题
RT-DETR改进策略【损失函数篇】| Slide Loss,解决简单样本和困难样本之间的不平衡问题
527 3
RT-DETR改进策略【损失函数篇】| Slide Loss,解决简单样本和困难样本之间的不平衡问题
|
11月前
|
Serverless 计算机视觉
YOLOv11改进策略【小目标改进】| Shape-NWD:融合改进,结合Shape-IoU和NWD 更好地适应小目标特性
YOLOv11改进策略【小目标改进】| Shape-NWD:融合改进,结合Shape-IoU和NWD 更好地适应小目标特性
1960 9
|
11月前
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制
RT-DETR改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制
953 10
RT-DETR改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制
|
计算机视觉
YOLOv11改进策略【SPPF】| AIFI : 基于Transformer的尺度内特征交互,在降低计算成本的同时提高模型的性能
本文探讨了基于AIFI模块的YOLOv11目标检测改进方法。AIFI是RT-DETR中高效混合编码器的一部分,通过在S5特征层上应用单尺度Transformer编码器,减少计算成本并增强概念实体间的联系,从而提升对象定位和识别效果。实验表明,AIFI使模型延迟降低35%,准确性提高0.4%。
1453 20
YOLOv11改进策略【SPPF】| AIFI : 基于Transformer的尺度内特征交互,在降低计算成本的同时提高模型的性能
|
11月前
|
机器学习/深度学习 PyTorch TensorFlow
RT-DETR改进策略【卷积层】| SPD-Conv 针对小目标和低分辨率图像的检测任务
RT-DETR改进策略【卷积层】| SPD-Conv 针对小目标和低分辨率图像的检测任务
683 11
RT-DETR改进策略【卷积层】| SPD-Conv 针对小目标和低分辨率图像的检测任务
|
11月前
|
机器学习/深度学习 计算机视觉 网络架构
RT-DETR改进策略【Backbone/主干网络】| CVPR 2024替换骨干网络为 UniRepLKNet,解决大核 ConvNets 难题
RT-DETR改进策略【Backbone/主干网络】| CVPR 2024替换骨干网络为 UniRepLKNet,解决大核 ConvNets 难题
834 12
RT-DETR改进策略【Backbone/主干网络】| CVPR 2024替换骨干网络为 UniRepLKNet,解决大核 ConvNets 难题