原文章地址来自于知乎:https://www.zhihu.com/question/41540197

1. precision 和 recall 的计算(没什么好说的,图片示例相当棒):

图1

图中上部分,左边一整个矩形中(false negative和true positive)的数表示ground truth之中为1的(即为正确的)数据,右边一整个矩形中的数表示ground truth之中为0的数据。
精度precision的计算是用 检测正确的数据个数/总的检测个数。
召回率recall的计算是用 检测正确的数据个数/ground truth之中所有正数据个数。

2. AP:average precision
假设我们有数据(原数据缺失并有错。根据个人理解进行补充,红色为出错部分,绿色为缺失部分):

图2

一共20个图像,20行,第一列是图像index, 第二列是检测confidence, 第三列是ground truth。根据confidence从大到小排列。
每检测一个图像时,无论是正例还是负例,计算当下的precision和recall。
假设检测样本中每N个样本中有M个正例,那么我们会得到M个recall值(1/M, 2/M, ..., M/M)(由于检测N'数量正样本时,precision有不同情况),对于每个recall值r,我们可以计算出对应(r' >= r)的最大precision,然后对这些max precision取平均即得到最后的AP值。具体计算如图,top-N是指根据confidence降级排列后样本的排位号(eg. 1为confidence最大的图像9):

图3

补充解释:

一共20个图像,GT为True的共6个图像,img_index分别是9, 16, 7(纠正),15, 20和2(补充)。

在图2中从上往下依次计算得图3结果:

排位号1:

精度=TP个数/已经选择的样本数=1/1;

召回率=TP个数/所有GT为True的样本数=1/6;

当召回率大于等于1/6时,最大精度=那就是1,也就是100%没有比100%更大的数值了

排位号2:

精度=TP个数/已经选择的样本数=2/2;

召回率=TP个数/所有GT为True的样本数=2/6;

当召回率大于等于2/6时,最大精度=仍然是1,也就是100%没有比100%更大的数值了

排位号6:

精度=TP个数/已经选择的样本数=3/6;

召回率=TP个数/所有GT为True的样本数=3/6;

当召回率大于等于3/6时,最大精度:先看召回率大于等于3/6时,所有精度有哪些,有精度:3/6, 4/7, 4/8, 4/9, 4/10, 5/11, 5/12, 5/13, 5/14, 5/15, 6/16, 6/17, 6/18, 6/19, 6/20。取最大 精度4/7

排位号7:

精度=TP个数/已经选择的样本数=4/7;

召回率=TP个数/所有GT为True的样本数=4/6;

当召回率大于等于4/6时,最大精度:先看召回率大于等于4/6时,所有精度有哪些,有精度:4/7, 4/8, 4/9, 4/10, 5/11, 5/12, 5/13, 5/14, 5/15, 6/16, 6/17, 6/18, 6/19, 6/20。取最大 精度4/7

排位号11:

精度=TP个数/已经选择的样本数=5/11;

召回率=TP个数/所有GT为True的样本数=5/6;

当召回率大于等于5/6时,最大精度:先看召回率大于等于5/6时,所有精度有哪些,有精度:5/11, 5/12, 5/13, 5/14, 5/15, 6/16, 6/17, 6/18, 6/19, 6/20。取最大 精度5/11

其余排位号不在列举。

AP = (1 +1+4/7+4/7+5/11+6/16)/6 = 0.6621

3. mAP: mean average precision
多类的检测中,取每个类AP的平均值,即为mAP。

mAP(mean Average Precision)应用(转)的更多相关文章

  1. 一个评测指标就是MAP(Mean Average Precision)平均精度均值。

    一个评测指标就是MAP(Mean Average Precision)平均精度均值. 转载 2017年09月13日 10:07:12 标签: 深度学习 892 来源01:Mean Average Pr ...

  2. MAP(Mean Average Precision)平均精度均值

    wrong 0 2 right 1 / 2 3 right 2 / 3 4 wrong 0 5 right 3 / 5 6 wrong 0 7 wrong 0 8 wrong 0 9 right 4 ...

  3. 目标检测模型的性能评估--MAP(Mean Average Precision)

    目标检测模型中性能评估的几个重要参数有精确度,精确度和召回率.本文中我们将讨论一个常用的度量指标:均值平均精度,即MAP. 在二元分类中,精确度和召回率是一个简单直观的统计量,但是在目标检测中有所不同 ...

  4. Mean Average Precision(mAP),Precision,Recall,Accuracy,F1_score,PR曲线、ROC曲线,AUC值,决定系数R^2 的含义与计算

    背景   之前在研究Object Detection的时候,只是知道Precision这个指标,但是mAP(mean Average Precision)具体是如何计算的,暂时还不知道.最近做OD的任 ...

  5. 目标检测评价标准(mAP, 精准度(Precision), 召回率(Recall), 准确率(Accuracy),交除并(IoU))

    1. TP , FP , TN , FN定义 TP(True Positive)是正样本预测为正样本的数量,即与Ground truth区域的IoU>=threshold的预测框 FP(Fals ...

  6. Average Precision of VOC

    转一篇文章,主要是关于VOC中Average Precision指标的 原文出处:https://sanchom.wordpress.com/tag/average-precision/ 还有一篇文章 ...

  7. 物体识别重要指标——平均准确率(Average Precision, AP )

    师兄的截图,不知道出处,仅用于学习,多多包涵.

  8. 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure

    yu Code 15 Comments  机器学习(ML),自然语言处理(NLP),信息检索(IR)等领域,评估(Evaluation)是一个必要的 工作,而其评价指标往往有如下几点:准确率(Accu ...

  9. IR的评价指标-MAP,NDCG和MRR

    IR的评价指标-MAP,NDCG和MRR   MAP(Mean Average Precision): 单个主题的平均准确率是每篇相关文档检索出后的准确率的平均值.主集合的平均准确率(MAP)是每个主 ...

随机推荐

  1. centos踩坑指南之安装composer

    composer是php的一个依赖管理器,那么安装composer可以快速编译php 但是在centos7以上 安装composer的有一个步骤有个小问题 对于centos6来说是 sudo mv c ...

  2. mysql存储过程和触发器

    mysql编程(存储过程和触发器) 存储过程 什么是存储过程 存储过程,带有逻辑的sql语句 存储过程特点 执行效率非常快!存储过程是在数据库的服务器端执行的!!! 移植性很差!不同数据库的存储过程是 ...

  3. BBS项目之后台管理

    一:后台管理,添加文章样式编写 创建 一个后台管理模板前段页面 <!DOCTYPE html> <html lang="en"> <head> ...

  4. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(11):XML和Annotation装配Bean的混合使用(@ImportResource)

    一.XML和Annotation装配Bean如何合理使用 引入第三方资源包中类的时候,建议使用XML配置,而使用自己编写的Java类的时候,推荐使用Annotation注解配置Bean. 二.关于注解 ...

  5. 编写高质量代码改善C#程序的157个建议——建议154:不要过度设计,在敏捷中体会重构的乐趣

    建议154:不要过度设计,在敏捷中体会重构的乐趣 有时候,我们不得不随时更改软件的设计: 如果项目是针对某个大型机构的,不同级别的软件使用者,会提出不同的需求,或者随着关键岗位人员的更替,需求也会随个 ...

  6. Django进阶(转载)

    Django进阶地址 来自为知笔记(Wiz)

  7. ThinkJS 中的Logic层

    第一个为什么需要Logic层: 当在 Action 里处理用户的请求时,经常要先获取用户提交过来的数据,然后对其校验,如果校验没问题后才能进行后续的操作:当参数校验完成后,有时候还要进行权限判断等,这 ...

  8. Web.config配置文件详解(新手必看) (转载)

    原文地址:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html <?xmlversion="1.0&quo ...

  9. Windows7系统安装TensorFlow深度学习框架全过程

    本来以为很好安装的一个东西,硬是从晚上九点搞到十二点,安装其实并不难,主要是目前网上的教程有很多方案完全不一样,有根据pip安装的,有根据docker安装的等等,看得我眼花缭乱,好不容易找到一个靠谱点 ...

  10. 聊聊 JDK 非阻塞队列源码(CAS实现)

    正如上篇文章聊聊 JDK 阻塞队列源码(ReentrantLock实现)所说,队列在我们现实生活中队列随处可见,最经典的就是去银行办理业务,超市买东西排队等.今天楼主要讲的就是JDK中安全队列的另一种 ...