目前,基于anchor的图像2D目标检测任务主要包括两个部分,一是目标的分类,二是目框位置的回归。所以,损失函数也是由分类损失和目标框回归损失两部分构成。分类的损失主要用交叉熵损失函数,没有太多的变化,目标框回归任务比较难,所示回归的损失函数近几年来一段在更新改进,本文主要介绍一下近几年常用的回归损失函数。
1. Smooth L1 损失函数
Smooth L1最早是在Fast rcnn中提出来的。首先看一下L1 和L2损失:
L1也就是L1范数损失函数,也被称为最小绝对值误差。计算得是:
L
1
(
x
)
=
∣
x
∣
L_1 (x) = | x |
L1(x)=∣x∣;
L2也就是L2范数损失函数,也被称为最小平方误差。计算得是:
L
2
(
x
)
=
x
2
L_2 (x) = x^2
L2(x)=x2;
Smooth L1 的计算公式是:
S
m
o
o
t
h
L
1
(
x
)
=
{
0.5
x
2
i
f
∣
x
∣
<
1
∣
x
∣
−
0.5
o
p
t
h
e
r
w
i
s
e
Smooth L_1(x)= \left\{ \begin{aligned} 0.5 x^2 \quad if |x| < 1 \\ |x| - 0.5 \quad optherwise \end{aligned} \right.
SmoothL1(x)={0.5x2if∣x∣<1∣x∣−0.5optherwise
对L1损失进行求导,导数为±1,也就是说导数是常数,这对于模型的训练可能会造成难以收敛的问题;
对L2损失进行求导,导数为
2
x
2x
2x,也就是说如果预测值和真值差异很大时,导数也会很大,也会造成模型难以收敛的问题;
而对于Smooth L1进行求导时,导数值不会超过±1,当预测值和真值差异小时,导数也会比较小,当预测值和真值差异大时,但也不会超过±1,有效的改进了L1和L2中存在的问题。
在进行目标检测任务时,会对目标框的XYWH四个值进行回归,然后再求和,这就存在一个问题,对于这四个值的回归是分开,没有考虑到他们之间的关系,因此后面就有了IOU loss对他的改进。
2. IOU loss 损失函数
https://arxiv.org/pdf/1608.01471.pdf
IOU loss是旷视在论文UnitBox: An Advanced Object Detection Network 中提出来的,就是为了解决上述所说的Smooth L1 中所存在的问题。IOU loss将4个值构成的框看成一个整体来进行回归,
从上图中可以看出,IOU loss 计算的是预测和真值的交集与并集,然后再取-ln。
但是,IOU loss 仍存在一些问题:
当两个框不想交时,损失函数是不可导的,是无法优化不想交这种情况的;
而且,当两个框的IOU相同时,是无法确定具体位置的,也就是不知道是怎么相交的。
3. GIoU Loss损失函数
论文链接:https://arxiv.org/pdf/1902.09630.pdf
Giou loss 是在2019CVPR论文 Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression 中提出的。下图说明,当L1和L2分别相同时,实际计算出来的IOU和GIOU是变换很大的。
定义GIOU Loss:
GIOU不但关注重合区域的度量,还反映了不重合区域的度量。
4. DIOU loss 损失函数
Distance-IoU Loss
论文链接:https://arxiv.org/pdf/1911.08287.pdf
主要是为了解决IoU和GIoU仍然存在的收敛速度慢和回归不准确的问题。
DIOU loss 的计算公式:
b
b
b和
b
g
t
b^{gt}
bgt表示预测和真值的中心点,
ρ
(
.
)
\rho(.)
ρ(.)表示欧氏距离,
c
c
c表示覆盖两个框的最小外包框的对角线距离。
相比IOU loss和 GIOU loss,Diou loss 继承了很多优点:
- 对于回归问题仍是尺度不变性;
- 可以优化不相交框的情况;
- 当两个框完全重合时,loss趋于0,当两个框离得远时,loss为2;
增加的优点: - DIOU loss 可以直接最小化两个框的距离,收敛的速度更快;
- 对于两个框包含的情况,DIOU loss 回归速度更快。
5. CIOU loss 损失函数
Complete-IoU Loss
论文链接:https://arxiv.org/pdf/1911.08287.pdf
同样在上一篇文章中,作者还提出了一个CIOU loss 损失函数,在DIOU的基础上又做了改进,将bbox回归三要素中的长宽比考虑进来。
其中 α \alpha α是一个trade-off的超参数, v v v用来衡量宽高比的一致性。