IoU (Intersection over Union)#
IoU是计算两个边界框重叠程度的指标,定义为两个边界框的交集面积除以它们的并集面积。公式如下:
IoU(A,B)=Area(A∪B)Area(A∩B)
IoU的实现很简单,但是存在以下问题:
- 当两个边界框没有重叠时,IoU为0,无法反映它们之间的距离关系,导致梯度消失,影响模型训练。
- IoU只考虑了边界框的重叠面积,忽略了边界框的中心点距离和形状差异。
- IoU在处理不同尺度的目标时表现不佳,尤其是对于小目标。
GIoU (Generalized Intersection over Union)#
GIoU是对IoU的改进,旨在解决IoU在边界框不重叠时无法提供有效梯度的问题。GIoU通过引入一个最小闭合边界框C来计算两个边界框A和B的关系。公式如下:
GIoU(A,B)=IoU(A,B)−Area(C)Area(C)−Area(A∪B)GIoU的优点包括:
- 当边界框不重叠时,GIoU仍然能够提供有效的梯度,促进模型训练。
- GIoU考虑了边界框的整体位置关系,能够更好地反映边界框之间的距离。
然而,GIoU仍然存在一些不足,如下图所示:

DIoU (Distance Intersection over Union)#
DIoU进一步改进了GIoU,通过引入边界框中心点之间的距离来衡量边界框之间的关系。公式如下:
DIoU(A,B)=IoU(A,B)−c2d2(bA,bB)其中,(d(b_A, b_B))表示边界框A和B的中心点之间的欧氏距离,(c)表示包含两个边界框的最小闭合边界框的对角线长度。
但是在多目标跟踪任务中,当两个框的IoU为0,且中心点距离相同时,DIoU无法区分这两个框的优劣。
MCTrack的作者通过大量实验发现,仅使用欧几里得距离或IoU及其变体来衡量边界框之间的关系,效果并不理想,不足以捕获所有类别之间的相似性。
Ro GDIoU#
计算Ro GDIoU的公式如下:
RoGDIoU(A,B)=UI−ω1⋅CC−U−ω2⋅d2c2其中,I 表示边界框A和B的交集面积, U 表示边界框A和B的并集面积,C 表示包含两个边界框的最小闭合边界框的面积,c 表示包含两个边界框的最小闭合边界框的对角线长度, d 表示边界框A和B的中心点之间的欧氏距离, ω1 和 ω2 是用于平衡各项贡献的权重参数,并且 ω1+ω2=2 。
