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

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

论文链接: https://arxiv.org/abs/1911.08287

一、 Problem Statement

Bounding Box的回归分支在目标检测中很重要。目前, l n l_n ln-norm loss 对获得最优的IoU metric不是很合适,IoU Loss 只有在bounding boxes 有重叠的时候起作用,而且不会提供任何移动梯度给不重叠的bounding boxes,也就是梯度消失。而GIoU Loss改善了IoU Loss的情况,但有以下缺点:

  1. GIoU Loss 首先尝试增大预测bounding boxes的大小,使其与target box有重叠。通过IoU term来最大化重叠区域。因此,GIoU Loss 依赖于IoU term,需要更多的迭代去收敛,特别是对于那些水平和垂直的bounding boxes。
  2. 其次,作者认为, 对于bounding box regression,一个好的loss 需要考虑三个重要的几何信息:overlap area, central point distance 和 aspect ratio。

详细的图示案例可以查看这篇博客。

所以作者提了两个问题:
4. 是否可以直接最小化normalized distance between predicted box and target box,从而加快收敛速度。
5. 当与目标框有重叠,甚至被包含的时候,怎么样使得回归更加的精准和快速。

二、 Direction

  1. 针对GIoU Loss, 提出优化Iou penalty term,解决第一个问题。
  2. 提出CIoU Loss, 解决第二个问题。
  3. 提出DIoU NMS。

三、 Method

先来回顾以下IoU Loss 和 GIoU 的公式。
首先,IoU的定义如下:
I o U = ∣ B ∩ B g t ∣ ∣ B ∪ B g t ∣ IoU = \frac{|B \cap B^{gt}|}{|B \cup B^{gt}|} IoU=BBgtBBgt
其中, B g t = ( x g t , y g t , w g t , h g t ) B^{gt}=(x^{gt}, y^{gt}, w^{gt}, h^{gt}) Bgt=(xgt,ygt,wgt,hgt)是ground-truth,而预测的是相对应的 B B B

基于上面式子,IoU Loss的表达式为:
L I o U = 1 − ∣ B ∩ B g t ∣ ∣ B ∪ B g t ∣ L_{IoU} = 1 - \frac{|B \cap B^{gt}|}{|B \cup B^{gt}|} LIoU=1BBgtBBgt
所以,IoU Loss 只有在bounding boxes有重叠的时候奏效, 也不能提供任何的移动梯度给不重叠的情况。所以GIoU Loss 就提出来了。
L G I o U = 1 − I o U + ∣ C − B ∪ B g t ∣ ∣ C ∣ L_{GIoU} = 1 - IoU + \frac{|C - B \cup B^{gt}|}{|C|} LGIoU=1IoU+CCBBgt
这里的 C C C是覆盖 B B B B g t B^{gt} Bgt的框的面积。
相比于IoU Loss, 多了一个penalty term ∣ C − B ∪ B g t ∣ ∣ C ∣ \frac{|C - B \cup B^{gt}|}{|C|} CCBBgt。由于这个penalty term,在没有重叠的情况下,预测的bounding box会向ground truth box移动。
而当两个boxes有重叠或者被包含的时候,penalty term通常很小或者为0, 收敛速度慢。
所以作者提出下面的改进方法。

1. Distance-IoU Loss

为了优化penalty term,作者提出最小化两个bounding boxes中心点的normalized distance。
L D I o U = 1 − I o U + ρ 2 ( b , b g t ) c 2 L_{DIoU} = 1 - IoU + \frac{\rho^2(b,b^{gt})}{c^2} LDIoU=1IoU+c2ρ2(b,bgt)
其中, b , b g t b, b^{gt} b,bgt分别是预测框和ground-truth的中心点, ρ \rho ρ是欧几里德距离, c c c是两个框的最小包围框的对角长度。如下图所示:

Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression 论文笔记_第1张图片

因此,DIoU Loss是直接最小化两个目标框的中心点距离。

相比于IoU Loss 和 GIoU Loss,DIoU Loss也继承了以下特征:

  1. DIoU Loss 对于回归问题仍然是尺度不变的。
  2. 当遇到没有重叠的情况下,DIoU提供了移动方向。
  3. 当两个框完美匹配的时候,三个loss 接近于0,而两个框离的很远的时候, L G I o U = L D I o U → 2 L_{GIoU}=L_{DIoU} \rightarrow 2 LGIoU=LDIoU2

但DIoU Loss 收敛速度快。

2. Complete IoU Loss

对于第二个问题,当与目标框有重叠,甚至被包含的时候,怎么样使得回归更加的精准和快速。 作者认为,好的 bounding box regression loss应该考虑三个重要的几何信息: overlap area, central point distance 和 aspect ratio。IoU Loss 考虑了overlap area, GIoU Loss 依赖于IoU Loss, 而DIoU Loss考虑了overlap area 和 central point distance。然而对于aspect ratio, 作者提出了下列Loss:

L C I o U = 1 − I o U + ρ 2 ( b , b g t ) c 2 + α v L_{CIoU} = 1 - IoU + \frac{\rho^2(b,b^{gt})}{c^2} + \alpha v LCIoU=1IoU+c2ρ2(b,bgt)+αv
其中:
v = 4 π 2 ( arctan ⁡ w g t h g t − arctan ⁡ w h ) 2 v= \frac{4}{\pi^2}(\arctan\frac{w^{gt}}{h^{gt}} - \arctan\frac{w}{h})^2 v=π24(arctanhgtwgtarctanhw)2

α = v ( 1 − I o U ) + v \alpha = \frac{v}{(1-IoU)+v} α=(1IoU)+vv

而Loss所对应的梯度为:
∂ v ∂ w = 8 π 2 ( arctan ⁡ w g t h g t − arctan ⁡ w h ) × h w 2 + h 2 \frac{\partial v}{\partial w} = \frac{8}{\pi^2}(\arctan\frac{w^{gt}}{h^{gt}} - \arctan\frac{w}{h}) \times \frac{h}{w^2+h^2} wv=π28(arctanhgtwgtarctanhw)×w2+h2h

∂ v ∂ h = − 8 π 2 ( arctan ⁡ w g t h g t − arctan ⁡ w h ) × w w 2 + h 2 \frac{\partial v}{\partial h} = -\frac{8}{\pi^2}(\arctan\frac{w^{gt}}{h^{gt}} - \arctan\frac{w}{h}) \times \frac{w}{w^2+h^2} hv=π28(arctanhgtwgtarctanhw)×w2+h2w

而分母 w 2 + h 2 w^2+h^2 w2+h2 h , w ∈ [ 0 , 1 ] h, w \in [0, 1] h,w[0,1]的情况下通常很小,很可能会产生梯度爆炸。因此为了稳定的收敛,作者简单的将 1 w 2 + h 2 \frac{1}{w^2+h^2} w2+h21置为1。

3. DIoU NMS

原始的NMS中,重叠面积是唯一的一个考量因素,对被包含的情况会产生错误的抑制。因此作者提出了不仅仅考量重叠面积,还需要考虑两个框中心点的距离。定义如下:
s i = { s i , I o U − R D I o U ( M , B i ) < ϵ 0 , I o U − R D I o U ( M , B i ) ≥ ϵ s_i = \{ \begin{matrix} s_i, \quad IoU - R_{DIoU}(M, B_i) < \epsilon \\ 0, \quad IoU - R_{DIoU}(M, B_i) \geq \epsilon \end{matrix} si={si,IoURDIoU(M,Bi)<ϵ0,IoURDIoU(M,Bi)ϵ
其中, M M M是预测的最高置信度的框, B B B是其他预测的框。 s i s_i si是classification score, ϵ \epsilon ϵ是NMS阈值。 R D I o U ( ∙ ) R_{DIoU}(\bullet) RDIoU()是上面DIoU Loss里面的penalty term。作者认为如果两个框中心点较远,应该是两个目标,不应该被移除。。。

四、 Conclusion

CIoU Loss 对于小目标的AP值比原始的IoU Loss表现较差而DIoU Loss是最好的。作者认为aspect ratio对小目标的regression accuracy作用不大。因为对于回归来说,中心点距离比aspect ratio更重要。而且aspect ratio可能会减弱两个框中心点normalizd distance的影响。而对于中等或者大的目标,CIoU Loss效果更好。

五、 Reference

你可能感兴趣的:(损失函数,深度学习,人工智能,神经网络)