目标检测中回归损失函数(L1Loss,L2Loss,Smooth L1Loss,IOU,GIOU,DIOU,CIOU,EIOU,αIOU ,SIOU)

本文介绍了深度学习在目标检测任务中使用的各种损失函数,包括L1Loss、SmoothL1Loss、IoU系列(IoU、GIoU、DIoU、CIoU、EIoU、αIoU、SIOU、WIOU)以及它们的改进版,如FocalLoss的应用。这些损失函数旨在优化边界框的回归,提高预测精度,解决样本不平衡问题,并考虑了框的几何特性、距离和形状等因素。其中,Focal-EIoU和WIoU着重解决了低质量样本的影响,提高了模型的泛化性能。

L-norm Loss 系列

L1 Loss

  • 别称
    L1范数损失、最小绝对误差(LAD)、平均绝对值误差(MAE)
  • 计算公式
    loss ⁡ ( x , y ) = 1 n ∑ i = 1 n ∣ y i − f ( x i ) ∣ \operatorname{loss}(x, y)=\frac{1}{n} \sum_{i=1}^n\left|y_i-f\left(x_i\right)\right| loss(x,y)=n1i=1nyif(xi)
    其中 y i y_i yi是真实值, f ( x i ) f(x_i) f(xi)是预测值,n是样本点个数
  • 导数
    d L 1 ( x ) d x = { 1  if  x ≥ 0 − 1  otherwise  \frac{\mathrm{d} L_1(x)}{\mathrm{d} x}= \begin{cases}1 & \text { if } x \geq 0 \\ -1 & \text { otherwise }\end{cases} dxdL1(x)={ 11 if x0 otherwise 
  • 特性
    优点:无论对于什么样的输入值,都有着稳定的梯度,不会导致梯度爆炸问题,具有较为稳健性的解
    缺点:在中心点是折点,不能求导,梯度下降时要是恰好学习到w=0就没法接着进行了
    L 1 L_1 L1损失函数对 x 的导数为常数,训练后期,x 很小时,如果学习率不变,损失函数会在稳定值附近波动,很难收敛到更高的精度。

L2 Loss

  • 公式
    L 2 = ∑ i = 1 n ( y i − f ( x i ) ) 2 L 2=\sum_{i=1}^n\left(y_i-f\left(x_i\right)\right)^2 L2=i=1n(yif(xi))2
  • 导数
    d L 2 ( x ) d x = 2 x \frac{\mathrm{d} L_2(x)}{\mathrm{d} x}=2 x dxdL2(x)=2x
  • 特性
    L2 loss由于是平方增长,因此学习快。L2损失函数对 x 的导数为2x,当 x 很大的时候,导数也很大,使L2损失 在 总loss 中占据主导位置,进而导致,训练初期不稳定。

Smooth L1 Loss

《Fast R-CNN》 论文中首次提出Smooth L1 Loss

  • 公式
    smooth ⁡ L 1 ( x ) = { 0.5 x 2  if  ∣ x ∣ < 1 ∣ x ∣ − 0.5  otherwise  \operatorname{smooth}_{L_1}(x)= \begin{cases}0.5 x^2 & \text { if }|x|<1 \\ |x|-0.5 & \text { otherwise }\end{cases} smoothL1(x)={ 0.5x2x0.5 if x<1 otherwise 
    其中 x = y i − f ( x i ) x=y_i-f(x_i) x=yif(xi)
  • 导数
    d smooth ⁡ L 1   d x = { x  if  ∣ x ∣ < 1 ± 1  otherwis  \frac{\mathrm{d} \operatorname{smooth}_{L_1}}{\mathrm{~d} x}= \begin{cases}x & \text { if }|x|<1 \\ \pm 1 & \text { otherwis }\end{cases}  dxdsmoothL1={ x±1 if x<1 otherwis 
  • 特性
    分析一下,当预测值f(xi)和真实值yi差别较小的时候(绝对值差小于1),其实使用的是L2 loss;差别大的时候,使用的是L1 loss的平移。因此,Smooth L1 loss其实是L1 loss 和L2 loss的结合,同时拥有两者的部分优点:
    真实值和预测值差别较小时(绝对值差小于1),梯度也会比较小(损失函数比普通L1 loss在此处更圆滑)
    真实值和预测值差别较大时,梯度值足够小(普通L2 loss在这种位置梯度值就很大,容易梯度爆炸)
    在这里插入图片描述

IOU系列

IOU (2016)

论文地址: 《UnitBox: An Advanced Object Detection Network》

  • 提出背景
    三种Loss用于计算目标检测的Bounding Box Loss时,独立的求出4个点的Loss,然后进行相加得到最终的Bounding Box Loss,这种做法的假设是4个点是相互独立的,实际是有一定相关性的

  • IoU (Intersection over Union)的计算
    IOU的计算是用预测框(A)和真实框(B)的交集除以二者的并集,其公式为:
    I o U = A ∩ B A ∪ B I o U=\frac{A \cap B}{A \cup B} IoU=ABAB
    IoU的值越高也说明A框与B框重合程度越高,代表模型预测越准确。反之,IoU越低模型性能越差。

  • IOU Loss
    L I o U = − l n ( I o U ) L_{IoU}=-ln(IoU) LIoU=ln(IoU)
    当IoU趋近为1时(两个框重叠程度很高),Loss趋近于0。IoU越小(两个框的重叠程度变低),Loss越大。当IoU为0时(两个框不存在重叠),梯度消失。
    在这里插入图片描述
    在这里插入图片描述

  • IOU的特性
    优点:
    (1)IoU具有尺度不变性
    (2)结果非负,且范围是(0, 1)
    缺点:
    (1)如果两个目标没有重叠,IoU将会为0,并且不会反应两个目标之间的距离,在这种无重叠目标的情况下,如果IoU用作于损失函数,梯度为0,无法优化。
    (2)IoU无法精确的反映两者的重合度大小。如下图所示,三种情况IoU都相等,但看得出来他们的重合度是不一样的,左边的图回归的效果最好,右边的最差。
    在这里插入图片描述

GIOU (2019)

论文地址:《Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression》

  • 提出背景
    为了解决Iou的作为损失函数的缺点,提出了GIoU,在IoU后面增加了一项,计算两个框的最小外接矩形,用于表征两个框的距离,从而解决了两个目标没有交集时梯度为零的问题。

  • GIOU的计算
    其中A表示真实框,B表示预测框,C表示两个框的最小外接矩形的面积。
    G I o U = I o U − C − ( A ∪ B ) C G I o U=I o U-\frac{C-(A \cup B)}{C} GIoU=IoUCC(AB)
    当IoU=0时(A和B没有交集):
    G I o U = − 1 + A ∪ B C G I o U=-1+\frac{A \cup B}{C} GIoU=1+CAB
    当A和B两个框离得越远,GIOU越接近-1;当两框重合时,GIOU=1。所以GIOU的取值为(-1,1]。

  • GIOU Loss
    L G I o U = 1 − G I o U L_{G I o U}=1-G I o U LGIoU=1GIoU
    A , B A,B A,B两框不相交时, A ∪ B A \cup B AB 不变,最大化 G I o U GIoU GIoU就是最小化C, 这样会促进两个框不断靠近。

  • GIoU的特性
    优点:
    (1)当IoU=0时,仍然可以很好的表示两个框的距离。
    (2)GIoU不仅关注重叠区域,还关注其他的非重合区域,能更好的反映两者的重合度
    缺点:
    (1)当两个框属于包含关系时,GIoU会退化成IoU,无法区分其相对位置关系,如下图:
    在这里插入图片描述
    (2)由于GIoU仍然严重依赖IoU,因此在两个垂直方向,误差很大,很难收敛。两个框在相同距离的情况下,水平垂直方向时,此部分面积最小,对loss的贡献也就越小,从而导致在垂直水平方向上回归效果较差。
    如下图,三种情况下GIoU的值一样,GIoU将很难区分这种情况。
    在这里插入图片描述

DIOU (2020)

论文地址:《Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression》

  • 提出背景

针对上述GIoU的两个问题,将GIoU中最小外接框来最大化重叠面积的惩罚项修改成最小化两个BBox中心点的标准化距离从而加速损失的收敛过程,这就诞生了DIoU。
DIoU要比GIou更加符合目标框回归的机制,将目标与预测之间的距离,重叠率以及尺度都考虑进去,使得目标框回归变得更加稳定,不会像IoU和GIoU一样出现训练过程中发散等问题。

  • DIOU的计算
    其中 b , b g t b, b^{g t} b,bgt 分别代表了预测框和真实框的中心点,且 ρ \rho ρ 代表的是计算两个中心点间的欧式距离。
    c 代表的是能够同时包含预测框和真实框的最小外接矩形的对角线长度。
    D I o U = I o U − ρ 2 ( b , b g t ) c 2 D I o U=I o U-\frac{\rho^2\left(b, b^{g t}\right)}{c^2} DIoU=IoUc2ρ2(b,bgt)
    在这里插入图片描述
  • DIOU Loss
    L D I o U = 1 − D I o U L_{D I o U}=1-D I o U LDIoU=1DIoU
  • DIOU的特性
    优点
    (1)DIoU loss可以直接最小化两个目标框的距离,因此比GIoU loss收敛快得多。
    (2)对于包含两个框在水平方向和垂直方向上这种情况,DIoU损失可以使回归非常快。
    (3)DIoU还可以替换普通的IoU评价策略,应用于NMS中,使得NMS得到的结果更加合理和有效。
    缺点
    虽然DIOU能够直接最小化预测框和真实框的中心点距离加速收敛,但是Bounding box的回归还有一个重要的因素纵横比暂未考虑。如下图,三个红框的面积相同,但是长宽比不一样,红框与绿框中心点重合,这时三种情况的DIoU相同,证明DIoU不能很好的区分这种情况。
    在这里插入图片描述

CIOU (2020)

论文地址:《Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression》

  • 提出背景
    CIoU与DIoU出自同一篇论文,CIoU大多数用于训练。DIoU的作者考虑到,在两个框中心点重合时,c与d的值都不变。所以此时需要引入框的宽高比

  • CLoU的计算
    C I o U = I o U − ( ρ 2 ( b , b g t ) c 2 + α v ) C I o U=I o U-\left(\frac{\rho^2\left(b, b^{g t}\right)}{c^2}+\alpha v\right) CIoU=IoU(c2ρ2(b,bgt)+αv)
    其中 α \alpha α 是权重函数, v \mathrm{v} v 用来度量宽高比的一致性:
    α = v ( 1 − I o U ) + v v = 4 π 2 ( arctan ⁡ w g t h g t − arctan ⁡ ( w h ) ) 2 \begin{gathered} \alpha=\frac{v}{(1-I o U)+v} \\ v=\frac{4}{\pi^2}\left(\arctan \frac{w_{g t}}{h_{g t}}-\arctan \left(\frac{w}{h}\right)\right)^2 \end{gathered} α=(1IoU)+vvv=π24(arctanhgtwgtarctan(hw))2
    v v v可以看出, CIOU 中存在两个问题:
    a. 使用的是预测框和目标框的宽高比,那当预测框的宽高满足 { ( w p = k w g t , h p = k h g t ) ∣ k ∈ R + } \left\{\left(w^{\mathrm{p}}=k w^{\mathrm{gt}}, h^{\mathrm{p}}=k h^{\mathrm{gt}}\right) \mid k \in \mathbb{R}^{+}\right\} { (wp=kwgt,hp=khgt)kR+}时,CloU 中此项的惩罚便失去了作用。
    b. 根据下面 w p , h p w^{\mathrm{p}}, h^{\mathrm{p}} wp,hp 的梯度公式,
    ∂ v ∂ w p = 8 π 2 ( arctan ⁡ w g t h g t − arctan ⁡ w p h p ) ⋅ h p ( w p ) 2 + ( h p ) 2 \frac{\partial v}{\partial w^{\mathrm{p}}}=\frac{8}{\pi^2}\left(\arctan \frac{w^{\mathrm{gt}}}{h^{\mathrm{gt}}}-\arctan \frac{w^{\mathrm{p}}}{h^{\mathrm{p}}}\right) \cdot \frac{h^{\mathrm{p}}}{\left(w^{\mathrm{p}}\right)^2+\left(h^{\mathrm{p}}\right)^2} wpv=π28(arctanhgtwgt

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zyw2002

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值