基础概念——TP、FP、TN、FN、IOU、PR、AP、Interpolated AP、AUC、mAP_tp,fp-程序员宅基地

技术标签: 计算机视觉  基础概念  

TP、FP、TN、FN

都是站在预测的立场看的:
TP:预测为正是正确的
FP:预测为正是错误的
TN:预测为负是正确的
FN:预测为负是错误的

在这里插入图片描述

准确率(accuracy),精确率(Precision)和召回率(Recall)

准确度:分类器正确分类的样本数与总样本数之比
(TP+TN)/ (TP+TN+FP+FN)
精准率Precision:所有被预测为正样本的样本中预测对的比例
(TP) / (TP+NP)
召回率Recall:被正确预测的正样本占所有正样本的比例
(TP)/ (TP+FN)

Precision就代表我们模型检测出来的目标有多大比例是真正的目标物体,是从检测出的目标的角度来看待问题;
Recall就代表所有真实的目标有多大比例被我们的模型检测出来了,是从数据集中奔雷就存在的目标的角度来看待问题。

PR曲线

我们希望Precision 和 Recall 都越高越好,但是实际情况下,我们不可能满足Precision 和 Recall 都很大。
比如在极端情况下,检测模型只检测出来一个目标,而且检测正确了,那么Precision为100%,但是Recall却很小;
但是如果我们把所有的结果都返回,那么Recall 就很大,但是Precison却很小。

在不同的场合,我们对 Precision 和 Recall 有不同的要求,可以结合PR曲线进行分析。

假设我们的数据集中有5个目标,目标检测模型检测出10个候选框,我们按照置信度的顺序对候选框进行排列。

在这里插入图片描述
第二列为候选框是否检测正确,也就是是否存在目标框和这个候选框的交并比大于阈值0.5。
第三、四列为当以同行的候选框的置信度为阈值时(大于这个阈值的候选框就预测为正样本),求取的Precision和Recall

第一行:
TP 为1 ; FN为4
FP 为0;

Precision = 1/1=1
Recall = 1/(1+4) = 0.2

第二行:
TP 为2 ; FN为3
FP 为0;

Precision = 2/2=1
Recall = 2/(2+3) = 0.4

第三行:
TP 为2 ; FN为3
FP 为1;

Precision = 2/(2+1)=0.67
Recall = 2/(2+3) = 0.4

下面的案例更加具体:
在这里插入图片描述

上面七张图每张图片的检测结果均已标出,绿色是Ground Truth,红色是检测到的对象(总共24个,A~Y)。对上面的所有检测结果按照confidence排名统计出一个表如下:

在这里插入图片描述

由上表以Recall值为横轴,Precision值为纵轴,我们就可以得到PR曲线。我们会发现,Precision与Recall的值呈现负相关,在局部区域会上下波动。(实际计算时,当Precision下降到一定程度时,后面就直接默认为0,不算了。):

在这里插入图片描述

AP

上图PR曲线下的面积就定义为AP,即:

在这里插入图片描述

上面就是AP的基本思想,实际计算过程中,PASCAL VOC,COCO比赛在上述基础上都有不同的调整策略。

Interpolated AP(PASCAL VOC 2008的评测指标)

在PASCAL VOC 2008中,在计算AP之前会对上述曲线进行平滑,平滑方法为,对每一个Precision值,使用其右边最大的Precision值替代。
在这里插入图片描述

具体示意图如下:

在这里插入图片描述
通过平滑策略,上面蓝色的PR曲线就变成了红色的虚线了。平滑的好处在于,平滑后的曲线单调递减,不会出现摇摆的情况。这样的话,随着Recall的增大,Precision逐渐降低,这才是符合逻辑的。实际计算时,对平滑后的Precision曲线进行均匀采样出11个点(每个点间隔0.1),然后计算这11个点的平均Precision。具体如下:(实际计算时,当Precision下降到一定程度时,后面就直接默认为0,所以最后6个点取0):

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在本例子中,

在这里插入图片描述这种计算方法也叫插值AP(Interpolated AP)。对于PASCAL VOC有20个类别,那么mAP就是对20个类别的AP进行平均。

Area under curve AUC,PASCAL VOC2010–2012评测指标

上述11点插值的办法由于插值点数过少,容易导致结果不准。一个解决办法就是内插所有点。所谓内插所有点,其实就是对上述平滑之后的曲线算曲线下面积。

这样计算之所以会更准确一点,可以这么看!原先11点采样其实算的是曲线下面积的近似,具体近似办法是:取10个宽为0.1,高为Precision的小矩形的面积平均。现在这个则不然,现在这个算了无数个点的面积平均,所以结果要准确一些。

在这里插入图片描述

示意图如下:

在这里插入图片描述
在本例中,

在这里插入图片描述

COCO mAP

COCO mAP使用101个点的内插mAP(Interpolated AP),此外,COCO还使用了不同IOU阈值,不同尺度下的AP平均来作为评测结果,比如AP @ [.5 : .95]对应于IoU的平均AP,从0.5到0.95,步长为0.05。下面是具体评价指标介绍:

在这里插入图片描述

再比如我们看一下YOLOv3的作者在论文中展示的在coco数据集上的实验结果

在这里插入图片描述
在这里插入图片描述
注:通常来说AP是在单个类别下的,mAP是AP值在所有类别下的均值。,值得注意的是,COCO的AP就是指mAP,没有刻意区分二者。

ImageNet目标检测评测指标

在ImageNet目标检测数据集里面则采用上面介绍的AUC方法来计算mAP。一般来说,不同的数据集mAP介绍方法会有一些细微差异。

————————

白话mAP
目标检测中的AP,mAP

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jindaxiaoooo/article/details/112493155

智能推荐

【Linux】进程_linux so 入口函数-程序员宅基地

文章浏览阅读527次。首先通过图右边的文件编译过程,生成 so 文件和可执行文件,放在硬盘上。下图左边的用户态的进程 A 执行 fork,创建进程 B,在进程 B 的处理逻辑中,执行 exec 系列系统调用。这个系统调用会通过 load_elf_binary 方法,将刚才生成的可执行文件,加载到进程 B 的内存中执行。_linux so 入口函数

大屏可视化之适配和布局_大屏还原ui适配宽度-程序员宅基地

文章浏览阅读5k次,点赞5次,收藏53次。前言在做可视化大屏的时候,我们首先要保证UI图的比例不变,例如16:9的UI图,但大屏的比例可能是2:1,很多时候大屏的比例往往很少能与UI图的比例一模一样的,这个时候我们就要利用公式换算来适配大屏。例如16:9的UI图:适配大屏当页面首次加载时,判断视口的宽高,如果视口的宽/高 > 16/9 则说明视口宽度比较设计图宽,实际的显示宽度应该等于视口的高度*16/9。如果视口的宽/高 < 16/9 则说明视口高度比设计图高,实际的显示宽度应该等于视口的宽度,显示高度应等_大屏还原ui适配宽度

centos7挖矿病毒(xmrig,javs)清理_xmrig miner怎么彻底清除-程序员宅基地

文章浏览阅读3.3k次。1. 查看计划任务ls /var/spool/cron删除异常任务其配置项。如果当前系统之前并未配置过计划任务,可以直接删除计划脚本目录即可:rm -rf /var/spool/cron/*2. 查看密钥认证文件删除木马创建的密钥认证文件,如果当前系统之前并未配置过密钥认证,可以直接清空认证存放目录:rm -rf /root/.ssh/*如果有配置过密钥认证,需要删除指定的黑客创建的认证文件即可。3. 修复 SSH 配置项一般默认脚本中进行修改的 PermitRootLogin、R._xmrig miner怎么彻底清除

产品经理如何与研发工程师相处?-- Julie Zhuo_研发是把想法变成现实的桥梁-程序员宅基地

文章浏览阅读358次。原作者:Julie Zhuo,前Facebook产品设计副总裁原文地址:https://medium.com/the-year-of-the-looking-glass/how-to-work-with-engineers-a3163ff1eced很久以前,我当过项目经理。之后,我成为了工程师。最近7年,我担任产品设计师。每天我都与这三个岗位的人一起工作。每天,我都能发现新的方式来理解这产品研发背后的三大支柱的职责、挑战和艺术。研发工程师是魔术师,他们只需要轻轻动几下手指调整像素,瞧,一个能运作的产_研发是把想法变成现实的桥梁

利用虚拟机实时迁移技术可以实现服务器的,VMware vMotion虚拟机的实时迁移技术概述...-程序员宅基地

文章浏览阅读3k次。vMotion可在主机之间迁移正在运行的虚拟机,因此进行计划内服务器维护时无需中断应用的使用。概览vSphere vMotion 能在实现零停机和服务连续可用的情况下将正在运行的虚拟机从一台物理服务器实时迁移到另一台物理服务器上,并且能够完全保证事务的完整性。 vMotion 是创建动态、自动化并自我优化的数据中心所需的关键促成技术。即时迁移正在运行的虚拟机轻松管理和安排实时迁移即时迁移正在运行的..._vmware 虚机 漫游 实时性

文档词频矩阵_对论文“从词向量到文档距离”的理解-程序员宅基地

文章浏览阅读184次。文章:From Word Embeddings To Document Distances研究背景在此之前,文档的两种最常见的表述方式是通过袋词(BOW)或词频-逆文档频率(TF-IDF)。但是无法解决近义词之间的距离问题,即是BOW和TF-IDF无法表达词语的含义。由于word2vec的出现,近义词的问题解决了,通过word2vec将词语表示成向量,用两向量的距离表示两词语的距离可以很好的区分“..._文档词频矩阵

随便推点

java netty html,Netty框架的理解和简单使用-程序员宅基地

文章浏览阅读93次。Netty是什么Netty是一个高性能的异步的,基于事件驱动的NIO框架,它是JBOSS提供的一个开源框架,用以快速开发高性能,高可靠性的网络服务器和客户端程序。netty的架构 Netty官网https://netty.io/index.html 这里可以找到jar包或者maven依赖类似框架Apache 的 Minajava和nettyJava使用netty,建议jdk版本为1.5以后的,这是..._netty-codec-4.1.33.final.jar作用

Dubbo框架、用户注册、单点登录系统、用户登出、购物车系统、设置拦截器,实现用户权限校验、ThreadLocal、订单系统模块_dubbo登录登出-程序员宅基地

文章浏览阅读1.2k次。1、Dubbo框架2、重构京淘项目:JT-WEB/JT-SSO3、用户注册4、单点登录系统5、用户登出/完成用户数据6、封装cookie工具7、实现商品信息远程调用8、购物模块:jt-cart,CRUD操作_dubbo登录登出

php跨域问题怎么解决办法,跨域问题的解决方案 php-程序员宅基地

文章浏览阅读107次。本文通过设置Access-Control-Allow-Origin来实现跨域。例如:客户端的域名是client.runoob.com,而请求的域名是server.runoob.com。如果直接使用ajax访问,会有以下错误:1 XMLHttpRequest cannot load http://server.runoob.com/server.php. No ‘Access-Control-All..._php火狐跨域问题

《C语言程序设计》第五版谭浩强课后答案 第九章《用户自己建立数据类型​》习题答案 (大一大二、考研、计算机二级必看)_c程序设计第五版谭浩强课后答案第九章-程序员宅基地

文章浏览阅读3k次,点赞7次,收藏29次。第九章《用户自己建立数据类型​》习题答案 1.定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。2.写一个函数days,实现第1 题的计算。由主函数将年、月、日传递给days函数,计算后将日子数传回主函数输出。3.编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score[3],用主函数输人这些记录,用print函数输出这些记录。4.在第3题的基础上,编写一个函数input,用来输人5个学生的数据记录。5.有10个学生,_c程序设计第五版谭浩强课后答案第九章

安装mysql6.3步骤_Mac下安装mysql5.7.18的详细步骤-程序员宅基地

文章浏览阅读65次。一、工具我们需要现在两个工具:MySQL 服务器(mysql-5.7.18)、MySQL GUI(mysql-workbench)MySQL 服务器包含了MySQL 的整个运行环境,安装了它就能通过命令行让 MySQL 运行的很好了。当然如果你不喜欢命令行,可以下载一个 GUI工具来管理 MySQL。GUI的功能很丰富,包括权限设置,创建数据库、创建表格等等。二、安装1.MySQL 服务器下载地址..._mysql workbench 6.3安装

Unity3D之AR开发(一)_关于unity3dar-程序员宅基地

文章浏览阅读1.6k次。第一种方法:高通AR(Vuforia) Vuforia插件下载地址(官网):https://developer.vuforia.com/downloads/sdkVuforia实现图片识别1、新建项目,导入Vuforia插件2、将默认摄像机删除,将Vuforia/Prefabs中的ARCamera和ImageTarget预置体拖到场景中。并进行调整3、将要识别的图片..._关于unity3dar

推荐文章

热门文章

相关标签