目标检测算法之AAAI 2020 DIoU Loss 已开源(YOLOV3涨近3个点)

目标检测算法之AAAI 2020 DIoU Loss 已开源(YOLOV3涨近3个点)

我们先来回顾一下IoU Loss和GIoU Loss。IoU Loss可以表示为: L I o U = 1 − ∣ B ∩ B s t ∣ ∣ B ∪ B s t ∣ L_{I o U}=1-\frac{\left|B \cap B^{s t}\right|}{\left|B \cup B^{s t}\right|} LIoU=1BBstBBst,从IoU的角度来解决回归损失,但它的缺点是当两个框不想交时,IOU-Loss始终为1,无法给出优化方向。因此GIoU来了,GIoU可以用下面的公式表示: L G I o U = 1 − I o U + ∣ C − B ∪ B g t ∣ ∣ C ∣ L_{G I o U}=1-I o U+\frac{\left|C-B \cup B^{g t}\right|}{|C|} LGIoU=1IoU+CCBBgt ,可以看到GIoU在IoU的基础上添加了一项,其中表示包含两个框的最小矩形,这样就可以优化两个框不相交的情况。但GIoU仍然存在一个问题是,当两个框相交时,GIoU损失退化为了IoU损失。导致在预测框bbox和ground truth bbox包含的时候优化变得非常困难,特别是在水平和垂直方向收敛难。这里一个猜想是在水平和垂直方向,值的增长没有在其他方向快,因此对这两个方向的惩罚力度不够,导致放慢了收敛速度。如论文的Figure2和Fiigure4所示:
在这里插入图片描述
在这里插入图片描述
同时为了更加形象的说明这一点,我们看一下论文的Figure1:
在这里插入图片描述
其中Figure1中的上面3张图表示GIoU的回归过程,其中绿色框为目标框,黑色框为Anchor,蓝色框为不同迭代次数后,Anchor的偏移结果。第2行的3张图则表示了DIoU的回归过程。从图中可以看到,在GIoU的回归过程中,从损失函数的形式我们发现,当IoU为0时,GIoU会先尽可能让anchor能够和目标框产生重叠,之后GIoU会渐渐退化成IoU回归策略,因此整个过程会非常缓慢而且存在发散的风险。而DIoU考虑到anchor和目标之间的中心点距离,可以更快更有效更稳定的进行回归。
基于上诉分析,作者提出了如下两个问题:

一,直接最小化Anchor和目标框之间的归一化距离以达到更快的收敛速度是否可行?
二,如何使回归损失在与目标框有重叠甚至有包含关系时更准确,收敛更快?
论文为了解决第一个问题,提出了Distance-IoU Loss(DIoU Loss)
在这里插入图片描述
这个损失函数中b和 b g t b^{g t} bgt,分别代表了Anchor框和目标框的中心点,代表计算两个中心点的欧式距离,c代表的是可以同时覆盖Anchor框和目标框的最小矩形的对角线距离。因此DIoU中对Anchor框和目标框之间的归一化距离进行了建模。直观展示如Figure 5所示:在这里插入图片描述
DIoU Loss的优点如下:

1、和GIoU Loss类似,DIoU Loss在和目标框不重叠时,仍然可以为边界框提供移动方向。
2、DIoU Loss可以直接最小化两个目标框的距离,因此比GIoU Loss收敛快得多。
3、对于包含两个框在水平方向和垂直方向上这种情况,DIoU Loss可以使回归Loss 下降非常快,而GIoU Loss几乎退化为IoU Loss。

CIoU Loss

为了回答第二个问题,作者提出了Complete-IoU Loss。一个好的目标框回归损失应该考虑三个重要的几何因素:重叠面积,中心点距离,长宽比。GIoU为了归一化坐标尺度,利用IOU并初步解决了IoU为0无法优化的问题。然后DIoU损失在GIoU Loss的基础上考虑了边界框的重叠面积和中心点距离。所以还有最后一个点上面的Loss没有考虑到,即Anchor的长宽比和目标框之间的长宽比的一致性。基于这一点,论文提出了CIoU Loss。
L C I o U = 1 − I o U + ρ 2 ( b , b g t ) c 2 + α v \mathcal{L}_{C I o U}=1-I o U+\frac{\rho^{2}\left(\mathbf{b}, \mathbf{b}^{g t}\right)}{c^{2}}+\alpha\boldsymbol{v} LCIoU=1IoU+c2ρ2(b,bgt)+αv
从上面的损失可以看到,CIoU比DIoU多了 α \alpha α v \boldsymbol{v} v这两个参数。其中 α \alpha α是用来平衡比例的系数, v \boldsymbol{v} v是用来衡量Anchor框和目标框之间的比例一致性。它们的公式如下:
v = 4 π 2 ( arctan ⁡ w g t h g t − arctan ⁡ w h ) 2 v=\frac{4}{\pi^{2}}\left(\arctan \frac{w^{g t}}{h^{g t}}-\arctan \frac{w}{h}\right)^{2} v=π24(arctanhgtwgtarctanhw)2
α = v ( 1 − I o U ) + v \alpha=\frac{v}{(1-I o U)+v} α=(1IoU)+vv
然后在对 w w w h h h求导的时候,公式如下:
∂ v ∂ w = 8 π 2 ( arctan ⁡ w g t h g t − arctan ⁡ w h ) × h w 2 + h 2 \frac{\partial v}{\partial w}=\frac{8}{\pi^{2}}\left(\arctan \frac{w^{g t}}{h^{g t}}-\arctan \frac{w}{h}\right) \times \frac{h}{w^{2}+h^{2}} wv=π28(arctanhgtwgtarctanhw)×w2+h2h
∂ v ∂ h = − 8 π 2 ( arctan ⁡ w g t h g t − arctan ⁡ w h ) × w w 2 + h 2 \frac{\partial v}{\partial h}=-\frac{8}{\pi^{2}}\left(\arctan \frac{w^{g t}}{h^{g t}}-\arctan \frac{w}{h}\right) \times \frac{w}{w^{2}+h^{2}} hv=π28(arctanhgtwgtarctanhw)×w2+h2w
因为 w 2 + h 2 w^{2}+h^{2} w2+h2这一项在计算的时候会变得很小,因为w,h,的取值范围是[0,1]。而在回归问题中回归很大的值是很难的,因此一般都会对原始的,分别处以原图像的长宽。所以论文直接将 w 2 + h 2 w^{2}+h^{2} w2+h2设为常数1,这样不会导致梯度的方向改变,虽然值变了,但这可以加快收敛。

α \alpha α的定义式来看,损失函数会更加倾向于往重叠区域增多的方向优化,尤其是IoU为0的情况,这满足我们的要求。同时,在进行nms阶段,一般的评判标准是IOU,这个地方作者推荐替换为DIOU,这样考虑了中心点距离这一个信息,效果又有一定的提升。
s i = { s i ,  IoU  − R DIoU ( M , B i ) < ε 0 , IoU − R DIoU ( M , B i ) ≥ ε s_{i}=\left\{\begin{array}{l}s_{i}, \text { IoU }-\mathcal{R}_{\text {DIoU}}\left(\mathcal{M}, B_{i}\right)<\varepsilon \\ 0, \quad \text {IoU}-\mathcal{R}_{\text {DIoU}}\left(\mathcal{M}, B_{i}\right) \geq \varepsilon\end{array}\right. si={si, IoU RDIoU(M,Bi)<ε0,IoURDIoU(M,Bi)ε

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值