计算机视觉——为什么 mAP 是目标检测的黄金标准
概述
在目标检测领域,有一个指标被广泛认为是衡量模型性能的“黄金标准”,它就是 mAP(Mean Average Precision,平均精确率均值)。如果你曾经接触过目标检测模型(如 YOLO、Faster R-CNN 或 SSD),那么你一定听说过 mAP。但你是否真正理解 mAP 背后的含义?为什么研究人员如此信赖它?mAP@0.5 和 mAP@0.95 又有什么区别?本文将为你揭开 mAP 的神秘面纱。

1. 目标检测比分类更难
在分类任务中,只需要预测一个标签。而在目标检测中,需要完成两项任务:
- 找到目标的位置(定位:绘制边界框)。
- 确定目标是什么(分类)。
那么,我们如何衡量成功呢?准确率在这里并不适用。我们需要更全面的指标,而 精确率、召回率 和它们的“老板”:mAP,正是为此而生。
2. 精确率与召回率
精确率:
衡量你的模型猜测有多准确。
- 在模型检测到的所有目标中,有多少是正确的?
公式: T r u e P o s i t i v e s / ( T r u e P o s i t i v e s + F a l s e P o s i t i v e s ) True Positives / (True Positives + False Positives) TruePositives/(TruePositives+FalsePositives)
召回率:
衡量你的模型有多全面。
- 在所有实际存在的目标中,模型找到了多少?
公式: T r u e P o s i t i v e s / ( T r u e P o s i t i v e s + F a l s e N e g a t i v e s ) True Positives / (True Positives + False Negatives) TruePositives/(TruePositives+FalseNegatives)
但仅靠精确率和召回率并不能说明全部问题。如果模型在找到目标方面表现出色,但在绘制边界框方面却很糟糕怎么办?
这就是交并比(IoU)的作用所在。
3. IoU:检测质量的把关者

交并比(IoU) 是一个关键指标,用于衡量预测边界框与真实边界框(实际目标位置)的对齐程度。它的计算方法如下:
如何计算 IoU?
- 交集:预测框与真实框之间的重叠区域。
- 并集:两个框覆盖的总面积。
公式:IoU = 交集面积 / 并集面积
举例说明:
- 如果模型预测的框与真实框完全重叠,IoU = 1.0。
- 如果没有重叠,IoU = 0.0。
- 如果预测框覆盖了真实框的一半,IoU ≈ 0.5。
为什么 IoU 阈值很重要?
i. IoU 阈值(例如 0.5)作为检测的及格标准:
- 真正例(TP):IoU ≥ 阈值(例如 ≥0.5)。
- 假正例(FP):IoU < 阈值(例如预测框偏差过大)。
ii. 更高的阈值要求更好的定位精度:
- mAP@0.5 是宽松的(框只需要 50% 的重叠)。
- mAP@0.75 要求精确的定位(75% 的重叠)。
- mAP@0.95 是非常严格的(用于医疗影像等安全关键任务)。
让我们用一个现实世界的类比来理解 IoU 阈值:
- 阈值为 0.5 就像考试中 50 分及格(适用于大多数情况)。
- 阈值为 0.9 就像需要 90 分才能及格(仅适用于精英表现)。
那么,现在我们该如何解读模型的性能呢?我们有精确率、召回率和 IoU,但该如何利用它们呢?
答案是 平均精确率(AP)。
4. 平均精确率(AP)

对于单一类别(例如“猫”),可以通过以下步骤计算 AP(Precision Recall 曲线下的面积):
i. 按置信度排序检测结果:从模型最自信的预测开始。
ii. 在每一步计算精确率和召回率:随着置信度阈值的降低,你:
- 增加召回率(找到更多目标,但可能会引入更多假正例)。
- 降低精确率(检测数量增加,但其中一些可能是错误的)。
iii. 绘制精确率-召回率(PR)曲线:
- X轴 = 召回率(0 到 1)。
- Y轴 = 精确率(0 到 1)。
- 完美模型的 PR 曲线会紧贴右上角。
iv. 计算 AP(PR 曲线下的面积):
- AP 将整个 PR 曲线总结为一个数字(0 到 1)。
对于平均精确率,AUC 的计算方法如下:
- PR 曲线通过在固定召回率水平上插值精确率进行“平滑”。
- AP = 在 11 个等间距的召回率点(0.0, 0.1, …, 1.0)处的精确率值的平均值。
- 更简单的方法:使用原始 PR 曲线下的积分(面积)。
完美的 PR 曲线下的面积 = AP = 1.0(在所有召回率水平上都达到 100% 的精确率)。
5.为什么 AP 如此重要
i. 平衡精确率和召回率:高 AP 意味着你的模型:
- 能够检测到大多数目标(高召回率)。
- 很少犯错(高精确率)。
ii. 针对特定类别的洞察:AP 是按类别计算的。如果“猫”的 AP 很低,说明你的模型在检测猫方面存在困难。
iii. 与阈值无关:与固定阈值指标(例如准确率)不同,AP 在所有置信度水平上评估性能。
举例说明:
高平均精确率(例如 0.9):
- 在每个召回率水平上,精确率都保持很高。
- 如果模型检测到 90% 的目标(召回率 = 0.9),精确率仍然为 90%。
低平均精确率(例如 0.3):
- 随着召回率的增加,精确率急剧下降。
- 检测到 80% 的目标(召回率 = 0.8)可能意味着精确率下降到 20%。
mAP(Mean Average Precision) 仅仅是所有类别 AP 的平均值。
- 例如:如果你的模型可以检测猫、狗和汽车, m A P = ( A P c a t + A P d o g + A P c a r ) / 3 mAP = (AP_{cat} + AP_{dog} + AP_{car}) / 3 mAP=(APcat+APdog+APcar)/3。
mAP@0.5 与 mAP@0.95
mAP@0.5:
- 使用宽松的 IoU 阈值(50% 的重叠)。
- 常用于通用目标检测(例如 PASCAL VOC 数据集)。
- 倾向于检测到目标的模型,即使边界框有些偏差。
mAP@0.95:
- 使用严格的 IoU 阈值(95% 的重叠)。
- 倾向于具有近乎完美定位的模型。
- 用于高风险应用(例如医疗影像、机器人技术)。
COCO mAP:在 IoU 阈值从 0.5 到 0.95(以 0.05 为增量)的范围内计算 mAP 的平均值。这平衡了严格性和宽松性。
为什么 mAP 是最终的信任指标?
- 平衡精确率与召回率:与准确率不同,mAP 会惩罚那些错过目标(低召回率)或产生大量误检测(低精确率)的模型。
- 定位很重要:通过使用 IoU,mAP 确保边界框不仅仅是“足够好”,而是达到你设定的阈值精度。
- 类别无关:适用于多类别检测,不会偏向频繁出现的类别。
对于 YOLO 模型(既注重速度又注重精度),mAP 可以告诉你:
- 检测的可靠性(精确率)。
- 漏掉的目标数量(召回率)。
- 边界框的紧密程度(IoU)。
结论
目标检测是一项复杂的任务,评估其性能需要一个能够平衡精确率、召回率和定位精度的指标。这就是 mAP 的闪光点。它不仅仅是一个数字,而是衡量你的模型检测目标、绘制边界框以及处理多类别能力的综合指标。
无论你使用的是 YOLO、Faster R-CNN 还是其他任何目标检测框架,mAP 都为你提供了一个单一且可靠的指标,用于比较模型、调整超参数并将性能提升到更高水平。有了 mAP@0.5 和 mAP@0.95 等变体,你可以根据特定应用的精度要求定制评估。
所以,下次你训练目标检测模型时,不要只看 mAP 分数 —— 要理解它。因为当涉及到衡量检测性能时,mAP 不仅仅是一个指标;它就是那个指标。
相关文章:
计算机视觉——为什么 mAP 是目标检测的黄金标准
概述 在目标检测领域,有一个指标被广泛认为是衡量模型性能的“黄金标准”,它就是 mAP(Mean Average Precision,平均精确率均值)。如果你曾经接触过目标检测模型(如 YOLO、Faster R-CNN 或 SSD)…...
Frame Of Reference压缩算法
文章目录 1_概述2_算法基本步骤3_过程优化4_优势以及局限5_模拟实现6_总结 1_概述 Frame of Reference(FoR)压缩算法 是一种用于压缩数值数据的算法,特别是在处理大规模数据集时,利用数据的局部性和重复性来减少存储和传输的开销…...
1.0 软件测试全流程解析:从计划到总结的完整指南
软件测试全流程解析:从计划到总结的完整指南 摘要 本文档详细介绍了软件测试的完整流程,包括测试计划、测试设计、测试执行、测试报告和测试总结等主要阶段。每个阶段都从目标、主要工作、输出物和注意事项等方面进行了详细说明。通过本文档࿰…...
嵌入式AI简介
嵌入式AI是一种将人工智能算法部署在终端设备中运行的技术,使智能硬件能够在本地实时完成感知、交互和决策功能,无需依赖云端计算。以下是其核心要点: 一、核心特点 1. 本地化处理:数据在设备端直接处理,无需联网&a…...
esp32cam 开发板搭载ov3660摄像头在arduino中调用kimi进行图像识别
首先呢,最近搞一个项目,需要一个摄像头拍摄图片 就买了个ov3660开发板,用的esp32S芯片 淘宝商家给的教程是arduino的,所以先用arduino跑起来 arduino配置esp32-cam开发环境 - 简书1、安装arduino https://www.arduino.cc/en/Main/Software?setlang=cn 2、配置esp32 打开…...
二十种中药果实识别分类系统,Python/resnet18/pytorch
二十种中药果实识别分类系统,Python/resnet18/pytorch 基于pytorch训练, resnet18网络,可用于训练其他分类问题,也可自己重新训练 20类中药材具体包括:(1) 补骨脂,(2) 草豆蔻,(3) 川楝子,(4) 地肤子&…...
如何实现两个视频融合EasyCVR平台的数据同步?详细步骤指南
有用户咨询,现场需要数据库同步,如何将两个EasyCVR平台的数据进行同步呢? 这篇文章我们将详细介绍如何通过简单的接口调用,高效完成两个平台的数据同步操作。 1)获取token 使用Postman调用登录接口,获取…...
WindowsPE文件格式入门05.PE加载器LoadPE
https://bpsend.net/thread-316-1-1.html LoadPE - pe 加载器 壳的前身 如果想访问一个程序运行起来的内存,一种方法就是跨进程读写内存,但是跨进程读写内存需要来回调用api,不如直接访问地址来得方便,那么如果我们需要直接访问地址,该怎么做呢?.需要把dll注进程,注进去的代码…...
使用Cusor 生成 Figma UI 设计稿
一、开发环境 系统:MacOS 软件版本: Figma(网页或APP版) 注:最好是app版,网页版figma 没有选项 import from manifest app下载地址:Figma Downloads | Web Design App for Desktops & …...
Golang的文件同步与备份
Golang的文件同步与备份 一、Golang介绍 也称为Go语言,是谷歌开发的一种编程语言,具有高效的并发编程能力和出色的内存管理。由于其快速的编译速度和强大的标准库,Golang在网络应用、云平台和大数据等领域得到了广泛应用。 二、文件同步与备份…...
如何用人工智能大模型,进行作业批改?
今天我们学习人工智能大模型如何进行作业批改。手把手学习视频请访问https://edu.csdn.net/learn/40402/666452 第一步,进入讯飞星火。打开google浏览器,输入百度地址后,搜索”讯飞星火”,在搜索的结果中,点第一个讯飞…...
MATLAB之数据分析图系列 三
三维堆叠柱状图 Bar3StackPlot.m文件 clc; clear; close all; %三维堆叠柱状图 %% 数据准备 % 读取数据 load data.mat % 初始化 dataset X; s 0.4; % 柱子宽度 n size(dataset,3); % 堆叠组数%% 图片尺寸设置(单位:厘米) figureUnits c…...
python爬虫:DrissionPage实战教程
如果本文章看不懂可以看看上一篇文章,加强自己的基础:爬虫自动化工具:DrissionPage-CSDN博客 案例解析: 前提:我们以ChromiumPage为主,写代码工具使用Pycharm(python环境3.9-3.10) …...
一、STM32简介
一、实验器材介绍 二、STM32简介 1.STM32 名词解释 STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器。 ST,指ST公司(意法半导体);M,MicroController 微控制器(MCU,MicroController Unit 微控制器单元/单片机&…...
[ctfshow web入门] web2
前置知识 js是可以写在网页中,用于控制网页行为,例如现在表现出无法使用F12,常见用法校验前台登录时输入的邮箱格式是否正确 view-source协议是一种早期就存在的协议,基本上所有主流浏览器都支持这一协议,因此用户…...
torch 拆分子张量 分割张量
目录 unbind拆分子张量 1. 沿着第n个维度拆分(即按“批次”拆分) split分割张量 常用用法: 总结: unbind拆分子张量 import torchquaternions torch.tensor([[1, 2, 3, 4], [5, 6, 7, 8]]) result torch.unbind(quaternio…...
定制一款国密浏览器(2):修改包名
在上一章中,介绍了 chromium 源码的获取和构建deb 包,这一章将修改包名。 我给定制浏览器取名 Mojo Browser,Mojo 这个词来自 Chromium 代码中的 Mojo 跨进程框架,此外 Mojo 隐含有突破困境的内在动力的意思。 所以接下修改包名为 org.mojo.browser,第二就是修改程序的安…...
使用MATIO库读取Matlab数据文件中的多维数组
使用MATIO库读取Matlab数据文件中的多维数组 MATIO是一个用于读写Matlab数据文件(.mat)的开源C库。下面是一个完整的示例程序,展示如何使用MATIO库读取Matlab数据文件中的多维数组。 示例程序 #include <stdio.h> #include <stdlib.h> #include <…...
MySQL篇(五)MySQL主从同步原理深度剖析
MySQL篇(五)MySQL主从同步原理深度剖析 MySQL篇(五)MySQL主从同步原理深度剖析一、引言二、MySQL主从同步基础概念主库(Master)从库(Slave)二进制日志(Binary Log&#x…...
PyQt5和OpenCV车牌识别系统
有需要请加文章底部Q哦 可远程调试 PyQt5和OpenCV车牌识别系统 一 介绍 此车牌识别系统基于PyQt5和OpenCV开发,蓝牌,新能源(绿牌),黄牌,白牌均可以准确识别,支持中文识别,可以导出识别结果(Excel格式)。此…...
【Android Studio 下载 Gradle 失败】
路虽远行则将至,事虽难做则必成 一、事故现场 下载Gradle下载不下来,没有Gradle就无法把项目编译为Android应用。 二、问题分析 观察发现下载时长三分钟,进度条半天没动,说明这个是国外的东西,被墙住了,需…...
Xshell Plus 6下载与安装
文章目录 Xshell Plus 6 简介(一)网络连接与协议支持(二)会话管理(三)安全特性(四)文件传输功能(因集成Xftp 6 )(五)个性化与便捷功能…...
格式工厂怎样插入内置音频文件
打开格式工厂,在打开的页面选择 “视频” 选项;在视频选项里点击 “混流”;在混流页面右侧点击 “添加文件”,分别添加上视频文件和要插入的内置音频文件;在 “输出设置” 的下拉菜单里,分别选好要输出的视…...
CNN 里面能自然起到防止过拟合的办法
在 CNN(卷积神经网络)中,其实有 一些结构和机制 天然就具有防止过拟合(overfitting)的作用,不完全依赖额外的正则化手段。 🧠 一、CNN 天然防过拟合的几个原因: 1️⃣ 局部连接&…...
九、重学C++—类和函数
上一章节: 八、重学C—动态多态(运行期)-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/147004745?spm1001.2014.3001.5502 本章节代码: cpp/cppClassAndFunc.cpp CuiQingCheng/cppstudy - 码云 - 开源中国…...
使用MCP服务器实现AI任务完成通知:让Cursor更智能
0. 简介 在使用AI工具进行长时间任务时,常常需要等待结果。MCP(Model Context Protocol)服务器"mcp_server_notify"提供了一个优雅的解决方案,让AI在完成任务后通过系统通知提醒你。本文将介绍如何在Cursor中配置和使用…...
解决 Hugging Face SentenceTransformer 下载失败的完整指南:ProxyError、SSLError与手动下载方案
问题背景 在使用 Hugging Face 的 SentenceTransformer 加载预训练模型 all-MiniLM-L6-v2 时,遇到了以下错误: 代理连接失败(ProxyError / SSLError: KRB5_S_TKT_NYV)大文件下载中断(unexpected EOF while reading&a…...
Linux | I.MX6ULL开发板固件烧录所需文件详述(9)
01 搞清楚手里的开发板是 EMMC 还是 NAND FLASH 。默认我的商业级是EMMC ,开关:10011010 终结者i.MX6ULL 开卡板分为工业级和商业级两种不同的开发板。 商业级的核心板,它的存储是 EMMC 的,EMMC 的存储是类似于正方形的芯片,旁边是 NAND FLASH的一个封装,因为我们这里…...
论文阅读笔记:Denoising Diffusion Implicit Models (5)
0、快速访问 论文阅读笔记:Denoising Diffusion Implicit Models (1) 论文阅读笔记:Denoising Diffusion Implicit Models (2) 论文阅读笔记:Denoising Diffusion Implicit Models (…...
【AI论文】GPT-ImgEval:一个用于诊断GPT4o在图像生成方面的综合基准
摘要:OpenAI的GPT4o模型最近的突破在图像生成和编辑方面展现了令人惊讶的良好能力,引起了社区的极大兴奋。 本技术报告介绍了第一眼评估基准(名为GPT-ImgEval),定量和定性诊断GPT-4o在三个关键维度的性能:&…...
