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 所示:
因此,考虑直接使用 I o U IoUIoU 衡量目标定位损失。
L I o U = 1 − I o U L_{IoU}=1-IoULIoU=1−IoU
I o U IoUIoU 还有一个优点:尺度不变性
但是这样做也存在以下几点问题:
- 如果两个框没有相交,则 I o U = 0 IoU=0IoU=0 这时无法反映两个框的距离(相似程度)。并且损失函数此时不存在梯度,无法通过梯度下降进行训练。
- 即使相同的 I o U IoUIoU 也不能代表检测框的定位效果相同。 如图所示:

图 2: 以上几种情况下均有 I o U = 0.33 IoU=0.33IoU=0.33 但是显然从左到右定位效果越来越差。
2、解决方案
针对上述两个缺陷,作者提出新的指标:G I o U GIoUGIoU,计算方法如图 3 33 所示。
算法思路如下:
输入:任意两个凸几何
输出:G I o U GIoUGIoU
- 对于 A AA 和 B BB 首先计算最小闭包 C CC。
- I o U = ∣ A ∩ B ∣ ∣ A ∪ B ∣ IoU=\frac{|A\cap B|}{|A\cup B|}IoU=∣A∪B∣∣A∩B∣
- G I o U = I o U − ∣ C \ ( A ∪ B ) ∣ ∣ C ∣ GIoU=IoU-\frac{|C\backslash(A\cup B)|}{|C|}GIoU=IoU−∣C∣∣C\(A∪B)∣
G I o U GIoUGIoU 具有如下特点:
- L G I o U = 1 − G I o U L_{GIoU}=1-GIoULGIoU=1−GIoU 损失函数具有一般损失函数所有的性质,如,非负性。
- 对尺度不敏感,即尺度不变性。
- G I o U GIoUGIoU 是 I 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)limA→BGIoU(A,B)=IoU(A,B)。
- ∀ A , B ⊆ S , 0 ≤ I o U ( A , B ) ≤ 1 \forall A, B \subseteq \mathbb{S}, 0 \leq IoU(A, B) \leq 1∀A,B⊆S,0≤IoU(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 1∀A,B⊆S,−1≤GIoU(A,B)≤1
- 与 I o U IoUIoU 只关注重叠区域不同,G I o U GIoUGIoU 不仅关注重叠区域,还关注非重合区域,能更好的反映两者的重合度。
损失函数计算步骤如下图 4 44:
版权声明:本文为weixin_41665360原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。