目标检测(损失函数):目标定位损失—GIoU

目标检测(损失函数):目标定位损失—GIoU


C V P R   2019 CVPR~2019CVPR 2019 有一篇介绍目标检测定位损失函数的 p a p e r paperpaper

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

1、提出问题

目标检测的主要任务之一是对目标定位。通常我们使用边界框来表示它。衡量目标检测定位性能的主要指标是交并比 I o U IoUIoU。但是我们在设计损失函数时通常使用 m s e msemse 等损失函数来优化模型对目标的定位结果。但是,这类损失函数并不总是能够很好地反映定位精度。如下图 1 11 所示:
在这里插入图片描述

图 1: (a) l 2 l_2l2 距离相等但是 I o U IoUIoUG I o U GIoUGIoU 不相等;(b) l 1 l_1l1 距离相等但是 I o U IoUIoUG I o U GIoUGIoU 不相等


因此,考虑直接使用 I o U IoUIoU 衡量目标定位损失。
L I o U = 1 − I o U L_{IoU}=1-IoULIoU=1IoU

I o U IoUIoU 还有一个优点:尺度不变性

但是这样做也存在以下几点问题:

  1. 如果两个框没有相交,则 I o U = 0 IoU=0IoU=0 这时无法反映两个框的距离(相似程度)。并且损失函数此时不存在梯度,无法通过梯度下降进行训练。
  2. 即使相同的 I o U IoUIoU 也不能代表检测框的定位效果相同。 如图所示:
    在这里插入图片描述
    图 2: 以上几种情况下均有 I o U = 0.33 IoU=0.33IoU=0.33 但是显然从左到右定位效果越来越差。

2、解决方案

针对上述两个缺陷,作者提出新的指标:G I o U GIoUGIoU,计算方法如图 3 33 所示。
在这里插入图片描述

图 3: G I o U GIoUGIoU 计算方法

算法思路如下:
输入:任意两个凸几何
输出:G I o U GIoUGIoU

  1. 对于 A AAB BB 首先计算最小闭包 C CC
  2. I o U = ∣ A ∩ B ∣ ∣ A ∪ B ∣ IoU=\frac{|A\cap B|}{|A\cup B|}IoU=ABAB
  3. G I o U = I o U − ∣ C \ ( A ∪ B ) ∣ ∣ C ∣ GIoU=IoU-\frac{|C\backslash(A\cup B)|}{|C|}GIoU=IoUCC\(AB)

G I o U GIoUGIoU 具有如下特点:

  1. L G I o U = 1 − G I o U L_{GIoU}=1-GIoULGIoU=1GIoU 损失函数具有一般损失函数所有的性质,如,非负性。
  2. 对尺度不敏感,即尺度不变性。
  3. G I o U GIoUGIoUI o U IoUIoU 的一个下界,当两个几何越相似,该下界越紧。即,lim ⁡ A → B G I o U ( A , B ) = I o U ( A , B ) \lim _{A \rightarrow B} GIoU(A, B)=IoU(A, B)limABGIoU(A,B)=IoU(A,B)
  4. ∀ A , B ⊆ S , 0 ≤ I o U ( A , B ) ≤ 1 \forall A, B \subseteq \mathbb{S}, 0 \leq IoU(A, B) \leq 1A,BS,0IoU(A,B)1,但是,∀ A , B ⊆ S , − 1 ≤ G I o U ( A , B ) ≤ 1 \forall A, B \subseteq \mathbb{S}, -1 \leq GIoU(A, B) \leq 1A,BS,1GIoU(A,B)1
  5. I o U IoUIoU 只关注重叠区域不同,G I o U GIoUGIoU 不仅关注重叠区域,还关注非重合区域,能更好的反映两者的重合度。

损失函数计算步骤如下图 4 44
在这里插入图片描述

图 4: L I o U L_{IoU}LIoUL G I o U L_{GIoU}LGIoU 计算方法


版权声明:本文为weixin_41665360原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。