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

目标检测指标计算

mAP(mean Average Precision)

概述

  1. 预备参数:类别数,IoU阈值;
  2. 根据模型输出的置信度分数,将所有预测框按从高到低排序;
  3. 根据IoU是否超过阈值,判断每个预测框是 T P I o U TP_{IoU} TPIoU还是 F P I o U FP_{IoU} FPIoU(TP/FP还要结合分类置信度判断);
  4. 不同置信度阈值对应一个Precision-Recall点,取不同置信度阈值得到 Precision-Recall 曲线;
  5. PR曲线下面积即为 AP(根据面积积分计算方式不同,分为VOC和COCO风格);
  6. 所有类别AP平均值即为mAP;如果数据集中包含多个 IoU 阈值,则需要分别计算每个 IoU 阈值下的mAP,然后取平均值,例如 mAP@[0.5:0.95] 。

背景知识

Precision 和 Recall

  • Precision(精确率) :预测为正类的样本中,实际为正类的比例。
    P r e c i s i o n = T r u e P o s i t i v e s ( T P ) T r u e P o s i t i v e s ( T P ) + F a l s e P o s i t i v e s ( F P ) Precision=\frac{True Positives (TP)}{True Positives (TP)+False Positives (FP)} Precision=TruePositives(TP)+FalsePositives(FP)TruePositives(TP)
  • Recall(召回率) :实际为正类的样本中,被正确预测为正类的比例。
    R e c a l l = T r u e P o s i t i v e s ( T P ) T r u e P o s i t i v e s ( T P ) + F a l s e N e g a t i v e s ( F N ) Recall= \frac{True Positives (TP)}{True Positives (TP)+False Negatives (FN)} Recall=TruePositives(TP)+FalseNegatives(FN)TruePositives(TP)

IoU与匹配规则

  • IoU :预测框与真实框的交集面积与并集面积的比值。
    I o U = A r e a o f O v e r l a p A r e a o f U n i o n IoU=\frac{Area of Overlap}{Area of Union} IoU=AreaofUnionAreaofOverlap
  • 如果 IoU 超过某个阈值(通常为 0.5 或其他自定义值),则认为该预测框是 T P I o U TP_{IoU} TPIoU,否则为 F P I o U FP_{IoU} FPIoU

计算 Precision-Recall 曲线

假设我们有一个简单的例子,包含以下数据:

  • 总共有 5 个真实框。
  • 模型输出了 5 个预测框,按置信度排序后的结果如下:
    在这里插入图片描述
    取预测框1的置信度为阈值,则TP = 1, FP = 0;Precision=1/1=1.0,Recall=1/5=0.2;

    取预测框5的置信度为阈值,则TP = 3, FP = 2;Precision=3/5=0.6,Recall=3/5=0.6;

这5个点可以组成PR曲线。

计算 AP(曲线下面积)

  • 插值处理 :为了消除 Precision 的波动,通常对 Precision 进行插值处理,即对于每个 Recall 值 r,取大于等于 r 的最大 Precision 值。
  • 积分计算 :对插值后的 Precision-Recall 曲线进行积分,计算曲线下面积。常用的方法包括:
    • 直接数值积分(COCO风格)
    • 使用 11 点插值法(如 VOC 2007 的标准),在 Recall = [0, 0.1, 0.2, …, 1.0] 处取 Precision 值并求平均。

相关文章:

  • 【MySQL】项目实践
  • 【Python 操作 MySQL 数据库】
  • SQL Server权限设置的几种方法
  • 排序算法之线性时间排序:计数排序,基数排序,桶排序详解
  • 游戏引擎学习第285天:“Traversables 的事务性占用”
  • Detected for tasks ‘compileDebugJavaWithJavac‘ (17) and ‘kspDebugKotlin‘ (21).
  • pytorch 15.1 学习率调度基本概念与手动实现方法
  • 以Linux内核为基础的 Linux发行版有哪些
  • 如何使用 4 种方法安全地将 Windows 7恢复出厂设置
  • LabVIEW图像粒子处理
  • ubuntu 20.04 更改国内镜像源-阿里源 确保可用
  • Word图片格式调整与转换工具
  • 关于 Web安全:1. Web 安全基础知识
  • 23、电网数据管理与智能分析 - 负载预测模拟 - /能源管理组件/grid-data-smart-analysis
  • 2025认证杯数学建模第二阶段C题完整论文(代码齐全)化工厂生产流程的预测和控制
  • 光学设计核心
  • SearchClassUtil
  • 在 Ubuntu 20.04 中使用 init.d 或者systemd实现开机自动执行脚本
  • YOLOv3深度解析:多尺度特征融合与实时检测的里程碑
  • 淘宝扭蛋机系统开发前景分析:解锁电商娱乐化新蓝海
  • 首次带人形机器人走科技节红毯,傅利叶顾捷:机器人行业没包袱,很多事都能从零开始
  • 王伟妻子人民日报撰文:81192,一架永不停航的战机
  • 上海率先推进生物制品分段生产试点,这款国产1类创新药获批上市
  • 苏轼“胡为适南海”?
  • 现场丨在胡适施蛰存等手札与文献间,再看百年光华
  • 诠释微末处的丰盈:“上海制造佳品汇”首届海外专场即将亮相日本大阪