[目标检测]-图解bbox_loss的发展-MSE -> IOU -> GIOU(cvpr2019) ->DIOU/CIOU(aaai2020)

1.MSE方式

最早的bbox_loss采用的是MSE方法
L MSE = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 + ( w 1 − w 2 ) 2 + ( h 1 − h 2 ) 2 \mathcal{L}_{\text {MSE}} = (x1-x2)^2 + (y1-y2)^2 + (w1-w2)^2 +(h1-h2)^2 LMSE=(x1x2)2+(y1y2)2+(w1w2)2+(h1h2)2
在这里插入图片描述
这种方式计算损失值是检测框的“代理属性”—— 距离,而忽略了检测框本身最显著的性质——IoU。
计算两者的重叠占比,才是我们更加想要去优化的属性,而不仅仅是距离。

2.IOU方式

L IoU = 1 − ∣ B ∩ B g t ∣ ∣ B ∪ B g t ∣ \begin{array}{l} \mathcal{L}_{\text {IoU}}=1-\frac{\left|B \cap B^{g t}\right|}{\left|B \cup B^{g t}\right|} \\ \end{array} LIoU=1BBgtBBgt
IOU就是反映预测框与真实框的重叠情况在这里插入图片描述
从几何上来看就是两者交集的面积比两者并集的面积,当这个值越大,代表两者越接近,反映在bbox_loss上就会越小。
但是这种方式确有着两个致命的缺点,无法反映1.包含及2.完全未重叠如下图所示
在这里插入图片描述

  • 如左边这种情况,两者虽然不重叠但是,距离1w米与距离1米,他们应该是不同的,但是反映在iou上,都为0,这时的bbox_loss为1,这就不能体现出距离的关系。
  • 如右边这种情况,两者体现一种包含关系,这时的iou为1,bbox_loss=0,但是他们的中心点没有对准,且预测框跟真实框的大小也不同,这应该是要去优化的,很显然,也不能体现出包含情况下的优化。

3.GIOU

于是cvpr2019年giou横空出世,他的公式如下:
L G I o U = 1 − I o U + ∣ C − B ∪ B g t ∣ ∣ C ∣ \mathcal{L}_{G I o U}=1-I o U+\frac{\left|C-B \cup B^{g t}\right|}{|C|} LGIoU=1IoU+CCBBgt
在这里插入图片描述
C代表两者接起来的矩形,可以看到,当两者不相交时,IOU为0,但后面的那一项,两者距离越远,越接近于1,于是giou_loss也就越大,这就很好的解决了IOU_loss的第一个缺点,但是同样的第二个缺点并没有解决。

4.DIOU

论文地址:https://arxiv.org/abs/1911.08287

代码地址:https://github.com/Zzh-tju/DIoU

为了解决3中的问题,aaai2020年diou横空出世,它的公式如下
L D I o U = 1 − I o U + ρ 2 ( b , b g t ) c 2 \mathcal{L}_{D I o U}=1-I o U+\frac{\rho^{2}\left(\mathbf{b}, \mathbf{b}^{g t}\right)}{c^{2}} LDIoU=1IoU+c2ρ2(b,bgt)
在这里插入图片描述
其中
ρ 2 ( b , b g t ) c 2 \frac{\rho^{2}\left(\mathbf{b}, \mathbf{b}^{g t}\right)}{c^{2}} c2ρ2(b,bgt)
分子代表预测框与真实框他们中心点之间的距离,而分母则代表两者形成的外接矩形的对角线长度。
可以看到这种方式,两者不重合时,距离越远比值越接近1,此时loss=1+1=2,随着两者距离的接近,loss慢慢下降。
在两者包含的时候
在这里插入图片描述
只有两者中心点完全一致时,上述项为0,可以看到也解决了部分包含的问题。
那么还剩下最后一个问题:两者重合且中心点也重合时时,预测框与真实框的宽高不一致,出现大框包小框该如何优化?

5.CIOU(完美IOU)

CIOU是DIOU同一篇论文提出的。先看公式

L C I o U = 1 − I o U + ρ 2 ( b , b g t ) ρ 2 + α v \mathcal{L}_{C I o U}=1-I o U+\frac{\rho^{2}\left(\mathbf{b}, \mathbf{b}^{g t}\right)}{\rho^{2}}+\alpha v LCIoU=1IoU+ρ2ρ2(b,bgt)+αv
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

在这里 α \alpha α你可以认为作者设置的一个权重系数,加入 α v \alpha v αv,引入了宽高比,从而去优化预测框与真是框之间的宽高不同问题,至此,这个问题基本可以说解的很完美了,这里看一个性能对比。
在这里插入图片描述 这是作者在YOLOV3网络使用不同的bbox_loss所带来的性能提升,可以看到CIOU相对于GIOU有了大约3%左右的性能提升。