mAP(mean Average Precision)应用(转)
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)应用(转)的更多相关文章
- 一个评测指标就是MAP(Mean Average Precision)平均精度均值。
一个评测指标就是MAP(Mean Average Precision)平均精度均值. 转载 2017年09月13日 10:07:12 标签: 深度学习 892 来源01:Mean Average Pr ...
- 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 ...
- 目标检测模型的性能评估--MAP(Mean Average Precision)
目标检测模型中性能评估的几个重要参数有精确度,精确度和召回率.本文中我们将讨论一个常用的度量指标:均值平均精度,即MAP. 在二元分类中,精确度和召回率是一个简单直观的统计量,但是在目标检测中有所不同 ...
- Mean Average Precision(mAP),Precision,Recall,Accuracy,F1_score,PR曲线、ROC曲线,AUC值,决定系数R^2 的含义与计算
背景 之前在研究Object Detection的时候,只是知道Precision这个指标,但是mAP(mean Average Precision)具体是如何计算的,暂时还不知道.最近做OD的任 ...
- 目标检测评价标准(mAP, 精准度(Precision), 召回率(Recall), 准确率(Accuracy),交除并(IoU))
1. TP , FP , TN , FN定义 TP(True Positive)是正样本预测为正样本的数量,即与Ground truth区域的IoU>=threshold的预测框 FP(Fals ...
- Average Precision of VOC
转一篇文章,主要是关于VOC中Average Precision指标的 原文出处:https://sanchom.wordpress.com/tag/average-precision/ 还有一篇文章 ...
- 物体识别重要指标——平均准确率(Average Precision, AP )
师兄的截图,不知道出处,仅用于学习,多多包涵.
- 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure
yu Code 15 Comments 机器学习(ML),自然语言处理(NLP),信息检索(IR)等领域,评估(Evaluation)是一个必要的 工作,而其评价指标往往有如下几点:准确率(Accu ...
- IR的评价指标-MAP,NDCG和MRR
IR的评价指标-MAP,NDCG和MRR MAP(Mean Average Precision): 单个主题的平均准确率是每篇相关文档检索出后的准确率的平均值.主集合的平均准确率(MAP)是每个主 ...
随机推荐
- centos踩坑指南之安装composer
composer是php的一个依赖管理器,那么安装composer可以快速编译php 但是在centos7以上 安装composer的有一个步骤有个小问题 对于centos6来说是 sudo mv c ...
- mysql存储过程和触发器
mysql编程(存储过程和触发器) 存储过程 什么是存储过程 存储过程,带有逻辑的sql语句 存储过程特点 执行效率非常快!存储过程是在数据库的服务器端执行的!!! 移植性很差!不同数据库的存储过程是 ...
- BBS项目之后台管理
一:后台管理,添加文章样式编写 创建 一个后台管理模板前段页面 <!DOCTYPE html> <html lang="en"> <head> ...
- JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(11):XML和Annotation装配Bean的混合使用(@ImportResource)
一.XML和Annotation装配Bean如何合理使用 引入第三方资源包中类的时候,建议使用XML配置,而使用自己编写的Java类的时候,推荐使用Annotation注解配置Bean. 二.关于注解 ...
- 编写高质量代码改善C#程序的157个建议——建议154:不要过度设计,在敏捷中体会重构的乐趣
建议154:不要过度设计,在敏捷中体会重构的乐趣 有时候,我们不得不随时更改软件的设计: 如果项目是针对某个大型机构的,不同级别的软件使用者,会提出不同的需求,或者随着关键岗位人员的更替,需求也会随个 ...
- Django进阶(转载)
Django进阶地址 来自为知笔记(Wiz)
- ThinkJS 中的Logic层
第一个为什么需要Logic层: 当在 Action 里处理用户的请求时,经常要先获取用户提交过来的数据,然后对其校验,如果校验没问题后才能进行后续的操作:当参数校验完成后,有时候还要进行权限判断等,这 ...
- Web.config配置文件详解(新手必看) (转载)
原文地址:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html <?xmlversion="1.0&quo ...
- Windows7系统安装TensorFlow深度学习框架全过程
本来以为很好安装的一个东西,硬是从晚上九点搞到十二点,安装其实并不难,主要是目前网上的教程有很多方案完全不一样,有根据pip安装的,有根据docker安装的等等,看得我眼花缭乱,好不容易找到一个靠谱点 ...
- 聊聊 JDK 非阻塞队列源码(CAS实现)
正如上篇文章聊聊 JDK 阻塞队列源码(ReentrantLock实现)所说,队列在我们现实生活中队列随处可见,最经典的就是去银行办理业务,超市买东西排队等.今天楼主要讲的就是JDK中安全队列的另一种 ...