深度学习中的目标检测评价指标:IOU、GIOU、DIOU与CIOU详解
深度学习中的目标检测评价指标:IOU、GIOU、DIOU与CIOU详解
在目标检测任务中,准确评估预测框与真实框的匹配程度是至关重要的。IOU(Intersection over Union)作为最基础的评价指标,其衍生版本GIOU、DIOU和CIOU在实际应用中展现出不同的优势。本文将系统地介绍这些指标的计算方法、优缺点及其应用场景。
为了统一理解IOU及其衍生版本的公式,我们先定义以下参数:
- 【A】:目标框的区域
- 【B】:预测框的区域
- 【C】:A与B的交集
- 【D】:A与B的并集 = A+B-C
- 【E】:A与B的最小外接矩形框
- 【F】:最小外接框内非重叠的区域 = E - D
- 【d】:A中心到B中心的欧式距离
- 【L】:E的对角线距离
当将这些指标用作损失函数时,其形式为:IOU loss = 1 − IOU
IOU
公式:
$$IOU = \frac{C}{D}$$优点:
优化了原有的L1 loss,L2 loss和Smooth L1 loss,这三个loss都是基于独立的点来进行计算的。
直观地反映预测检测框与真实检测框的检测效果。判断Predbox 和GTbox的距离最直接的指标。
缺点:
如果两个框没有相交,C=0,不能反映A与B的距离。此时损失函数不可导,没有梯度回传,loss无法优化两个框不想交的情况。
IoU无法精确地反映两者的重合度大小。如下图所示,三种情况IoU都相等,但看得出来他们的重合度是不一样的,左边的图回归的效果最好,右边的最差。
GIOU
提出:在CVPR2019中,论文《Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression》提出了GIoU的思想。
公式:
$$GIOU = \frac{C}{D}-\frac{F}{E}$$优点:
加入了非重叠区域的影响,改善了IOU的计算过程
在A和B不相交时,可以进行学习训练
缺点:
当目标框A 和 检测框 B 完全互相包含时,F=0,即GIOU退化为IOU。此时无法区分A与B的相对位置,无法进行有效的学习
DIOU
提出:Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression
公式:
$$DIOU = \frac{C}{D}-\frac{d}{L}$$优点:
DIOU Loss可以直接最小化两个目标框的距离,比GIOU收敛的更快。
对于GIOU的缺点,即目标框包裹预测框的这种情况,DIOU Loss可以使回归非常快,而GIOU Loss几乎退化为IOU Loss。
缺点:
框的长宽比指标没有考虑
如图9所示,当IOU值和两个框的中心点距离一样时,即检测框中心点在以目标框中心点为圆心半径相同的圆弧上时,DIOU没办法区分。
CIOU
公式:
$$CIOU = \frac{C}{D}-\frac{d}{F}-\alpha v$$
$$v=\frac{4}{\pi^2}(arctan(\frac{w^{gt}}{h^{gt}})-arctan(\frac{w^{pred}}{h^{pred}}))$$解释:加入了长宽比相似性的指标,α是权重系数,在论文里有相关计算, 是两个框长宽比指标的相似性计算。通俗意思是在IOU值和中心点距离值相同时,两个框的长宽比指标越相似,说明预测框与目标框的对比效果越好。
优点:添加了长宽比的惩罚项,使得评估更加准确。
缺点:CIOU Loss涉及到反三角函数,在计算的过程中会消耗一定的算力,整体训练时间会慢一点。