Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Intersection over Union (IoU)

交并比(IoU)以 0 到 1 的分数衡量预测框与真实框的重叠程度。内容涵盖公式、Python 代码、阈值和基于 IoU 的损失。

交并比 (IoU) 用于衡量两个区域的重叠程度:两者共有的面积除以它们覆盖的总面积。IoU 的取值范围为 0 到 1,分别表示区域完全不接触和完全相同;在统计学中,同一指标也称为 Jaccard 指数。在目标检测中,IoU 用于比较预测的边界框与标注的真实框,并决定预测是否正确、哪些重复预测应被移除,以及如何训练边界框预测。

IoU 的计算方式#

IoU = 交集面积 / 并集面积。并集面积等于框 A 的面积加上框 B 的面积,再减去两者的交集,因此重叠部分只计算一次。对于角点格式的两个轴对齐边界框,交集本身是由两个框的内侧边缘界定的矩形;如果两个框没有重叠,其宽度或高度会被限制为零。

# Boxes as [x1, y1, x2, y2] in pixels
label = [100, 100, 200, 200]
pred = [110, 110, 210, 210]

# Intersection rectangle, clamped to zero when the boxes do not overlap
w = max(0, min(label[2], pred[2]) - max(label[0], pred[0]))
h = max(0, min(label[3], pred[3]) - max(label[1], pred[1]))
intersection = w * h

# Union counts the overlap only once
area_label = (label[2] - label[0]) * (label[3] - label[1])
area_pred = (pred[2] - pred[0]) * (pred[3] - pred[1])
union = area_label + area_pred - intersection

print(f"IoU = {intersection} / {union} = {intersection / union:.3f}")

脚本会打印 IoU = 8100 / 11900 = 0.681。一个 100 像素的边界框在两个方向上各移动 10 像素后,重叠区域会缩小至 90 × 90 像素,并集面积则增至 11,900,因此仅 10% 的偏移就会使分数下降近三分之一。由于两个面积会同比缩放,IoU 与尺度无关:相同的相对偏移在 20 像素的鸟和 2,000 像素的卡车上会得到相同分数。因此,固定的像素误差对小物体影响最大;在 20 像素的边界框上横向偏移 1 像素会使 IoU 降至 0.905,而在 200 像素的边界框上则会降至 0.990。

评估中的 IoU 阈值#

评估阈值会将 IoU 转换为是或否的判断。当预测类别匹配,且该预测与尚未匹配的真实边界框之间的 IoU 达到阈值时,该预测为真正例;否则就是假正例。PASCAL VOC基准采用 0.5 作为阈值,这个标准比听起来宽松:两个大小相同的边界框横向错开其宽度的三分之一时,IoU 正好为 0.5。COCO 基准会对 0.50 到 0.95 之间的十个阈值取平均,这也是均值平均精度 (mAP)能够奖励精确定位的原因。

训练和后处理中的 IoU#

  • 边界框回归损失: 检测器使用 1 − IoU 或其变体训练边界框坐标,因为基于原始坐标的损失会将小框和大框上的 10 像素误差视为相同。普通 IoU 在边界框不重叠时无法提供梯度,因此广义 IoU (GIoU)会根据同时包围两个框的最小外接框增加惩罚,而距离 IoU 和完全 IoU (DIoU、CIoU)则会加入中心距离和宽高比相关项。YOLO26使用 CIoU 损失训练边界框头部,并在训练期间使用 CIoU 将预测分配给各个标注物体。
  • 非极大值抑制 (NMS): 推理时,如果某个边界框与同类别、分数更高的边界框之间的 IoU 超过阈值,就会被视为重复预测并移除。
  • 目标跟踪: ByteTrack 等跟踪器会使用已有跟踪目标与新检测结果之间的 IoU 作为逐帧匹配代价。

其他形状的 IoU#

相同的比值适用于任意一对区域。分割会针对像素集合计算掩码 IoU:实例分割使用该指标将预测掩码与标签匹配,语义分割基准则会报告各类别 IoU 的平均值,即 mIoU。旋转框需要使用多边形交集或 ProbIoU 等高斯近似方法,而 3D 检测会计算长方体之间的 IoU,可以在完整 3D 空间中计算,也可以计算鸟瞰图中的底面重叠度。

  • Dice 系数: 两倍交集面积除以两个区域的面积之和。Dice 与 IoU 的预测排序相同,因为 Dice = 2 × IoU / (1 + IoU),常用于医学图像分割。
  • 准确率: 类别预测正确的比例,但无法说明边界框的位置。
  • mAP: 建立在 IoU 阈值之上的检测级汇总指标,综合衡量各类别的定位精度、精确率和召回率。

Dice 关系还可以用于换算阈值:IoU 为 0.5 时,Dice 分数等于 0.667;IoU 为 0.9 时,Dice 分数等于 0.947。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来