目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU

目标检测的两个任务,分类和位置回归,本帖将经典的位置回归损失函数总结如下,按发表时间顺序。

L1、L2、smooth L1 loss

提出smooth L1 loss的论文:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

L1最低点是不可导的,所以势必不会收敛到最低点,可能会在最优解附近震荡。而L2损失容易在离群点产生梯度爆炸的问题。smooth L1则集两者的优点于一身。
目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第1张图片

IoU loss

提出IoU loss的论文:在这里插入图片描述

不论是L2还是smooth L1 loss都没有考虑到四个点的关联性尺度不变性,这个是比较致命的缺点,当两对预测框与GT框的IoU相同时,尺度更大那一对loss会更高,或者如下图,用左下角和右上角点计算损失,L2 loss相同,但IoU却不相同。
目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第2张图片
IoU损失有两种形式,后一种更为常用:
L I o U = − l n I o U L_{IoU} = -lnIoU LIoU=lnIoU
L I o U = 1 − I o U L_{IoU} = 1-IoU LIoU=1IoU
这样,BBox回归问题的评价指标和优化指标已经重叠统一了。

GIoU loss

提出GIoU loss 的论文:
目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第3张图片
IoU loss 最大的缺点就是两个框不相交时IoU横为0,损失恒为1,没法提供优化的梯度。
如下图(图来自CHEN), 右图的loss应该更小才对,但IoU loss却是相同的。
目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第4张图片

GIoU引入了一个最小闭包区的概念,即能将预测框和真实框包裹住的最小矩形框,其中, A c A_c Ac 为最小闭包区, u u u为预测框和真实框的并集,那么GIoU第二项的分子就是上图中白色区域,白色区域比最小闭包区的值越高,loss越高。
在这里插入图片描述

DIoU loss

目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第5张图片
目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第6张图片
上图中三种情况下IoU和GIoU的loss均为0.75,但显然第三种情况应该是更好的预测结果,而DIoU loss就可以更精确地表示这些情况,其计算公式如下式,相比IoU损失多了一项惩罚项,是
[ 两个框中心点的欧式距离 最小闭包矩形对角线长度 ] 2 [{\frac{两个框中心点的欧式距离}{最小闭包矩形对角线长度}}]^2 [最小闭包矩形对角线长度两个框中心点的欧式距离]2
在这里插入图片描述
目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第7张图片

DIoU还有如下的优势:

  • 因为DIoU直接最小化两个框的距离,所以收敛得比GIoU快很多,如下图示。尤其是在两个框的相对方向是垂直或水平时。
  • 作为NMS的评价指标时能获得更好的效果。
    目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第8张图片

CIoU loss(Complete IoU Loss)

与DIoU loss出自同一篇文章
作者认为,好的IoU损失应该考虑三个因素:

  1. 相交的面积
  2. 中心点距离
  3. 长宽比

而IoU和GIoU loss只考虑了第一个因素,DIoU loss多考虑了第二个因素。
作者又提出了CIoU loss,可以更精确衡量两个框的重合度和相似度,比DIoU多了一个长宽比的惩罚项 v v v
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

作者通过实验表明,CIoU相比其他IoU损失取得了更好的实验结果。

Focal-EIoU loss

目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第9张图片
这个损失我看知乎上大家评论不是很好啊,自己也还没细看,挖个坑。
文中第三章对IoU,GIoU,CIoU损失的缺点做了一下总结,。而
本文提出的新损失是基于CIoU的,CIoU定义如下:
在这里插入图片描述在这里插入图片描述

目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第10张图片
作者认为CIoU loss有以下两个缺点:

  • 如果预测框和gt框的长宽比是相同的,那么长宽比的惩罚项恒为0,作者认为不合理

  • 观察CIoU中w,h相对于v的梯度,发现这两个梯度是一对相反数,也就是说,w和h不能同时增大或减小,这显然是不够合理的。
    针对上述问题,作者对于长宽比的惩罚项进行了替换,形成了EIoU,如下式:目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第11张图片
    其中, C w , C h C_{w},C_{h} Cw,Ch是最小闭包的w和h。
    在这里插入图片描述

Alpha IoU

目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第12张图片
简单说就是对IoU loss家族做了幂次运算,如下图的公式。

目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第13张图片
目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第14张图片
如上图,alpha-IoU可以通过自适应地提高高IoU对象的损失和梯度来提高BBox回归精度,而且对小数据集和噪声BBox提供了更好的稳健性。

SIoU(SCYLLA-IoU) loss

在这里插入图片描述
作者认为以前的IoU损失都没有考虑角度问题,但是方向框的角度确实可以影响回归,因此提出SIoU loss,其中SIoU使用4组cost组成见下

  1. 角度损失
  2. 距离损失
  3. 形状损失
  4. IoU损失
    依次分开来看:
  5. 角度损失
    目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第15张图片
    在这里插入图片描述
    目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第16张图片
    目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU_第17张图片
    未完待续。。。

你可能感兴趣的:(目标检测,目标检测,回归,计算机视觉)