zl程序教程

您现在的位置是:首页 >  其他

当前栏目

《GIoU: A Metric and A Loss for Bounding Box Regression》论文笔记

论文笔记 for and Box Loss Regression
2023-09-11 14:22:29 时间

1. 概述

1.1 背景

IoU通常作为检测性能的度量指标,其具有尺度不变性,但是最大化检测框的IoU与优化检测框的回归loss并不是对等的,比如在Faster RCNN中IoU用作proposal区域的选择度量,选择之后在通过全连接回归得到最后的检测结果,因而就造成了检测框边界回归与IoU的“不相关”。
在2D的坐标环境情况下IoU在两个框相交情况下是可以用于计算损失并传递梯度的,因为梯度是0不能被优化,但是在两个框不相交的时候就不行了,这篇文章为了解决这个缺点提出了GIoU(Generalized IoU)的概念,用以提供新的Loss与度量标准。作者将该方法融入到了现有的目标检测方法中,并获得了不错的效果。不过目前代码是没有放出来的-_-||。
在这里插入图片描述
在图1(a)图中(PS:绿色为GT,黑色为预测结果)边界框通过左上和右下两个顶点表示,预测框的第二个顶点若是在以GT框第二个顶点为圆心的圆上,其 l 2 l_2 l2坐标 l 2 l_2 l2距离是一致的,但是其IoU与GIoU是不一致的。在图(b)中表达的思想也是一致的,对于坐标的局部最优值,并不一定是IoU与GIoU的局部最优值。
因而这篇文章的理念便是:对于度量准则(文中的IoU)最佳的损失函数是度量准则本身

1.2 相关工作

1)目标检测精度标准
度量检测优劣基本基于IoU,mAP是典型的基于IoU的标准,但是 mAP仅有一个 threshold,对于过了线的预测框一视同仁,不能进一步衡量其优劣,所以MS COCO 挑战赛提出了多IoU阈值的综合 mAP评价标准(就是同时采用几个阈值,计算出多个mAP综合打分)。

2)Bounding box表示方法和损失函数
YOLO v1直接回归 bbox 的位置参数 ( x , y , h , w ) (x,y,h,w) (x,y,h,w),并在 ( h , w ) (h,w) (h,w)采用预测平方根的方式回避尺度敏感。RCNN预测的是相对预先检测出的候选区的位置偏移,采用log空间回避尺度敏感。此时的损失函数以 l 2 l_2 l2为主。Faster RCNN提出 l 1 l_1 l1 smooth损失函数,使得学习鲁棒性更好。Faster RCNN提出了anchor boxes取代了RCNN系列中的候选生成算法,但是过多的anchor候选框导致了正负样本不平衡的问题,其作者进一步提出了focal loss进行应对(存疑,一般来说one stage法更易受到正负样本不平衡的困扰,而two stage法由于会在候选框阶段通过得分和NMS筛选过滤掉大量的负样本,然后在分类回归阶段又固定正负样本比例,相较one stage法情况会好很多)。

2. GIoU的提出

2.1 由IoU推广到GIoU

传统意义上IoU的定义如下:
I o U = ∣ A ∩ B ∣ ∣ A ∪ B ∣ IoU=\frac{|A\cap B|}{|A\cup B|} IoU=ABAB
之前的检测算法都是以此来作为与GT框的重合度度量,其实IoU具有如下的 优点

  • 1)将 1 − I o U 1-IoU 1IoU作为距离度量,(数学可证的)满足非负性、同一性、对称性和三角不等性(non-negativity, identity of indiscernibles, symmetry and triangle inequality);
  • 2)IOU 具有尺度不变性,不受 bbox 于 ground truth 的大小影响;

当然这样原始的IoU也是具有 问题 的:

  • 1)只要两个框不相交,IOU 就为0,这使得它无法衡量两个框是相邻还是相距甚远。

正是因为上面的原因使得原始版本的IoU无法作为直接的损失值参与到边界框的回归中去,而是以它来选择候选集。正是解决这个问题提出了GIoU度量,其计算过程如下:
在这里插入图片描述
上述算法中 A , B A,B A,B表示任意的形状, C C C是包围 A , B A,B A,B的最小同类形状,比例, A , B A,B A,B是矩形,那么 C C C就应该是包围 A , B A,B A,B的最小矩形。

GIoU源自于IoU,因而推导出来的GIoU集成了IoU的大部分性质,因而所具有如下的性质:

  • 1)将1-GIoU作为距离度量,其继承了IoU的优良数学特性;
  • 2)GIoU同样具有尺度不变性;
  • 3)GIoU永远小于IoU,且当A趋近于B时(即两者趋于重合),GIoU趋于IoU;
  • 4)IoU取值区间为 [ 0 , 1 ] [0,1] [0,1],GIoU取值区间为 [ − 1 , 1 ] [-1,1] [1,1]
    • 4.1)和上面3)中所说对应,A和B趋于重合时IoU和GIoU均趋向1, ∣ A ∣ |A| A
    • 4.2)A和B差别越大,GIoU趋向于-1;

总的来说,GIoU集成了IoU的大部分属性,并且修正了IoU在之前提到的缺点,因而GIoU相对IoU更能反映两个框相交形式的好坏。

1.2 GIoU用作检测框回归的Loss

对于任意两个矩形回归框其Loss计算见下面的算法2:
在这里插入图片描述
由于像反传 m i n , m a x min,max min,max以及分段线性函数反向传播地图是可行的,且GIoU已经解决了在无重叠的时候无法产生梯度的问题。论文作者采样了10K的随机矩形数据计算了IoU与GIoU的关系,见下图2,可以看到在IoU小于0.2且GIoU小于0.2的时候GIou变化更为剧烈。
在这里插入图片描述

3. 实验

3.1 基于YOLO V3

作者在这里使用GIoU Loss去替换了原始的MSE Loss,得到的结果如下:
在这里插入图片描述

3.2 基于Faster RCNN与Mask RCNN

作者在这里使用GIoU Loss去替换了原始的 l 1 l_1 l1 Loss,得到的结果如下:
在这里插入图片描述
文章作者在VOC与COCO数据集上使用目前主流的检测算法进行实验,实验的结果都表明使用GIoU作为损失函数能够显著提升网络检测的性能,或许在后序开放源码之后,经过众多实践成为检测领域的标配。