目标检测算法之CVPR2019 GIoU Loss

目标检测算法之CVPR2019 GIoU Loss

首先说一下GIOU的计算方式:
目标检测算法之CVPR2019 GIoU Loss
然后计算C \ (A ∪ B) 的面积与C的面积的比值,注:C \ (A ∪ B) 的面积为C的面积减去A∪B的面积。再用A、B的IoU值减去这个比值得到GIoU。

前面介绍了很多Anchor-Based的目标检测算法,它们的Loss普遍使用bbox和ground truth bbox的L1范数,L2范数来计算位置回归Loss。但在评测的时候却使用IOU(交并比)去判断是否检测到目标。显然这两者并不是完全等价的,论文中举了Figure 1作为例子:
目标检测算法之CVPR2019 GIoU Loss
图中第一行,所有目标的L1 Loss都一样,但是第三个的IOU显然是要大于第一个,并且第3个的检测结果似乎也是好于第一个的。第二行类似,所有目标的L1 Loss也都一样,但IOU却存在差异。因此使用bbox和ground truth bbox的L1范数,L2范数来计算位置回归Loss以及在评测的时候却使用IOU(交并比)去判断是否检测到目标是有一个界限的,这两者并不等价。因此,一种直观的想法就是直接将IOU作为Loss来优化任务,但这存在两个问题:
1、预测框bbox和ground truth bbox如果没有重叠,IOU就始终为0并且无法优化。也就是说损失函数失去了可导的性质。
2、IOU无法分辨不同方式的对齐,例如方向不一致等,如下图所示,可以看到三种方式拥有相同的IOU值,但空间却完全不同。
目标检测算法之CVPR2019 GIoU Loss
GIoU相比于IoU有如下性质:
目标检测算法之CVPR2019 GIoU Loss
针对二维图像的目标检测,具体如何计算GIoU Loss呢?假设现在预测的bbox和ground truth bbox的坐标分别表示为:目标检测算法之CVPR2019 GIoU Loss
其中,x2p>x1px_{2}^{p}>x_{1}^{p}y2p>y1py_{2}^{p}>y_{1}^{p}。然后计算Loss的具体过程可以表示为:目标检测算法之CVPR2019 GIoU Loss
目标检测算法之CVPR2019 GIoU Loss
目标检测算法之CVPR2019 GIoU Loss