IOU 系列:IOU,GIOU,DIOU,CIOU

文章目录

  • 一、IOU
    • (一)为什么提出IOU
    • (二)IOU的计算公式
    • (三)IOU Loss
    • (四)IOU的优缺点
  • 二、GIOU
    • (一)为什么提出GIOU
    • (二)GIOU的计算公式
    • (三)GIOU Loss
    • (四)GIOU的优缺点
  • 三、DIOU
    • (一)为什么提出DIOU
    • (二)DIOU的计算公式
    • (三)DIOU Loss
    • (四)DIOU的优缺点
  • 四、CIOU
    • (一)为什么提出CIOU
    • (二)CIOU的计算公式
    • (三)CIOU Loss
    • (四)CIOU的优缺点
  • 五、对比总结


目标检测任务的损失函数由Classificition Loss和Bounding Box Regeression Loss两部分构成。近几年来Bounding Box Regression Loss Function的演进路线为IOU-GIOU-DIOU-CIOU。

一、IOU

(一)为什么提出IOU

L2损失不能准确地反应两个目标边框重合的程度

图中为三组矩形框重合的例子:绿色为真实目标存在的框GT box,黑色是预测的box位置。可以发现,第三个的预测效果最好,因为预测目标的位置和真实目标最为接近,但是计算三组的L2损失发现损失值一致,因此L2损失不能准确地反映出两个目标边框重合的程度,从而提出了IOU损失函数。
IOU 系列:IOU,GIOU,DIOU,CIOU_第1张图片

(二)IOU的计算公式

IOU的计算是用预测框A和真实框B的交集除以两者的并集:
I o U = A ⋂ B A ⋃ B IoU=\frac{A\bigcap B}{A\bigcup B} IoU=ABAB
IOU值越高,说明A框与B框重合程度越高,模型预测越准确;反之,模型性能越差。

(三)IOU Loss

IOU loss 将四个点构成的bbox,作为整体进行回归。设置 ( x t , x b , x l , x r ) (x_t, x_b, x_l, x_r) (xt,xb,xl,xr)进行计算,反应真实框和预测框的关系:
IOU 系列:IOU,GIOU,DIOU,CIOU_第2张图片

(四)IOU的优缺点

优点:

  • IOU具有尺度不变性:任意两个方框A和B的相似性与他们的空间尺度无关;
  • 结果非负,且范围为(0,1)
  • IOU可以作为一种距离的衡量方式: L I o U = 1 − I o U L_{IoU}=1-IoU LIoU=1IoU,因为它包含了作为度量的所有属性,比如:非负性、不确定性、对称性和三角不等性。
  • 不仅用来确定正样本和负样本,还可以用来评价输出框(predict box)和ground-truth的距离。

缺点:

  • 如果两个目标没有重叠,IOU将会为0,并且不会反应两个目标之间的距离,在这种无重叠目标的情况下,如果IOU用作损失函数,梯度为0,无法优化;
  • IOU无法精确地反映两者的重合度大小,也无法区分两个对象之间不同的对齐方式。(下图三种情况下的IOU值是相等的,但是重合度和对齐方式不一致)
    IOU 系列:IOU,GIOU,DIOU,CIOU_第3张图片

二、GIOU

(一)为什么提出GIOU

用于解决IOU为0时,真实框和预测框之间距离度量的问题

GIoU,在IoU后面增加了一项,计算两个框的最小外接矩形,用于表征两个框的距离,从而解决了两个目标没有交集时梯度为零的问题。

(二)GIOU的计算公式

对于任意的两个A、B框,首先找到一个能够包住它们的最小方框C。然后计算 C − ( A ⋃ B ) C-(A\bigcup B) C(AB)与C面积的比值,用A和B的IoU减去这个比值即可得到GIoU:(C为两个框的最小外接矩形的面积)
G I o U = I o U − C − ( A ⋃ B ) C GIoU=IoU-\frac{C-(A\bigcup B)}{C} GIoU=IoUCC(AB)
IOU 系列:IOU,GIOU,DIOU,CIOU_第4张图片

当IOU=0时:
G I o U = − 1 + A ⋃ B C GIoU=-1+\frac{A\bigcup B}{C} GIoU=1+CAB

如果两框重合,那么IOU=1,则GIOU=1;如果两个目标分开很远,C的取值就会较大,IOU趋向于0,GIOU趋向于-1。因此GIOU的取值为[-1, 1]。

(三)GIOU Loss

GIOU作为loss函数时:
L G I o U = 1 − G I o U L_{GIoU}=1-GIoU LGIoU=1GIoU
GIoU Loss旨在减少外界包围框的面积。

(四)GIOU的优缺点

优点:

  • 当IOU=0时,GIOU仍然可以很好的表示两个框的距离;
  • GIOU不仅关注重叠区域,还会关注其他的非重合区域,能够更好的反映两者的重合度;
  • 与IoU相似,GIoU也是一种距离度量。

缺点:

  • 当两个框属于包含关系时,GIOU会退化成IOU,无法区分其相对位置关系:
    IOU 系列:IOU,GIOU,DIOU,CIOU_第5张图片
  • 由于GIoU仍然严重依赖IoU,因此在水平和垂直两个方向上,误差很大,很难收敛。两个框在相同距离的情况下,水平垂直方向时,此部分面积最小,对loss的贡献也就越小,从而导致在垂直水平方向上回归效果较差:
    IOU 系列:IOU,GIOU,DIOU,CIOU_第6张图片

三、DIOU

(一)为什么提出DIOU

IOU和GIOU不能很好地表达边界框重合关系: 当预测边界框和目标边界框存在重合关系时,重合位置不同的情况下,IOU和GIOU的取值是相同的,无法进行区分。

DIoU要比GIou更加符合目标框回归的机制,将目标与anchor之间的距离,重叠率以及尺度都考虑进去,使得目标框回归变得更加稳定,不会像IoU和GIoU一样出现训练过程中发散等问题。

(二)DIOU的计算公式

D I o U = I o U − ρ 2 ( b , b g t ) c 2 = I o U − d 2 c 2 DIoU=IoU-\frac{\rho^2(b,b^{gt})}{c^2}=IoU-\frac{d^2}{c^2} DIoU=IoUc2ρ2(b,bgt)=IoUc2d2

其中, b b b为预测框的中心点, b g t b^{gt} bgt是真实框的中心点, ρ \rho ρ是计算两个中心点之间的欧式距离, c c c是能够同时包含预测框和真实框的最小外接矩形的对角线长度。
IOU 系列:IOU,GIOU,DIOU,CIOU_第7张图片
当两个框完美重叠时,d=0,IOU=1,DIOU=1;如果两个框相距很远, d 2 c 2 \frac{d^2}{c^2} c2d2趋近于1,IOU=0,DIOU=-1。因此DIOU的取值范围也是[-1,1]。

(三)DIOU Loss

DIOU作为loss函数时:
L D I o U = 1 − D I o U L_{DIoU}=1-DIoU LDIoU=1DIoU
DIoU Loss的惩罚项能够直接最小化中心点间的距离,而且GIoU Loss旨在减少外界包围框的面积。

(四)DIOU的优缺点

优点:

  • DIoU与IoU,GIoU一样具有尺度不变性;
  • DIoU与GIoU一样在与目标框不重叠时,仍然可以为边界框提供移动方向;
  • DIoU loss可以直接最小化两个目标框的距离,因此比GIoU loss收敛快得多;
  • DIoU在包含两个水平或垂直方向上的情况回归很快,而GIoU几乎退化为IoU;
  • DIoU还可以替换普通的IoU评价策略,应用于NMS中,使得NMS得到的结果更加合理和有效。

缺点:

  • 虽然DIOU能够直接最小化预测框和真实框的中心点距离加速收敛,但是Bounding box的回归还有一个重要的因素纵横比暂未考虑。如下图,三个红框的面积相同,但是长宽比不一样,红框与绿框中心点重合,这时三种情况的DIoU相同,证明DIoU不能很好的区分这种情况。
    IOU 系列:IOU,GIOU,DIOU,CIOU_第8张图片

四、CIOU

(一)为什么提出CIOU

bbox回归三要素中的长宽比还没被考虑到计算中

作者认为一个优秀的回归定位损失应该考虑三种几何参数:重叠面积、中心点距离、长宽比。CIOU在DIOU的基础上添加了一项用于度量检测框的尺度,从而使得预测框更加符合真实框。

(二)CIOU的计算公式

CIOU的三项恰好对应IOU、中心点距离、长宽比的计算。其中, α \alpha α是权重函数, v v v用来度量宽高比的一致性, w w w h h h w g t w^{gt} wgt h g t h^{gt} hgt分别代表预测框的高宽和真实框的高宽。
C I o U = I o U − ( ρ 2 ( b , b g t ) c 2 + α v ) 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 ( 1 − I o U ) + v CIoU=IoU-(\frac{\rho^2(b,b^{gt})}{c^2}+\alpha v)\\ v=\frac{4}{\pi^2}(arctan\frac{w^{gt}}{h^{gt}}-arctan\frac{w}{h})^2\\ \alpha =\frac{v}{(1-IoU)+v} CIoU=IoU(c2ρ2(b,bgt)+αv)v=π24(arctanhgtwgtarctanhw)2α=(1IoU)+vv

(三)CIOU Loss

CIOU作为loss函数时:
L C I o U = 1 − C I o U = 1 − I o U + ( ρ 2 ( b , b g t ) c 2 ) + α v L_{CIoU}=1-CIoU=1-IoU+(\frac{\rho^2(b,b^{gt})}{c^2})+\alpha v LCIoU=1CIoU=1IoU+(c2ρ2(b,bgt))+αv
CIOU loss的梯度类似于DIOU loss,但还要考虑 v v v的梯度,在长宽在[0,1]的情况下, w 2 + h 2 w^2+h^2 w2+h2的值通常很小,会导致梯度爆炸,因此在 1 w 2 + h 2 \frac{1}{w^2+h^2} w2+h21实现时替换成1。

(四)CIOU的优缺点

优点:

  • 考虑了框的纵横比,可以解决DIoU的问题。

缺点:

  • 纵横比描述的事相对值,而不是宽高分别与其置信度的真实差异,存在一定的模糊,有时会阻碍模型有效的优化相似性。

五、对比总结

边界框回归的三大集合因素:重叠面积、中心点距离、纵横比

  1. IoU:考虑了重叠面积,归一化坐标尺度;
  2. GIoU:考虑了重叠面积,基于IoU解决边界框不想交时loss等于0的问题;
  3. DIoU:考虑了重叠面积、中心点距离,基于IoU解决GIoU收敛慢的问题;
  4. CIoU:考虑了重叠面积、中心点距离、纵横比,基于DIoU提升回归精确度。
    IOU 系列:IOU,GIOU,DIOU,CIOU_第9张图片

参考:
【目标检测】IoU、GIoU、DIoU、CIoU、EIoU 5大评价指标
IoU系列(IoU, GIoU, DIoU, CIoU)
IOU_GIOU_DIOU_CIOU_EIOU优缺点总结

你可能感兴趣的:(深度学习,算法,目标检测)