目标检测中的MAP(无抄袭)

2023-11-08

(个人理解,如果写的有问题可以留言交流)

转载请标明出处!!!!!谢谢!

参考链接(内含代码):https://github.com/rafaelpadilla/Object-Detection-Metrics

人家写的比我好,我只是用中文把理论小总结一下,懒得看英文的可以看一下我的。

1.基础定义

a.交并比

真实框:绿色的;检测框:红色的。

b.True Positive(TP), False Positive(FP), False Negative(FN) and True Negative(TN)

TP:检测框中正确的,(且IOU大于阈值的)(针对map的计算而言需要考虑IOU)

FP:检测框中错误的,(IOU小于阈值的)

FN:真实正确的框,没有被检测到的

TN:正确的没有检测到的框,未被检测到的负类。在目标检测中,有许多可能的边界框不应该在图像内被检测到,这些框就是TN。

c.准确率(precision)和召回率(recall)

准确率:

TP+FP就是所有的检测框

召回率:

TP+FN就是所有的真实框

2.MAP计算过程

举例说明:7张图,15个真实框(绿色),24个检测到的框(红色),每个框有它的置信度,并给它从A开始定义

a.交并比,设置阈值,分出TP、FP

计算人工框和测出框的交并比,这里阈值(score threshold)设定为30%,大于30%的为TP,其他为FP。

注:不是由confidences而来的!

这里有同一个真实框,对应好几个测试框的情况,此时选取IOU大的,其他删除。

 

c.算出准确率和召回率

准确率(Precision)=TP/TP+FP

召回率(recall)=TP/TP+TN=TP/所有真实框=TP/15

由自信度从大到小排,个人理解,原因是自信度越大是TP的概率就高。

Acc TP:累计的TP   Acc FP:累计的FP

d.给出Precision x Recall 曲线图

显然随着我们选定的样本越来也多,recall一定会越来越高,而precision整体上会呈下降趋势。把recall当成横坐标,precision当成纵坐标,即可得到常用的precision-recall曲线。

e.计算单标签图像分类的AP(average precision)

原因:个人认为人们觉得只有准确率和召回率没有说服力,所以有了AP。

1.VOC2010前,我们选区Recall>=0,0.1,0.2,...,0.9,1的11处Percision的最大值:1,0.6666,0.4285,0.4285,0.4285,0,0,0,0,0,0。此时AP=2.9521/11=0.2684

2.VOC2010及以后的方法,对于Recall>=0,0.0666,0.1333,0.2,0.2666,0.3333,0.4,0.4666,仍然选取Percision对应点的最大值:1,1,0.6666,0.4285,0.4285,0.4285,0.4285,0.3043,然后求对应曲线的面积。

蓝色线:实际Precision  红色线:我们所选取的最大值

此时AP为红色曲线的面积,可以堪称以下四个面积的和

f.计算MAP(mean average precision)

使用情况:多标签图像分类(Multi-label Image Classification)

mAP:每一个类别都计算出AP,然后再计算AP的平均值就是mAP

g.问题

我也有一些小问题没有搞明白,希望如果有大神看到,能帮我在评论去解释一下~谢谢~

1.看到好多关于MAP的帖子里,recall都能到1,甚至有的帖子中写道recall肯定能到1,我不太理解,我们最实验最多就是0.8、0.9多,再好也不会到1的呀。

2.标签上的分数,也就是confidences,怎么来的呀?

 

 

欢迎评论区交流~~~~谢谢~~~~~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

目标检测中的MAP(无抄袭) 的相关文章

  • 检查蓝牙是否连接

    检查蓝牙是否连接 private BroadcastReceiver mBlueToothReceiver new BroadcastReceiver Override public void onReceive Context conte
  • Scala中的 方法map和flatMap

    map操作 map操作是针对集合的典型变换操作 它将某个函数应用到集合中的每个元素 并产生一个结果集合 比如 给定一个字符串列表 我们可以通过map操作对列表的中每个字符串进行变换 让每个字符串都变成大写字母 这样变换后就可以得到一个新的集
  • 编程经验分享(寻找map中的max与min)——力扣·百战炼磨(一)

    2021 4 14 力扣第47场双周赛 虚拟竞赛 第三题 所有子字符串美丽值之和 力扣 1781 以下经验来自于对该题目的解决 一个字符串的 美丽值 定义为 出现频率最高字符与出现频率最低字符的出现次数之差 比方说 abaacc 的美丽值为
  • vue-cli3.0引入高德3d动画效果方法一:

    前言 因为两个方法代码量都特别大 这里分2个页面详细说一下 这个页面是方法一 包括vue cli3 0中使用和html中使用两种示例 注意 这里有想看另一种方法的童鞋请点入口 https blog csdn net qq 41619796
  • arcgis 发布wmts服务,弹出“服务器未做好发布准备”错误,解法。

    arcgis 发布wmts服务 总弹出 服务器未做好发布准备 之后 到arcgis server manage中找到服务发布工具启动 1 访问并登录管理器 http localhost 6080 arcgis manager 2 找到sys
  • java 遍历map 方法 集合 五种的方法

    package com jackey topic import java util ArrayList import java util HashMap import java util Iterator import java util
  • Java Map集合知识点整理(疯狂Java讲义读书笔记)

    JDK文档 http tool oschina net apidocs apidoc api jdk zh Map Map用于保存具有映射关系的数据 因此Map集合里保存着两组值 一组值用于保存Map中的Key值 另一组值用于保存Map中的
  • 深入浅出C++ ——map类深度剖析

    文章目录 一 map类介绍 二 map的使用 三 multimap 一 map类介绍 map是 C STL 中提供的容器 map是数学上的映射 其具有唯一性 即每个pair key value 只出现一次 而 multimap 则是可重复映
  • 内网离线地图

    1 第一种瓦片数据源 MapDownloader 链接 https pan baidu com s 1Hz HcA5QhtGmjLNezC pQ 提取码 6lek GISMysqlToLocalFile 链接 https pan baidu
  • 详解map、set、multimap、multiset的使用

    作者 阿润菜菜 专栏 C 目录 前言 set multiset的使用 1 set 2 multiset 3 什么时候应该使用multiset而不是set map multimap的使用 1 map 2 multimap 3 什么时候应该使用
  • 根据地理信息获取经纬度

    同步坐标 function synchronizationCoordinate var url http maps google com maps api geocode json address encodeURIComponent va
  • C++ lambda自定义map,set,vector,list 排序规则

    Map和Set本质红黑二叉树 插入数据时可以自定义比较算法 list和vector链表插入时无需比较 所以一般全部插入完成后调用sort 核心代码 typedef struct MyStudent std string name int g
  • 微信小程序开发——map地图组件,定位,并手动修改位置偏差。

    环境搭建 注册 获取APPID 没有这个不能真鸡调试 下载微信web开发者工具 挺多bug 将就用 打开微信web开发者工具 扫码登录 新建小程序 输入APPID 勾选创建quick start项目 工程结构 可以看到工程根目录中有个app
  • C++基础知识 - map和multimap容器

    map multimap的简介 map是标准的关联式容器 一个map里存储的元素是一个键值对序列 叫做 key value 键值对 它提供基于key快速检索数据的能力 map中key值是唯一的 集合中的元素按一定的顺序排列 元素插入过程是按
  • 怎样为std::map的自定义key提供比较操作(一)

    stl的关联容器 map set 的key一般要求提供 lt 比较操作 假设我们有一个结构SomeKey struct SomeKey int a b 要想以SomeKey作为std map的key 需要为这个结构提供operator lt
  • arcgis10.2破解版下载及其详细教程;;;附带10.1-10.6的破解版,没有教程

    1 arcgis10 2破解版 https blog csdn net bigemap article details 81131840 2 arcgis10 1 10 5破解版安装包 https blog csdn net e wsq a
  • 统计和——前缀和

    题目大概 给定一个长度为n的整数数组和一个整数k 你需要找到该数组中和为k的连续子数组的个数 测试样例 输入 5 3 1 1 2 1 1 输出 2 思路1 利用for循环暴力枚举子数组 并且求和 计数 时间复杂度为O n 3 如果数据大于了
  • 2020年团体程序设计天梯赛-总决赛 L2-2 口罩发放

    L2 2 口罩发放 25分 输入格式 输出格式 输入样例 输出样例 样例解释 题解 L2 2 口罩发放 25分 为了抗击来势汹汹的 COVID19 新型冠状病毒 全国各地均启动了各项措施控制疫情发展 其中一个重要的环节是口罩的发放 某市出于
  • 深度学习中的IoU概念理解

    1 什么是IoU Intersection over Union IoU是一种测量在特定数据集中检测相应物体准确度的一个标准 IoU是一个简单的测量标准 只要是在输出中得出一个预测范围 bounding boxex 的任务都可以用IoU来进
  • Java实体类转Map、Map转实体类

    1 创建entity User java package com jeff entity public class User private String userName private String password private I

随机推荐

  • C++之extern和static用法和区别

    目录 声明和定义的区别 关键字extern 作用 用法总结 关键字static 全局变量和全局静态变量区别 局部静态变量 静态函数 声明和定义的区别 变量定义 用于为变量分配存储空间 还可为变量指定初始值 程序中 变量有且仅有一个定义 变量
  • C语言读取写入CSV文件基础入门篇

    什么是CSV 大量C语言项目课设 小游戏源码 压 缩 包 免 费 下 载 链 接 如 下 c语言项目课设小游戏源码资料压缩包 zip C文档类资源 CSDN下载c语言项目课设小游戏源码资料压缩包 zipc语言项目课设小游戏源码资料压缩包 z
  • 数据驱动的数字化转型:从流程驱动到数据驱动

    以下文章来源于凯哥讲故事系列 作者凯哥 数字化时代已经到来 1996年的时候 Being Digital 的作者Negroponte就提出数字化生活的概念 而20年以后的今天 我们已经进入了数字化的生活 移动互联网 物联网 手机 各种社交媒
  • 刷脸支付无一例外地建构与完善起来

    刷脸支付均采用的是3D人脸识别技术 这种技术具有一项至关重要的功能 活体检测 即系统摄像头在识别人脸是否为本人的同时 还能检验是否有人利用照片等手段冒充用户 由此封闭了假体攻击的空间 正如支付工具的迭代总是高出人们的预估一样 技术的进化对于
  • 小程序配置网络请求@escook/request-miniprogram

    由于平台限制 小程序项目不支持axios 原生wx request API功能较为简单 不支持拦截器等功能 所以使用 escook request miniprogram第三方包发起网络数据请求 配置步骤 官方文档 https www np
  • 浅谈.NET语言开发应用领域

    NET语言是一种跨平台的开发框架 适用于各种应用程序的开发 以下是一些常见的 NET语言开发应用领域 桌面应用程序开发 使用 NET框架开发的桌面应用程序可以在Windows操作系统上运行 包括Windows Forms和WPF 这些应用程
  • 智能指针之weak_ptr06

    一 weak ptr 看名字就知道 他是一个弱引用 他的存在是为了辅助shared ptr的循环引用问题 它不占用引用数 只能通过shared ptr或者weak ptr构造赋值 它没有重载 和 gt 运算符 因此不可以直接通过 weak
  • hvv 文件上传和文件包含考点

    天眼如何判断文件上传漏洞是否成功 数据包分析 观察客户端请求数据 是否包含webshell流量特征 观察服务器返回信息 是否有 上传成功 或 success upload 等信息提示 尝试寻找上传的文件 访问上传的文件看是否存在 查看文件上
  • Java的数据类型及变量

    一 变量 内存存储的是运行中程序的数据 eg 我有10块钱 买早餐花了6元 问我现在还有多钱 计算机 1 存储数据 2 CPU取出来 参与运算 3 结果更新内存 变量的本质 内存中的一个存储空间 另一种说法 程序运行过程中 其值可以发生改变
  • Java定时任务技术分析

    从零打造项目 系列文章 工具 比MyBatis Generator更强大的代码生成器 ORM框架选型 SpringBoot项目基础设施搭建 SpringBoot集成Mybatis项目实操 SpringBoot集成MybatisPlus项目实
  • 商汤提出解偶检测中分类和定位分支的新方法TSD,COCO 51.2mAP

    目前很多研究表明目标检测中的分类分支和定位分支存在较大的偏差 论文从sibling head改造入手 跳出常规的优化方向 提出TSD方法解决混合任务带来的内在冲突 从主干的proposal中学习不同的task aware proposal
  • IPD简介

    目录 IPD是什么 IPD流程 做正确的事 1 市场调研 2 需求管理 正确地做事 第一阶段 概念阶段 第二阶段 计划阶段 第三阶段 开发阶段 第四阶段 验证阶段 第五阶段 发布阶段 第六阶段 生命周期阶段 IPD与项目管理 项目管理 IP
  • 全程软件测试(十三):静态百盒测试-代码检查/走查——读书笔记

    代码检查与走查是人工测试的两种主要方式 本次主要介绍两种方式的相似点 不同点将在后面详细介绍 两种方式的相似点如下 1 二者均需要建立小组来研读特定程序 使用这两种方式的参与者都需要完成准备工作 准备工作是参加 头脑风暴 会议 会议的主旨是
  • uni-app 环境配置,uni.request封装,接口配置,全局配置,接口调用的封装

    1 环境配置 可参考uni 官网的环境配置 common文件夹下新建config js let url config if process env NODE ENV development 开发环境 url config https com
  • Mybatis-Plus高级查询LambdaQueryWrapper&QueryWrapper

    目录 前言 Wrapper 查询构造器 查询条件 前期准备 查询条件 allEq eq ne gt ge lt le between notBetween like notLike likeLeft likeRight isNull 空值查
  • Python3 使用psycopg2模块 批量写入数据到PostgreSQL数据库(最强输出速度,单机数据库3000W数据写入最多180秒)

    Python3 使用psycopg2模块 批量写入数据到PostgreSQL数据库 最强输出速度 单机数据库3000W数据写入最多180秒 1 本文知识点 1 将string或者list类型的数据转换为IO缓冲区中的str类型 指定格式 2
  • C++中对象创建与释放

    创建对象有以下四种形式 include
  • 一毛一条的接码平台_搭建一套基于 Groovy 规则引擎的业务风控平台

    黑灰产在互联网领域盛行 从反面推动了业务安全反欺诈领域的快速发展 互联网SAAS服务产品响应市场不断创新 也决定了业务风险的多样性 笔者所在财税领域常见的非财税业务互联网风控场景包括登陆注册 短信接口 营销活动 渠道引流推广 交易和支付等
  • 程序员如何逆袭,达到财富自由?

    程序员逆袭达到财富自由有以下几条路 1 加入独角兽公司 拿到大量期权 并坚守到上市套现 2 找到靠谱的创业公司和诚信的创始人 拿到百分比左右的股份 坚守到出售或者上市 3 通过技术创业 公司出售或者上市 4 建立影响力 通过技术咨询 自媒体
  • 目标检测中的MAP(无抄袭)

    个人理解 如果写的有问题可以留言交流 转载请标明出处 谢谢 参考链接 内含代码 https github com rafaelpadilla Object Detection Metrics 人家写的比我好 我只是用中文把理论小总结一下 懒