GIoU
作者 | ywsun
论文链接 | arxiv.org/abs/1902.0963
原文地址 | https://zhuanlan.zhihu.com/p/57863810
作者没有对网络结构进行改进,反而是从一个特殊的视角来考虑目标检测的改进点——使用基于IOU的度量来代替传统回归的损失。
作者的主要贡献是:
1.提出了IOU的通用版本——GIOU,作为比较两个任意形状的新指标;
2.提供了将GIOU作为二维坐标框对齐时的loss方案;
3.主要在Faster/Mask RCNN与YOLO v3上面进行试验,证明在two-stage与one-stage上面均表现很好。
Bounding box回归是2D/3D视觉任务总的基础模块。目标检测、实例分割等等 都需要bbox回归来获得较为准确地定位。目前来讲,想要获得更好的检测效果,要么使用重的backbone,要么设计更好的网络结构。但是这两种方案都忽略了bbox regression中基于IOU计算度量的L1/L2 loss。
IOU的作用:
在anchor机制中,IOU的作用:
(1)确定正负样本(0.5);
(2)评价预测框和真实框之间的距离。
在回归的任务中,判断pre-bbox与gt-bbox离最直接的指标就是IOU,但是所采用的loss函数却不太适用:两个框的某一个角之间的距离是固定的,相同的L2-norm值相同,而其IOU值可以是完全不同的。
因此,一个好的局部优化解未必是IOU的局部优化解。如下图所示:
IOU的优点:
对于1-IoU作为距离度量,优点:满足非负性;同一性;对称性;三角不等性,对尺度不敏感(scale-invariant)
IOU的缺点:
使用IOU来指导回归任务的学习,IOU可以被反向传播。然而,将IOU作为损失有两个问题:
(1)无法衡量两框是相邻还是甚远:如果IOU=0,并不能反映出两个BBOX之间的距离(临近还是相离很远),梯度将为0,无法优化;
(2)无法反应相交方式:如果对齐方式不同,但是交叉区域相同的话,其IOU将完全相等
针对上述IOU两点问题,作者提出改进方案:GIOU。
假设A为预测框,B为真实框,S是所有框的集合,不管A与B是否相交,C是包含A与B的最小框,C也属于S集合
步骤:
(1)首先计算IoU,A与B的交并比
(2)再计算C框中没有A与B的面积,比上C框面积
(3)IoU减去前面算出的比;得到GIoU
与IOU相似,GIOU也是一种距离度量;对尺度不敏感;GIOU是IOU的下界;GIOU=[-1,1];GIOU不仅仅关注重叠区域,还关注其他的不重合区域。
GIoU的作用:
对于相交的IOU可以被反向传播,即它可以直接用作优化的目标函数。但是非相交的,梯度将会为0,无法优化。
使用GIOU可以避免该问题,将其作为损失函数,可直接优化LGIou函数。步骤下图:
实验:
作者将YOLO v3、Faster/Mask RCNN作为benchmarks来验证提出的方法,证明了不论是one-stage还是two-stage,GIOU对于检测效果都有提升。下图是在COCO数据集上的实验结果对比图:
YOLO v3涨幅比较明显,这是因为Faster/Mask RCNN中anchors很密集,GIOU发挥的作用的情况不多。