1、什么是Iou?
IoU 的全称为交并比(Intersection over Union),通过这个名称我们大概可以猜到 IoU 的计算方法。IoU 计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值。公式如图所示。
2、代码
为了方便理解代码,先画了个图,原点建立坐标系,右为x正,下为y正
def iou(box1, box2):
'''
box: [ 0, 1, 2, 3]
box: [x1, y1, x2, y2],依次为左上右下坐标
'''
w = max(0, min(box1[2], box2[2]) - max(box1[0], box2[0]))
h = max(0, min(box1[3], box2[3]) - max(box1[1], box2[1]))
Inter = w * h
S_box1 = (box1[2]-box1[0]) * (box1[3]-box1[1])
S_box2 = (box2[2]-box2[0]) * (box2[3]-box2[1])
Union = S_box1 + S