CV03_mAP计算以及COCO评价标准

COCO数据集回顾:CV02_超强数据集:MSCOCO数据集的简单介绍-CSDN博客

1.1 简介

在目标检测领域中,mAP(mean Average Precision,平均精度均值)是一个广泛使用的性能评估指标,用于衡量目标检测模型在检测不同类别目标时的综合性能。以下是mAP的几个关键点:

  1. 定义:mAP是所有类别平均精度(Average Precision, AP)的平均值。AP是针对单个类别计算的,表示在不同召回率(Recall)下精度(Precision)的平均值,或者说是PR曲线(Precision-Recall Curve)下的面积。而mAP则是将所有类别各自的AP值取平均得到的结果,从而提供一个跨类别的整体性能评估。

  2. 计算流程

    • 确定TP/FP:首先,根据预测框与真实框之间的交并比(IoU,Intersection over Union)阈值,确定每个预测框是真阳性(True Positive, TP)还是假阳性(False Positive, FP)。
    • 排序:将预测框按其置信度(confidence score)从高到低排序。
    • 计算Precision和Recall:遍历排序后的预测框,逐步累加TP以计算Recall,同时计算每个步骤的Precision(即当前TP除以总的预测阳性数)。
    • 绘制PR曲线:以Recall为横轴,Precision为纵轴,绘制PR曲线。曲线下的面积即为AP。
    • 计算mAP:对所有类别的AP求平均得到mAP。
  3. 重要性:mAP综合考虑了检测模型的精确度(Precision)和召回率(Recall),是衡量模型在准确检测目标的同时,能否尽可能多地找出所有目标的能力。因此,mAP值越高,表示模型的整体性能越好。

  4. 变体:mAP的计算可以根据不同的应用场景有所变化,比如在某些情况下,会根据不同的IoU阈值计算多个mAP值,或者分别计算不同难度级别(如小目标、中目标、大目标)的mAP,以更全面地评估模型性能。

  5. 应用场景:mAP常用于评估和比较各种目标检测算法,如Faster R-CNN、YOLO、SSD等,在学术研究和工业界均有广泛应用,特别是在自动驾驶、监控系统、医疗影像分析等领域。

在我们使用目标检测网络训练时,最后在验证集上会得到一个coco的评价列表。那么它每个数据的含义都代表什么呢?

1.2 目标检测中常见指标

Precision和Recall

假阳性FP:本来不是目标,但是预测成了目标。

假阴性FN:漏检的目标个数,或者说本来有目标但没有预测出来。

对于Precision和Recall,我们来举几个例子:

图片里有5个GT,模型检测出来一个,那么Precision就是1(TP/(TP+FP)),Recall就是0.2(TP/(TP+FN))。

第二个例子,同样5个GT,查准率大概是5/11,查全率是1。

很显然,只看查准率或者只看查全率是不靠谱的,需要综合起来看。

AP和P-R曲线

AP(Average Precision,平均精度)是一个关键的性能评估指标,用来衡量模型在某一特定类别上检测性能的好坏。

  1. 定义:AP是 Precision(精确率)和 Recall(召回率)之间关系的一种综合度量。它通过计算Precision-Recall曲线(PR曲线)下的面积得到,反映了模型在不同召回率水平下的平均精确度。

  2. PR曲线:在计算AP之前,需要绘制Precision-Recall曲线。随着阈值的调整,模型会输出不同数量的预测框,对应不同的Precision和Recall值。将这些点连接起来形成的曲线即为PR曲线,反映了精确率与召回率之间的权衡。

  3. 计算AP

    • 通常,会在Recall的0到1范围内均匀选取一些点(例如11个点,从0到1每隔0.1取一个点),然后在这些点上计算相应的Precision值。
    • 接着,将这些点的Precision值相加后除以点的数量,得到的就是AP的近似值。有时也会使用数值积分或插值方法来更准确地计算曲线下的面积。
  4. IoU阈值的影响:在计算AP时,通常会涉及到交并比(Intersection over Union, IoU)阈值,用以判断预测框与真实框是否匹配。不同的IoU阈值会得到不同的AP值,常见的IoU阈值有0.5或者更高,这取决于具体的评估标准。

  5. 用途:AP值越高,说明模型在确保召回率的同时,也能保持较高的精确率,是衡量目标检测算法性能好坏的重要标准。在多类别目标检测任务中,还会计算所有类别的AP值的平均值,即mAP(mean Average Precision),以评估模型在所有类别上的平均性能。

AP是目标检测中衡量单一类别检测效果的核心指标,通过综合考虑精确率和召回率,提供了对模型性能全面且直观的评估方式。

举个例子:假设我们已经训练好了模型,下面是用于验证的三张图片。首先累加训练集中目标的个数。接下来通过一个列表来统计我们的网络所检测到的目标信息。第二个检测ID=1的bounding box 的IOU值明显小于0.5,所以被标记为false。

整张表格是按置信度(confidence)排序的。

下面检测下一张图片,此时num_ob的值变为3,表格如下所示:

再检测下一张图片。

接下来我们用拿到的这个表格去计算查准率和查全率。我们将阈值设置到0.98,那么只有一个被筛选出来,我们计算一下此时的查准率和查全率。以此类推,不断降低阈值来计算。

我们以Recall为横坐标,Precision为纵坐标,就能得到一个PR曲线。我们要注意一个问题,对于Recall,我们需要过滤掉一些重复的信息,像0.57的时候我们有三个值,此时我们只需要保留precision最大的这个情况就可以了。右图方框框住的点就是我们的数值。

计算出该类别的AP后,我们再计算出其他类别的AP,然后再求和求均值就得到了MAP。

需要注意的是,网络最终给出的预测结果都是经过NMS(非极大值抑制)之后所得到的目标边界框。

1.3  COCO评价指标每一条数据的含义

虽然下图说的是AP,实际上就是我们之前说的mAP

第一类,就是IOU阈值不同的情况下的mAP,第一行是从IOU0.5开始以步长0.05,直到0.95的是个mAP

对于第二类(AP Across Scales),是针对检测小、中、大物体的mAP。小物体的定义是像素面积小于32的平方,中等物体,大物体如下图所示。第二类就可以衡量模型对不同尺度的目标的检测效果

对于第三类(AR不是AP),先看最后一行是AR max=100, 就是我们每张图片限定只检测100个目标,就是经过NMS后我们最多只提供100个目标。我们得到的相应的recall值

AP和AR的区别

Average Precision (AP):

  • 定义: AP衡量的是模型在不同召回率(Recall)水平下的平均精确度(Precision)。它通过计算Precision-Recall曲线下的面积得到,体现了模型在提升召回率的同时保持高精确度的能力。
  • 计算: AP计算过程中,首先会根据预测框与真实框的交并比(IoU)设定阈值,以此来确定预测是否为真阳性(TP)。然后,通过改变置信度阈值,计算出一系列的Precision和Recall值,进而绘制出PR曲线。AP即为该曲线下方的面积,反映了模型在不同决策阈值下的综合性能。
  • 意义: AP值越高,说明模型在召回所有相关对象(即高召回率)的同时,预测正确的比例也很高(即高精确度),是衡量目标检测算法准确性和全面性的重要指标。

Average Recall (AR):

  • 定义: AR侧重于衡量模型在不同IoU阈值下的平均召回率。与AP不同,AR主要关注模型找到所有相关对象的能力,而不直接考虑预测的精确度。
  • 计算: 在COCO数据集中,AR通常是在多个固定的IoU阈值(例如从0.5到0.95,步长为0.05)下计算召回率,然后取这些召回率的平均值。这种做法考虑了模型在不同定位精度要求下的召回表现。
  • 意义: AR强调模型的召回能力,即检测出所有应该检测到的目标的比例。高AR意味着模型很少漏检,即使某些预测框可能不够精确。

总结:

  • AP更注重精确度和召回率之间的平衡,是综合评价模型在不同置信度阈值下表现的指标。
  • AR则更专注于评估模型召回目标的能力,特别是在不同定位精度标准下的召回一致性。

在实际应用中,两者通常会结合使用,比如mAP(mean Average Precision)是多个类别AP的平均值,而COCO数据集评估时,除了mAP,也会报告AR以获得模型性能的更全面视图。

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

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

相关文章

技术赋能政务服务:VR导视与AI客服在政务大厅的创新应用

在数字化转型的浪潮中,政务大厅作为服务民众的前沿阵地,其服务效率和质量直接影响着政府形象和民众满意度。然而,许多政务大厅仍面临着缺乏智能化导航系统的挑战,这不仅增加了群众的办事难度,也降低了服务效率。维小帮…

HTML5使用<pre>标签:保留原始排版方式

在网页创作中,一般是通过各种标记对文字进行排版的。但是在实际应用中,往往需要一些特殊的排版效果,这样使用标记控制起来会比较麻烦。解决的方法就是保留文本格式的排版效果,如空格、制表符等。 如果要保留原始的文本排版效果&a…

跟《经济学人》学英文:2024年07月06日这期:Finishing schools for the age of TikTok

Finishing schools for the age of TikTok Unsure how to be polite at work? Ask a digital etiquette guru 不确定如何在工作中保持礼貌?请教一位数字礼仪大师 “Finishing schools” 是指专门为年轻女性提供礼仪、社交技巧、文化修养等教育的学校,…

智慧文旅(景区)解决方案PPT(42页)

智慧文旅解决方案摘要 行业分析中国旅游业正经历消费大众化、需求品质化、发展全域化和产业现代化的发展趋势。《“十三五”旅游业发展规划》的发布,以及文化和旅游部的设立,标志着旅游业的信息化和智能化建设成为国家战略。2018年推出的旅游行业安全防范…

【Python实战因果推断】23_倾向分3

目录 Propensity Score Matching Inverse Propensity Weighting Propensity Score Matching 另一种控制倾向得分的常用方法是匹配估计法。这种方法搜索具有相似可观测特征的单位对,并比较接受干预与未接受干预的单位的结果。如果您有数据科学背景,您可…

linux下的网络编程

网络编程 1. 网络基础编程知识1.1网络字节序问题1.2 常用socket编程接口1.2.1 sockaddr1.2.2 ip地址转换函数1.2.4 socket()1.2.3 bind()1.2.4 listen()1.2.5 accept()1.2.6 connect() 1.3 以udp为基础的客户端连接服务器的demo1.4 以udp为基础的的服务器聊天室功能demo1.5 基于…

网安小贴士(6)TCP/IP分层

一、前言 1983年,美国国防部决定将TCP/IP作为所有计算机网络的标准协议,这标志着TCP/IP正式成为互联网的基础协议。随着个人计算机的普及和网络技术的发展,TCP/IP模型被广泛应用于各种网络环境中,包括局域网(LAN&#…

Linux-DNS

DNS域名解析服务 1.DNS介绍 DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。…

优化路由,优化请求url

1、使用父子关系调整下使其更加整洁 2、比如说我修改了下url,那所有的页面都要更改 优化:把这个url抽出来,新建一个Api文件夹用于存放所有接口的url,在业务里只需要关注业务就可以 使用时 导包 发请求 如果想要更改路径,在这里…

ctfshow web sql注入 web242--web249

web242 into outfile 的使用 SELECT ... INTO OUTFILE file_name[CHARACTER SET charset_name][export_options]export_options:[{FIELDS | COLUMNS}[TERMINATED BY string]//分隔符[[OPTIONALLY] ENCLOSED BY char][ESCAPED BY char]][LINES[STARTING BY string][TERMINATED…

View->裁剪框View的绘制,手势处理

XML文件 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android…

Linux系统的基础知识和常用命令

1、什么是Linux&#xff1f; 是一种免费使用和自由传播的类UNIX操作系统&#xff0c;其内核由林纳斯本纳第克特托瓦兹于1991年10月5日首次发布&#xff0c;它主要受到Minix和Unix思想的启发&#xff0c;是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行…

Flink实现准确和高效流处理的关键问题

时间相关: Watermark 水位线 水位线是插入到数据流中的一个标记,可以认为是一个特殊的数据。水位线主要的内容是一个时间戳,用来表示当前事件时间的进展。水位线是基于数据的时间戳生成的。水位线的时间戳必须单调递增,以确保任务的事件时间时钟一直向前推进,进展。水位线…

Git 运用小知识

1.Git添加未完善代码的解决方法 1.1 Git只是提交未推送 把未完善的代码提交到本地仓库 只需点击撤销提交&#xff0c;提交的未完善代码会被撤回 代码显示未提交状态 1.2 Git提交并推送 把未完善的代码提交并推送到远程仓库 点击【未完善提交并推送】的结点选择还原提交&#x…

【后端面试题】【中间件】【NoSQL】MongoDB查询优化2(优化排序、mongos优化)

优化排序 在MongoDB里面&#xff0c;如果能够利用索引来排序的话&#xff0c;直接按照索引顺序加载数据就可以了。如果不能利用索引来排序的话&#xff0c;就必须在加载了数据之后&#xff0c;再次进行排序&#xff0c;也就是进行内存排序。 可想而知&#xff0c;如果内存排序…

【Oracle】Oracle常用函数

目录 聚合函数数字函数1. ABS函数&#xff1a;返回一个数的绝对值。2. CEIL函数&#xff1a;返回大于等于给定数的最小整数。3. FLOOR函数&#xff1a;返回小于等于给定数的最大整数。4. ROUND函数&#xff1a;将一个数四舍五入到指定的小数位。5. MOD函数&#xff1a;返回两个…

Vue 数据大屏适配

1、准备俩个盒子 .dataScreen-content 盒子内容根据设计稿给的px单位进行正常的布局就行 2、盒子的CSS样式 .dataScreen-container {width: 100%;height: 100%;// 有背景图需要的样式background: url("./images/bg.png") no-repeat;background-repeat: no-repeat;b…

推荐算法学习笔记2.1:基于深度学习的推荐算法-基于共线矩阵的深度推荐算法-AutoRec模型

AutoRec模型 前置知识&#xff1a;推荐算法学习笔记1.1:传统推荐算法-协同过滤算法 AutoRec模型通过引入自编码器结构&#xff0c;将共线矩阵中的用户向量&#xff08;基于用户的U-AutoRec&#xff09;或物品向量&#xff08;基于物品的I-AutoRec&#xff09;嵌入到低维空间后还…

在 PostgreSQL 中,如何处理大规模的文本数据以提高查询性能?

文章目录 一、引言二、理解 PostgreSQL 中的文本数据类型三、数据建模策略四、索引选择与优化五、查询优化技巧六、示例场景与性能对比七、分区表八、数据压缩九、定期维护十、总结 在 PostgreSQL 中处理大规模文本数据以提高查询性能 一、引言 在当今的数据驱动的世界中&…

HashMap中的put()方法

一. HashMap底层结构 HashMap底层是由哈希表(数组),链表,红黑树构成,哈希表存储的类型是一个节点类型,哈希表默认长度为16,它不会每个位置都用,当哈希表中的元素个数大于等于负载因子(0.75)*哈希表长度就会扩容到原来的2倍 二. 底层的一些常量 三. HashMap的put()方法 当插入一…