目标检测损失函数

目录

1、分类损失

2、smooth L1 Loss

3、IOU LOSS(Intersection over Union Loss)

4、GIOU LOSS(Generalized IOU Loss )

5、DIOU LOSS(Distance IOU Loss)

5、CIOU LOSS(Complete IOU Loss)


        损失由两部分组成,分别是类别误差损失以及定位误差损失。

1、分类损失

        采用一个二分类的softmax loss用来做分类,分类损失如下:

        其中,Sj为最后一层的softmax输出,T为类别数,yi为对应的真值标记。

2、smooth L1 Loss

        常用的L1、L2损失定义如下:

目标检测损失函数_第1张图片

        smooth L1 用来做回归,公式如下:

        其中x、y、w、h分别为目标的中心点及宽高,ti为真值、ui为对应的预测值,smooth L1函数形式如下:

        L1损失、L2损失、smooth L1损失的优缺点:

        对三个函数求导得:

目标检测损失函数_第2张图片

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

        L1损失函数对x的导数为常数,在训练后期,x很小时,如果learning rate 不变,损失函数会在稳定值附近波动,很难收敛到更高的精度。

        L2损失函数对x的导数在x值很大时,其导数也非常大,在训练初期不稳定。

        smooth L1损失函数完美的避开了L1和L2损失的缺点。

smooth L1损失缺点:

        (1)上面的三种Loss用于计算目标检测的Bounding Box Loss时,独立的求出4个点的Loss,然后进行相加得到最终的Bounding Box Loss,这种做法的假设是4个点是相互独立的,实际是有一定相关性的。

        (2)实际评价框检测的指标是使用IOU,这两者是不等价的,多个检测框可能有相同大小的Loss,但IOU可能差异很大,为了解决这个问题就引入了IOU LOSS。

3、IOU LOSS(Intersection over Union Loss)

改进smooth L1 LOSS的三个缺点:

        (1)检测评价的方式是使用IOU,两者不等价。L1或者L2 Loss相同的框,其IOU 不是唯一的。

        (2)没有考虑其相关性。实际4个坐标点具有一定的相关性。

        (3)基于L1和L2的距离的loss对于尺度不具有不变性。

IOU LOSS计算:

        IOU为两个矩形的面积交并比。IOU计算如下:

目标检测损失函数_第3张图片

图1 IOU示意图

        红框A、绿色框B分别为两个目标检测框,它们之间的IOU计算公式为:

        IOU LOSS公式如下:

4、GIOU LOSS(Generalized IOU Loss )

改进IOU LOSS的两个缺点:

        (1)当预测框和目标框不相交时,IOU(A,B)=0,不能反映A,B距离的远近,此时损失函数不可导,IOU Loss 无法优化两个框不相交的情况。

        (2)假设预测框和目标框的大小都确定,只要两个框的相交值是确定的,其IOU值是相同时,IOU值不能反映两个框是如何相交的。

目标检测损失函数_第4张图片

        GIOU Loss在IOU Loss基础上增加一个惩罚项,为包围预测框和的最小区域大小,当bbox的距离越大时,惩罚项将越大。

GIOU Loss公式如下:

C为A、B的最小外接矩形。如下图:

目标检测损失函数_第5张图片

图2 差集示意图

        Sa、Sb、Sc分别为矩形框A、B、C的面积,称为矩形框A、B的差集,即图中蓝色阴影部分的面积。惩罚项为差集/并集。

GIOU的性质:

        (1)GIOU具有尺度不变性。

        (2)GIOU的值域为[-1,1]。当A->B时,GIOU=1;当A和B不相交时,GIOU=-1。

GIOU的几个限制:

目标检测损失函数_第6张图片

        绿色表目标框、黑色表示anchor框。

        边框回归GIOU损失(第一行),蓝色为GIOU损失预测框。GIOU损失一般会增加预测框的大小,使其与目标框重叠。

        DIOU损失(第二行),红色为DIOU损失预测框。DIOU损失则直接使用中心点的归一化距离最小化。

        由于很大程度依赖IOU项、退化问题,GIOU需要更多次迭代次数来收敛。

5、DIOU LOSS(Distance IOU Loss)

改进GIOU LOSS的退化问题:

        (1)当目标框完全包裹预测框的时候,IOU和GIOU的值都一样,此时GIOU退化为IOU, 无法区分其相对位置关系。

目标检测损失函数_第7张图片

启发点:

好的目标框回归损失应该考虑三个重要的几何因素:

  1. 重叠面积。
  2. 中心点距离。
  3. 长宽比。

        DIOU LOSS,相对于GIOU Loss收敛速度更快。该Loss考虑了(1)重叠面积和(2)中心点距离,但没有考虑到长宽比(CIOU Loss考虑到了)。

        (1)通常基于IOU-based的Loss可以定义为:

        其中定义为预测框B和目标框的惩罚项。

        (2)DIOU中的惩罚项表示为:

        其中和分别表示和的中心点,表示欧式距离,表示和的最小外界矩形的对角线距离,即中心点的欧式距离/最小外接矩形的对角线距离。如下图所示。

        可以将DIOU替换IOU用于NMS算法当中,也即论文提出的DIOU-NMS,实验结果表明有一定的提升。所以,DIOU Loss function定义为:

目标检测损失函数_第8张图片

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

DIOU的性质:

        (1)尺度不变性。

        (2)当两个框完全重合时,Liou=Lgiou=Ldiou=0,当2个框不相交时,Lgiou=Ldiou=2。

        (3)DIOU Loss可以直接优化2个框直接的距离,比GIOU Loss收敛速度更快。

        (4)对于目标框包裹预测框的这种情况,DIOU Loss可以收敛的很快,而GIOU Loss此时退化为IOU Loss收敛速度较慢。

        DIOU Loss在IOU Loss基础上添加一个惩罚项,该惩罚项用于最小化两个bbox的中心点距离。DIOU收敛速度和效果都很好,且DIOU能够用于NMS计算中,不仅考虑了重叠区域还考虑了中心点距离。

        使用DIOU作为NMS的标准,不仅考虑了重叠区域,还考虑了中心点距离。

目标检测损失函数_第9张图片

DIOU-NMS能够很好的引导bbox的消除

5、CIOU LOSS(Complete IOU Loss)

        CIOU的惩罚项是在DIOU的惩罚项基础上加了一个影响因子av,这个因子把预测框长宽比拟合目标框的长宽比考虑进去。

        其中a是用于做trade-off的参数。

        v是用来衡量长宽比一致性的参数,定义为:

        CIOU Loss function的定义为:

        CIOU Loss,其收敛的精度更高,重叠面积、中心点距离、长宽比三个因素都考虑到了。

指标提升对比:

目标检测损失函数_第10张图片

你可能感兴趣的:(深度学习,目标检测,深度学习,人工智能)