目标检测mAP的概念及公式详解

作者:Bubbliiiing 时间:2022-05-24 17:55:57 

学习前言

在Github上我们可以看到许多模型,他们都有mAP值的评价指标,如下图所示:

目标检测mAP的概念及公式详解

这到底是个啥呢?我查了好久的资料…

什么是TP、TN、FP、FN

TP的英文全称为True Positives,其指的是被分配为正样本,而且分配对了的样本,代表的是被正确分类的正样本。

TN的英文全称为,其指的是被分配为负样本,而且分配对了的样本,代表的是被正确分类的负样本。

FP的英文全称为False Positives,其指的是被分配为正样本,但分配错了的样本,代表的是被错误分类的负样本。

FP的英文全称为False Negatives,其指的是被分配为负样本,但分配错了的样本,代表的是被错误分类的正样本。

目标检测mAP的概念及公式详解

什么是Precision和Recall

Precision指的是精度

Recall指的是召回率

两个分别代表什么意思呢?

目标检测mAP的概念及公式详解

Precision的具体含义是:分类器认为是正类并且确实是正类的部分占分类器认为是正类的比例

目标检测mAP的概念及公式详解

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。

目标检测mAP的概念及公式详解

目标检测mAP的概念及公式详解

(此处Recall所用的TP+FN = N(一张图片所具有的N的目标,所有确实是正类的数量))
这样得到S个recall和precision点,便画出PR曲线了。

通过PR曲线便可以得到AP值。

而mAP就是对所有的AP值进行求平均即可。

来源:https://blog.csdn.net/weixin_44791964/article/details/102414522

标签:目标检测,mAP,概念,公式
0
投稿

猜你喜欢

  • 详解PyCharm+QTDesigner+PyUIC使用教程

    2022-09-24 07:56:20
  • php基于websocket搭建简易聊天室实践

    2023-11-17 12:45:42
  • Python爬虫:Request Payload和Form Data的简单区别说明

    2021-11-14 14:01:24
  • Python爬虫实现“盗取”微信好友信息的方法分析

    2023-01-16 09:37:33
  • css命名及书写规范大全

    2008-05-24 08:52:00
  • MySQL如何选择合适的索引

    2024-01-28 05:05:54
  • Python Mysql自动备份脚本

    2024-01-16 00:57:46
  • 利用OBJECT_DEFINITION函数来代码存档

    2009-01-20 15:34:00
  • JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决

    2023-09-23 19:39:47
  • MySQL死锁的产生原因以及解决方案

    2024-01-26 16:11:40
  • python3读取excel文件只提取某些行某些列的值方法

    2021-10-19 09:20:09
  • Python concurrent.futures模块使用实例

    2023-10-06 07:30:22
  • 用jquery写的自动提示效果

    2008-06-17 14:27:00
  • Mysql+Keepalived实现双主热备方式

    2024-01-27 10:23:34
  • 详解利用上下文管理器扩展Python计时器

    2023-11-07 09:33:48
  • Oracle7.X 回滚表空间数据文件误删除处理方法

    2010-07-28 12:54:00
  • Python爬虫之网页图片抓取的方法

    2021-12-19 00:47:20
  • python Socket之客户端和服务端握手详解

    2021-11-29 18:48:21
  • javascript验证上传文件的类型限制必须为某些格式

    2024-04-18 09:36:34
  • Python第三方库h5py_读取mat文件并显示值的方法

    2022-06-24 15:48:57
  • asp之家 网络编程 m.aspxhome.com