另辟蹊径!斯坦福大学提出边界框回归任务新Loss:GIoU
作者:白 将
编辑:田 旭
简 介
目标检测任务包括物体的分类以及边界框回归,后者关乎着物体定位的准确性。目前边界框回归loss大部分采用的是回归损失,如L1和L2损失,但是对物体定位准确性的评估却是采用IoU,很显然模型的训练和评估之间会存在一定的gap。这正是论文Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression所要解决的问题,这篇论文提出了一种用于边界框回归任务的新loss:GIoU,而且也可作为评估指标,基于GIoU训练的目标检测模型相比基准会有一定的提升。
01
IoU vs 回归损失
图1 IoU的计算示例
IoU编码的是两个边界框的形状性质,那么边界框的长,宽以及位置信息已经包含在内,所以说IoU是对物体尺度是不敏感的。而且IoU是一个归一化的指标,其值范围在[0,1]之间,当两个物体完全无交集时为0,而完全重叠时为1。所以IoU用于评价预测框和真实框的一致性是非常合适的。
而实际上主流的目标检测模型在训练时都是采用的回归损失,如L1和L2(Faster R-CNN采用smooth l1),我们来分析一下回归损失所面临的问题,边界框通常用左上和右下两个顶点来表示:
图2 相同回归损失下的边界框差异性
其中绿色是真实框,而黑色是预测框,对于图2a,我们固定了两个框的左下顶点,同时固定了右上顶点的距离,此时预测框可以变化多测,但是l2损失是固定的。我们计算IoU值后发现也是变化非常大。同样的图2b可以看到l1损失存在类似的问题。这说明回归loss可能会陷入IoU指标的一个局部极值点。实际上,目标检测算法一般不会直接回归2个点,而不是预测边界框的中心点
那么是否可以直接采用IoU作为loss,事实上是可以的,IoU loss已经被应用在图像分割中(与检测不太一样),IoU作为一种损失函数是可以进行BP的,因而可用于模型训练。但是IoU有一个致命的缺点,那就是当两个形状没有任何重叠时,IoU值为0,无法反映两个形状的具体偏差,而且梯度是0,无法对模型进行优化。图3可以展示这个问题,蓝色是真实框,图3a的黄色框和3的绿色框均与真实框没有交集,但是明显3b的预测更好,但是反映在IoU上均为0。
02
GloU vs IoU
由于IoU本身存在的问题,论文据此提出了一种新的指标:generalized IoU (GIoU),其计算公式如下:
这里限定A和B是两个任意的凸形状(或者体):
与IoU值一样,其大小可以反映两个形状的重合程度,重合度越大,值越大,所以1-GIoU可以作为优化的目标函数;
GIoU和IoU一样对物体的尺度不敏感,这正是我们所希望的;
GIoU是IoU的下界,即:GIoU(A,B) <= IoU(A,B);
IoU的值范围为[0,1],但是GIoU的值范围是[-1,1],如果A和B完全重叠,那么GIoU=IoU=1,这是上限,但是当AUB相比C趋近于0时,GIoU向-1逼近。
最重要的是GIoU会克服IoU的短板,当A和B完全不重合时,GIoU依然起作用。还是前面的例子如图4所示,可以看到图a相比图b,C的大小较大,这样图a的GIoU值是小于图b的,这说明GIoU对这种情况是可以处理的,虽然IoU值为0,但是当预测更好时,GIoU值是增加的。
论文中选取了10K的随机样本,给出了GIoU和IoU之间的关系对比,如下图所示:
可以看到当IoU值较大时,GIoU的值比较接近IoU值,当IoU值较小时,两者差距变大,而且GIoU的变化程度更大,这说明GIoU可能拥有更大的梯度,作为优化目标更适合。
对于矩形框问题,GIoU的计算非常简单,只需要min和max操作就可以完成,其伪代码如下所示:
图6 GIoU的伪代码实现
论文中以YOLOv3和Faster R-CNN进行实验,发现采用GIoU作为边界框loss,效果有提升,效果如下所示:
03
总结
参考
Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression
GIoU website
END
机器学习算法工程师
一个用心的公众号
进群,学习,得帮助
你的关注,我们的热度,
我们一定给你学习最大的帮助