当前位置: 首页 > news >正文

深入理解mAP

0 介绍

mAP是目标检测任务最重要的评价指标。
mAP 是mean average precosion的缩写,mean 和 average都是平均的意思, 所以这个指标的计算涉及到2次平均。 mean是对所有类别的平均, 比如VOC 数据有20个类, 每个类别分别计算AP, 再对20个AP计算平均。 那AP中的average是对什么平均呢?这个平均是指对P-R曲线进行积分计算。

那么什么是P-R曲线呢,P-R是指Precion and Recall, 即准确率和召回率。
为什么需要这2个指标一起才能衡量检测效果呢? 其实非常容易理解, 目标检测任务中, 我们希望准确率越高越好, 召回率也是越高越好, 但这两者实际上矛盾的。 想要检测的准确, 少出错,那么漏掉的目标必然就会多;想要不漏掉目标, 那么就要检测出更多的目标,出错的可能性必然更高。 理想情况下, 准确率和召回率都是1, 即一个不漏, 一个不错, 但这是几乎不可能达到的。因此, 采用P-R 曲线下面积积分, 就能综合反应这2个指标。

1 计算方式

那这个指标具体是怎么计算的呢?
首先我们只关注其中一个类别, 忽略其他类别。 比如对某个类别, 我们检测出了100个目标, 而gt是80个。 我们把这100个检测框按置信度从大到小进行排序, 然后从第一个开始与gt进行匹配, 计算Precision值和Recall值。 最终就得到100个P-R值,得到P-R曲线。 按理说到这一步, 已经可以计算出AP值了。但是在VOC和COCO的计算指标里, 对这里其实还做了一些其他处理。

1.1 VOC 的计算方式

在VOC 2007及以前, 会在P-R曲线上采样11个点进行计算, 这11个点是Recall 从0到1, 间隔0.1, 这11个点通过插值的方式得到。 但是只采样11个点, 计算精度较低, 一些小的差别就区分不出来了。 所以从VOC 2008开始, 就不再采用11点采样方式了, 而是用所有点,采用最大值平滑的方式进行处理。

1.2 COCO计算方式

COCO的AP计算是采用采样的方式, 只不过采样点数更多, 是采样101个点, Recall从0到1, 每隔0.01采样一个, 通过插值方式得到采样值。 另外COCO在不同的IOU下都计算了P-R值,VOC固定的取IOU=0.5, COCO的IOU从0.5到0.95,每隔0.05取一个。 因此AP是11个不同IOU下的均值。

同样的方式, 可以得到所有类的AP, 再把所有类的AP平均, 就得到mAP了。

如果严格来说的话, COCO 的mAP可以叫做mmAP了, 有三次平均。 但在论文中, 我们看到的mAP指标直接叫做AP, 其实不那么严谨, 但也没有什么太大歧义,这点要注意甄别。 我觉得直接这么简称是因为COCO 不单独关注某一个类(类太多, 有80个, 也关注不过来), 所以默认就是指所有类别。

COCO指标中, AP是指IOU从0.5到0.95的平均mAP, A P 50 AP_{50} AP50是指IOU=0.5时的mAP, A P 75 AP_{75} AP75是指IOU=0.75时的mAP。

http://www.lryc.cn/news/101993.html

相关文章:

  • PostGis -基础、Springboot 整合、电子围栏处理
  • 【Linux】多线程的补充
  • 【MySQL】表的操作
  • 自动化测试 selenium(测试系列7)
  • 小研究 - JVM 垃圾回收方式性能研究(二)
  • 【网络安全带你练爬虫-100练】第15练:模拟用户登录
  • Ansible
  • kafka:消费者从指定时间的偏移开始消费(二)
  • Spring的加载配置文件、容器和获取bean的方式
  • (二)利用Streamlit创建第一个app——单页面、多页面
  • 一条sql查询语句在mysql中的执行过程是什么
  • 网络互联究竟是需要什么协议相同,什么协议不同?
  • ajax axios json
  • 外观模式——提供统一入口
  • Vue中导入并读取Excel数据
  • CUDA常用函数
  • 72. ElasticSearch常用命令
  • 2023.7.26(同余方程的通解与特解)
  • Diffusion扩散模型学习3——Stable Diffusion结构解析-以图像生成图像(图生图,img2img)为例
  • LangChain||什么是LangChain? LangChain有什么用?
  • 秋招算法备战第28天 | 93.复原IP地址、78.子集、90.子集II
  • Mongodb空间索引的使用以及与Django的对接
  • Windows安装MySQL数据库
  • 聊聊函数式编程中的“式”
  • ubuntu目录分析
  • Python 进阶(三):正则表达式(re 模块)
  • Vue2 第六节 key的作用与原理
  • React之组件的生命周期
  • linux -网络编程-多线程并发服务器
  • Golang之路---02 基础语法——字典