Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression
Hamid Rezatofighi
Stanford University, 2019
大家都知道IoU是常用的评价性能的度量,但训练时的目标函数却采用了其它的如MSE之类的Loss,从天然上就存在了偏差。本论文即着眼于此,提出了一种GIoU,解决了IoU不能用来当做目标函数的缺点。在SOTA的检测算法基础上能提升~2个点,非常值得一试。
1. Introduction
限位框回归是许多2D/3D CV任务中最基础的部分,如物体定位,多目标检测、目标追踪和实例分割都依赖它。现在提升DNN性能的主要潮流都是更精巧的backbone[15, 13]或更可靠的提取局部特征的策略[6]。但是有一个提升的机会一直被忽略了,那就是用基于IoU的loss对于回归使用的loss,如l1和l2-norms,的替代。
IoU
,又被称为Jaccard index 雅卡尔指数,是最常用的比较两个任意形状相似度的度量。IoU把被比较的物体形状信息,如宽、高、位置,编码为区域属性,并计算为关于它们区域的归一化度量。这一属性让IoU对尺度具有不变性。因此许多问题都使用它作为性能度量。
但是很显然,在最小化常用loss,如$l_n-norms$,与提升IoU的值之间并不强相关。例如图1a中的场景,黑色方框为预测,绿色方框为gt。因为三幅图中gt和pd的左下角之间的l2距离都一样。则所有pd右上角位于以gt右上角为圆心的一个圆上的,与gt的l2距离都相等,但它们的IoU却差别巨大。这一论据可以扩展到任意其它loss上,如图1b。从直觉上讲,对loss的好的局部最优不是IoU局部最优的必要条件。而且与IoU相反,$l_n-norm$所基于的参数表达对尺度不具有不变性。因此一些有着同样等级重叠的限位框会因为尺度不同,有着不同的loss值。此外,有的表达在不同类型参数间缺乏正则化。例如,在中心和尺寸表达间,中心是在位置空间定义的而尺寸是在尺寸空间定义的。当包含更多参数时,如旋转、或为问题增加维度,复杂度也随之上升。为了缓和上述问题,SOTA的目标检测器提出Anchor作为好的初始猜想。他们也定义了一个非线性表达[19, 5]来naively补偿尺度变化。但就算有这些手工制作的改变,优化回归loss和IoU值之间仍有分歧。
本论文探索了与两个轴对齐的矩形IoU计算,及更泛化的两轴对齐的n-orthotopes(高维矩形的统称),它有着很直观的解析解。而且与流行观点相反,IoU也能进行反向传播[24],也就是说它能直接用做优化的目标函数。但IoU同时作为度量和loss函数有两个问题:(i) 如果两个物体没有重叠,IoU会是0,从而无法反映它们离多远,而作为loss它的梯度为0,从而无法优化。(ii) IoU无法很好的区分两个物体不同的对齐方式(图2),它的值无法反映两个物体叠加的形式。
本论文将通过把IoU扩展到非重叠情况来解决这一问题。我们保证了这一泛化具有以下特性:
- 与IoU定义相同
- 保持了IoU的尺度不变性
- 在重叠情况下与IoU强相关
这一泛化的IoU能度量两个任意凸的形状,我们把它称为GIoU。我们也提供了计算两个与轴对齐的矩形的GIoU的解析解,让它可以被用作loss。
2. Related Work
Object detection accuracy measures: IoU是目标检测准确度的度量。VOC采用IoU@0.5作为度量,但这样对IoU大于0.5的都一视同仁。COCO采用的是多个IoU阈值的mAP的均值。
Bounding box representations and losses: YOLOv1直接预测限位框,不过加了一点小改动,预测限位框尺寸的平方根来缓和尺度敏感性。R-CNN则预测从Selective search算法得到的先验限位框的位置和尺寸偏移。尺寸偏移定义于log空间,以减轻尺度敏感性。并使用L2-norm,即MSE作为loss函数。在Fast R-CNN中,改为L1-smooth loss以增强对异常值的健壮性。Faster R-CNN提出了使用密集的先验限位框,即anchor,并回归得到对于位置和尺寸的细小变化。但由于正负样本的不平衡,训练限位框更难了。因此作者后来又提出了focal loss,这与本文的关注点是正交的orthogonal。
Optimizing IoU using an approximate or a surrogate function: 在语义分割任务中,曾经有过使用近似函数[18]或替代(surrogate )loss[17]的尝试。近期在目标检测任务中,也出现了直接或间接包含IoU的工作。但它们不是受到近似问题,就是受到无重叠情况下优化IoU时的plateau问题困扰。
3. Generalized Intersection over Union
IoU公式如下:
IoU有两个极具吸引力的特征,使它成为了最流行的2D/3D CV任务度量:
- IoU作为距离,如$\mathbf L_{IoU} = 1 - IoU$,是一种度量(通过数学定义)[9]。也就是说$\mathbf L_{IoU}$满足一个度量所有属性,如非负,Identity of indiscernibles(不可分与同一性),对称性与三角不等式。
- IoU具有尺度不变性。
但它也有两个缺点:
- 当$|A \cap B| = 0, IoU(A,B) =0$。这时IoU无法反映两个形状到底是邻近还是相去甚远。
- 只要两个形状的交集面积相等,不同对齐方式下IoU值也都相等。如图2
为了解决这两个问题,我们提出了GIoU。
对于两个任意凸图形,$A,B \subseteq \mathbb S \in \mathbb R^n$,我们先找到最小的同时包围A和B的凸图形C,使$C \subseteq \mathbb S \in \mathbb R^n$。在比较两个特定类型形状时,C可以是同样的形状。比如任意的两个椭圆体 ellipsoid,C可以是最小的包含它们的椭圆体。接下来我们计算比值,即C中除了AB之外的容积除以C的总容积。这表达了专注于AB间空的容积的归一化度量。GIoU是通过这个比值减去IoU的值得到,其计算见算法1。
GIoU是一个有如下属性的新的度量:
- 与IoU相似,GIoU也是一种距离
- 与IoU相似,GIoU也具有尺度不变性
- GIoU始终是IoU的一个下界,即$\forall A,B \subseteq \mathbb S, GIoU(A,B) \leq IoU(A,B)$。当A和B形状变得相似,距离变近时,这个下界变得更紧,即$lim_{A \to B} GIoU (A,B) = IoU(A,B)$
- $\forall A,B \subseteq \mathbb S, 0 \leq IoU(A,B) \leq 1$,但GIoU有一个对称的范围,即$\forall A,B \subseteq \mathbb S, -1 \leq GIoU(A,B) \leq 1$
- 与IoU相似,只有当两个形状完美重叠时值为1。
- 当A与B的并集除以C趋近于0时,GIoU的值渐进地asymptotically收敛converge于-1,即$lim_{\frac {|A \cup B|}{|C|} \to 0} GIoU(A,B) = -1$
- 与IoU不同的是,GIoU不仅仅关注重叠区域。当A、B对得不齐时,C中间的空余区域会变大。GIoU从而能更好的反应两个物体重叠得如何
总的来说,这一泛化保留了IoU的主要属性,同时改正了其弱点。
后续论文介绍了IoU和GIoU作为限位框loss的算法。并比较了这两个loss的相关性、稳定性等。然后使用这两个loss改进SOTA的目标检测器,如Faster R-CNN, YOLOv3,Mask R-CNN等,都获得了1~2个点的增长。请查阅原文,本文将不再赘述。