目标检测常用框回归loss总结

本文按照时间线路,总结目标检测常用的框回归loss函数。顺序依次为:smooth L1 loss, IOU loss,GIOU loss, DIOU loss, CIOU loss
mmdetection box regression losses(click here)

Smooth l1 loss

最初由 fast rcnn提出。其公式如下:
s m o o t h l 1 ( x ) = { 0.5 x 2 i f   ∣ x ∣ < 1 ∣ x ∣ − 0.5 i f   ∣ x ∣ > = 1 smooth_{l1}(x) = \begin{cases} 0.5 x^2 \quad if \, |x|<1 \\ |x| - 0.5 \quad if \,|x| >=1 \end{cases} smoothl1(x)={0.5x2ifx<1x0.5ifx>=1
如果直接使用L2或者L1作为loss,都会有训练不稳定的问题。
L 1 ( x ) = ∣ x ∣ L1(x) = |x| L1(x)=x
L 2 ( x ) = x 2 L2(x) = x^2 L2(x)=x2
我们观察一下三个函数的导数
d l 1 ( x ) d x = { 1 , i f x > 0 − 1 , i f x < 0 \frac{\mathrm{d}l1(x) }{\mathrm{d} x} = \begin{cases} 1, if x>0\\ -1, if x <0 \end{cases} dxdl1(x)={1,ifx>01,ifx<0
d l 2 ( x ) d x = 2 x \frac{\mathrm{d} l2(x) }{\mathrm{d} x} = 2x dxdl2(x)=2x
d s m o o t h l 1 ( x ) d x = { x , i f ∣ x ∣ < 1 ± 1 \frac{\mathrm{d} smooth_{l1}(x) }{\mathrm{d} x} = \begin{cases} x, if |x| <1 \\ \pm 1 \end{cases} dxdsmoothl1(x)={x,ifx<1±1

通过观察可知, 如果x很大,即误差很大的时候,l2的导数会很大,至于l1,导数一直为正负1。但是smooth l1 loss的导数,当误差x很大的时候,其导数最大为正负1(取模值), 当x很小,即误差很小的时候, 导数也很小。所以用smooth l1 loss 训练框回归分支,更加稳定。

但该loss也存在缺点。该loss push 这四个值向gt推进,整个过程没有考虑到这四个值之间是有关联的。同时smooth l1 损失值很小,但IOU有可能并不好。

IOU loss

针对smooth l1 loss的问题,旷视在16年提出IOU loss,直接优化预测框和GT的IOU。
在这里插入图片描述
绿色框是预测框, 蓝色框是gt。 求iou之后,直接取对数取反。

GIOU(cvpr19)

IOU loss在训练初期并不稳定,因为在预测不准确的时候, 预测框和GT的IOU是0,则无法求导更新。并且,当Inter和预测框以及GT的面积定了之后,IOU是固定的,但GT和预测框却能有不同方式的交集。
在这里插入图片描述
比如上图, 三种IOU的值一样,但却又不一样的交集形式。
GIOU的做法是,针对一个预测框A和对应的GT。找到一个最大外接框C,能包住A和B。
G I O U = I O U − ∣ C − ( A ⋃ B ) ∣ ∣ C ∣ GIOU = IOU - \frac{|C - (A \bigcup B )|}{|C|} GIOU=IOUCC(AB)
所以GIOU的范围在-1 到1 之间。 当A和B完全重合的时候,GIOU = 0。 当A和B不重合的时候, 可以发现GIOU不等于0, 而是小于0。
在这里插入图片描述

l o s s g i o u = 1 − G I O U loss_{giou} = 1 - GIOU lossgiou=1GIOU
如果A和B不相交,则loss为大于1的数值,也是可以求导的。

  • 缺点: 当GT框包住预测框的时候, GIOU退化为IOU,无法表示预测框和GT的相对位置关系

DIOU (AAAI2020)

针对GIOU的缺点, DIOU加入中心点归一化距离
针对问题:

  1. 直接最小化预测框与目标框之间的归一化距离是否可行,以达到更快的收敛速度。

首先考虑框回归损失的三个重要几何因素:重叠面积,中心点距离,长宽比。
iou系列的loss都考虑到了重叠面积,DIOU考虑到了中心点距离, 但没考虑长宽比,CIOU则是都考虑到了。

IOU-based loss通常可以写成
l i o u = 1 − I O U + R ( A , B ) l_{iou} = 1 - IOU + R(A,B) liou=1IOU+R(A,B)
A是预测框,B是GT。DIOU的R是
R d i o u ( A , B ) = ρ 2 ( b , b g t ) c 2 R_{diou}(A,B) = \frac{\rho^2(b,b^{gt)}}{c^2} Rdiou(A,B)=c2ρ2(b,bgt)
ρ ( . ) \rho(.) ρ(.)是欧氏距离, b b b b g t b^{gt} bgt是A的中心点和B的中心点。c是A和B的最小外接框的对角线长度

DIOU同样具有尺度不变性,且直接优化框和GT的距离,收敛速度更快。对于GT框包裹住预测框的情况,GIOU退化为IOU,收敛更慢,但是DIOU依然收敛很快。

CIOU

在DIOU的基础上,添加一个引子。
l c i o u = 1 − I O U + ρ 2 ( b , b g t ) c 2 + a v l_{ciou} = 1- IOU + \frac{\rho^2(b,b^{gt)}}{c^2} + av lciou=1IOU+c2ρ2(b,bgt)+av
其中a和v的定义是
a = v ( 1 − I O U ) + v a = \frac{v}{(1-IOU)+v} a=(1IOU)+vv
v = 4 π 2 ( a r c t a n w g t h g t − a r c t a n w h ) 2 v = \frac{4}{\pi^2}(arctan\frac{w^{gt}}{h^{gt}} - arctan\frac{w}{h})^2 v=π24(arctanhgtwgtarctanhw)2

v的目标是想让预测框的长宽比和GT一致。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值