在单标签图像分类任务中,一般使用top1 accuracy 或者 top5 accuracy 衡量分类的准确性。而多标签图像分类任务的评价方法一般采用的是和信息检索中类似的方法——mAP(mean average precision)。以下是mAP的计算方法:

在介绍mAP的计算方法之前,先介绍两个更基本的概念:precision and recall

如上图1所示,圆圈内的样本为选出的模型预测的n个“正样本positive”(包括true positive and false positive),矩形内的样本为模型测试的所有样本m(包括true positive and true negative)。precision表示的是:预测的n个”正样本positive”中true positive个数占预测的n个“正样本positive”的比例大小。recall表示的是:预测的n个”正样本positive”中true positive个数占该模型测试的所有样本中true positive的比例大小。

在对多标签图像分类时,首先用训练好的模型得到所有测试样本的confidence score,每一类(如car)的confidence score都保存到一个文件中(如test_car.txt)。假设该文件包含20个测试样本(即对应图1中的矩形),每个id, confidence score, ground truth label如下:

接下来按照confidence score从大到小排序,结果如下:

这张表很重要,接下来的precision和recall都是依照这个表计算的

在此顺序下,逐渐增大选出图片的数量n(n从1到20,,即对应图1中圆圈内的图片数量)。计算每个n下的precision and recall。比如对20个测试图片在car分类器上的分类结果,我们选出排序后的前五个,如图所示:

在上图中,选出的5个图片中(图1中圆圈内的图片),true positive即第4和2张图片,false positive就是指第13,19,16张图片。剩下的15个图片是对应图1中圆圈外的图片,即:

其中,false negative是指第9,16,7,20张图片,true negative是指第1,18,5,15,10,17,12,14,8,11,3张图片。

那么,这个例子中,precision等于2/5,即选出的5个“positive”图片中有两个是true positive。recall等于2/6,即在所有测试图片中,有6个positive,但这次只召回了2个true positive。实际的多标签图像分类中,我们通常不满足只通过top5个测试图片来衡量模型,而是需要知道top1到topm(m是所有的测试样本个数,此例为20)对应的precision and recall。并且,当选出的图片数量n增加,recall是逐渐增大的(如1/6,2/6,...,6/6)。而随着recall增加,precision整体上呈现下降趋势。如果把recall当做横轴,precision当做纵轴,则可以得到precision-recall曲线,这个例子的曲线如下图:

计算结果的表格形式见下表:

从表中可以看到,同一recall值,可能具备多个precision值,通常的做法是取其中最大的precision,这样得到的precision-recall曲线如下图:

最后,对每个recall对应的precision最大值求均值就得到所谓的average precision,即AP。这样就得到了对应一个类(分类器)的average precision,它表示的是该模型在某个类别上的好坏,如果要求模型在所有类别上的好坏,就求所有类别对应的AP的均值,即所谓的mAP。

参考链接:http://blog.sina.com.cn/s/blog_9db078090102whzw.html

多标签图像分类任务的评价方法——mAP相关推荐

  1. ap、mAP多标签图像分类任务的评价方法

    多标签图像分类(Multi-label Image Classification)任务中图片的标签不止一个,因此评价不能用普通单标签图像分类的标准,即mean  accuracy,该任务采用的是和信息 ...

  2. 评价目标检测的方法map 新方法 TIDE

    导语     物体检测一般使用**map**来评价目标检测的检测效果,如检测效果不好时,需深入了解哪些数据检测效果不好,如何调试模型的性能以及如何优化它获得更好的性能.这时一个好的开源库 TIDE 则 ...

  3. 【图像分类】基于Pascal VOC2012增强数据的多标签图像分类实战

    接着上一次的多标签分类综述,本文主要以Pascal VOC2012增强数据集进行多标签图像分类训练,详细介绍增强数据集制作.训练以及指标计算过程,并通过代码进行详细阐述,希望能为大家提供一定的帮助! ...

  4. python不同曲线设置标签_【图像分类】基于Pascal VOC2012增强数据的多标签图像分类实战...

    接着上一次的多标签分类综述,本文主要以Pascal VOC2012增强数据集进行多标签图像分类训练,详细介绍增强数据集制作.训练以及指标计算过程,并通过代码进行详细阐述,希望能为大家提供一定的帮助! ...

  5. 【人工智能】多标签图像分类综述

    图像分类作为计算机视觉领域的基础任务,经过大量的研究与试验,已经取得了傲人的成绩.然而,现有的分类任务大多是以单标签分类展开研究的.当图片中有多个标签时,又该如何进行分类呢?本篇综述将带领大家了解多标 ...

  6. python图像融合算法_图像融合质量评价方法的python代码实现——MS-SSIM

    图像融合质量评价方法的python代码实现--MS-SSIM 图像融合质量评价方法的python代码实现--MS-SSIM 文章目录 1 前言 2 MS-SSIM介绍 2 MS-SSIM的代码 2.1 ...

  7. 基于Keras的多标签图像分类

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 本篇记录一下自己项目中用到的keras相关的部分.由于本项目既有涉及multi-class(多 ...

  8. 【经验分享】TinyMind 多标签图像分类竞赛小试牛刀——by:for the dream

    多标签图像分类竞赛地址:https://www.tinymind.cn/competitions/42?from=blog 队伍:for the dream,其实是大酒神死忠粉~ 初次拿到这个题目,想 ...

  9. python程序题求roc-auc是一种常用的模型评价指标_模型评价方法

    第五章 模型评价方法 5.1 模型的评价方法介绍 5.1.1~5 accuracy,precision,recall,F1-score,ROC曲线 分别画图举例,要说出应用场景,例如什么情况用什么评价 ...

  10. 评价方法-熵权法确定指标权重

    评价方法根据确定权重的方法,大体上可分为主观赋权,客观赋权:主观赋权依赖于"专家"的权重或较多独立个体的评判偏好,如层次分析法,功效系数法,模糊综合评价法,综合指数法:客观赋权法根 ...

最新文章

  1. 在网站SEO优化为何要加入网站地图?
  2. 位居新品第一、单品第二,乐视1s吊打了谁的耳光?
  3. SAP Spartacus的Component 请求
  4. 工作所用的模块回滚脚本
  5. 计算机应知应会培训班,应知应会培训、测试方案(报省里)
  6. Always On 集群监听创建失败问题
  7. IOS开发学习----给表视图设置缩进级别
  8. hdu 2670 01背包变形
  9. Egret入门学习日记 --- 第十八篇(书中 8.5~8.7 节 内容)
  10. 示波器截取的波形图和数据CSV文件表,导入到MATLAB的simulink模型进行FFT分析,简单实用教程与示例
  11. 原生社区交友婚恋视频即时通讯双端APP源码 ONE兔2.0版
  12. 万恶IE兼容之input change事件
  13. 计算机多媒体技术主要有什么特征,多媒体技术特征有哪些_多媒体技术的关键特性介绍...
  14. unreal-教程-第十八章:UI跟随的基本原理(c++)
  15. 【新国产化】中国云平台能像阿里云一样,成为世界一哥吗?
  16. JavaScript 事件委托
  17. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)
  18. Python实现isPrime()函数,参数为整数,要有异常处理。如果整数是质数,返回True,否则返回False。通过调用isPrime()函数,打印200以内的所有质数,以空格分割。
  19. Arduino使用敲击模块和光遮断
  20. 轻松一下,做一道题目吧

热门文章

  1. python -m以模块方式启动,python命令加上-u(unbuffered)参数后会强制其标准输出
  2. 网络相关知识汇总链接
  3. C++--第10课 - 构造与析构 - 下
  4. Java使用BufferedImage修改图片内容
  5. 海归博士程序员光鲜背后:下车间写代码,体验炼钢灼人的热度
  6. EthBox以太坊开发套件,一键安装部署以太坊开发环境
  7. 《树莓派Python编程入门与实战(第2版)》——2.2 使用Raspbian命令行
  8. 详解web容器 - Jetty与Tomcat孰强孰弱
  9. scala学习手记15 - 独立对象和伴生对象
  10. Swing-文本输入组件(一)