CVPR2019 GIoU

CVPR2019 论文《Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression》
论文地址: https://arxiv.org/abs/1902.09630

说在前面

CVPR2019 GIoU_第1张图片
这篇论文有好几个创新点,主要就是想把IoU做为Loss。然后又基于IoU做为loss存在的不足,提出了GIoU。

1.基本介绍

CVPR2019 GIoU_第2张图片
在目标检测中现在基本上都是用IoU来评估,然而优化bounding box回归参数的距离损失和这个度量值有一定的差距。
在轴对齐的2D边界框的情况下,可以把IoU直接用作回归损失。
在这里插入图片描述
在最小化常用损失(例如“Ln-norm”)与改进其IOU值之间没有很强的相关性,这是在二维/三维中两个边界框的参数表示上定义的。在下图Fig.1中,预测的边界框(黑)和真值框(绿)由它们的左上角和右下角表示,即(x1、y1、x2、y2)。把两个框的一个角之间的距离(“L2-norm”)固。因此,任何第二个角位于以绿色矩形第二个角为中心的固定半径圆上的预测边界框(以灰色虚线圆表示)与真值框之间的“L2-范数距离”将完全相同,但是它们的IOU值可以显著不同。Fig.1下面一行扩展到L1范数距离也存在不同。
CVPR2019 GIoU_第3张图片
其中:
L1范数: ||x|| 为x向量各个元素绝对值之和。
L2范数: ||x||为x向量各个元素平方和的1/2次方,L2范数又称Euclidean范数或者Frobenius范数
Lp范数: ||x||为x向量各个元素绝对值p次方和的1/p次方
L∞范数: ||x||为x向量各个元素绝对值最大那个元素的绝对值,如下:
在这里插入图片描述

IoU有一些优点

(1)IoU可以作为距离,loss=1-IoU。
(2)IoU对尺度变化具有不变性,即不受两个物体尺度大小的影响。

但是IoU做为损失存在问题

(1)If |A∩B| = 0, IoU(A, B) = 0. In this case, IoU does not reflect if two shapes are in vicinity of each other or very far from each other。

如果两个对象不重叠,IOU值将为零,并且不会反映两个形状彼此之间的距离。在非重叠对象的情况下,如果将IOU用作损耗,则其梯度将为零,无法优化;

(2) IoU value for different alignments of two shapes is identical as long as the volume (area) of their intersection in each case is equal. Therefore, IoU does not reflect how overlap between two objects occurs。

IOU无法正确区分两个对象的不同对齐方式。更准确地说,两个物体在多个不同方向上重叠,且交叉点水平相同,其IOU将完全相等。因此,iou函数的值并不反映两个对象之间如何发生重叠。如下图Fig.2 所示:
CVPR2019 GIoU_第4张图片

根据上面这些问题就提出了GIoU

GIoU定义如下

CVPR2019 GIoU_第5张图片
其实就是假如现在有两个任意 A,B,找到一个最小的封闭形状C,让C可以把A,B包含在内,然后我们计算C中没有覆盖A和B的面积占C总面积的比值,然后用A与B的IoU减去这个比值,这就是GIoU,

GIoU有一些性质

  1. 与IoU类似,GIoU也可以作为一个距离,loss可以用 (下面的公式)来计算
    在这里插入图片描述
    CVPR2019 GIoU_第6张图片
  2. 尺度的不变性
    在这里插入图片描述
  3. GIoU可认为是IoU的下界,小于等于IoU
    CVPR2019 GIoU_第7张图片
    4.-1<=GIoU<=1,当A=B时,GIoU=IoU=1;当A与B不相交而且离得很远时,GIoU(A,B)趋向于-1。
    CVPR2019 GIoU_第8张图片
    5.与IoU相比,GIoU不仅关注重叠区域。 当A和B相对于彼此没有很好地对准时,封闭形状C中的两个对称形状A和B之间的空白空间增加(Fig.2)。 因此,GIoU的值可以更好地反映两个对称物体之间如何发生重叠。
    CVPR2019 GIoU_第9张图片
    而作者在10K随机2D样本上测试,GIoU和IoU情况如下:
    CVPR2019 GIoU_第10张图片

那么GIoU怎么作为 BBox 回归的损失

作者给出了公式
CVPR2019 GIoU_第11张图片

然后结果

作者做了一系列的实验(针对分割任务和分类任务有一定 loss 的调整设计)在YOLO 和 faster R-CNN 结果是 IoU loss 可以轻微提升使用 MSE 作为 loss 的表现,而 GIoU 的提升幅度更大。

CVPR2019 GIoU_第12张图片
CVPR2019 GIoU_第13张图片
CVPR2019 GIoU_第14张图片
CVPR2019 GIoU_第15张图片
CVPR2019 GIoU_第16张图片
CVPR2019 GIoU_第17张图片
CVPR2019 GIoU_第18张图片
CVPR2019 GIoU_第19张图片
做了好多实验。。。

ref

1.https://blog.csdn.net/qq_39027890/article/details/88049545
2.https://blog.csdn.net/stezio/article/details/88367440
3.http://m.elecfans.com/article/883151.html

你可能感兴趣的:(Object,detection,CVPR19,GIoU)