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

 更新时间:2022年05月04日 09:37:40   作者:Bubbliiiing  
这篇文章主要为大家介绍了我们在进行目标检测时需要用到的mAP概念及公式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

学习前言

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

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

什么是TP、TN、FP、FN

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

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

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

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

True 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值进行求平均即可。

以上就是目标检测mAP的概念及公式详解的详细内容,更多关于目标检测mAP公式的资料请关注脚本之家其它相关文章!

相关文章

  • Git本地仓库基本操作及技巧

    Git本地仓库基本操作及技巧

    这篇文章主要介绍了Git本地仓库基本操作及一些小技巧,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 前端常用的Chrome调试技巧最全汇总

    前端常用的Chrome调试技巧最全汇总

    作为一个前端开发者,我们每时每刻都跟浏览器打交道,在开发的过程中,我们需要不断的在浏览器中查看编写的成果,合理使用浏览器的控制台功能,这篇文章主要给大家介绍了关于前端常用Chrome调试技巧的相关资料,需要的朋友可以参考下
    2024-09-09
  • wap开发中如何有效的利用缓存减少消息的传送量

    wap开发中如何有效的利用缓存减少消息的传送量

    由于WAP信道带宽的限制,我们在编写WAP应用的时候都希望最大限度地减少消息的传送量。
    2010-06-06
  • Git基础学习之文件删除操作命令详解

    Git基础学习之文件删除操作命令详解

    这篇文章主要为大家详细介绍了Git基础学习中的文件删除操作命令,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解一下
    2022-10-10
  • VSCode让终端默认在当前文件的路径启动(方法推荐)

    VSCode让终端默认在当前文件的路径启动(方法推荐)

    这篇文章主要介绍了VSCode中如何让终端默认在当前文件的路径启动,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 通过自定义字段重新排序 WordPress 文章方法

    通过自定义字段重新排序 WordPress 文章方法

    在本文中,我将向您展示如何通过自定义字段更改文章的顺序。WordPress 中文章的默认顺序基于发布日期,并按时间倒序显示。这意味着它将在顶部显示最新的文章。
    2021-09-09
  • 风中叶老师讲述的学习方法(学习编程的朋友需要看)

    风中叶老师讲述的学习方法(学习编程的朋友需要看)

    风中叶老师讲述的学习方法(学习编程的朋友需要看),希望大家能按照说明的那样,自己多动手动脑
    2008-10-10
  • git修改已commit的注释信息实现

    git修改已commit的注释信息实现

    这篇文章主要介绍了git修改已commit的注释信息实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • VSCode 安装 Copilot 详细过程和实例代码(最新推荐)

    VSCode 安装 Copilot 详细过程和实例代码(最新推荐)

    Copilot 作为一款 AI 辅助编程工具,可以极大地提高开发效率,让编程变得更加轻松愉快,在实际开发过程中,我们要注意审查和测试生成的代码,确保其符合项目需求和标准,这篇文章主要介绍了VSCode 安装 Copilot 详细过程和实例,需要的朋友可以参考下
    2024-05-05
  • 关于vs2019安装不了扩展问题的解决方法

    关于vs2019安装不了扩展问题的解决方法

    这篇文章主要介绍了关于vs2019安装不了扩展问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论