目标检测网络中的定位损失函数对比:IOUGIOUCIOUDIOUL1L2Smooth L1

Posted AI 菌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了目标检测网络中的定位损失函数对比:IOUGIOUCIOUDIOUL1L2Smooth L1相关的知识,希望对你有一定的参考价值。


资源获取:

IOU :2016年 UnitBox: An Advanced Object Detection Network

GIOU:2019年CVPR Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression

DIOU和CIOU:2020年AAAI Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression


一、引言

对于神经网络来说,损失函数的设计异常重要。对比YOLOv1和YOLOv3中的损失函数很容易得知,定位损失部分并没有多大改变,仍然采用的是平方和的损失计算方法,如下所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210517153804226.png
该函数虽然考虑了不同尺度对回归损失的影响,但是使用平方和的方式分别计算x、y、w、h方向产生的误差,没有考虑到位置坐标的相关性。将上述的均方误差定义为l2,如下图所示,绿色框代表物体的真实框位置,黑色框为预测框的位置,虽然这三种情况的l2相等,但是预测效果不同,说明均方误差的计算方式不能很好的反应预测框与真实框的重合程度。

在这里插入图片描述

因此,这篇文章试图对比分析几种不同的IOU损失函数对目标检测网络带来的影响,来改善真实框和预测框重合度在损失函数中反应不佳等问题。

二、IOU

IOU损失函数是体现真实框和预测框重合度的简单损失函数之一,它将预测框作为一个整体进行边界回归。在损失函数迭代过程中,通过增加预测框和真实框的重合度来减少损失,IOU损失函数的值越小,代表预测框和真实框的重合程度越高,预测效果也就越好。IOU损失函数计算公式为:

在这里插入图片描述
I O U l o s s IOU_{loss} IOUloss 作为边界损失函数也存在着一定的缺点,当预测框和目标框无相交时,不能反应两个框之间的远近情况,该情况下损失函数不可导,无法进行优化回归。同时如下图所示,相交情况也有多种,图中的IOU相等,但两种情况的匹配程度不同
在这里插入图片描述

三、GIOU

针对上述IOU损失函数出现的问题,Hamid等人提出了GIOU损失函数,其损失函数公式表达式为:

在这里插入图片描述
其中,C为A、B区域的外接矩形, G I O U l o s s GIOU_{loss} GIOUloss的取值范围为[0, 2],当两框完全重合时取最小值0,当两框的边外切时,损失函数值为1;当两框分离且距离很远时,损失函数值为2。使用外接矩形的方法不仅可以反应重叠区域的面积,还可以计算非重叠区域的比例,因此GIOU损失函数能更好的反应真实框和预测框的重合程度和远近距离

但是,GIOU损失函数也存在一定的缺点,如下图所示,当目标框与预测框水平、竖直方向重叠时,外接矩形的面积等价于交集面积,计算得到的IOU、GIOU数值相等,损失函数值与 I O U l o s s IOU_{loss} IOUloss 一样,无法很好的衡量其相对的位置关系。同时在计算过程中出现上述情况,预测框在水平或垂直方向优化困难,导致收敛速度慢。

在这里插入图片描述

四、DIOU

针对上述 IOU 和 GIOU 损失函数无法衡量真实框和预测框相对位置的问题,天津大学任冬伟等人提出了DIOU损失函数,其计算公式如下:

在这里插入图片描述
其中 、 b p r e d b_{pred} bpred b g t b_{gt} bgt为预测框和真实框的中心点位置, p 2 ( b p r e d , b g t ) p^2(b_{pred}, b_{gt}) p2(bpred,bgt)为两框中心位置的欧氏距离,c为两框外接矩形的对角线距离,可以更好的衡量两个框的相对位置。同时,与IOU损失函数相比, 加入了对惩罚项,用于降低两框之间的中心点距离以减小损失,同时加速了网络模型的收敛速度。

但是DIOU损失函数计算过程只包含了边界框与预测框重叠面积和中心点距离,并没有考虑两框的长宽比

五、CIOU

针对以上DIOU损失函数的问题,作者同时提出了CIOU损失函数,CIOU将目标与anchor之间的中心距离,重叠率、尺度以及惩罚项都考虑进去,使得目标框回归变得更加稳定,不会像IoU和GIoU一样出现训练过程中发散等问题。而惩罚因子把预测框长宽比拟合目标框的长宽比考虑进去。其计算公式如下:

在这里插入图片描述
其中,其中 a 为权重系数,根据定义可知损失函数会向重叠区域大的方向优化,v 衡量了预测框与目标框长宽比的相似性。
在这里插入图片描述
如上图所示,与DIOU一样,c为两框外接矩形的对角线距离,d为两框中心位置的欧氏距离 p ( b p r e d , b g t ) p(b_{pred}, b_{gt}) p(bpred,bgt)

v的偏梯度计算公式如下所示:

在这里插入图片描述
在宽高取值范围为[0,1]时, w 2 + h 2 w^2+h^2 w2+h2的取值通常很小,容易导致梯度爆炸,故将 w 2 + h 2 w^2+h^2 w2+h2近似为1。

六、L1 Loss

L1 loss 即平均绝对误差(Mean Absolute Error, MAE),指模型预测值和真实值之间距离的平均值。公式如下:
在这里插入图片描述

七、L2 Loss

L2 loss 即均方误差损失(Mean Square Error, MSE),指预测值和真实值之差的平方的平均值。公式如下:
在这里插入图片描述

八、Smooth L1 Loss

Smooth L1 loss 是基于 L1 loss 修改得到,对于单个样本,记 x 为预测值和真实值的差值,则对应的Smooth L1 loss可表示为:
在这里插入图片描述


Conference:

  • https://blog.csdn.net/lovep1/article/details/114449861
  • https://blog.csdn.net/donkey_1993/article/details/104006474
  • https://blog.csdn.net/sinat_34474705/article/details/105141134

以上是关于目标检测网络中的定位损失函数对比:IOUGIOUCIOUDIOUL1L2Smooth L1的主要内容,如果未能解决你的问题,请参考以下文章

深度学习和目标检测系列教程 4-300:目标检测入门之目标变量和损失函数

DeepLearning.ai学习笔记卷积神经网络 -- week3 目标检测

神经网络中的各种损失函数介绍

卷积神经网络----目标检测

优化目标检测方案

目标检测回归损失函数 IOUGIOUDIOUCIOUEIOUFocal EIOUalpha IOU损失函数分析