涉及概念:

平均精度(AP:Average Precision)、平均精度均值(mAP:Mean Average Precision)、查准率(precision)、查全率(recall),IOU(Intersection over Union)、置信度阈值(confidence thresholds)

查准率(precision)和查全率(recall,召回率):

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为

真正例(true positive):预测为1,实际也为1

假正例(false positive):预测为1,实际也为0

真反例(true negative):预测为0,实际也为0

假反例(false negative):预测为0,实际也为1

四种情形,令TP(真正例)、FP(假正例)、TN(真反例)、FN(假反例)分别表示其对应的样例数,则显然有TP+FP+TN+FN=样例总数。分类结果的“混淆矩阵”(confusion matrix)如表所示:

查准率P和查全率R分别定义为:

实际上(单类别):预测为反例0则不框

查准率Precision为所有预测为1中正确预测的比例,也就是框对的/所有预测框数目;

查全率Recall为所有真实框中被成功预测出1的比例,也就是框对的/所有真框数目

一个例子为:P=“挑出来的西瓜中有多少比例是好瓜”,R=“所有好瓜中有多少比例被挑出来”。

查全率和查准率是一对矛盾的度量。一般来说查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。

平均精度(AP)和平均精度均值(mAP)

Mean Average Precision(mAP)通常在信息检索和目标检测中作为评估标准使用。在这两个领域中mAP的计算方法不同,这里主要介绍目标检测中的mAP。

目标检测中定义的mAP最先在PASCAL VisualObjects Classes(VOC) challenge中使用。至少有两个变量用来决定precison和recall,分别是IOU(Intersection over Union)和置信度阈值(confidence thresholds)。IOU(交并比)是一个简单的几何度量,可以容易地被标准化。另一方面置信度也影响模型,会改变precison _recall曲线形状。因此PASCAL VOC组织提出了一种方法来解释这个变化。

AP即为求precison_recall曲线下方的面积,即为平均精度。2010年前后计算方法不同而已。2010前时11点插值平均精度,算出来是曲线下近似面积;2010年后新方式采用在所有点插值,算出来时更加精确的曲线下方面积(因为可以减小曲线震荡摇摆的影响)。

我们需要以模型不可知的方式来作为评估模型的标准。论文中提出一种称为Average Precision(AP)的方法来计算。对给定的任务和类别,precision_recall曲线以一种方法的排序输出来计算。Recall被定义为给定序列上所有正样本的部分;precison被定义为正类别序列上的所有样本。

AP概括了precision_recall曲线的形状,被定义为在一组11个等间距recall水平[0, 0.1, 0.2,…,1]上的precision平均值(这种方法比较旧,英文叫做11-point interpolated average precision)。这意味着我们选择11个不同的置信度阈值(这决定序列)。置信度阈值的设定需要使recall值为0,0.1,0.2,…,1。这使得mAP可以纵览整个precison_recall曲线(尽量让Recall值增长的同时保持Precision的值在一个很高的水平。而性能比较差的分类器可能会损失很多Precision值才能换来Recall值的提高)。

当然PASCAL VOC CHALLENGE自2010年后就换了另一种计算方法。新的计算方法假设这N个样本中有M个正例,那么我们会得到M个recall值(1/M, 2/M, ..., M/M),对于每个recall值r,我们可以计算出对应(r' > r)的最大precision,然后对这M个precision值取平均即得到最后的AP值。

MAP就是所有AP值的平均值。

Approximated Average precision(近似平均精度):

对每一种阈值分别求(Precision值)乘以(Recall值的变化情况),再把所有阈值下求得的乘积值进行累加

Interpolated average precision(插值平均精度):

不再使用当系统识别出k个图片的时候Precision的值与Recall变化值相乘。而是使用在所有阈值的Precision中,最大值的那个Precision值与Recall的变化值相乘。

上述两种求AP方法,前者与精度曲线(precision_recall)很接近,后者算出来比前者值高,一般重要的论文都使用后者,因为可以减轻抖动。PASCAL VOC CHALLENGE 就用的后者。

下面是几个在比较mAP值时需要记住的几个重点:

1、 mAP需要计算完整个数据集;

2、 虽然模型输出的绝对量化是难以解释的,但mAP可以通过一个很好的相关性标准来帮助我们。当我们在流行的公开数据集上计算这个标准时,它可以很容易地用来比较目标检测的新旧方法。 3、 根据类别在训练集上的分布方式,AP值可能在某些类别上从很高(这有很好的训练数据)变化到很低(对数据很少或不好的类别)。所以你的mAP可能是合适的,但你的模型可能对某些类别非常好而对某些类别非常差。因此当分析你的模型结果时,观察独立类别的AP是明智的。这些值可能作为添加更多训练样本的指示器。

参考链接:

https://github.com/rafaelpadilla/Object-Detection-Metrics

https://www.zhihu.com/question/53405779/answer/419532990

https://blog.csdn.net/zdh2010xyz/article/details/54293298

关键看参考链接1,但是其中关于新的voc计算方法举例中,作者为了计算简单省略了一些点,实际应该是全用。下面这个图是连接2最后的计算,为正确方式。

关于AP, MAP的一些理解相关推荐

  1. 目标检测模型的评价指标(Acc, Precision, Recall, AP, mAP, RoI)

    目标检测模型的评价指标(Acc, Precision, Recall, AP, mAP, RoI) 对于一个目标检测模型的好坏,总的来说可以从以下三个方面来评估: 分类的精度如何.一般可以用准确度(A ...

  2. 【机器学习基本理论】详解最大后验概率估计(MAP)的理解

    [机器学习基本理论]详解最大后验概率估计(MAP)的理解 https://mp.weixin.qq.com/s/dQxN46wEbFrpvV369uOHdA 最大似然估计(Maximum likeli ...

  3. CNN之性能指标:卷积神经网络中常用的性能指标(IOU/AP/mAP、混淆矩阵)简介、使用方法之详细攻略

    CNN之性能指标:卷积神经网络中常用的性能指标(IOU/AP/mAP.混淆矩阵)简介.使用方法之详细攻略 目录 CNN中常用的性能指标(IOU/AP/mAP.混淆矩阵)简介 IOU 1.IOU简介 2 ...

  4. 【mAP】关于目标检测mAP的一些理解

    mAP是目标检测中的基本指标,详细理解有助于我们评估算法的有效性,并针对评测指标对算法进行调整. 1.基本概念定义 在目标检测中IoU为检测框与GroundTruth重叠的比例,如果大于0.5则算作正 ...

  5. 信息检索中的度量precison@k,recall@k,f1@k,MRR,ap,map,CG, DCG,NDCG

    转载自:信息检索中度量指标全解析 导读 由浅入深逐个解析信息检索中的度量指标. 我们如何评估前n个结果有多好? 问题1:二元相关性 让我们通过一个简单的玩具例子来理解各种评估指标的细节和权衡.我们有一 ...

  6. 目标检测算法之评价标准AP,mAP

    TP.TN.FP.FN概念 首先有关TP.TN.FP.FN的概念.大体来看,TP与TN都是分对了情况,TP是正类,TN是负类.则推断出,FP是把错的分成了对的,而FN则是把对的分成了错的.(我的记忆方 ...

  7. Map Set list 理解

    对JAVA的集合的理解是想对于数组   数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) JAVA集合可以存储和操作数目不固定的一组数据.   所有的JAVA集合都位于 j ...

  8. map集合——阅读理解(洛谷 P3879)

    题目选自洛谷P3879 直接用map<string,vecotr<int> > 代替这题里的trie树,注意开map的时候后面两个> >之间要有一个空格. 用vec ...

  9. 目标检测相关概念:IOU,precision, recall, AP, mAP

    1.IOU(交并比) IOU,交并比,顾名思义,就是预测框bounding box与真实框ground truth的交集比上并集.可以用来衡量检测物体位置的偏差.形象点可以看下图(用画图软件所画): ...

最新文章

  1. 让dwz 的表格或者表单显示竖滚动条的代码
  2. golang获取md5
  3. Java工作笔记-Spring Boot + Jdbc + dm7Driver访问数据库(Spring Boot连接达梦数据库)
  4. fpga如何约束走线_FPGA设计约束技巧之XDC约束之I/O篇 (上)
  5. SQL Server - 聚集索引 第六篇
  6. 第19章 可空值类型
  7. 2019/3/27写给自己
  8. 回文问题‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬
  9. 论 Java 中的内存分配
  10. 《SpringMVC视频教程》(p2~p3)
  11. 用WPF做报表控件(一)
  12. axios post方式同时传递pram和json参数
  13. java实现积分抽奖_java毕业设计_springboot框架的超市消费积分抽奖
  14. 彩蛋-管理员root@‘locahost‘ 密码丢失,处理方案。
  15. 对于Jenkins和gitlab连接的注意事项
  16. 卫星天线如何接受CCTV-5nbsp;CCTV-6
  17. iOS 如何在一个已经存在多个project的workspace中引入cocoapods管理第三方类库
  18. cssK中的常用单词之相对,绝对
  19. jquery控制元素的隐藏和显示
  20. iOS Zip文件压缩

热门文章

  1. 哲学家就餐(linux多线程)
  2. 工业级聚合路由器与家用WiFi路由器的区别
  3. yara 模式匹配 android,YARA――恶意软件模式匹配利器
  4. CMNET和CMWAP
  5. 阿里巴巴内测全网社交产品来往
  6. SICP:费马小定理与素数检测
  7. 需求与商业模式创新-需求6-涉众分析与硬采样
  8. ecshop mysql 标题表_ECshop每个数据库表结构说明_MySQL
  9. 英语思维导图大全 代词(四)
  10. 计算机二级证书有用吗