目标检测指标计算

mAP(mean Average Precision)

概述

  1. 预备参数:类别数,IoU阈值,maxDets值(每张测试图像最多保留maxDets个预测框,通常是根据置信度得分排序后取前maxDets个);
    • Q: 假如某张测试图像只有3个预测框dt,而此时的maxDets=5,如何处理?A: 只保留这3个dt,对应代码是dt[0:maxDets]
  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曲线。

20250520更新

Q:在计算目标检测的mAP的时候,如果当前有100个预测框,而只有5个GT。在分配TP和FP的时候,只要预测框的iou大于阈值,就认为它是TP吗?还是100个预测框按置信度降序排列,按iou分配完5个GT后,剩余的都作为FP?

A:TP和 FP 的分配不是简单地“只要预测框的 IoU 大于阈值就算 TP”,而是需要考虑 置信度排序 和 唯一匹配原则。

  1. 将所有预测框按照置信度得分从高到低排序
  2. 从得分最高的预测框开始,依次与GT进行匹配
    • 如果当前预测框与某个未被匹配的 GT 框的 IoU ≥ 阈值(通常是 0.5),则这个预测框被标记为 TP,同时该 GT 框被“占用”,不能再被其他预测框匹配
    • 如果没有任何未匹配的 GT 框与当前预测框的 IoU ≥ 阈值,那么这个预测框被标记为 FP
  3. 注意!这里的TP和FP实际对应 T P I o U TP_{IoU} TPIoU F P I o U FP_{IoU} FPIoU

计算 AP(曲线下面积)

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

Recall

以COCO计算方式为例,如果是单独考虑recall指标,则指每一类下, T P I o U TP_{IoU} TPIoU和GT数量的比值。并没有考虑置信度阈值,而只考虑根据IoU匹配上来决定TP。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/83959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

联合索引失效情况分析

一.模拟表结构: 背景: MySQL版本——8.0.37 表结构DDL: CREATE TABLE unite_index_table (id bigint NOT NULL AUTO_INCREMENT COMMENT 主键,clomn_first varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMEN…

软件架构之-论分布式架构设计及其实现

论分布式架构设计及其实现 摘要正文摘要 2023年2月,本人所在集团公司承接了长三角地区某省渔船图纸电子化审查项目开发,该项目旨在为长三角地区渔船建造设计院、渔船审图机构提供一个便捷化的服务平台。在次项目中,我作为项目成员参与了整个项目的建设工作,全权负责项目需求…

Pydantic数据验证实战指南:让Python应用更健壮与智能

导读:在日益复杂的数据驱动开发环境中,如何高效、安全地处理和验证数据成为每位Python开发者面临的关键挑战。本文全面解析了Pydantic这一革命性数据验证库,展示了它如何通过声明式API和类型提示系统,彻底改变Python数据处理模式。…

3、ubantu系统 | 通过vscode远程安装并配置anaconda

1、vscode登录 登录后通过pwd可以发现目前位于wangqinag账号下,左侧为属于该账号的文件夹及文件。 通过cd ..可以回到上一级目录,通过ls可以查看当前目录下的文件夹及文件。 2、安装 2.1、下载anaconda 通过wget和curl下载未成功,使用手动…

Python 与 Java 在 Web 开发中的深度对比:从语言特性到生态选型

在 Web 开发领域,Python 和 Java 作为两大主流技术栈,始终是开发者技术选型时的核心考量。本文将从语言本质、框架生态、性能工程、工程实践等多个维度展开深度对比,结合具体技术场景解析两者的适用边界与融合方案,为开发者提供系…

【OpenGL学习】(一)创建窗口

文章目录 【OpenGL学习】(一)创建窗口 【OpenGL学习】(一)创建窗口 GLFW OpenGL 本身只是一套图形渲染 API,不提供窗口创建、上下文管理或输入处理的功能。 GLFW 是一个支持创建窗口、处理键盘鼠标输入和管理 OpenGL…

电脑闪屏可能的原因

1. 显示器 / 屏幕故障 屏幕排线接触不良:笔记本电脑屏幕排线(屏线)松动或磨损,导致信号传输不稳定,常见于频繁开合屏幕的设备。屏幕面板损坏:液晶屏内部灯管老化、背光模块故障或面板本身损坏,…

docker容器知识

一、docker与docker compose区别: 1、docker是创建和管理单个容器的工具,适合简单的应用或服务; 2、docker compose是管理多容器应用的工具,适合复杂的、多服务的应用程序; 3、docker与docker compose对比&#xff…

什么是Rootfs

Rootfs (Root Filesystem) 详解 buildroot工具构建了一个名为"rootfs.tar"的根文件系统压缩包。 什么是rootfs Rootfs(Root Filesystem,根文件系统)是操作系统启动后挂载的第一个文件系统,它包含系统正常运行所需的基…

关于NLP自然语言处理的简单总结

参考: 什么是自然语言处理?看这篇文章就够了! - 知乎 (zhihu.com) 所谓自然语言理解,就是研究如何让机器能够理解我们人类的语言并给出一些回应。 自然语言处理(Natural Language Processing,NLP&#xff0…

Linux下载国外软件镜像的加速方法(以下载Python-3.8.0.tgz为例)

0 前言 使用linux经常会通过国外服务器下载软件镜像,有些软件的下载速度奇慢,本文介绍一种加速国外软件镜像下载速度的方法,需要准备下载工具:迅雷。 1 以下载Python-3.8.0.tgz为例 找到Python官网的Python-3.8.0.tgz镜像下载地…

没有公网ip怎么端口映射外网访问?使用内网穿透可以解决

无公网IP时本地搭建的网络端口服务怎么映射外网远程访问?较为简单通用的方案就是使用nat123内网穿透,下面详细内网映射外网实现教程。​ 一、了解内网公网区别,及无公网IP外网访问方案 内网IP默认只能在同局域网内连接互通,而公…

Word2Vec详解

目录 Word2Vec 一、Word2Vec 模型架构 (一)Word2Vec 的核心理念 (二)Word2Vec 的两种架构 (三)负采样与层次 Softmax (四)Word2Vec 的优势与局限 二、Word2Vec 预训练及数据集…

ShardingSphere:查询报错:Actual table `数据源名称.表名` is not in table rule configuration

目录 简介异常信息排查原因解决 简介 1、使用ShardingSphere框架&#xff0c;版本为5.2.1 <dependency><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-jdbc-core</artifactId><version>5.2.1</version>…

MongoDB聚合查询:从入门到精通

文章目录 前言一、工具一般聚合查询分为四步 二、使用步骤1.MongoDB Compass2.Studio 3T 二、举个栗子总结 前言 Mongo 聚合查询 一般用mongo做数据库,涉及到关联查询情况不多,但是还有些情况要使用到,今天就讲下如何通过工具做关联查询,最终聚合结果,得到最终的查询结果集; …

codeup添加流水线docker自动化部署

在项目根目录下增加Dockerfile文件 # 使用基础镜像 FROM maven:3.8.4-openjdk-17-slim AS build # 设置工作目录 WORKDIR /app # 复制项目源代码 COPY . . # 构建项目 RUN mvn clean package -DskipTests # 验证JAR包是否生成 RUN ls -l target/your-project.jar # 使用合适的…

从 Word2Vec 到 BERT:AI 不止是词向量,更是语言理解

一、前言 在上篇文章中&#xff0c;我们介绍了Word2Vec以及它的作用&#xff0c;总的来说&#xff1a; Word2Vec是我们理解NLP的第一站 Word2Vec将词变成了“向量”—— 终于可以用机器理解词语的相似度 我们获得了例如“国王 - 男人 女人 ≈ 女王” 的类比能力 我们可以将…

镜像管理(2)Dockerfile总结

一、docker镜像构建方法 commoit :使用 docker commit 意味着所有对镜像的操作都是黑箱操作,生成的镜像也被称为黑 箱镜像,换句话说,就是除了制作镜像的人知道执行过什么命令、怎么生成的镜像,别人根 本无从得知。而且,即使是这个制作镜像的人,过一段时间后也无法记清具…

机器学习第十七讲:PCA → 把100维数据压缩成3D视图仍保持主要特征

机器学习第十七讲&#xff1a;PCA → 把100维数据压缩成3D视图仍保持主要特征 资料取自《零基础学机器学习》。 查看总目录&#xff1a;学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章&#xff1a;DeepSeek R1本地与线上满血版部署&#xff1a;超详细手把手指南 主…

【Linux庖丁解牛】——进程等待!

1. 进程退出场景 进程退出一般有三种场景&#xff1a; 。代码运行完毕&#xff0c;结果正确 。代码运行完毕&#xff0c;结果错误【比如&#xff0c;我们要对某个文件进行写入&#xff0c;但写入的文件路径出错&#xff0c;代码运行完毕&#xff0c;可是结果出错】 。代码异…