目标检测mAP的概念及公式详解
作者:Bubbliiiing 发布时间:2022-05-24 17:55:57
学习前言
在Github上我们可以看到许多模型,他们都有mAP值的评价指标,如下图所示:
这到底是个啥呢?我查了好久的资料…
什么是TP、TN、FP、FN
TP的英文全称为True Positives,其指的是被分配为正样本,而且分配对了的样本,代表的是被正确分类的正样本。
TN的英文全称为,其指的是被分配为负样本,而且分配对了的样本,代表的是被正确分类的负样本。
FP的英文全称为False Positives,其指的是被分配为正样本,但分配错了的样本,代表的是被错误分类的负样本。
FP的英文全称为False Negatives,其指的是被分配为负样本,但分配错了的样本,代表的是被错误分类的正样本。
什么是Precision和Recall
Precision
指的是精度
Recall
指的是召回率
两个分别代表什么意思呢?
Precision的具体含义是:分类器认为是正类并且确实是正类的部分占分类器认为是正类的比例
Recall的具体含义是:分类器认为是正类并且确实是正类的部分占所有确实是正类的比例。
什么是mAP
说到mAP,也要说到,AP是什么。
说到AP,就要联系到上一部分所说的Precision和Recall。
对于目标检测而言任务,每一个类都可以计算出其Precision和Recall,通过合理的计算,每个类都可以得到一条P-R曲线,曲线下的面积就是AP的值。
假设存在M张图片,对于其中一张图片而言,其具有N个检测目标,其具有K个检测类,使用检测器得到了S个Bounding Box(BB),每个BB里包含BB所在的位置以及对于K个类的得分C。
利用BB所在的位置可以得到与其对应的GroundTruth的IOU值。
1、步骤1:
对于每一个类I而言,我们执行以下步骤:
对所有的BB,计算BB所在的位置与其最对应的GroundTruth的IOU值,,记为MaxIOU,此时再设置一个门限threshold,一般设置为0.5。
当MaxIOU<threshold,认为该预测框无真实框与其对应,此时可以记录其属于False Positive,使其FPi = 1,并记录其属于类I的分数C。
当MaxIOU>threshold,认为该预测框与该真实框最对应;
此时再分两类:
当该框的类别属于类型I时,此时可以记录其属于True Positive,使其TPi = 1,并记录其属于类I的分数C。
当该框的类别不属于类型I时,此时可以记录其属于False Positive,使其FPi = 1,并记录其属于类I的分数C。
2、步骤2:
由步骤1我们可以得到K * S个分数C 和 TP 和 FP的元祖,在python中,我们可以将其构成形如(C,TP, FP)的元组,对这K * S个元祖按照得分C进行排序。
3、步骤3:
将得分从大到小排序后进行截取,截取得分最大的S个,通过该步骤可以获得每个框是否成功对应了自己所属的类,计算每次截取所获得的recall和precision。
(此处Recall所用的TP+FN = N(一张图片所具有的N的目标,所有确实是正类的数量))
这样得到S个recall和precision点,便画出PR曲线了。
通过PR曲线便可以得到AP值。
而mAP就是对所有的AP值进行求平均即可。
来源:https://blog.csdn.net/weixin_44791964/article/details/102414522


猜你喜欢
- 1.引言热力图的想法很简单,用颜色替换数字。现在,这种可视化风格已经从最初的颜色编码表格走了很长一段路。热力图被广泛用于地理空间数据。这种图
- 什么是闭包?简单说,闭包就是根据不同的配置信息得到不同的结果。再来看看专业的解释:闭包(Closure)是词法闭包(Lexical Clos
- 前言我们在开发后台项目常常会遇到一个情况,功能模块列表数据导出Excel功能,但列表中某个字段无法通过Sql联表查询,且一次性查询再匹对也不
- 前言目前,许多运动检测技术都是基于简单的背景差分概念的,即假设摄像头(视频)的曝光和场景中的光照条件是稳定的,当摄像头捕捉到新的帧时,我们可
- 引言“ 这是MySQL系列笔记的第十二篇,文章内容均为本人通过实践及查阅资料相关整理所得,可用作新手入门指南,
- 1、编写注意(1)给函数指定描述名。(2)函数名称只包括小写字母和下划线。(3)每一个函数都应该包含简要说明其功能的注释,注释应该紧跟在函数
- 1、最简单的调用方式 直接写到html的body标签里面,如: <html> <body onload="fun
- 前端Vue 8080端口,后端Node.js 8085端口 主要记录下前后端不同端口遇到的问题1、写服务器端程序,我的在(node_prox
- 在Python2.x中表示八进制的方式有两种:以'0'开头和以'0o'(字母o)开头: Pyth
- 一、实验名称建立聊天工具二、实验目的掌握Socket编程中流套接字的技术,实现多台电脑之间的聊天。三、实验内容和要求vii.掌握利用Sock
- 正则表达式中的符号例子 | 是或的关系,只要存在就会被捕获匹配到的数据只按字符串顺序返回,而不是按照匹配规则返回In [18]:
- # 建表CREATE TABLE `T_TEST` ( `Id` int(11) NOT NULL AUTO_INCREMENT
- 例一:#!/usr/bin/pythonimport sysimport reif __name__=
- 现在使用Vscode编码的人越来越多,凭借着免费,开源,轻量,跨平台的特点收货了一大批忠实粉丝最近因项目需要开始使用
- Oracle游标分为显示游标和隐式游标。 显示游标(Explicit Cursor):在PL/SQL程序中定义的、用于查询的游标称作显示游标
- 1、简介这篇博客将会非常基础,如果有MySQL经验的可以跳过,写这篇博客的原因是给初学者看的。下面将会讲解如何使用select查看指定表的单
- 主要记录两种不同的beam search版本版本一使用类似层次遍历的方式进行搜索,用队列进行维护,每次循环对当前层的所有节点进行搜索,这些节
- 近日在项目中遇到一个问题: 如何在报表中统计JSON格式存储的数据?例如有个调查问卷记录表,记录每个问题的答案。 其结构示意如下(横表设计)
- 1、安装pip install mediapipe2、代码实现# -*- coding: utf-8 -*-""&quo
- 什么是pyc文件pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有