IoU 是目标检测中计算目标检测结果和实际结果重叠度的一种常用指标,它通过计算检测框和真实框的交集和与并集的比例,来衡量检测结果的准确性。
IoU 的取值范围是 (0, 1),值越接近 1 表示检测结果与实际结果之间的重叠度越高,表示检测结果越准确,而值越接近 0 表示检测结果与实际结果之间的重叠越小,表示结果越不准确。
两个矩形框 A 和 B,左上角和右下角的坐标为:
- A(x 1_A, y 1_A, x 2_A, y 2_A)
- B(x 1_B, y 1_B, x 2_B, y 2_B)
两个矩形框的交集面积 S(intersection) 为:
两个矩形框的并集面积 S(union)为:
则它们之间的 IOU 为:
Python 实现:
如果数据是 xywh 形式, 需要先转为 xyxy:
xyxy 转 xywh: