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

news2024/11/19 15:39:14

文章目录

  • L-norm Loss 系列
    • L1 Loss
    • L2 Loss
    • Smooth L1 Loss
  • IOU系列
    • IOU (2016)
    • GIOU (2019)
    • DIOU (2020)
    • CIOU (2020)
    • EIOU (2022)
    • αIOU (2021)
    • SIOU (2022)

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(arctanhgtwgtarctanhpwp)(wp)2+(hp)2hp
    ∂ v ∂ h p = − 8 π 2 ( arctan ⁡ w g t h g t − arctan ⁡ w p h p ) ⋅ w p ( w p ) 2 + ( h p ) 2 \frac{\partial v}{\partial h^{\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{w^{\mathrm{p}}}{\left(w^{\mathrm{p}}\right)^2+\left(h^{\mathrm{p}}\right)^2} hpv=π28(arctanhgtwgtarctanhpwp)(wp)2+(hp)2wp
    可以得出, ∂ v ∂ w p = − h w ∂ v ∂ h p \frac{\partial v}{\partial w^{\mathrm{p}}}=-\frac{h}{w} \frac{\partial v}{\partial h^{\mathrm{p}}} wpv=whhpv 两者的关系成反比。也就是说,训练时 w p , h p w^{\mathrm{p}}, h^{\mathrm{p}} wp,hp 中任意一者增大时, 另一者必然减小。

  • CIoU Loss
    L C I o U = 1 − I o U + ρ 2 ( b , b g t ) c 2 + a v L_{C I o U}=1-I o U+\frac{\rho^2\left(b, b^{g t}\right)}{c^2}+a v LCIoU=1IoU+c2ρ2(b,bgt)+av

  • CIoU的特性
    优点:考虑了框的纵横比,可以解决DIoU的问题。
    缺点: 通过CIoU公式中的v反映的纵横比的差异,而不是宽高分别与其置信度的真实差异,所以有时会阻碍模型有效的优化相似性。

EIOU (2022)

论文地址:《Focal and Efficient IOU Loss for Accurate Bounding Box Regression》

  • EIOU的提出背景
    CIoU不能真实的反映宽高分别与其置信度的真实差异,
    且损失函数忽略了正负样本不平衡的问题,即大量与目标框重叠面积较小的预测框在最终的 bbox 优化中占用了绝大部分的贡献。
    为了解决CIoU的问题,有学者在CIOU的基础上将纵横比拆开,提出了EIOU Loss,并且加入Focal聚焦优质的预测框,与CIoU相似的,EIoU是损失函数的解决方案,只用于训练。

  • EIOU LOSS
    EIOU的惩罚项是在CIOU的惩罚项基础上将纵横比的影响因子拆开分别计算目标框和预测框的长和宽,该损失函数包含三个部分:重叠损失,中心距离损失,宽高损失,前两部分延续CIoU中的方法,但是宽高损失直接使目标框与预测框的宽度和高度之差最小,使得收敛速度更快。惩罚项公式如下:
    L E I o U = L I o U + L d i c + L a s p = 1 − I o u + ρ 2 ( b , b g t ) ( c w ) 2 + ( c h ) 2 + ρ 2 ( w , w g t ) ( c w ) 2 + ρ 2 ( h , h g t ) ( c h ) 2 \begin{gathered} L_{E I o U}=L_{I o U}+L_{d i c}+L_{a s p} \\ =1-I o u+\frac{\rho^2\left(b, b^{g t}\right)}{\left(c_w\right)^2+\left(c_h\right)^2}+\frac{\rho^2\left(w, w^{g t}\right)}{\left(c_w\right)^2}+\frac{\rho^2\left(h, h^{g t}\right)}{\left(c_h\right)^2} \end{gathered} LEIoU=LIoU+Ldic+Lasp=1Iou+(cw)2+(ch)2ρ2(b,bgt)+(cw)2ρ2(w,wgt)+(ch)2ρ2(h,hgt)
    其中 b g t b^{gt} bgt b p b^p bp分别表示预测框和目标框中心点的坐标。 d ( b p , b g t ) d(b^p,b^{gt}) d(bp,bgt)表示二者的欧式距离。 c w c_w cw c h c_h ch 是覆盖两个Box的最小外接框的宽度和高度。
    在这里插入图片描述

  • FOCAL EIoU LOSS
    在这里插入图片描述
    GIOU 通过预测框和目标框的差集/最小外界矩形来作为惩罚项,一方面在预测框在目标框内部或目标框在预测框内部时,都无法处理比值相同的情况;另一方面,也导致 GIOU 存在先减小差集面积再优化 IoU 值的可能性。
    CIOU 存在的问题是上面提到的预测框宽高比成反比,两者不能同时增大或缩小。如上图第二行,iter=50 中预测框的宽高都大于目标框,但是在 iter=150 中,预测框的高变小,但是宽却变大。
    上面提到第二个动机,目标检测模型中预测框往往数量较大,其中与目标框 IOU 值较低的低质量样本占绝大多数。低质量样本在训练时容易造成损失值波动的情况。作者认为高低质量样本分布不均是影响模型收敛的一个重要因素。作者提到,一个优秀的损失函数应该具有下面几个性质:
    当回归的 error 是 0 的时候,此时的梯度也应当是 0,因为我们这时不再需要对参数进行调整;
    在错误率小的地方,梯度的值也应当小,反之在错误率大的地方,梯度也应当大,因为这时候我们需要对错误率小的情况进行微调,而错误率大的地方进行大刀阔斧的调整;
    应该有一个参数可以抑制低质量样本对损失值的影响;
    梯度值的范围应该在一定的范围内,例如 (0,1],避免造成梯度的剧烈波动。
    借助 Focal Loss 的思想,作者提出了 Focal L1 Loss,具体过程大致为:作者通过设计出一个合适的梯度函数,并根据它的性质求出相关参数的关系,通过求积分得出最终的损失函数。具体推导见论文中。作者设计的 Focal L1 Loss 的梯度函数如下,
    ∂ L f ∂ x = { − α x ln ⁡ ( β x ) , 0 < x ≤ 1 ; 1 e ≤ β ≤ 1 − α ln ⁡ ( β ) , x > 1 ; 1 e ≤ β ≤ 1 \frac{\partial \mathcal{L}_f}{\partial x}= \begin{cases}-\alpha x \ln (\beta x) & , 0<x \leq 1 ; \frac{1}{e} \leq \beta \leq 1 \\ -\alpha \ln (\beta) & , x>1 ; \frac{1}{e} \leq \beta \leq 1\end{cases} xLf={αxln(βx)αln(β),0<x1;e1β1,x>1;e1β1
    最终得出的 Focal L1 Loss 损失函数公式为:
    L f ( x ) = { − α x 2 ( 2 ln ⁡ ( β x ) − 1 ) 4 , 0 < x ≤ 1 ; 1 e ≤ β ≤ 1 − α ln ⁡ ( β ) x + C , x > 1 ; 1 e ≤ β ≤ 1 \mathcal{L}_f(x)= \begin{cases}-\frac{\alpha x^2(2 \ln (\beta x)-1)}{4} & , 0<x \leq 1 ; \frac{1}{e} \leq \beta \leq 1 \\ -\alpha \ln (\beta) x+C & , x>1 ; \frac{1}{e} \leq \beta \leq 1\end{cases} Lf(x)={4αx2(2ln(βx)1)αln(β)x+C,0<x1;e1β1,x>1;e1β1
    L Focal-EIou  = I o U γ L E I o U L_{\text {Focal-EIou }}=I o U^\gamma L_{E I o U} LFocal-EIou =IoUγLEIoU
    其中,为了保证函数连续,令 L f ( 1 ) \mathcal{L}_f(1) Lf(1) 求得 C = 2 α ln ⁡ β + α 4 C=\frac{2 \alpha \ln \beta+\alpha}{4} C=42αlnβ+α.
    在这里插入图片描述
    上图是 FocalL1 Loss 损失函数曲线 (a) 和其梯度曲线图 (b)。从 (b) 中可以看出,FocalL1 Loss 可以通过控制 β \beta β 的大小来控制损失值超过 1 之后的梯度大小,如当 β = 1.0 \beta=1.0 β=1.0 ,损失值大于 1 时,梯 度值恒为 0 。而且,梯度曲线呈现出上凸趋势。当损失值过大或过小时,产生的梯度值均较小。当低 质量样本产生损失值较大时,此时梯度值较小,以此来抑制低质量样本的贡献。
    下图与上图类似,(a)是作者期望得到的损失函数梯度曲线;(b) 是 α = 1 , β \alpha=1, \beta α=1,β 取不同值得到的损 失函数图。
    在这里插入图片描述

从以上两幅图中可以看出(论文中也有实验证明),当 β \beta β 越大时,低质量样本的梯度越小,即当 损失值越大时,其产生梯度值越小,这里作者认为 低质量样本会产生较大的梯度。与此相反,高质量 样本的梯度越大。实验发现当 β = 0.8 \beta=0.8 β=0.8 时效果最好。
在具体使用中,FocalL1 Loss 通过计算预测框和目标框 ( x , y , w , h ) (x, y, w, h) (x,y,w,h) 的位移偏差之和,来计算回 归损失,如下式:
L l o c = ∑ i ∈ { x , y , w , h } L f ( ∣ B i p − B i g t ∣ ) \mathcal{L}_{\mathrm{loc}}=\sum_{i \in\{x, y, w, h\}} \mathcal{L}_f\left(\left|B_i^{\mathrm{p}}-B_i^{\mathrm{gt}}\right|\right) Lloc=i{x,y,w,h}Lf( BipBigt )
与 FocalL1 Loss 类似,作者还提出了 Focal-EloU Loss,如下:
L Focal E-IoU  = I o U γ L E I o U \mathcal{L}_{\text {Focal E-IoU }}=\mathrm{IoU}^\gamma \mathcal{L}_{\mathrm{EIoU}} LFocal E-IoU =IoUγLEIoU
Focal-EloU Loss 提出的原因是,作者在实验中发现当 L E I o U \mathcal{L}_{\mathrm{EIoU}} LEIoU 接近零时,它的值非常小。同时, ∂ L f ∂ L E I o U \frac{\partial \mathcal{L}_f}{\partial \mathcal{L}_{\mathrm{EIoU}}} LEIoULf 也非常小。当两者相乘后,会得到更小的梯度值,这会使 L E I o U \mathcal{L}_{\mathrm{EIoU}} LEIoU 较小的高质量样本的贡献大 大降低。为了解决这个问题,作者通过 loU 值对 L E I o U \mathcal{L}_{\mathrm{EIoU}} LEIoU 实现了权值的重置。以此来提高 L E I o U \mathcal{L}_{\mathrm{EIoU}} LEIoU 较小 的高质量样本的贡献。
同样是,通过实验发现较大的 γ \gamma γ 值对于困难样本 (低质量样本),即 IOU 较小的样本抑制效果 较大,可能会延缓收敛速度、影响最终精度。当 γ = 0.5 \gamma=0.5 γ=0.5 获得最好的效果。

  • EIOU的特性
    优点:
    1)将纵横比的损失项拆分成预测的宽高分别与最小外接框宽高的差值,加速了收敛提高了回归精度。
    2)引入了Focal Loss优化了边界框回归任务中的样本不平衡问题,即减少与目标框重叠较少的大量锚框对BBox 回归的优化贡献,使回归过程专注于高质量锚框。

αIOU (2021)

论文地址:《Alpha-IoU: A Family of Power Intersection over Union Losses for Bounding Box Regression》

  • αIOU 的提出背景
    针对之前一系列IoU形式多且繁杂,αIOU 提出了一个对 IoU loss 的统一形式,通过 power transformation 来生成 IoU 和其对应惩罚项的统一形式,来动态调整不同 IoU 目标的 loss 和 gradient。

  • αIOU的计算
    Box-Cox 变换:方差稳定变换,可以改变变量的分布,使得方差不再依赖于均值
    当原始数据非正态分布,或者原始数据左偏、右偏时,需要对原始数据做一定的变换,经常会使用 Box-Cox 变换。
    y ( λ ) = { y λ − 1 λ , λ ≠ 0 ln ⁡ y , λ = 0 \mathrm{y}(\lambda)=\left\{\begin{array}{l} \frac{y^\lambda-1}{\lambda}, \lambda \neq 0 \\ \ln y, \lambda=0 \end{array}\right. y(λ)={λyλ1,λ=0lny,λ=0
    在这里插入图片描述

首先,在 loU loss L I o U = 1 − I o U L_{I o U}=1-I o U LIoU=1IoU 上使用 Box-Cox 变换,得到 α \alpha α-loU:
L α − I o U = ( 1 − I o U α ) α , α > 0 L_{\alpha-I o U}=\frac{\left(1-I o U^\alpha\right)}{\alpha}, \alpha>0 LαIoU=α(1IoUα),α>0
α \alpha α 的分析如下,可以得到很多形式:

  • α → 0 , lim ⁡ α → 0 L α − I o U = − log ⁡ ( I o U ) = L log ⁡ ( I o U ) \alpha \rightarrow 0, \quad \lim _{\alpha \rightarrow 0} L_{\alpha-I o U}=-\log (I o U)=L_{\log (I o U)} α0,limα0LαIoU=log(IoU)=Llog(IoU)
  • α = 1 \alpha=1 α=1 时, L 1 − I o U = 1 − I o U = L I o U L_{1-I o U}=1-I o U=L_{I o U} L1IoU=1IoU=LIoU
  • α = 2 \alpha=2 α=2 时, L 2 − I o U = 1 2 ( 1 − I o U 2 ) = 1 2 L I o U 2 L_{2-I o U}=\frac{1}{2}\left(1-I o U^2\right)=\frac{1}{2} L_{I o U^2} L2IoU=21(1IoU2)=21LIoU2

α \alpha α-loU 简化得到:
L α − I o U = { − log ⁡ ( I o U ) , α → 0 1 − I o U α , α ↛ 0. \mathcal{L}_{\alpha-\mathrm{IoU}}=\left\{\begin{array}{l} -\log (I o U), \quad \alpha \rightarrow 0 \\ 1-I o U^\alpha, \quad \alpha \nrightarrow 0 . \end{array}\right. LαIoU={log(IoU),α01IoUα,α0.
由于很多 loU-based 方法都是 α ↛ 0 \alpha \nrightarrow 0 α0 的,所以更多研究 α ↛ 0 \alpha \nrightarrow 0 α0 的情况,并且引入了一个惩罚项:
L α − I o U = 1 − I o U α 1 + P α 2 ( B , B g t ) \mathcal{L}_{\alpha-\mathrm{IoU}}=1-I o U^{\alpha_1}+\mathcal{P}^{\alpha_2}\left(B, B^{g t}\right) LαIoU=1IoUα1+Pα2(B,Bgt)

  • α 1 > 0 , α 2 > 0 , P \alpha_1>0, \alpha_2>0, P α1>0,α2>0,P 是㤠罚项
  • 作者后面证明了 α 2 \alpha_2 α2 对结果影响不大, 所以就让 α 1 = α 2 \alpha_1=\alpha_2 α1=α2
    有了上面的形式后,作者对不同的 loU-based 方法做了如下形式的统一,其实这些 loU-based loss 都 可以看做是 α = 1 \alpha=1 α=1 时的特例:
    L I o U = 1 − I o U ⟹ L α − I o U = 1 − I o U α L G I o U = 1 − I o U + ∣ C \ ( B ∪ B g t ) ∣ ∣ C ∣ ⟹ L α − G I o U = 1 − I o U α + ( ∣ C \ ( B ∪ B g t ) ∣ ∣ C ∣ ) α L D I o U = 1 − I o U + ρ 2 ( b , b g t ) c 2 ⟹ L α − D I o U = 1 − I o U α + ρ 2 α ( b , b g t ) c 2 α L C I o U = 1 − I o U + ρ 2 ( b , b g t ) c 2 + β v ⟹ L α − C l o U = 1 − I o U α + ρ 2 α ( b , b g t ) c 2 α + ( β v ) α , \begin{aligned} \mathcal{L}_{\mathrm{IoU}}=1-I o U & \Longrightarrow \mathcal{L}_{\alpha-\mathrm{IoU}}=1-I o U^\alpha \\ \mathcal{L}_{\mathrm{GIoU}}=1-I o U+\frac{\left|C \backslash\left(B \cup B^{g t}\right)\right|}{|C|} & \Longrightarrow \mathcal{L}_{\alpha-\mathrm{GIoU}}=1-I o U^\alpha+\left(\frac{\left|C \backslash\left(B \cup B^{g t}\right)\right|}{|C|}\right)^\alpha \\ \mathcal{L}_{\mathrm{DIoU}}=1-I o U+\frac{\rho^2\left(\boldsymbol{b}, \boldsymbol{b}^{g t}\right)}{c^2} & \Longrightarrow \mathcal{L}_{\alpha-\mathrm{DIoU}}=1-I o U^\alpha+\frac{\rho^{2 \alpha}\left(\boldsymbol{b}, \boldsymbol{b}^{g t}\right)}{c^{2 \alpha}} \\ \mathcal{L}_{\mathrm{CIoU}}=1-I o U+\frac{\rho^2\left(\boldsymbol{b}, \boldsymbol{b}^{g t}\right)}{c^2}+\beta v & \Longrightarrow \mathcal{L}_{\alpha-\mathrm{CloU}}=1-I o U^\alpha+\frac{\rho^{2 \alpha}\left(\boldsymbol{b}, \boldsymbol{b}^{g t}\right)}{c^{2 \alpha}}+(\beta v)^\alpha, \end{aligned} LIoU=1IoULGIoU=1IoU+CC\(BBgt)LDIoU=1IoU+c2ρ2(b,bgt)LCIoU=1IoU+c2ρ2(b,bgt)+βvLαIoU=1IoUαLαGIoU=1IoUα+(CC\(BBgt))αLαDIoU=1IoUα+c2αρ2α(b,bgt)LαCloU=1IoUα+c2αρ2α(b,bgt)+(βv)α,

SIOU (2022)

论文地址:《SIoU Loss: More Powerful Learning for Bounding Box Regression Zhora Gevorgyan》

  • SIoU的提出背景
    之前的IOU没有考虑到真实框与预测框框之间的方向,导致收敛速度较慢,对此SIoU引入真实框和预测框之间的向量角度,重新定义相关损失函数

  • SIoU的计算
    (1) 角度损失(Angle cost),定义如下:
    Λ = 1 − 2 ∗ sin ⁡ 2 ( arcsin ⁡ ( c h σ ) − π 4 ) = cos ⁡ ( 2 ∗ ( arcsin ⁡ ( c h σ ) − π 4 ) ) \Lambda=1-2 * \sin ^2\left(\arcsin \left(\frac{\mathrm{c}_{\mathrm{h}}}{\sigma}\right)-\frac{\pi}{4}\right)=\cos \left(2 *\left(\arcsin \left(\frac{\mathrm{c}_{\mathrm{h}}}{\sigma}\right)-\frac{\pi}{4}\right)\right) Λ=12sin2(arcsin(σch)4π)=cos(2(arcsin(σch)4π))
    其中 c h c_h ch 为真实框和预测框中心点的高度差, σ \sigma σ 为真实框和预测框中心点的距离,事实上 arcsin ⁡ ( c h σ ) \arcsin \left(\frac{\mathrm{ch}}{\sigma}\right) arcsin(σch) 等 于角度 α \alpha α
    σ = ( b c x g t − b c x ) 2 + ( b c y g t − b c y ) 2 \sigma=\sqrt{\left(b_{c_x}^{g t}-b_{c_x}\right)^2+\left(b_{c_y}^{g t}-b_{c y}\right)^2} σ=(bcxgtbcx)2+(bcygtbcy)2
    c h = max ⁡ ( b c y g t , b c y ) − min ⁡ ( b c y g t , b c y ) c_h=\max \left(b_{c_y}^{g t}, b_{c y}\right)-\min \left(b_{c_y}^{g t}, b_{c_y}\right) ch=max(bcygt,bcy)min(bcygt,bcy)
    ( b c x g t , b c y g t ) \left(b_{c x}^{g t}, b_{c y}^{g t}\right) (bcxgt,bcygt) 为真实框中心坐标 ( b c x , b c y ) \left(b_{c_x}, b_{c_y}\right) (bcx,bcy) 为预测框中心坐标,可以注意到当 α \alpha α π 2 \frac{\pi}{2} 2π 或 0 时,角度损失为 0 ,在训练过程中若 α < π 4 \alpha<\frac{\pi}{4} α<4π ,则最小化 α \alpha α ,否则最小化 β \beta β
    在这里插入图片描述
    (2)距离损失(Distance cost),定义如下:
    Δ = ∑ t = x , y ( 1 − e − γ ρ t ) = 2 − e − γ ρ x − e − γ ρ y \Delta=\sum_{t=x, y}\left(1-\mathrm{e}^{-\gamma \rho_t}\right)=2-\mathrm{e}^{-\gamma \rho_{\mathrm{x}}}-\mathrm{e}^{-\gamma \rho_{\mathrm{y}}} Δ=t=x,y(1eγρt)=2eγρxeγρy
    其中:
    ρ x = ( b c x g t − b c x c w ) 2 , ρ y = ( b b y g t − b c y c h ) 2 γ = 2 − Λ \rho_{\mathrm{x}}=\left(\frac{b_{c_{\mathrm{x}}}^{g t}-b_{c_{\mathrm{x}}}}{c_w}\right)^2, \quad \rho_{\mathrm{y}}=\left(\frac{b_{\mathrm{b}_{\mathrm{y}}}^{\mathrm{gt}}-b_{c_{\mathrm{y}}}}{c_{\mathrm{h}}}\right)^2 \quad \gamma=2-\Lambda ρx=(cwbcxgtbcx)2,ρy=(chbbygtbcy)2γ=2Λ
    注意: 这里的 ( c w , c h ) \left(c_{\mathrm{w}}, \mathrm{c}_{\mathrm{h}}\right) (cw,ch) 为真实框和预测框最小外接矩形的宽和高
    在这里插入图片描述
    (3)形状损失(Shape cost),定义如下:
    Ω = ∑ t = w , h ( 1 − e − w t ) θ = ( 1 − e − w w ) θ + ( 1 − e − w h ) θ \Omega=\sum_{\mathrm{t}=\mathrm{w}, \mathrm{h}}\left(1-\mathrm{e}^{-\mathrm{wt}}\right)^\theta=\left(1-\mathrm{e}^{-\mathrm{ww}}\right)^\theta+\left(1-\mathrm{e}^{-\mathrm{wh}}\right)^\theta Ω=t=w,h(1ewt)θ=(1eww)θ+(1ewh)θ
    其中:
    w w = ∣ w − w g t ∣ max ⁡ ( w , w g t ) , w h = ∣ h − h g t ∣ max ⁡ ( h , h g t ) w_w=\frac{\left|\mathrm{w}-\mathrm{w}^{\mathrm{gt}}\right|}{\max \left(\mathrm{w}, \mathrm{w}^{\mathrm{gt}}\right)}, \quad \mathrm{w}_{\mathrm{h}}=\frac{\left|\mathrm{h}-\mathrm{h}^{\mathrm{gt}}\right|}{\max \left(\mathrm{h}, \mathrm{h}^{\mathrm{gt}}\right)} ww=max(w,wgt)wwgt,wh=max(h,hgt)hhgt
    ( w , h ) (w, h) (w,h) ( w g t , h g t ) \left(w^{\mathrm{gt}}, h^{\mathrm{gt}}\right) (wgt,hgt) 分别为预测框和真实框的宽和高, θ \theta θ 控制对形状损失的关注程度,为了避免过于关 注形状损失而降低对预测框的移动,作者使用遗传算法计算出 θ \theta θ 接近 4 ,因此作者定于 θ \theta θ 参数范围为 [ 2 [2 [2, 6]

  • SIoU Loss
    Loss ⁡ S I o U = 1 − I o U + Δ + Ω 2 \operatorname{Loss}_{\mathrm{SIoU}}=1-\mathrm{IoU}+\frac{\Delta+\Omega}{2} LossSIoU=1IoU+2Δ+Ω

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/388438.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SpringCloud】SpringCloud详解之Eureka实战

目录前言SpringCloud Eureka 注册中心一.服务提供者和服务消费者二.需求三.搭建Eureka-Server四.搭建Eureka-Client(在服务提供者配置:用户订单)前言 微服务中多个服务&#xff0c;想要调用&#xff0c;怎么找到对应的服务呢&#xff1f; 这里有组件的讲解 → SpringCloud组件…

深圳大学《计算机论题》作业:大数据与人工智能技术对人类生活的影响

说明 本作业为小组作业&#xff0c;要求基于一场报告完成&#xff08;即观后感&#xff09;。共分4个小题&#xff0c;讨论人工智能时代的伦理思考。由于版权原因&#xff0c;不提供报告的具体内容&#xff0c;只展示答题内容。 第一题 &#xff08;1&#xff09; 你如何看待…

winform控件PropertyGrid的应用(使运行中的程序能像vistual studio那样设置控件属性)

上周在看别人写的上位机demo代码时&#xff0c;发现创建的项目模板是"Windows 窗体控件库"(如下图) 生成的项目结构像自定义控件库&#xff0c;没有程序入口方法Main&#xff0c;但却很神奇能调试&#xff0c;最后发现原来Vistual Studio启动了一个外挂程序UserContr…

LSM(日志结构合并树)_笔记

WAL&#xff1a;Write Ahead Log 写前日志&#xff0c;顺序日志文件 1 LSM tree的定义 LSM tree&#xff1a; Log-Structured-Merge-Tree&#xff0c;日志结构合并树。 Log-Structured Merge-tree (LSM-tree) is a disk-based data structure designed to provide low-cost …

Linux操作系统学习(了解文件系统动静态库)

文章目录浅谈文件系统了解EXT系列文件系统目录与inode的关系软硬链接动静态库浅谈文件系统 当我们创建一个文件时由两部分组成&#xff1a;文件内容文件属性&#xff0c;即使是空文件也有文件属性 一个文件没有被打开是存储在磁盘中的&#xff0c;而磁盘是计算机中的一个机械…

你想赚的钱不一定属于你

昨天一个同行跟我说&#xff0c;最近有个五十多万的订单&#xff0c;客户是拿着别人家的设计来找的他&#xff0c;跟了也有大半个月了&#xff0c;自己明明报的价格比原设计的公司要低&#xff0c;客户一直说会尽快下的&#xff0c;他原本想着能够从这个订单里赚到几万块&#…

王道计算机组成原理课代表 - 考研计算机 第六章 总线 究极精华总结笔记

本篇博客是考研期间学习王道课程 传送门 的笔记&#xff0c;以及一整年里对 计算机组成 知识点的理解的总结。希望对新一届的计算机考研人提供帮助&#xff01;&#xff01;&#xff01; 关于对 “总线” 章节知识点总结的十分全面&#xff0c;涵括了《计算机组成原理》课程里的…

软件测试用例(3)

按照测试对象划分: 一)界面测试: 1)软件只是一种工具&#xff0c;软件和人的信息交流是通过界面来进行的&#xff0c;界面是软件和用户交流的最直接的一层&#xff0c;界面的设计决定了用户对于我们设计软件的第一映像&#xff0c;界面如同人的面孔&#xff0c;具有最吸引用户的…

Java中String详解(从原理理解经典面试题)

本篇文章我先通过经典面试题&#xff0c;筛选需要观看本篇文章的朋友&#xff0c;然后咱们介绍String的基本特性&#xff0c;通过基本特性就可以找到面试题的答案。最后咱们再深入每个面试题&#xff0c;通过字节码、编译原理、基本特性深入剖析所有的面试题&#xff0c;让大家…

jsp试卷分析管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP试卷分析管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

三、JavaScript

目录 一、JavaScript和html代码的结合方式 二、javascript和java的区别 1、变量 2、运算 3、数组&#xff08;重点&#xff09; 4、函数 5、重载 6、隐形参数arguments 7、js中的自定义对象 三、js中的事件 四、DOM模型 五、正则表达式 一、JavaScript和html代码的结合方…

代码执行漏洞 | iwebsec

文章目录00-代码执行漏洞原理环境01-eval函数示例命令执行写入webshellbash反弹shell02-assert函数示例webshell03-call_user_func函数示例04-call_user_func_array函数示例总结05-create_function函数示例06-array_map函数示例总结08-preg_replace漏洞函数示例07-preg_replace…

Centos 部署Oracle 11g

Centos 部署Oracle 11g部署Oracle 11g准备工作服务器信息oracle安装包服务器准备oracle环境安装Oracle静默方式配置监听以静默方式建立新库及实例部署Oracle 11g 在SpringMVC模式下开发web项目&#xff0c;必然会使用到关系型数据库来存储数据&#xff0c;目前使用比较多的关系…

18、多维图形绘制

目录 一、三维图形绘制 &#xff08;一&#xff09;曲线图绘制plot3() &#xff08;二&#xff09;网格图绘制 mesh() &#xff08;三&#xff09;曲面图绘制 surf() &#xff08;四&#xff09;光照模型 surfl() &#xff08;五&#xff09;等值线图(等高线图)绘制 cont…

电力系统系统潮流分析【IEEE 57 节点】(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密…

C语言函数:字符串函数及模拟实现strcmp()

C语言函数&#xff1a;字符串函数及模拟实现strcmp() strcmp()函数&#xff1a; 作用&#xff1a;进行字符串的比较大小。 引入&#xff1a;如下代码&#xff0c; #define _CRT_SECURE_NO_WARNINGS#include <stdio.h>int main() {char* p "wan";char* q &qu…

Spring MVC源码解析——HandlerMapping(处理器映射器)

Sping MVC 源码解析——HandlerMapping处理器映射器1. 什么是HandlerMapping2. HandlerMapping2.1 HandlerMapping初始化2.2 getHandler解析3. getHandlerInternal()子类实现3.1 AbstractUrlHandlerMapping与AbstractHandlerMethodMapping的区别3.2 AbstractUrlHandlerMapping3…

MySQL实战解析底层---全局锁和表锁:给表加个字段怎么有这么多阻碍

目录 前言 全局锁 表级锁 前言 数据库锁设计的初衷是处理并发问题作为多用户共享的资源&#xff0c;当出现并发访问的时候&#xff0c;数据库需要合理地控制资源的访问规则而锁就是用来实现这些访问规则的重要数据结构根据加锁的范围&#xff0c;MySQL 里面的锁大致可以分成…

js正则表达式以及元字符

0、常用的正则表达式规则 手机号 const reg /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;密码 const reg /^[a-zA-Z0-9]{6,20}$/;验证码 const reg /^\d{6}$/;1、正则表达式的介绍与使用 正则表达式(Regular Expression)是用于匹配字符串中字符组合…

RTOS中信号量的实现与应用

RTOS中的信号量是一种用来协调多个任务间共享资源访问的同步机制。它可以保证多个任务之间访问共享资源的正确性和一致性&#xff0c;避免了因多任务并发访问造成的不可预期的问题。 信号量的实现 信号量的实现原理比较简单&#xff0c;主要包括两个部分&#xff1a;计数器和…