DIoU Loss论文阅读

论文:Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression . Zhao hui Zheng1,Ping Wang1 , Wei Liu2 , Jinze Li3 , Rongguang Ye1 , Dongwei Ren*2

 

 

摘要

边界框回归是目标检测中的关键步骤。当前方法采用ln-norm loss作为边界框回归的损失,但是它不是为评估指标(IoU)量身定做的。最近适合IoU评估指标的IoU loss和 generalized IoU (GIoU) loss被提出,但是存在收敛速度慢和回归不精确等问题。本文提出了Distance-IoU(DIoU) loss,它通过加入预测框和目标框之间的归一化距离,它在训练中比IoU loss和GIoU loss收敛得更快。此外,本文总结了边界框回归中的三个几何因素,即重叠面积、中心点距离和宽高比,并据此提出了Complete IoU (CIoU) loss,从而提高了收敛速度和性能。通过将DIoU和CIoU损失合并到最先进的目标检测算法中,例如YOLO v3、SSD和更快的R-CNN,我们不仅在IoU指标而且也在GIoU指标方面取得了显著的性能提高。而且,DIoU可以很容易地应用到NMS中作为标准,进一步促进性能的提高。代码开源:https://github.com/Zzh-tju/DIoU. 

 

引言

目标检测是计算机视觉任务中的关键问题之一,几十年来一直受到广泛关注。尽管有这些不同的检测框架,边界框回归是预测矩形框来定位目标对象的关键步骤。在边界框回归的评价指标中,IoU是最常用的指标,

图片1.png 

其中Bgt=(xgt,ygt,wgt,hgt)是ground-truth,而B=(x,y,w,h)是预测的边界框。传统上采用ln-normn=1或2)损失来测量B和Bgt边界框之间的距离。然而ln-norm loss不是适合IoU指标的损失函数。Rezatofighi等人提出采用IoU损失可以提高IoU指标,IoU损失为:

图片2.png 

然而,IoU loss只在边界框有重叠时起作用,而不会为非重叠情况提供任何梯度。然后GIoU loss在IoU loss中添加了一个惩罚项:

图片3.png 

其中C是覆盖B和Bgt的最小矩形。由于惩罚项的引入,即使在不重叠的情况下,预测框会向目标框移动。GIoU虽然可以缓解非重叠情况下的梯度消失问题,但仍有一些局限性。通过仿真实验,我们可以评估不同边界框位置下GIoU损失的性能。如图1所示,GIoU损失首先打算增加预测框的大小,使其与目标框重叠,然后上式中的IoU项使边界框的重叠面积最大化。

图片4.jpg 

从图2可以看出,GIoU损失将完全退化为边界框框的IoU损失。由于严重依赖IoU项,GIoU在经验上需要更多的迭代来收敛,特别是在水平和垂直的边界框(见图4)。在最先进的检测算法中,GIoU损失通常不能很好地收敛,从而产生不准确的检测。

在本文中,我们提出了边界框回归的Distance-IoU(DIoU) loss。具体的说,就是简单地在IoU损失上添加一个惩罚项,以直接最小化两个边界框中心点之间的归一化距离,实现比GIoU损失更快的收敛。从图1可以看出,DIoU损失可以直接使两个包围框之间的距离最小。在120次迭代的情况下,预测框与目标框完全匹配,而GIoU在400次迭代后仍然不收敛。此外,我们提出,良好的边界框回归应该考虑三个重要的几何度量,即重叠面积、中心点距离和长宽比比,这是长期被忽视的。通过结合这些几何度量,我们进一步提出了用于边界框回归的Complete IoU (CIoU) loss,实现更快的收敛和更好的性能优于IoU和GIoU损失。提出的损失可以很容易地集成到最先进的目标检测算法。此外,在NMS中,DIoU可以作为标准,在抑制冗余检测框时不仅考虑重叠程度,而且考虑两个边界框中心点之间的距离,使其对有遮挡的情况具有更强的鲁棒性。

图片5.jpg 

为了评估我们提出的方法,我们将DIoU loss和CIoU loss集成到几种最先进的检测算法中,包括YOLOv3、SSD和Faster R-CNN,并在两个流行的基准数据集PASCAL VOC 2007和MS COCO 2017上进行评估。

Contributions:

Ø 提出了用于边界框回归的Distance-IoU loss,即DIoU损失其收敛速度比欠条和GIoU损失快。

Ø 通过考虑重叠面积、中心点距离和宽高比三个几何度量,进一步提出了Complete IoU loss,即CIoU loss,较好地描述了矩形的回归。

Ø DIoU应用到NMS中,在消除冗余检测框方面比原来的NMS更鲁棒

Ø 提出的方法可以很容易地集成到最先进的检测算法,实现显著的性能增益。

 

 

相关工作

目标检测算法

CornerNetRepPoints、FSAF、

损失函数和边界框回归

在边界框回归中,通常采用ln-norm损失函数,但对不同的尺度比较敏感。在YOLO v1 中,采用w和h的平方根来缓解这一影响,而YOLO v3使用了2- wh。从Unitbox开始,IoU损失也被使用,它对尺度是不变的。GIoUloss被提出解决非重叠情况下的梯度消失问题,但仍然面临收敛速度慢和回归不准确的问题。相比之下,本文提出的DIoU和CIoU损失具有更快的收敛速度和更好的回归精度。

NMS

NMS是大多数目标检测算法的最后一步,只要冗余检测框与最高分检测框的重叠超过某个阈值,就将冗余检测框移除。Soft-NMS用一个连续函数惩罚与最大检测框相邻的边界框的的检测分数,比原来的NMS得到了更柔和、更鲁棒的抑制。IoUNet引入了一个新的网络分支来预测定位置信度,以指导NMS。最近,adaptive NMS 和Softer-NMS被提出分别研究适当阈值策略和加权平均策略。在本研究中,简单地将DIoU作为原始NMS的准则,在压制冗余框时,同时考虑边界框的重叠区域和两个中心点之间的距离。

 

IoU loss和GIoU loss的分析

首先,分析了原始IoU损失和GIoU损失的局限性。然而,仅仅从检测结果来分析边界框回归过程是非常困难的,在不受控制的基准中,回归例子往往是不全面的,例如不同的距离、不同的尺度和不同的宽高比。相反,我们提出进行模拟实验,在回归例子中应该全面考虑,这样就可以很容易地分析给定的损失函数的问题。

仿真实验

图片6.jpg 

图片7.jpg 

IoU和GIOU的限制

 

图片8.jpg 

综上所述,在不重叠的情况下,IoU损失收敛于较差的解,而GIoU损失收敛速度较慢,特别是在水平和垂直方向上的框。而当将IoU和GIoU损失合并到目标检测管道中时,都不能保证回归的准确性。

我们自然会问:首先,为了更快的收敛,直接将预测框和目标框之间的归一化距离最小化是否可行?第二,当有重叠甚至包含目标框时,如何使回归更准确更快?

 

 

 

方法

概括来说,基于IoU的损失可以定义为:

图片9.jpg 

其中R(B,Bgt)是预测框B和目标框Bgt的惩罚项。本节通过设计适当的惩罚项,提出了DIoU损失和CIoU损失来回答上述两个问题。

 

Distance-IoU Loss

为了回答第一个问题,我们提出最小化两个边界框中心点之间的归一化距离,惩罚项可以定义为:

图片10.png 

其中b和bgt表示B和Bgt的中心点,ρ(·)是欧几里得距离,c是覆盖两个框的最小的矩形的对角线长度。则DIoU loss函数为:

图片11.png 

如图5所示,DIoU损失的惩罚项直接使两个中心点之间的距离最小,而GIoU损失则是减少C- BBgt的面积。

图片12.jpg 

IoU和GIoU loss的比较

Ø DIoU损失对回归问题仍然具有尺度不变性。

Ø GIoU loss类似,DIoU loss可以在不与目标框重叠的情况下为边界框提供移动方向。

Ø 当两个边界框完全匹配时,LIoU = LGIoU = LDIoU = 0,当两个框相距较远时,LGIoU = LDIoU →2。

DIoU损失比IoU损失和GIoU损失有很多优点,可以通过仿真实验来评估。

如图1和图3所示,DIoU损失可以直接使两个框之间的距离最小,从而比GIoU损失收敛得快得多。

对于当一个框包含另一个框的情况,无论是在水平方向和垂直方向上,DIoU损失可以进行非常快的回归,而GIoU损失几乎退化为IoU损失,即|C- A∪B|→0。

 

 

Complete IoU Loss

然后我们回答第二个问题,通过提出一个好的边界框回归损失,这个损失考虑三个重要的几何因素,即重叠面积,中心点距离和宽高比。结合坐标,IoU loss根据重叠区域,GIoU loss严重依赖于IoU loss。我们提出的DIoU loss的目的是同时考虑边界框的重叠面积和中心点距离。然而,边框宽高比比的一致性也是一个重要的几何因素。

因此,在DIoU loss的基础上,通过施加宽高比的一致性,提出CIoU loss:

图片13.png 

式中α为正的权衡参数,v表示宽高比的一致性:

图片14.png 

那么损失函数可以定义为

图片15.png 

并定义权衡参数α为

图片16.png 

在不重叠情况下,对重叠面积因子给予较高的优先级。

最后,CIoU损失的优化与DIoU损失的优化相同,只是要指定v关于w\h的梯度。

图片17.png 

对于h和w在[0,1]范围内的情况,w2 +h2通常是一个很小的值,很可能产生梯度爆炸。因此在我们的实现中,为了稳定收敛,我们简单地去掉了w2+h2,将步长1/(w2 +h2)替换为1,梯度方向仍然与上式一致。

 

DIoU NMS

在原来的NMS中,IoU度量被用来抑制冗余检测框,其中重叠区域是唯一的因素,经常产生对有遮挡情况的错误抑制。我们在本研究中提出DIoU是NMS的一个较好的标准,因为在抑制判据中不仅要考虑重叠区域,而且还要考虑两个框之间的中心点距离。对于得分最高的预测框M,可以正式定义DIoU-NMS为

图片18.png 

其中,同时考虑IoU和两个框的中心点距离来去除框Bi si为分类得分,ε为NMS阈值。我们提出两个中心点相距遥远的框可能定位不同的目标,不应该被提出。此外,DIoU-NMS非常灵活,只需几行代码就可以集成到任何目标检测管道中。

 

 

实验


上一篇:
下一篇:

首页 所有文章 机器人 计算机视觉 自然语言处理 机器学习 编程随笔 关于