这里简单记录下IOU及其衍生公式。
为了拉通IOU及其衍生版的公式对比,以及方便记忆,这里用一个统一的图示来表示出所有的参数
- 【A】目标框的区域
- 【B】预测框的区域
- 【C】A与B的交集
- 【D】A与B的并集 = A+B-C
- 【E】A与B的最小外接矩形框
- 【F】最小外接框内非重叠的区域 = E - D,
- 【d】A中心到B中心的欧式距离
- 【L】E的对角线距离
将IOU的衍生公式要当做损失函数时,其损失函数为 IOU loss = 1 − IOU \text{IOU loss}=1-\text{IOU} IOU loss=1−IOU
IOU
- 公式:
IOU = C D \text{IOU} = \frac{C}{D} IOU=DC- 优点
- 优化了原有的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 = C D − F E \text{GIOU} = \frac{C}{D}-\frac{F}{E} GIOU=DC−EFIOU越大的同时,非重叠区域占比越小,此时两个框越贴合。- 优点
- 加入了非重叠区域的影响,改善了IOU的计算过程
- 在A和B不相交时,可以进行学习训练
- 缺点
- 当目标框A 和 检测框 B 完全互相包含时,F=0,即GIOU退化为IOU。此时无法区分A与B的相对位置,无法进行有效的学习
DIOU
- 提出于 Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression
- 公式
GIOU = C D − d L \text{GIOU} = \frac{C}{D}-\frac{d}{L} GIOU=DC−Ld用对角距离把检测框和预测框的中心点距离进行归一化。在IOU值相同时,两个框的中心点归一化距离越小,代表预测框和目标框的更贴合。
IOU越大的同时,中心点归一化距离越近,此时两个框越贴合。- 优点
- DIOU Loss可以直接最小化两个目标框的距离,比GIOU收敛的更快。
- 对于GIOU的缺点,即目标框包裹预测框的这种情况,DIOU Loss可以使回归非常快,而GIOU Loss几乎退化为IOU Loss。
- 缺点
- 框的长宽比指标没有考虑
- 如图9所示,当IOU值和两个框的中心点距离一样时,即检测框中心点在以目标框中心点为圆心半径相同的圆弧上时,DIOU没办法区分。
CIOU
- 公式: CIOU = C D − d F − α v v = 4 π 2 ( a r c t a n ( w g t h g t ) − a r c t a n ( w p r e d h p r e d ) ) \text{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}})) CIOU=DC−Fd−αvv=π24(arctan(hgtwgt)−arctan(hpredwpred))
- 解释:加入了长宽比相似性的指标, α \alpha α 是权重系数,在论文里有相关计算, 是两个框长宽比指标的相似性计算。
通俗意思是在IOU值和中心点距离值相同时,两个框的长宽比指标越相似,说明预测框与目标框的对比效果越好。- 优点:添加了长宽比的惩罚项,使得评估更加准确。
- 缺点:CIOU Loss涉及到反三角函数,在计算的过程中会消耗一定的算力,整体训练时间会慢一点。