论文《NWD》和YOLOv8中的实现提升小目标检测A Normalized Gaussian Wasserstein Distance for Tiny Object Detection

论文主要针对微小目标的优化,作者提出IOU指标对于微小物体的位置偏差非常敏感,anchor-based检测器会恶化检测性能。作者提出一种使用Wasserstein距离(NWD)评估微小物体检测
首先将边界框建模为2D高斯分布
归一化NWD,相应的计算高斯分布之间的相似性

重点内容

为什么IOU对微小物体很敏感

在这里插入图片描述

  • 看一张图:一个网格代表一像素,A代表真实边界框,B,C表示1和4个像素的对角线偏差的预测框
  • 看两张图:可以看出大目标和小目标对比相同的偏差其IOU差别36x36的目标从0.95->0.65而6x6的目标从0.53->0.06
  • 确实证实了IOU对小目标更加敏感
  • 作者还提出了另一个原因:IoU 的敏感性源于边界框位置只能离散变化的特殊性,简单说就是边界框的位置只能离散变化,而这种离散变化(尤其是微小的位移)可能导致IoU值出现较大的变化。因此在目标检测任务中,IoU可能表现出较强的敏感性。

作者方法对比现有方法

  • 首先作者方法对不同尺寸物体都不敏感,因此适合测量微小物体之间的相似性
  • NWD不仅可以替代标签分配中的IoU,还可以替代非极大值抑制(NMS)和回归损失函数中的IoU

什么是标签分配中的IoU:标签分配的目的是为训练过程中的每个预测框确定正确的目标类别,并进行回归以逼近真实框的位置。这一过程通常包括以下几个步骤:计算预测框与真实框的IoU,如果一个预测框的IoU值高于某个阈值(比如0.5),通常就认为这个预测框与该真实框匹配,并将该框的标签分配给预测框。如果IoU值较低,那么该预测框可能被视为背景。可划分为正负样本

  • GWD 的动机是解决定向目标检测中的边界不连续性和类正方形问题。 作者的动机是减轻 IoU 对微小物体位置偏差的敏感性,这里可能作者的一些灵感来源于GWD

GWD是OBB旋转目标检测中面对类正方形目标提出的iou优化方法

在这里插入图片描述

  • 横坐标代表A和B中心点之间像素偏差
  • 纵坐标表示对应的度量值
  • 从图中可以发现NWD对比IOU更加平缓

结果对比

在这里插入图片描述
在这里插入图片描述

  • 第一行代表IOU,第二行代表NWD
  • 绿色、蓝色、红色分别表示TP、FP、FN

具体实现

源码地址:论文实现
iou loss
YoloV8中实现NWD方法:

def wasserstein_loss(pred, target, eps=1e-7, constant=12.8):
    Args:
        pred (Tensor): Predicted bboxes of format (x_min, y_min, x_max, y_max),
            shape (n, 4).
        target (Tensor): Corresponding gt bboxes, shape (n, 4).
        eps (float): Eps to avoid log(0).

    b1_x1, b1_y1, b1_x2, b1_y2 = pred.chunk(4, -1)
    b2_x1, b2_y1, b2_x2, b2_y2 = target.chunk(4, -1)
    w1, h1 = b1_x2 - b1_x1, b1_y2 - b1_y1 + eps
    w2, h2 = b2_x2 - b2_x1, b2_y2 - b2_y1 + eps
    
    b1_x_center, b1_y_center = b1_x1 + w1 / 2, b1_y1 + h1 / 2
    b2_x_center, b2_y_center = b2_x1 + w2 / 2, b2_y1 + h2 / 2
    center_distance = (b1_x_center - b2_x_center) ** 2 + (b1_y_center - b2_y_center) ** 2 + eps
    wh_distance = ((w1 - w2) ** 2 + (h1 - h2) ** 2) / 4

    wasserstein_2 = center_distance + wh_distance
    return torch.exp(-torch.sqrt(wasserstein_2) / constant)

总结

代码参考github

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值