各种 IoU 损失变体

各种 IoU 损失变体

IoU损失及其各种变体已经在密集预测任务中展现出了优异的效果。这里做一个简单的罗列与梳理。

IoU

I o U = ∣ P ∩ G ∣ ∣ P ∪ G ∣ IoU = \frac{|P \cap G|}{|P \cup G|} IoU=PGPG

这里的P和G在不同任务中可以有着不同的定义,例如分割任务中表示目标区域,而目标检测任务中可以表示边界框。

IoU Loss

  • 论文:UnitBox: An Advanced Object Detection Network

L I o U = 1 − ∣ P ∩ G ∣ ∣ P ∪ G ∣ L_{IoU} = 1 - \frac{|P \cap G|}{|P \cup G|} LIoU=1PGPG

  • ∣ ⋅ ∣ | \cdot | 表示区域面积或者是框的包围面积。
  • 取值范围: [ 0 , 1 ] [0, 1] [0,1]

IoU Loss 的不足:

  • 如果两个边界框没有重叠部分(non-overlapping),IoU=0,模型参数的梯度为 0 得不到更新。所以,使用 IoU 损失函数训练神经网络的收敛速度会很慢。
  • 如果不同的预测框与真值框有相同的 IoU,无法衡量不同的预测框的好坏。

CVPR 2019 | GIoU: Generalized IoU Loss

  • 论文:Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression

G I o U = I o U − ∣ C − P ∪ G ∣ ∣ C ∣ GIoU = IoU - \frac{|C - P \cup G|}{|C|} GIoU=IoUCCPG

  • C C C 表示包围预测框 P P P 和真值框 G G G 的最小框。
  • 取值范围: ( − 1 , 1 ] (-1, 1] (1,1]
    • 完全重合时,GIoU = IoU,此时值为 1。
    • 当两个框重叠区域为 0,间隔无限远的时候,此时 GIoU 值趋于 -1。

GIoU Loss:

L G I o U = 1 − G I o U = 1 − I o U + ∣ C − P ∪ G ∣ ∣ C ∣ L_{GIoU} = 1 - GIoU = 1 - IoU + \frac{|C - P \cup G|}{|C|} LGIoU=1GIoU=1IoU+CCPG

C C C 的作用是作为一个惩罚项将预测框向真实框靠拢。对于预测框与真实框不重叠的情况,GIoU 通过向目标框缓慢移动来增加二者的重叠区域以达到最大化预测框与真实框之间重叠区域的目的,这是一个不断迭代的过程。使用 GIoU 可以解决预测框与真实框无重叠区域造成的梯度消失问题,可以得到比 MSE 和 IoU 损失函数更高精度的预测框,但是存在迭代速度慢和边界框回归错误的问题。

GIoU Loss 不足:

  • 如果两个框处于包含状态,GIoU 就退变为 IoU,起不到大小、形状上的额外约束。
  • 还有一种特殊情况,GIoU 也会退变为 IoU,即两个框某个边完全重合,即 C = P ∪ G C=P \cup G C=PG

AAAI 2020 | DIoU: Distance IoU Loss

  • 论文:Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression

D I o U = I o U − ρ 2 ( P , G ) c 2 DIoU = IoU - \frac{\rho^2(P, G)}{c^2} DIoU=IoUc2ρ2(P,G)

  • ρ 2 ( P , G ) \rho^2(P, G) ρ2(P,G) 表示预测框 P P P 与真实框 G G G 中心点的 欧式距离,即 2 范数( [ ∑ i ( p i − g i ) 2 ] 1 / 2 [\sum_i (p_i - g_i)^2]^{1/2} [i(pigi)2]1/2)。
  • c 2 c^2 c2 表示覆盖预测框与真实框的最小闭合框的对角线长度。

L D I o U = 1 − I o U + ρ 2 ( P , G ) c 2 L_{DIoU} = 1 - IoU + \frac{\rho^2(P, G)}{c^2} LDIoU=1IoU+c2ρ2(P,G)

  • 当两个框无线接近时,IoU Loss = GIoU Loss = DIoU loss = 0
  • 当两个框无穷远时,IoU Loss 等于 1,GIoU Loss 和 DIoU Loss 趋于 2

DIoU 中提出了两个问题,并解决了第一个问题:

  1. 能否直接优化预测框和真值框之间的距离来使模型快速收敛。
  2. 当预测框和真值框有重叠时,能否更加准确的做回归。

DIoU 损失使用了预测框与真实框中心点之间的归一化距离,对于回归问题是尺度不变的。

与 GIoU 损失一样,DIoU 损失也为非重叠情况下的预测框提供了移动方向;与 GIoU 损失不一样的是,DIoU 损失直接最小化了预测框和真实框之间的距离,即使在真实框具有水平和垂直方向时,其收敛速度也比 GIoU 要快得多。DIoU 损失可以加快神经网络的训练过程并且得到更准确的边界框回归结果,将其用于非极大值抑制 (NMS) 过程中的指标时,可以在有遮挡的情况下提供更为鲁棒的结果。

但是 DIOU 损失函数计算过程只包含了边界框与预测框重叠面积和中心点距离,并没有考虑两框的长宽比。

AAAI 2020 | CIoU: Complete IoU

  • 论文:Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression

C I o U = I o U − ρ 2 ( P , G ) c 2 − α v CIoU = IoU - \frac{\rho^2(P, G)}{c^2} - \alpha v CIoU=IoUc2ρ2(P,G)αv

  • v = 4 π 2 ( arctan ⁡ w G h G − arctan ⁡ w P h P ) 2 v = \frac{4}{\pi^2}(\arctan \frac{w_G}{h_G} - \arctan \frac{w_P}{h_P})^2 v=π24(arctanhGwGarctanhPwP)2 用来度量预测框和真值框长宽比的相似性。
  • α = v 1 − I o U + v \alpha = \frac{v}{1 - IoU + v} α=1IoU+vv 为权重系数。

L C I o U = 1 − I o U + ρ 2 ( P , G ) c 2 + α v L_{CIoU} = 1 - IoU + \frac{\rho^2(P, G)}{c^2} + \alpha v LCIoU=1IoU+c2ρ2(P,G)+αv

可以知道,CIoU 损失包含了以下 3 个几何因子:

  • 预测框与真实框重叠区域面积的 IoU 损失。
  • 预测框与真实框中心点之间归一化的距离。
  • 预测框与真实框纵横比差异。

CIoU 同时解决了上面的两个问题。同时考虑了长宽比。

  • 当预测框和真值框距离较远时,权重变小,他们的长宽比相对来说重要程度变小,模型同时拉近预测框和真值框的中心点距离。
  • 当预测框和真值框距离较近时,权重变大,长宽比重要程度变大,模型优化预测框和真值框的长宽比,模型依然还要拉近预测框和真值框的中心点距离。

与 GIoU 和 DIoU 一样,CIoU 也是通过迭代将预测框向真实框移动,但是 CIoU 所需要的迭代次数更少,并且得到的预测框与真实框的纵横比更为接近。

Enhanced Completed IoU

  • 论文:Enhancing Geometric Factors in Model Learning and Inference for Object Detection and Instance Segmentation

后续的工作改进了 CIoU 的权重系数的取值:

L C I o U = 1 − I o U + ρ 2 ( P , G ) c 2 + α v L_{CIoU} = 1 - IoU + \frac{\rho^2(P, G)}{c^2} + \alpha v \\ LCIoU=1IoU+c2ρ2(P,G)+αv

  • v = 4 π 2 ( arctan ⁡ w G h G − arctan ⁡ w P h P ) 2 v = \frac{4}{\pi^2}(\arctan \frac{w_G}{h_G} - \arctan \frac{w_P}{h_P})^2 v=π24(arctanhGwGarctanhPwP)2 用来度量长宽比的相似性。
  • α = { 0  if  I o U < 0.5 v 1 − I o U + v  if  I o U ≥ 0.5 \alpha = \begin{cases} 0 & \text{ if } IoU < 0.5 \\ \frac{v}{1 - IoU + v} & \text{ if } IoU \ge 0.5 \end{cases} α={01IoU+vv if IoU<0.5 if IoU0.5

该公式表明:

  • 在 IoU<0.5 时,CIoU 退变为 DIoU,只考虑预测框和真值框之间的中心点距离。
  • 在 IoU>0.5 时,模型才同时考虑预测框和真值框之间的中心点距离,以及预测框的长宽比和真值框的长宽比的相似程度。随着 IoU 的变大,预测框和真值框越相近,权重变大,长宽比的重要程度也变大,模型更加注重长宽比的细节优化。

Neurocomputing 2022 | EIoU: Efficient IoU Loss

  • 论文:Focal and Efficient IOU Loss for Accurate Bounding Box Regression

E I o U = D I o U − ρ 2 ( w P , w G ) w C 2 − ρ 2 ( h P , h G ) h C 2 EIoU = DIoU - \frac{\rho^2(w_P, w_G)}{w_C^2} - \frac{\rho^2(h_P, h_G)}{h_C^2} EIoU=DIoUwC2ρ2(wP,wG)hC2ρ2(hP,hG)

  • w C w_C wC h C h_C hC 都是覆盖预测框与真实框的最小闭合框的宽和长。

L E I o U = L I o U + L d i s + L a s p = 1 − I o U + ρ 2 ( P , G ) c 2 + ρ 2 ( w P , w G ) w C 2 + ρ 2 ( h P , h G ) h C 2 = 1 − I o U + ρ 2 ( P , G ) w C 2 + h C 2 + ρ 2 ( w P , w G ) w C 2 + ρ 2 ( h P , h G ) h C 2 \begin{align} L_{EIoU} & = L_{IoU} + L_{dis} + L_{asp} \\ & = 1 - IoU + \frac{\rho^2(P, G)}{c^2} + \frac{\rho^2(w_P, w_G)}{w_C^2} + \frac{\rho^2(h_P, h_G)}{h_C^2} \\ & = 1 - IoU + \frac{\rho^2(P, G)}{w_C^2 + h_C^2} + \frac{\rho^2(w_P, w_G)}{w_C^2} + \frac{\rho^2(h_P, h_G)}{h_C^2} \end{align} LEIoU=LIoU+Ldis+Lasp=1IoU+c2ρ2(P,G)+wC2ρ2(wP,wG)+hC2ρ2(hP,hG)=1IoU+wC2+hC2ρ2(P,G)+wC2ρ2(wP,wG)+hC2ρ2(hP,hG)

EIoU 在 CIoU 的基础上将长宽比拆开,明确地衡量了三个几何因素的差异,即重叠区域、中心点和边长,同时引入 Fcoal loss 解决了难易样本不平衡的问题。认为简单的任务框回归不需要用过大的权重来学习,而复杂的任务框回归需要大权重来学习,进而将 EIOU loss 进行改进提出 Focal EIOU loss 公式见下:

L F o c a l − E I o U = I o U γ L E I o U L_{Focal-EIoU} = IoU^\gamma L_{EIoU} LFocalEIoU=IoUγLEIoU

  • 一般 γ \gamma γ 设置为 0.5 即可。
  • 当任务简单的时候,IOU 接近为 1,整体退化为 EIoU loss。
  • 当任务困难的时候,IOU 值很小,而 EIoU 的值会变大。由于 IOU 的值小于 1,说明变换小于 EIoU Loss 变换。总体遇到难的任务时 loss 会增大,增加对难的回归样本的学习。

NeurlPS 2021 | α \alpha α-IoU

  • 论文:Alpha-IoU: A Family of Power Intersection over Union Losses for Bounding Box Regression

α \alpha α-IoU 将现有的基于 IoU 的损失进行了一个推广。

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 − P ∪ G ∣ ∣ C ∣ ⇒ L α − G I o U = 1 − I o U α + ( ∣ C − P ∪ G ∣ ∣ C ∣ ) α L D I o U = 1 − I o U + ρ 2 ( P , G ) c 2 ⇒ L α − I o U = 1 − I o U α + ρ 2 α ( P , G ) c 2 α L C I o U = 1 − I o U + ρ ( P , G ) c 2 + β v ⇒ L α − C I o U = 1 − I o U α + ρ 2 α ( P , G ) c 2 α + ( β v ) α \begin{align} L_{IoU} = 1 - IoU & \Rightarrow L_{\alpha-IoU} = 1 - IoU^\alpha \\ L_{GIoU} = 1 - IoU + \frac{|C - P \cup G|}{|C|} & \Rightarrow L_{\alpha-GIoU} = 1 - IoU^\alpha + (\frac{|C - P \cup G|}{|C|})^{\alpha} \\ L_{DIoU} = 1 - IoU + \frac{\rho^2(P, G)}{c^2} & \Rightarrow L_{\alpha-IoU} = 1 - IoU^\alpha + \frac{\rho^{2\alpha}(P, G)}{c^{2\alpha}} \\ L_{CIoU} = 1 - IoU + \frac{\rho(P, G)}{c^2} + \beta v & \Rightarrow L_{\alpha-CIoU} = 1 - IoU^\alpha + \frac{\rho^{2\alpha}(P, G)}{c^{2\alpha}} + (\beta v)^\alpha \\ \end{align} LIoU=1IoULGIoU=1IoU+CCPGLDIoU=1IoU+c2ρ2(P,G)LCIoU=1IoU+c2ρ(P,G)+βvLαIoU=1IoUαLαGIoU=1IoUα+(CCPG)αLαIoU=1IoUα+c2αρ2α(P,G)LαCIoU=1IoUα+c2αρ2α(P,G)+(βv)α

使得 α \alpha α-IoU 可以显着超越现有的基于 IoU 的损失,通过调节 α \alpha α,使探测器更灵活地实现不同水平的 bbox 回归精度,并且 α \alpha α-IoU 对小数据集和噪声的鲁棒性更强。

并且通过实验发现,在大多数情况下,取 α = 3 \alpha=3 α=3 的效果最好。

Arxiv 2022 | SIoU Loss

  • 论文:SIoU Loss: More Powerful Learning for Bounding Box Regression
  • 公式参考代码(论文中关于 L d i s t a n c e L_distance Ldistance 的描述有点问题,这里形式参考了第三方的实现):https://aistudio.baidu.com/aistudio/projectdetail/4198420

S I o U = I o U − L d i s t a n c e + L s h a p e 2 L d i s t a n c e = ∑ t ∈ { x , y } 1 − e − γ ρ t L s h a p e = ∑ t = { w , h } ( 1 − e − ω t ) θ \begin{align} SIoU & = IoU - \frac{L_{distance} + L_{shape}}{2} \\ L_{distance} & = \sum_{t \in \{x,y\}}1 - e^{- \gamma \rho_t} \\ L_{shape} & = \sum_{t = \{w,h\}}(1 - e^{-\omega_t})^\theta \end{align} SIoULdistanceLshape=IoU2Ldistance+Lshape=t{x,y}1eγρt=t={w,h}(1eωt)θ

  • ρ x = ( G c x − P c x C w ) 2 \rho_x = (\frac{G_{cx} - P_{cx}}{C_{w}})^2 ρx=(CwGcxPcx)2
  • ρ y = ( G c y − P c y C h ) 2 \rho_y = (\frac{G_{cy} - P_{cy}}{C_h})^2 ρy=(ChGcyPcy)2
  • γ = 2 − angle cost = 2 − [ 1 − 2 ∗ sin ⁡ 2 ( arcsin ⁡ ( x ) − π 4 ) ] = 2 − sin ⁡ ( 2 α ) \gamma = 2-\text{angle cost} = 2 - [1 - 2 * \sin^2(\arcsin(x) - \frac{\pi}{4})] = 2 - \sin(2\alpha) γ=2angle cost=2[12sin2(arcsin(x)4π)]=2sin(2α)
  • ω w = ∣ G w − P w ∣ max ⁡ ( G w , P w ) \omega_w=\frac{|G_w-P_w|}{\max(G_w,P_w)} ωw=max(Gw,Pw)GwPw
  • ω h = ∣ G h − P h ∣ max ⁡ ( G h , P h ) \omega_h = \frac{|G_h-P_h|}{\max(G_h,P_h)} ωh=max(Gh,Ph)GhPh

SIoU 提出了一种新的IoU形式,重新定义了惩罚度量,考虑了期望回归之间的向量夹角。

L S I o U = 1 − I o U + L d i s t a n c e + L s h a p e 2 L_{SIoU} = 1 - IoU + \frac{L_{distance} + L_{shape}}{2} LSIoU=1IoU+2Ldistance+Lshape

传统的目标检测损失函数依赖于边界框回归指标的聚合,例如预测框和真实框(即 GIoU、CIoU 等)的距离、重叠区域和纵横比。然而,迄今为止提出和使用的方法都没有考虑期望的真实框和预测框之间不匹配的方向。这种不足导致收敛速度较慢且效率较低,因为预测框在训练过程中可能会“四处游荡”,最终会产生一个更差的模型。

Arxiv 2307 | MPDIoU

  • 论文:MPDIoU: A Loss for Efficient and Accurate Bounding Box Regression
  • 解读:https://mp.weixin.qq.com/s/Lw7jbDibrsCWWQKEvItoag

M P D I o U = I o U − d t l 2 ( P , G ) w 2 + h 2 − d b r 2 ( P , G ) w 2 + h 2 MPDIoU = IoU - \frac{d^2_{tl}(P, G)}{w^2 + h^2} - \frac{d^2_{br}(P, G)}{w^2 + h^2} MPDIoU=IoUw2+h2dtl2(P,G)w2+h2dbr2(P,G)

  • d t l 2 ( P , G ) d^2_{tl}(P, G) dtl2(P,G) 表示预测框 P P P 和 真值框 G G G 左上角点坐标的x和y的差值平方和。
  • d b r 2 ( P , G ) d^2_{br}(P, G) dbr2(P,G) 表示预测框 P P P 和 真值框 G G G 右下角点坐标的x和y的差值平方和。

L M P D I o U = 1 − M P D I o U L_{MPDIoU} = 1 - MPDIoU LMPDIoU=1MPDIoU

  • 值得注意的是,现有的损失函数中所考虑的因素都可以通过左上角点和右下角点的坐标来表示,例如非重叠面积、中心点距离、宽度和高度的偏差,这意味着作者提出的形式不仅考虑全面,还简化了计算过程。
  • 如果预测边界框和真实标注边界框具有相同的宽高比,那么预测边界框位于真实标注边界框内的 L M P D I o U L_{MPDIoU} LMPDIoU值低于预测边界框位于真实标注边界框外的情况。这一特性保证了边界框回归的准确性,倾向于提供具有较少冗余的预测边界框。
  • 该损失始终有界, 0 ≤ L M P D I o U < 3 0 \le L_{MPDIoU} < 3 0LMPDIoU<3
  • I o U = 0 IoU=0 IoU=0时,坐标之间的有限的差异仍然可以提供适当的损失。

参考链接

  • 目标检测中的 IoU loss 变种 - Mr.Jian 的文章 - 知乎 https://zhuanlan.zhihu.com/p/406384631
  • 一文搞懂 EIoU 与 SIoU - 弗拉基米尔的文章 - 知乎 https://zhuanlan.zhihu.com/p/537428926
  • 《一文搞懂 IoU 发展历程》GIoU、DIoU、CIoU、EIoU、αIoU、SIoU:https://blog.csdn.net/weixin_43694096/article/details/126455488

你可能感兴趣的:(#,深度学习实战总结,深度学习,#,数字图像处理,1024程序员节,深度学习,人工智能,机器学习,计算机视觉)