Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression
论文中通过提出一个新的损失函数来提升目标检测精度,思路比较新颖。
Motivation
IoU是目标检测中最常用的评估尺度,它是一种比值的概念,具有scale不敏感的特性。目前,检测任务通常都是采用回归损失(如MSE loss, smooth l1 loss)作为网络的目标函数,用IoU作为评估的尺度,但是这两者之间实际上是不等价的(如下图)。而且,\(L_n\)也不是尺度不变的。通常来说,网络最好的目标函数就是尺度函数本身。但是直接使用IoU作为loss无法对不重叠的bounding box。论文中对使用IoU作为损失函数进行了探索,并提出了一种新的损失函数,GIoU。
Generalized Intersection over Union
GIoU定义
IoU的计算公式如下:
\[ IoU=\frac{|A{\cap}B|}{|A{\cup}B|} \]
IoU主要有两种特性:
- IoU可以作为距离
- IoU具有尺度不变性
但是IoU的一个缺点在于,当\(A{\cap}B=0\)时,IoU=0。这个时候IoU并不能反映出两个图像是邻近还是相隔很远。
针对这个缺点,论文中提出GIoU,其计算方法如下:
- 对于任意两个凸多边形A和B,首先计算A和B的外包多边形C
- 计算C中出去A、B部分的剩下的面积占C的面积的比率
- GIoU的值为IoU减去这个比率
GIoU具有如下特性:
- 与IoU类似,GIoU可以作为一种距离度量
- 与IoU类似,GIoU具有尺度不变性
- GIoU是IoU的一个下界,即\(GIoU(A, B) {\leq}IoU(A,B)\)
- \(-1{\leq}GIoU(A, B) {\leq}1\)
GIoU作为边界框回归的损失函数
任意形状多边形的外包多边形不好求,但是在目标检测中,这个多边形是axis aligned的矩形,这使得计算GIoU变得非常容易。具体计算方法如下图:
实验结果
作者在VOC和COCO上分别采用Yolo V3和Faster RCNN算法进行了实验
Pascal VOC with yolo
MS COCO with yolo
Pascal VOC with Faster RCNN
MS COCO with Faster RCNN