当前位置: 首页 > news >正文

【评估指标】IoU 交并比

IoU(交并比,Intersection over Union)

IoU(Intersection over Union)是计算机视觉和目标检测中最常用的评估指标之一,用于衡量预测边界框(Bounding Box)真实边界框(Ground Truth) 之间的重叠程度。它在目标检测、实例分割、语义分割等任务中广泛应用。

1. IoU 的定义

IoU 计算的是两个边界框的**交集(Intersection)并集(Union)**的比值:
在这里插入图片描述

其中:

  • A 是预测框(Predicted Box)
  • B 是真实框(Ground Truth Box)

取值范围:0(完全不重叠) ~ 1(完全重合)

2. IoU 的计算步骤

假设有两个矩形框:

  • 预测框(Predicted Box):坐标在这里插入图片描述

  • 真实框(Ground Truth Box):坐标 在这里插入图片描述

计算过程

  1. 计算交集(Intersection)
    在这里插入图片描述

  2. 计算并集(Union)
    在这里插入图片描述

    其中:
    在这里插入图片描述

  3. 计算 IoU
    在这里插入图片描述

3. IoU 的直观理解

  • IoU = 1:预测框和真实框完全重合(理想情况)。
  • IoU ≈ 0.5:部分重叠(通常作为目标检测的阈值,如 PASCAL VOC 使用 0.5)。
  • IoU = 0:完全不重叠(预测错误)。

示例

预测框 §真实框 (G)IoU 计算
(10, 10, 50, 50)(20, 20, 60, 60)IoU ≈ 0.5
(10, 10, 50, 50)(10, 10, 50, 50)IoU = 1
(10, 10, 20, 20)(30, 30, 40, 40)IoU = 0

4. IoU 的应用

(1) 目标检测中的评估

  • 判定预测框是否正确(True Positive, TP):
    • 如果 IoU ≥ 阈值(如 0.5),则认为是正确检测(TP)。
    • 否则,认为是误检(False Positive, FP)。
  • 计算 mAP(Mean Average Precision)
    • 不同 IoU 阈值(如 0.5:0.95)下的 AP 平均值(COCO 标准)。

(2) 非极大值抑制(NMS, Non-Maximum Suppression)

  • 用于去除冗余检测框:
    • 如果多个预测框 IoU > 阈值(如 0.5),只保留置信度最高的一个。

(3) 损失函数(IoU Loss)

  • 直接优化 IoU 以提高检测精度:
    • IoU Loss = 1 - IoU
    • 变种:GIoU、DIoU、CIoU(解决 IoU 的梯度问题)。

5. IoU 的局限性

问题说明改进方法
不相交时 IoU=0无法区分不同距离的预测框GIoU(考虑最小外接矩形)
尺度不变性对小目标和大目标的 IoU 敏感性不同DIoU(考虑中心点距离)
梯度消失IoU=0 时无法优化CIoU(结合中心点和长宽比)

6. 代码实现(Python)

def calculate_iou(box1, box2):# box1: [x1, y1, x2, y2]# box2: [x1, y1, x2, y2]# 计算交集x_left = max(box1[0], box2[0])y_top = max(box1[1], box2[1])x_right = min(box1[2], box2[2])y_bottom = min(box1[3], box2[3])intersection = max(0, x_right - x_left) * max(0, y_bottom - y_top)# 计算并集area1 = (box1[2] - box1[0]) * (box1[3] - box1[1])area2 = (box2[2] - box2[0]) * (box2[3] - box2[1])union = area1 + area2 - intersectioniou = intersection / (union + 1e-6)  # 避免除零return iou# 示例
box_p = [10, 10, 50, 50]
box_g = [20, 20, 60, 60]
iou = calculate_iou(box_p, box_g)
print(f"IoU: {iou:.2f}")  # 输出 IoU: 0.50

7. 总结

  • IoU 是衡量目标检测框重叠度的核心指标,广泛应用于 TP/FP 判定、NMS、损失函数等。
  • 标准 IoU 存在局限性,改进版本如 GIoU、DIoU、CIoU 能优化不同场景下的检测性能。
  • 代码实现简单,可直接用于自定义目标检测任务。
http://www.lqws.cn/news/518401.html

相关文章:

  • Day.42
  • 高等数学》(同济大学·第7版)第七章 微分方程 第五节可降阶的高阶微分方程
  • 【网站内容安全检测】之1:获取网站所有链接sitemap数据
  • Web3D技术协议的AI革命:生成式模型如何改写交互标准?
  • 操作系统之内存管理(王道)
  • LeeCode349. 两个数的交集
  • 基于大模型的甲状腺结节预测及综合诊疗技术方案大纲
  • 防火墙快速管理软件,66K超小巧
  • Java 日志框架选型:SLF4J + Logback vs. Log4j2 的深度解析
  • iClone 中创建的面部动画导入 Daz 3D
  • Spring AOP 中有多个切面时执行顺序是怎样的?
  • Android14音频子系统-Audio HAL分析
  • 南北差异之——跨端理解能力
  • sql格式化自动识别SQL语法结构
  • gsql: command not found
  • OpenLayers 上传Shapefile文件
  • 基于 Python 的批量文件重命名软件设计与实现
  • 智哪儿专访 | Matter中国提速:开放标准如何破局智能家居“生态孤岛”?
  • 舵机在智能家居里的应用
  • 第k个数字
  • 归并排序算法
  • 企业内部安全组网技术解析:安全通道选型、零信任架构与数据合规加密防护
  • 计算机网络-----详解HTTP协议
  • 基于springboot+vue的智慧农业专家远程指导系统
  • 苹果签名应用掉签频繁原因排查,以及如何避免
  • Mysql使用窗口函数查询
  • 左神算法之有序二维矩阵中的目标值查找
  • vscode管理go多个版本
  • 英飞凌高性能BMS解决方案助力汽车电动化
  • 【世纪龙科技】新能源汽车VR虚拟体验展示馆-解锁认知新维度