IOU的原理
顾名思义,交并比(IOU)就是两个bounding box相交面积与合并面积的比值。
在NMS(非极大值抑制)以及map(平均精确度)的评估中,都会使用IOU评估两个框之间的相关性。
目标,寻找相交区域的bounding box。
IOU的实现
//
# 假设box = [xmin, ymin, x_max, y_max]
# 左上角坐标(xmin, ymin), 右下坐标(xmax, ymax)
def IOU(box_A, box_B):
box_A = [x for x in box_A]
box_B = [y for y in box_B]
x_min = max(box_A[0], box_B[0])
y_min = max(box_A[1], box_B[1])
x_max = min(box_A[2], box_B[2])
y_max = min(box_A[3], box_B[3])
# intersection
I = max(y_max - y_min + 1, 0) * max(x_max - x_min + 1, 0)
# union
U = (box_A[3] - box_A[1] + 1) * (box_A[2] - box_A[0] + 1) + \
(box_B[3] - box_B[1] + 1) * (box_B[2] - box_B[0] + 1) - I
return I / U