IoU GIoU DIoU CIoU分析比较
IoU
1. IoU的简介及原理解析
IoU 的全称为交并比(Intersection over Union),通过这个名称我们大概可以猜到 IoU 的计算方法。IoU 计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值。
IOU其满足度量的四个标准:非负性、对称性、同一性及三角不等式。IOU具有尺度不变性。
2.IOU的应用有哪些?
IOU(Intersection over Union)是目标检测任务中非常常见的,IOU在目标检测中应用有:
进行NMS(非极大值抑制):当在图像中预测有多个proposals、pred bboxes时,因为预测的结果中可能存在高度冗余(即一个目标可能会被预测出多个目标检测框),因此需要过滤掉一些彼此间高度重合的结果。具体操作流程是先对各个bbox的score(分类)进行降序排序,再通过设置的IOU阈值,剔除掉与得分高的bbox有高重合度的低分框。IOU设置的越大,表示剔除难度越高,最后剩余的bbox越多,而IOU设置的越小,则表示剔除难度越小,剔除力度就越大,最后剩余的bbox就越少。
计算mAP:得到检测算法的预测结果后,需要对pred bbox与gt一起评估检测算法的性能,最常用的指标就是mAP。这时候,IOU常常被用于计算pred bbox与gt之间的重合度以度量bbox位置预测的准确度得分,然后通过设置的一系列阈值,依据分数和阈值来划分TP和FP,并计算得到一系列阈值设置下的(precision,recall)对,进而计算出mAP。
IOU经过改良后,也可以用来计算loss,通过反传梯度的方式优化网络参数。
GIoU
1.Iou的缺陷
IOU的主要缺点是,如果A和B的交集为空,无法度量A和B是离得很近还是离得非常远。
2.GIoU的简介及原理解析
论文:https://arxiv.org/abs/1902.09630
代码:https://github.com/generalized-iou/g-darknet
C是A和B的最小凸包。凸包:形象的解释,就是在桌面上钉上很多钉子,如果用橡皮筋将所有钉子在外围包起来,那么这个橡皮筋的围成的就是一个凸包。
3.GIoU的性质
A和B完全不重叠时,IoU为0,但如果两者离得越远,GIoU就越小,克服了IoU作为损失函数时的缺点。那么最小化GIoU就等价于迫使预测框接近于真实框,从而提高了预测的准确度。
DIoU & CIoU
论文:https://arxiv.org/pdf/1911.08287.pdf
代码:https://github.com/Zzh-tju/DIoU
1.IoU和GIoU的缺点
IOU loss无法处理预测框和真实框不交叉的情况,GIOU loss收敛速度慢。因此,作者提出了两个问题:
第一,是否应该最小化预测框和真实框中心点之间的距离以加速收敛?
第二,当预测框和真实框存在重叠甚至存在包含关系时,如果进行高效准确的回归训练?
2.DIoU的简介及原理解析
基于作者提出的第一个问题,作者提出了DIoU,即Distance-IOU。使用的惩罚项为预测框和真实框中心点之间的欧式距离除以两个框闭包框的对角线长度的平方。即:
因此,总的D-IOU损失为:
3.CIoU的简介及原理解析
CIoU对应于作者提出的第二个问题,一个好的损失函数不仅应该考虑中心点的距离,而且应该考虑两个框的重叠面积和宽高比等因素。IoU loss考虑了重叠面积、DIoU增加了中心点距离,另一个CIoU又考虑了两个框的长宽比。