目标检测COCO数据集与评价体系mAP
1.mAP

2.IoU
IoU也就是交并比,也称为 Jaccard 指数,用于计算真实边界框与预测边界框之间的重叠程度。它是真值框与预测边界框的交集和并集之间的比值。Ground Truth边界框是测试集中手工标记的边界框,用于指定对象图像的位置以及预测的边界框来自模型的位置。
下图是真实值边界框与预测边界框的直观示例,其目标是计算这两个边界框之间的交并比。

图1 检测停车标志,预测的边界框以红色绘制,而真实边界框以绿色绘制。
交并比的计算非常简单,只需将边界框之间的重叠区域除以并集面积即可。

IoU 分数是标准化的(因为分母是并集区域面积),范围从 0.0 到 1.0。此处,0.0 表示预测边界框和真值边界框之间没有重叠,而 1.0 是最优值,这意味着预测的边界框与真值边界框完全重叠。
IoU> 0.5 通常被认为是“良好”的预测。反之, IoU < 0.5 视为预测不合格,予以舍弃。

通常我们并不关心边界框的 (x, y) 坐标与Ground Truth边界框的 (x, y) 坐标的精确匹配,但我们希望确保预测的边界框尽可能接近 — 也就是交集可以考虑这一点。
上图中,与真实边界框严重重叠的预测边界框比重叠较少的边界框具有更高的IoU分数。这使得交并比成为评估自定义对象检测器的绝佳指标。尽管如此,IoU的简单计算还是会存在各种各样的局限,具体需进一步查阅IoU的各种扩展,本文不涉及这方面的讨论。
3.精确率和召回率
要了解 mAP,我们先来看看精确率与召回率。召回率是真正率,即在所有实际正例中,有多少是真正例的预测结果。精确率是预测正率,即在所有预测正类结果中,有多少是真正例的预测结果。
对于mAP的计算,主要针对两种数据集展开具体讨论。
Pascal VOC
Pascal(VOC2012) 是一项挑战赛,即在现实场景中识别来自各种视觉目标类的对象。这是一项监督学习比赛,其中提供了标记的Ground Truth图像。该数据集有 20 个目标类,如人、鸟、猫、狗、自行车、汽车、椅子、沙发、电视、瓶子等。
PASCAL VOC 的历史可以追溯到 2005 年,当时数据集仅包含四类:自行车、汽车、摩托车和人。它共有 1578 张图像,包含 2209 个带标注的目标。
下图显示了 20 个类中每个类的示例图像,正如我们所看到的,第一行倒数第二张图像中有几把(三)把椅子。

PASCAL VOC 数据集中描述所有 20 个类别的示例图像
VOC2012 数据集由 11,530 张图像和 27,450 个感兴趣区域 (ROI)标注目标组成,并带有 train/val 拆分。27,450 ROI 是指整个数据集中的边界框,因为每个图像可以有多个目标区域或 ROI。因此,与图像相比,ROI数量是图像数量的2 倍以上。
为了计算 mAP,首先需要计算每个类的 AP。
考虑以下图像,其中包含特定类的ground truths(绿色)和 bbox 预测(红色)。

bbox的详细信息如下:

在此示例中,如果 IoU > 0.5 视为TP,否则 FP。现在,根据置信度分数对图像检测结果排序。注意,如果单个object有多个检测,则具有最高 IoU 的检测被视为 TP,其余为 FP,如下图所示。

在 VOC 指标中,召回率定义为排名高于给定排名的所有正例的比例。精确率是该排名以上所有示例中来自正类的比例。
因此,在 Acc (accumulated) TP 列中,从顶部写下遇到的 TP 总数,并对 Acc FP 执行相同的操作。现在,对于P4计算精确率与召回率:Precision = 1/(1+0) = 1Recall = 1/3 = 0.33
然后绘制这些精确率和召回率值,以获得 PR(精确召回率)曲线。PR 曲线下的面积称为平均精度 (AP)。PR 曲线遵循一种锯齿形模式,因为召回率绝对增加,而精确率总体上随着零星上升而降低。
AP 总结了精确召回率曲线的形状,在 VOC 2007 中,它被定义为一组 11 个等距召回水平 [0,0.1,...,1](0 到 1,步长为 0.1)的精确值的平均值,而不是 AUC。
每个召回率水平 r 的精度是通过取相应召回率超过 r 的方法测量的最大精度来插值的。

即在 11 个等距召回点 [0:0.1:1] 处取右边的最大精度值,并取它们的平均值得到 AP。
然而,从 VOC 2010 开始,AP 的计算发生了变化。
通过将召回率 r 的精度设置为任何召回率获得的最大精度,计算精确率单调递减的测量精度-召回率曲线的版本
然后通过数值积分将 AP 计算为该曲线下的面积。
即,给定橙色的 PR 曲线,计算所有召回点右侧的最大精度,从而获得绿色的新曲线。现在,在绿色曲线下使用积分进行 AUC,这就得到AP。与 VOC 2007 的唯一区别是,我们不仅考虑了 11 点,还考虑了所有要点。
现在,我们有每个类(对象类别)的 AP,平均精度 (mAP) 是所有对象类别的平均 AP。

对于VOC中的分割挑战,以分割精度(使用IoU计算的每像素精度)作为评价标准,其定义如下:
COCO
Microsoft Common Objects in Context (MS COCO) 是 2014 年推出的大规模目标检测、分割和字幕数据集,借助使用新颖用户界面的广泛众包数据。该数据集包含 80 个对象类别的图像,在 328k 图像中具有 250 万个标记实例。
下图显示了 COCO 数据集中标有实例分割的示例图像。
COCO 还具有出色的用户界面,可以探索数据集中的图像。例如,您可以从 80 个类中选择缩略图;它会将它们作为标签放在搜索栏中,当您搜索时,它将显示数据集中带有这些标签(类)的所有图像,如下图所示。
此外,当显示生成的图像时,所有类(超过搜索的类)都显示为缩略图。也就是可以通过进一步单击这些缩略图来可视化与这些类相关的分割掩码来使用它。
通常,与 VOC 一样,IoU > 0.5 的预测被视为真正例预测。这意味着 IoU 0.6 和 0.9 的两个预测将具有相等的权重。因此,某个阈值会在评估指标中引入偏差。解决此问题的一种方法是使用一系列 IoU 阈值,并计算每个 IoU 的 mAP,并取它们的平均值来获得最终的 mAP。
请注意,COCO 使用 [0:.01:1] R=101 召回阈值进行评估。
在 COCO 评估中,IoU 阈值范围为 0.5 至 0.95,步长为 0.05 表示为 AP@[.5:.05:.95]。
IoU=0.5 和 IoU=0.75 等固定 IoU 的 AP 分别写为 AP50 和 AP75。
除非另有说明,否则 AP 和 AR 在多个并集交集 (IoU) 值上取平均值。具体来说,我们使用 10 个 IoU 阈值 .50:.05:.95。这与传统不同,在传统中,AP 以 .50 的单个 IoU 计算(对应于我们的指标一个
).对 IoUs 进行平均会奖励具有更好定位的检测器。
AP 是所有类别的平均值。传统上,这被称为“平均精度”(mAP)。我们没有区分 AP 和 mAP(以及 AR 和 mAR),并假设从上下文中可以清楚地看出区别。
两分钟的补充:通常,平均值以不同的顺序进行(最终结果是相同的),在 COCO 中,mAP 也称为 AP,即
- 步骤1:对于每个类,计算不同 IoU 阈值下的 AP,并取其平均值以获得该类的 AP。

- 步骤2:通过对不同类的 AP 求平均值来计算最终 AP。
AP 实际上是一个平均、平均、平均的精度。

4.结论
- PascalVOC2007 在 PR 曲线上使用 11 个召回点。
- PascalVOC2010–2012 在 PR 曲线上使用(所有点)曲线下面积 (AUC)。
- MS COCO 在 PR 曲线上使用 101 个召回点以及不同的 IoU 阈值。
5.参考资料
- COCO evaluation metrics
- VOC2007 metrics
- VOC2012 metrics
- Object detection metrics
- mAP (mean Average Precision) for Object Detection
- Evaluation metrics for object detection and segmentation: mAP (kharshit.github.io)
相关文章:
目标检测COCO数据集与评价体系mAP
1.mAP 2.IoU IoU也就是交并比,也称为 Jaccard 指数,用于计算真实边界框与预测边界框之间的重叠程度。它是真值框与预测边界框的交集和并集之间的比值。Ground Truth边界框是测试集中手工标记的边界框,用于指定对象图像的位置以及预测的边界框…...
2024最全面且有知识深度的web3开发工具、web3学习项目资源平台
在Web3技术迅速发展的时代,寻找一个综合且深入的Web3开发工具和学习项目资源平台变得至关重要。今天,我将向大家介绍一个非常有价值的网站,它就是https://web3x.world 。 Web3X是一个全面而深入的Web3开发者社区,为开发者们提供了…...
Golang - defer关键字 深入剖析
defer关键字 defer和go一样都是Go语言提供的关键字。defer用于资源的释放,会在函数返回之前进行调用。一般采用如下模式: f,err : os.Open(filename) if err ! nil {panic(err) } defer f.Close()如果有多个defer表达式,调用顺序类似于栈&a…...
如何在Spring Boot中使用@Scheduled写定时任务判断数据量是否过大,过大则进行分表操作,多张表使用临时视图查询
当数据量过大,在定时任务中执行分表操作 1、复制表结构及数据 在xml中编写复制表结构及数据(newTableName为新表名、originalTableName为原始表名) 只复制表结构: CREATE TABLE ${newTableName} AS SELECT * FROM ${originalTa…...
使用jieba库进行中文分词和去除停用词
jieba.lcut jieba.lcut()和jieba.lcut_for_search()是jieba库中的两个分词函数,它们的功能和参数略有不同。 jieba.lcut()方法接受三个参数:需要分词的字符串,是否使用全模式(默认为False)以及是否使用HMM模型&…...
C语言之分支与循环【附6个练习】
文章目录 前言一、什么是语句?1.1 表达式语句1.2 函数调用语句1.3 控制语句1.4 复合语句1.5 空语句 二、分支语句(选择结构)2.1 if语句2.1.1 悬空else2.1.2 练习(1. 判断一个数是否为奇数 2. 输出1-100之间的奇数) 2.2…...
使用通用MCU实现无人机飞行任务的快速二次开发
使用通用MCU实现无人机飞行任务的快速二次开发 ---TIDronePilot外部控制offboard模式介绍 无名小哥 2024年1月1日 传统飞控二次开发方法和主要存在的问题简介 通过对前面几讲中《零基础竞赛无人机积木式编程指南》系列开发教程的学习可知,在以往TI电赛真题的学习…...
什么是Selinux
官网地址:What is SELinux? 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. 概述 安全增强型 Linux (SELinux) 是Linux 系统的安全架构,允许管理员更好地控制谁可以访问系统。它最初是由美…...
计算机网络知识点
1. URI 和 URL 统一资源定位符(Uniform Resource Locator,缩写:URL),是对资源的引用和访问该资源的方法。俗称网址,就是浏览器地址栏里面的内容。 URL 语法为:protocol://userInfohost:port/p…...
Qt 连接 Mysql
Linux下安装mysql及qt连接_liunx下安装mysql及qt链接-CSDN博客...
HarmonyOS4.0系统性深入开发14AbilityStage组件容器
AbilityStage组件容器 AbilityStage是一个Module级别的组件容器,应用的HAP在首次加载时会创建一个AbilityStage实例,可以对该Module进行初始化等操作。 AbilityStage与Module一一对应,即一个Module拥有一个AbilityStage。 DevEco Studio默…...
客服系统接入FastGPT
接入FastGPT 点击【应用】【外部使用】【API访问】【新建】新建一个KEY,同时也可以看到我们的API根地址 这个根地址和Key可以填入任何支持OpenAI接口的应用里,这个接口是兼容OpenAI格式。 在客服系统【知识库AI配置】里填上接口地址和接口密钥。这样我…...
Hi5 2.0 虚拟手与追踪器(Tracker)的位置修正
问题描述 使用环境与工具:Unity 2022.3.4fc1,steam VR(2.7.3),steamvrSDK(1.14.15),HTC vive pro专业版,Hi5 2.0数据手套 首先按照Hi5 2.0的使用说明(可参考:HI5 2.0 交…...
广播及代码实现
广播(Broadcast)是一种网络通信方式,它允许一台设备向网络中的所有其他设备发送消息。广播通常用于在网络上传递一些信息,让所有设备都能接收并处理。在广播中,通信的目标是整个网络而不是特定的单个设备。 向子网中…...
QT应用篇 三、QML自定义显示SpinBox的加减按键图片及显示值效果
QT应用篇 一、QT上位机串口编程 二、QML用Image组件实现Progress Bar 的效果 三、QML自定义显示SpinBox的加减按键图片及显示值效果 文章目录 QT应用篇前言一、qml需求二、使用组件1.SpinBox组件2.SpinBox中QML的使用 总结 前言 记录自己学习QML的一些小技巧方便日后查找 QT的…...
2022年全国职业院校技能大赛网络安全竞赛试题1-10-B模块总结
前言 结尾有对22年国赛题型总结 试题1模块B 网络安全事件响应、数字取证调查和应用安全 B-1任务一:主机发现与信息收集 *任务说明:仅能获取Server1的IP地址 1.通过渗透机Kali2.0对靶机场景进行TCP同步扫描 (使用Nmap工具),并将该操作使用…...
20231228在Firefly的AIO-3399J开发板的Android11的Firefly的AIO-3399J开发板的DTS配置单前置摄像头ov13850
20231228在Firefly的AIO-3399J开发板的Android11的Firefly的AIO-3399J开发板的DTS配置单前置摄像头ov13850 2023/12/28 12:30 开发板:Firefly的AIO-3399J【RK3399】 SDK:rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBr…...
php-fpm运行一段时间,内存不足
目录 一:原因分析 二:解决 三:观察系统情况 php-fpm运行一段时间,内存不足,是什么原因呢。 一:原因分析 1:首先php-fpm的配置 (1)启动的进程数 启动的进程数越多,占用内存越高; 2:其次…...
基于轻量级GhostNet模型开发构建生活场景下生活垃圾图像识别系统
轻量级识别模型在我们前面的博文中已经有过很多实践了,感兴趣的话可以自行移步阅读: 《移动端轻量级模型开发谁更胜一筹,efficientnet、mobilenetv2、mobilenetv3、ghostnet、mnasnet、shufflenetv2驾驶危险行为识别模型对比开发测试》 《基…...
《Linux系列》Linux磁盘MBR分区扩容
文章目录 Linux磁盘MBR分区扩容1.前言2.控制台磁盘扩容3.分区扩容3.1 fdisk3.2 lsblk3.3 扩容分区 4.扩容文件系统4.1 df4.2 扩容文件系统 Linux磁盘MBR分区扩容 1)参考阿里云扩容分区文档,整理MBR分区扩容 2)本文档适用于MBR分区(fdisk -lu查…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
02.运算符
目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&:逻辑与 ||:逻辑或 !:逻辑非 短路求值 位运算符 按位与&: 按位或 | 按位取反~ …...
TJCTF 2025
还以为是天津的。这个比较容易,虽然绕了点弯,可还是把CP AK了,不过我会的别人也会,还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...
【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)
旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据!该数据集源自2025年4月发表于《地理学报》的论文成果…...
Oracle实用参考(13)——Oracle for Linux物理DG环境搭建(2)
13.2. Oracle for Linux物理DG环境搭建 Oracle 数据库的DataGuard技术方案,业界也称为DG,其在数据库高可用、容灾及负载分离等方面,都有着非常广泛的应用,对此,前面相关章节已做过较为详尽的讲解,此处不再赘述。 需要说明的是, DG方案又分为物理DG和逻辑DG,两者的搭建…...


