其他分享
首页 > 其他分享> > 【深度学习】目标检测回归损失函数合集:SmoothL1/IoU/GIoU/DIoU/CIoU Loss

【深度学习】目标检测回归损失函数合集:SmoothL1/IoU/GIoU/DIoU/CIoU Loss

作者:互联网

目标检测任务的损失函数由Classificition Loss和Bounding Box Regeression Loss两部分构成。本文介绍目标检测任务中近几年来Bounding Box Regression Loss Function的演进过程,其演进路线是Smooth L1 Loss —> IoU Loss —> GIoU Loss  —> DIoU Loss  —> CIoU Loss,本文按照此路线进行讲解。

1. Smooth L1 Loss

1.1 假设x为预测框和真实框之间的数值差异,常用的L1和L2 Loss定义为:

1.2 上述的3个损失函数对x的导数分别为:

从损失函数对x的导数可知: 

1.3 实际目标检测框回归任务中的损失loss为 

其中表示GT 的框坐标,  表示预测的框坐标,即分别求4个值的loss,然后相加作为Bounding Box Regression Loss。

三种loss的曲线图如图所示,可以看到Smooth L1相比L1的曲线更加的Smooth

                                              L1和L2和smoothL1的图像

缺点:


2. IoU Loss

2.1 通过4个坐标点独立回归Building boxes的缺点:

        图(a)中的三组框具有相同的L2 Loss,但其IoU差异很大;图(b)中的三组框具有相同的L1 Loss,但IoU同样差异很大,说明:

2.2 基于此提出IoU Loss,其将4个点构成的box看成一个整体进行回归:

        

        上图中的红色点表示目标检测网络结构中Head部分上的点(i,j),绿色的框表示Ground truth框, 蓝色的框表示Prediction的框。IoU loss的定义如上图中所示,

IoU Loss 前项推理时的算法实现方式:

附录:论文链接:https://arxiv.org/pdf/1608.01471.pdf...


3 GIoU Loss(Generalized Intersection over Union)

3.1 IoU Loss 有2个缺点:

        下图中,三种不同相对位置的框IOU值却是相同的,IoU=0.33值,但是它们的GIOU值不同,分别为GIoU=0.33,0.24,-0.1。当框的对齐方向更好一些时GIoU的值会更大。

 

 

 

GIoU的实现方式如上,其中C为A和B的外接矩形。用C减去A和B的并集除以C得到一个数值,然后再用框A和B的IoU减去这个数值即可得到GIoU的值。

GIoU的性质

附录:

结论和启发:

本文提出了GIoU Loss,最终单阶段检测器YOLO v1涨了2个点,两阶段检测器涨点相对较少(RPN的box比较多,两个框未相交的数量相对较少)


4. DIoU Loss

GIoU Loss不足

当目标框完全包裹预测框的时候,IoU和GIoU的值都一样,此时GIoU退化为IoU, 无法区分其相对位置关系;此时作者提出的DIoU因为加入了中心点归一化距离,所以可以更好地优化此类问题。

启发点:

基于IoU和GIoU存在的问题,作者提出了两个问题:

好的目标框回归损失应该考虑三个重要的几何因素:重叠面积,中心点距离,长宽比。基于问题一,作者提出了DIoU Loss,相对于GIoU Loss收敛速度更快,该Loss考虑了重叠面积和中心点距离,但没有考虑到长宽比;针对问题二,作者提出了CIoU Loss,其收敛的精度更高,以上三个因素都考虑到了。

Distance-IoU Loss

上图中绿色框为目标框,黑色框为预测框,灰色框为两者的最小外界矩形框,d表示目标框和真实框的中心点距离,c表示最小外界矩形框的距离。

DIoU的性质:

5. CIoU Loss

Complete-IoU Loss

DIoU和CIoU的提升效果

上表中左边是用5种不同Boudning Box Regression Loss Function的对比,右边是以IoU和GIoU来计算的2种Evaluation的结果;GIoU相对IoU会有2.49点提升,DIoU相对IoU会有3.29点提升,CIoU会有大概5.67点提升,CIoU结合DIoU-NMS使用效果最好,大概会有5.91点提升。


结论:

DIoU Loss和CIoU Loss优化了GIoU Loss的不足,实验证明效果有进一步提升,代码已开源,非常推荐工程上去尝试。

附录:


6. 后续

本文给大家介绍了目标检测任务中的Bounding Boxes Regression Loss Function的发展演进,后续给大家介绍 Classification Loss 的发展演进,例如Binary Cross Entropy Loss, AUC Loss, focal Loss, GHM Loss, AP Loss等。

参考文献:

编辑于 2020-02-01

 

标签:GIoU,Loss,IoU,DIoU,L1,CIoU
来源: https://blog.csdn.net/chen1234520nnn/article/details/118525518