目录
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)
损失由两部分组成,分别是类别误差损失以及定位误差损失。
采用一个二分类的softmax loss用来做分类,分类损失如下:
其中,Sj为最后一层的softmax输出,T为类别数,yi为对应的真值标记。
常用的L1、L2损失定义如下:
smooth L1 用来做回归,公式如下:
其中x、y、w、h分别为目标的中心点及宽高,ti为真值、ui为对应的预测值,smooth L1函数形式如下:
L1损失、L2损失、smooth L1损失的优缺点:
对三个函数求导得:
从损失函数对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。
改进smooth L1 LOSS的三个缺点:
(1)检测评价的方式是使用IOU,两者不等价。L1或者L2 Loss相同的框,其IOU 不是唯一的。
(2)没有考虑其相关性。实际4个坐标点具有一定的相关性。
(3)基于L1和L2的距离的loss对于尺度不具有不变性。
IOU LOSS计算:
IOU为两个矩形的面积交并比。IOU计算如下:
图1 IOU示意图
红框A、绿色框B分别为两个目标检测框,它们之间的IOU计算公式为:
IOU LOSS公式如下:
改进IOU LOSS的两个缺点:
(1)当预测框和目标框不相交时,IOU(A,B)=0,不能反映A,B距离的远近,此时损失函数不可导,IOU Loss 无法优化两个框不相交的情况。
(2)假设预测框和目标框的大小都确定,只要两个框的相交值是确定的,其IOU值是相同时,IOU值不能反映两个框是如何相交的。
GIOU Loss在IOU Loss基础上增加一个惩罚项,为包围预测框和的最小区域大小,当bbox的距离越大时,惩罚项将越大。
GIOU Loss公式如下:
C为A、B的最小外接矩形。如下图:
图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的几个限制:
绿色表目标框、黑色表示anchor框。
边框回归GIOU损失(第一行),蓝色为GIOU损失预测框。GIOU损失一般会增加预测框的大小,使其与目标框重叠。
DIOU损失(第二行),红色为DIOU损失预测框。DIOU损失则直接使用中心点的归一化距离最小化。
由于很大程度依赖IOU项、退化问题,GIOU需要更多次迭代次数来收敛。
改进GIOU LOSS的退化问题:
(1)当目标框完全包裹预测框的时候,IOU和GIOU的值都一样,此时GIOU退化为IOU, 无法区分其相对位置关系。
启发点:
好的目标框回归损失应该考虑三个重要的几何因素:
DIOU LOSS,相对于GIOU Loss收敛速度更快。该Loss考虑了(1)重叠面积和(2)中心点距离,但没有考虑到长宽比(CIOU Loss考虑到了)。
(1)通常基于IOU-based的Loss可以定义为:
其中定义为预测框B和目标框的惩罚项。
(2)DIOU中的惩罚项表示为:
其中和分别表示和的中心点,表示欧式距离,表示和的最小外界矩形的对角线距离,即中心点的欧式距离/最小外接矩形的对角线距离。如下图所示。
可以将DIOU替换IOU用于NMS算法当中,也即论文提出的DIOU-NMS,实验结果表明有一定的提升。所以,DIOU Loss function定义为:
绿色框为目标框,黑色框为预测框,灰色框为两者的最小外界矩形框,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的标准,不仅考虑了重叠区域,还考虑了中心点距离。
DIOU-NMS能够很好的引导bbox的消除
CIOU的惩罚项是在DIOU的惩罚项基础上加了一个影响因子av,这个因子把预测框长宽比拟合目标框的长宽比考虑进去。
其中a是用于做trade-off的参数。
v是用来衡量长宽比一致性的参数,定义为:
CIOU Loss function的定义为:
CIOU Loss,其收敛的精度更高,重叠面积、中心点距离、长宽比三个因素都考虑到了。
指标提升对比: