Object-Detection-Loss
Smooth L1 Loss
作用
- 当预测框与 ground truth 差别过大时,梯度值不至于过大;
- 当预测框与 ground truth 差别很小时,梯度值足够小。
数学公式
损失函数对X的导数分别为:
- 方程 (4),当
x
增大时L2
损失对x
的导数也增大。这就导致训练初期,预测值与 groud truth 差异过于大时,损失函数对预测值的梯度十分大,训练不稳定。 - 方程 (5),
L1
对x
的导数为常数。这就导致训练后期,预测值与 ground truth 差异很小时,L1
损失对预测值的导数的绝对值仍然为 1,而 learning rate 如果不变,损失函数将在稳定值附近波动,难以继续收敛以达到更高精度。
优点
smoothL1
在 x
较小时,对 x
的梯度也会变小,而在 x
很大时,对 x
的梯度的绝对值达到上限 1,也不会太大以至于破坏网络参数。 smoothL1
完美地避开了 L1
和 L2
损失的缺陷。其函数图像如下:
缺点
- 上面的三种Loss用于计算目标检测的Bounding Box Loss时,独立的求出4个点的Loss,然后进行相加得到最终的Bounding Box Loss,这种做法的假设是4个点是相互独立的,但实际上他们是有一定相关性
- 但是大多数选取最终的结果使用的都是IOU进行过滤,这两者是不等价的,多个检测框可能有相同大小的
smoothL1
Loss,但IOU可能差异很大,为了解决这个问题就引入了IOU LOSS。
IOU Loss
为了改变smoothL1 Loss
的缺陷, 提出了IOU Loss.
paper
https://www.docin.com/p1-2417843306.html
算法介绍
优点
- IoU损失将位置信息作为一个整体进行训练,而L2损失却把它们当作互相独立的四个变量进行训练,因此IoU损失能得到更为准确的训练效果;
- 输入任意样本,IoU的值均介于[0, 1]之间,这种自然的归一化损失使模型具有更强的处理多尺度图像的能力。
GIOU Loss
IoU Loss 有两个缺陷:
- 预测框bbox和ground truth bbox如果没有重叠,IOU就始终为0并且无法优化。也就是说损失函数失去了可导的性质。
- IOU无法分辨不同方式的对齐,例如方向不一致等,如下图所示,可以看到三种方式拥有相同的IOU值,但空间却完全不同
如上图所示,三种不同相对位置的框拥有相同的IoU=0.33值,但是拥有不同的GIoU=0.33,0.24,-0.1。当框的对齐方向更好一些时GIoU的值会更高一些。
paper
https://www.docin.com/p-2417843307.html
算法介绍
为了解决以上问题, 提出了GIOU
优点
- GIoU和IoU一样,可以作为一种距离的衡量方式,
- GIoU具有尺度不变性
- 对于两个矩形框A和B,0≤GIoU(A,B)≤IoU(A,B)≤1,当A->B时, 两者相等,此时GIoU等于1, 当A 和B 不相交时, GIoU等于-1
- 在A,B没有良好对齐时,会导致C的面积增大,从而使GIoU的值变小,而两个矩形框不重合时,依然可以计算GIoU,一定程度上解决了IoU不适合作为损失函数的原因
DIOU And CIOU Loss
GIOU缺陷:
- 当目标框完全包裹预测框的时候,IoU和GIoU的值都一样,此时GIoU退化为IoU, 无法区分其相对位置关系, 如下图所示:
Paper
https://www.docin.com/p1-2417846189.html
算法介绍
为了解决上述问题,作者提出了两个问题:
- 直接最小化预测框与目标框之间的归一化距离是否可行,以达到更快的收敛速度
- 如何使回归在与目标框有重叠甚至包含时更准确、更快。
并且指出好的目标回归损失应该考虑三个重要的几何因素:重叠面积,中心点距离,长宽比。
针对问题一,作者提出了Distance-IoU Loss,相对于GIoU Loss收敛速度更快,该Loss考虑了重叠面积和中心点距离,但没有考虑到长宽比;
针对问题二,作者提出了Complete-IoU Loss,其收敛的精度更高,且将以上三个因素都考虑到了。
通常基于IoU-based的loss可以定义为:
DIoU(Distance-IoU)
算法
其中:\(\rho^2\) 代表的是欧式距离,其中\(b^2和b^{gt}\) 分别表示预测框与真实框的中心点, c表示预测框与真实框的对角线距离,如下图所示:
优点
- 当两个框完全重合时, \(L_{IoU} = L_{GIoU} = L_{DIoU} = 0\) ,当2个框不相交时\(L_{GIoU} = L_{DIoU}\)->2
- DIoU Loss可以直接优化2个框直接的距离,比GIoU Loss收敛速度更快
- 对于目标框包裹预测框的这种情况,DIoU Loss可以收敛的很快,而GIoU Loss此时退化为IoU Loss收敛速度较慢
CIOU Loss(Complete-IoU)
CIoU的惩罚项是在DIoU的惩罚项基础上加了一个影响因子\(\alpha\nu\) ,这个因子把预测框长宽比拟合
其中 \(\alpha\) 是用于做trade-off的参数,定义为:
\(\nu\)是用来衡量长宽比一致性的参数,定义为:
算法
优点
- 增强长宽比限制, 使得回归尽可能保持相似的长宽比,在完全包含的时候能够更快的拟合真实框。
Reference:
https://zhuanlan.zhihu.com/p/104236411
https://www.zhihu.com/question/58200555