Python计算IoU——准确、快速、简单实现交并比
介绍
在计算机视觉中,IoU(Intersection over Union)是一种常见的度量方法,用于衡量目标检测、语义分割、边缘检测等任务的性能。它可以评估模型的准确性,即预测框与真实框之间的重叠部分。
Python提供了许多库用于计算IoU,但它们的实现方式可能有所不同。本文将介绍三种简单、准确、快速的Python实现方法,可帮助您计算IoU。
方法一:纯Python实现
先定义两个矩形的坐标,然后编写计算IoU的函数。
def box_iou(box1, box2):
# 计算两个矩形的交集坐标
x1 = max(box1[0], box2[0])
y1 = max(box1[1], box2[1])
x2 = min(box1[2], box2[2])
y2 = min(box1[3], box2[3])
# 如果没有交集,返回0
if x1 >= x2 or y1 >= y2:
return 0.0
# 计算交集面积
intersection = (x2 - x1) * (y2 - y1)
# 计算并集面积
box1_area = (box1[2] - box1[0]) * (box1[3] - box1[1]</