目标检测任务的损失函数由Classificition Loss和Bounding Box Regeression Loss两部分构成。近几年来Bounding Box Regression Loss Function的演进路线为IOU-GIOU-DIOU-CIOU。
L2损失不能准确地反应两个目标边框重合的程度
图中为三组矩形框重合的例子:绿色为真实目标存在的框GT box,黑色是预测的box位置。可以发现,第三个的预测效果最好,因为预测目标的位置和真实目标最为接近,但是计算三组的L2损失发现损失值一致,因此L2损失不能准确地反映出两个目标边框重合的程度,从而提出了IOU损失函数。
IOU的计算是用预测框A和真实框B的交集除以两者的并集:
I o U = A ⋂ B A ⋃ B IoU=\frac{A\bigcap B}{A\bigcup B} IoU=A⋃BA⋂B
IOU值越高,说明A框与B框重合程度越高,模型预测越准确;反之,模型性能越差。
IOU loss 将四个点构成的bbox,作为整体进行回归。设置 ( x t , x b , x l , x r ) (x_t, x_b, x_l, x_r) (xt,xb,xl,xr)进行计算,反应真实框和预测框的关系:
优点:
缺点:
用于解决IOU为0时,真实框和预测框之间距离度量的问题
GIoU,在IoU后面增加了一项,计算两个框的最小外接矩形,用于表征两个框的距离,从而解决了两个目标没有交集时梯度为零的问题。
对于任意的两个A、B框,首先找到一个能够包住它们的最小方框C。然后计算 C − ( A ⋃ B ) C-(A\bigcup B) C−(A⋃B)与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=IoU−CC−(A⋃B)
当IOU=0时:
G I o U = − 1 + A ⋃ B C GIoU=-1+\frac{A\bigcup B}{C} GIoU=−1+CA⋃B
如果两框重合,那么IOU=1,则GIOU=1;如果两个目标分开很远,C的取值就会较大,IOU趋向于0,GIOU趋向于-1。因此GIOU的取值为[-1, 1]。
GIOU作为loss函数时:
L G I o U = 1 − G I o U L_{GIoU}=1-GIoU LGIoU=1−GIoU
GIoU Loss旨在减少外界包围框的面积。
优点:
缺点:
IOU和GIOU不能很好地表达边界框重合关系: 当预测边界框和目标边界框存在重合关系时,重合位置不同的情况下,IOU和GIOU的取值是相同的,无法进行区分。
DIoU要比GIou更加符合目标框回归的机制,将目标与anchor之间的距离,重叠率以及尺度都考虑进去,使得目标框回归变得更加稳定,不会像IoU和GIoU一样出现训练过程中发散等问题。
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=IoU−c2ρ2(b,bgt)=IoU−c2d2
其中, b b b为预测框的中心点, b g t b^{gt} bgt是真实框的中心点, ρ \rho ρ是计算两个中心点之间的欧式距离, c c c是能够同时包含预测框和真实框的最小外接矩形的对角线长度。
当两个框完美重叠时,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函数时:
L D I o U = 1 − D I o U L_{DIoU}=1-DIoU LDIoU=1−DIoU
DIoU Loss的惩罚项能够直接最小化中心点间的距离,而且GIoU Loss旨在减少外界包围框的面积。
优点:
缺点:
bbox回归三要素中的长宽比还没被考虑到计算中
作者认为一个优秀的回归定位损失应该考虑三种几何参数:重叠面积、中心点距离、长宽比。CIOU在DIOU的基础上添加了一项用于度量检测框的尺度,从而使得预测框更加符合真实框。
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(arctanhgtwgt−arctanhw)2α=(1−IoU)+vv
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=1−CIoU=1−IoU+(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。
优点:
缺点:
边界框回归的三大集合因素:重叠面积、中心点距离、纵横比
参考:
【目标检测】IoU、GIoU、DIoU、CIoU、EIoU 5大评价指标
IoU系列(IoU, GIoU, DIoU, CIoU)
IOU_GIOU_DIOU_CIOU_EIOU优缺点总结