mAP@0.5: mean Average Precision(IoU=0.5)

即将IoU设为0.5时,计算每一类的所有图片的AP,然后所有类别求平均,即mAP。

mAP@.5:.95(mAP@[.5:.95])

表示在不同IoU阈值(从0.5到0.95,步长0.05)(0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95)上的平均mAP。

那AP是什么呢,Average Precision,是单个类别平均精确度,而mAP是所有类别的平均精确度

AP是Precision-Recall Curve曲线下面的面积

曲线面积越大说明AP的值越大,类别的检测精度就越高。Recall官方称为召回率,可以考虑叫做查全率,Precision官网称为准确率叫做查准率,两者是相互矛盾的指标,如果能够较好的平衡两者,将在不同的条件下得到较好的检测效果,也就是图中的曲线面积。
Precision=TPTP+FPPrecision= {TP \over TP+FP}Precision=TP+FPTP​
Recall=TPTP+FNRecall = {TP \over TP + FN}Recall=TP+FNTP​

​其中(混淆矩阵):
True Positive区域:正样本预测为正样本
False Positive区域:负样本预测为正样本
False Negative区域:正样本预测为负样本
True Negative区域:负样本预测为负样本

预测样本在检测中就是预测框的大小,我们设置的IoU就是指的真实框与预测框的交并比,如果大于阈值就是正确,小于就是错误。

这里强调一下,当我们的样本与GT交并比确定之后,这里还不能确定TP、FP、FN、FN指标,只能说确定了预测正负样本的类别,但不能说真实正确样本的类别。需要通过置信度或者类的预测概率进行确定,主要是设定不同的阈值。这么说可以比较抽象,举个例子

上图是我们生成的预测框与GT样本的IOU计算结果(最右列),根据IOU阈值和计算的IOU值可以确定预测候选框正负样本的类别,但是是否真正为正样本还是负样本,主要取决于置信度的阈值,当我们设置一个置信度阈值时,可以得到对应的一个P和R,通过设置不同的置信度阈值时,就可以得到多个P和R,进一步绘制的PR曲线。

总结一下mAP的计算过程:

  1. 设置IoU阈值(简单说,设置预测框与真实框的重叠程度满意度)
  2. 计算GT和预测框的IoU,并确定每个预测框的预测值(被预测为正样本还是负样本)
  3. 通过设置置信度阈值(或者检测类别概率)得到不同的TP,TN,FP,FN计算P和R,绘制PR曲线,计算曲线的面积(根据点的坐标进行计算,如果同一个R有对应2个P,计算最大的即可)
  4. 完成!!!

在Yolo系列中,mAP@.5效果还是不错的,但mAP@.5:0.95的效果较差,可能是IoU的值设定过高对于检测框的位置要求也过高,同时,ground truth也是认为标定的,也没法说明高精度性。(有点偏袒yolo系列=_=)!!

mAP@0.5与mAP@0.5:0.95的含义相关推荐

  1. mAP@0.5与mAP@0.5:0.95的含义,YOLO

    mAP@0.5:mean Average Precision(IoU=0.5) 即将IoU设为0.5时,计算每一类的所有图片的AP,然后所有类别求平均,即mAP 如图所示,AP50,AP60,AP70 ...

  2. Tensorrt 7.2.3 转换yolov5 v3.0 pytorch1.8.1 onnx1.6.0

    Tensorrt 转换yolov5 安装环境: pytorch 1.8.1 torchvision 0.9.1 onnx 1.6.0 Tensorrt 7.2.3 yolov5 v3.0 l 权重为自 ...

  3. JZ2440 v3.0 linux-3.4.2 busybox1.20.0内核 和 文件系统移植 修改分区大小 yaffs2文件系统补丁 开源资源查找

    文章目录 零.平台 + 软件版本 + 烧写 平台 和 版本 烧写 一.编译系统的一堆命令 1. 编译uboot 2. 编译内核 3. 文件系统 yaffs2 额外的,自启动脚本配置 + 自动配置网卡 ...

  4. 好码推荐-一个符合我口味的SpringBoot(2.0.5)+MybatisPlus(3.0.7)项目骨架

    SpringBoot(2.0.5)+MybatisPlus(3.0.7)项目骨架,支持SpringSecurity+JWT权限验证,整合Redis+MongoDB+RabbitMQ+Elasticse ...

  5. oracle 11.2.0.4 mos,Oracle 11.2.0.4 最终版本发布以来的 Oracle PSU 列表

    Oracle 11.2.0.4 最终版本发布以来的 Oracle PSU 列表 Oracle 11g R2 是目前客户的主流版本,这个版本后续发布了一系列的补丁,今天列表整理一下,供大家参考. 云和恩 ...

  6. Python将小于0的书数换成0的几种方式

    >>> import numpy as np >>> a = np.random.randint(-5, 5, (5, 5)) >>> a arr ...

  7. aix oracle 10.2.0.1 升级 10.2.0.4,安装oracle 10.2.0.4 on aix 6.1的不同之处

    根据Oracle Database Installation Guide 10g Release 2 (10.2) for AIX 5L Based Systems (64-Bit)文档,在AIX 6 ...

  8. 创建符合标准的、有语意的HTML页面——ASP.NET 2.0 CSS Friendly Control Adapters 1.0发布...

    ASP.NET 2.0提供了非常多的Web开发中常用到的复杂控件,例如Menu.GridView.Login等.虽然这些控件使用方法极为简单,且功能异常强大,但若你查看一些由这些控件所生成的HTML代 ...

  9. mysql-4.0.20 use on scounix 5.0.7 error :dynamic linker:..:could not open libgthreads.so help!!!!

    周五, 2007/07/06 - 17:28 - zhenghz mysql-4.0.20 use on scounix 5.0.7 error :dynamic linker:..:could no ...

  10. windows 2003 下oracle从10.2.0.1升级到10.2.0.4

    方法一: 1. 完全安装10.2.0.1 2. 安装完成后,停止所有的oracle服务,可以通过停止oracle 的window services或者使用以下命令来实现. emctl stop dbc ...

最新文章

  1. 36招搞定电脑一切难题
  2. chrome浏览器被reimage pair 劫持怎么处理
  3. SmartCode.ETL 这不是先有鸡还是蛋的问题!
  4. html代码编辑器sp,在线HTML编译,文本关键字高亮显示,富文本编辑实现大概思路...
  5. 漫谈图神经网络 (三)
  6. 批量删除HTML链接软件,3种方法教你一次性删除word文档中的所有超链接
  7. github-markdown-css 使用简解,markdown文案格式优化(笔记)
  8. mongodb索引使用
  9. CPP-week fourteen
  10. java写法可能存在的 java.lang.OutOfMemoryError: Java heap space 问题
  11. 桩身弹性压缩计算公式_压缩弹簧弹力的计算公式
  12. 自走棋服务器没有响应,从爆火到凉凉,多多自走棋宣布停服,加入腾讯属于无奈?...
  13. 微信墙html5,微信墙怎么做?微信墙制作流程介绍
  14. 项目的成功标准如何衡量?【一杯咖啡谈项目】
  15. 压力测试 闪存_[实验]苹果今年大范围使用的TLC闪存颗粒真的是那么不堪吗?
  16. Spring和Spring的配置
  17. Hadoop的原理是什么
  18. 非走不可的弯路[张爱玲]
  19. 英语不好的同学已经期盼已久了!IDEA、Clion、Pycharm等2020版本支持中文啦,汉化教程
  20. 2018年刑侦科推理试题php版,2018年刑侦科推理试题

热门文章

  1. bzoj1455 罗马游戏
  2. 微型计算机飞傲m9,2018年度编辑选择奖:飞傲M9飞傲FH5
  3. WebAssembly技术_在Web端运行C与C++程序(ubuntu18.04)
  4. 【黑马程序员西安中心】生活不止眼前的苟且 还有梦想和远方
  5. 【目录导航】编程模拟自然系列博文
  6. 易周金融分析 | 银保监会发文规范养老金融;宁波银行拿下消金牌照
  7. 清华硕士的集体逃离!中科院科研人员自白:我为什么离开北京?
  8. C++笔记一瞥_艾孜尔江撰
  9. 公司测试部门来了个00后卷王,测试老鸟感叹真的干不过,但是...
  10. java实现系统中控件类图_阅读以下关于某订单管理系统的技术说明、部分UML类图及Java程序,将Jav..._考试资料网...