IOU(Intersection over Union)计算公式
IOU,即交并比,是衡量两个区域重叠程度的一个指标。在计算机视觉和目标检测领域,IOU常用于评估预测边界框(Bounding Box)与真实边界框之间的相似度。
IOU的计算公式如下:
[ \text{IOU} = \frac{\text{Intersection Area}}{\text{Union Area}} ]
其中:
假设有两个边界框 ( B_1 ) 和 ( B_2 ),它们的坐标分别为:
其中,( (x_1, y_1) ) 和 ( (x_2, y_2) ) 是左上角的坐标,( w ) 和 ( h ) 分别是宽度和高度。
以下是一个简单的Python函数,用于计算两个边界框的IOU:
def calculate_iou(box1, box2):
x1, y1, w1, h1 = box1
x2, y2, w2, h2 = box2
xi1, yi1 = max(x1, x2), max(y1, y2)
xi2, yi2 = min(x1 + w1, x2 + w2), min(y1 + h1, y2 + h2)
inter_area = max(0, xi2 - xi1) * max(0, yi2 - yi1)
box1_area = w1 * h1
box2_area = w2 * h2
union_area = box1_area + box2_area - inter_area
iou = inter_area / union_area if union_area != 0 else 0
return iou
# 示例使用
box1 = (1, 1, 3, 3)
box2 = (2, 2, 4, 4)
print("IOU:", calculate_iou(box1, box2))
通过以上方法,可以有效计算并理解IOU在不同应用场景中的作用和意义。
领取专属 10元无门槛券
手把手带您无忧上云