人工智能学习07--pytorch19--目标检测:常见指标(mAP计算+coco评价标准)

news/2024/7/10 1:49:40 标签: 人工智能, 目标检测, 学习

怎样才算正确检测到一个目标?

在这里插入图片描述

  • 什么是IOU:
    https://blog.csdn.net/qq_51831335/article/details/125719420
    在这里插入图片描述
    在这里插入图片描述

mAP计算方法:

在这里插入图片描述
假设针对某一类别的AP情况
TP:预测正确的边界框个数。预测边界框与GT-box的IOU>0.5
FP:假阳性

FN就是 把检测对象检测为背景的 那些检测框 的数量,也就是一些被检测错误(F)为负样本(N)的样本,它们本来应该被检测为正样本。

FN:漏检
在这里插入图片描述
↑只检测出了一个目标:
TP=1
FP=0
Precision=1/(1+0)=1
所以仅通过Precision无法判断模型好坏
在这里插入图片描述↑假设有5个目标,网络预测出了50个目标(包括需要检测的这5个目标)。
TP=真实目标的个数
FN=0,因为没有漏检
召回率Recall = TP/(TP+FN) =100%
所以单靠召回率也不行

引入AP,进一步求mAP。
因为是针对每一个类别去分别求的AP值。一个类别对应一个AP值。但是在目标检测中有多个类别,所以对多个类别取平均值,就得到了mAP

在这里插入图片描述
累加训练集中的目标个数(2)
通过列表表示检测到的目标信息(按照Confidence降序排列表格)
Confidence:预测这个目标的概率
OB:是否是TP(是否是想要检测的目标)
(弹幕:
若一个 GT 有多个预测边框,则认为 IOU 最大且大于等于 0.5 的预测框标记为 TP,其他的标记为 FP,即一个 GT 只能有一个预测框标记为 TP


因为预测的两个边界框预测的目标都是第一只猫,所以ID都是1,预测给出的数值是置信度,不是IOU,IOU是预测框与真实框的交并比

在这里插入图片描述
针对confidence取不同阈值所得到的Precision和Recall的信息。
1.将Confidence设置到0.98,大于等于0.98的目标才算正确匹配。
2.只检测到了一个目标(绿色,TP=1),所以不存在假阳性(FP=0)。总目标个数是7,所以漏检了6个(FN=6)。
Precision=1/(1+0)=1
Recall=1/(1+6)=1/7

将Confidence阈值调低:
在这里插入图片描述
FN=7-2=5

在这里插入图片描述
False:并不是想要检测的目标。FP=1。
FN=7-4=3.

不断调整阈值(因为这样可以使得recall值一定是逐渐增大的),得到↓
在这里插入图片描述
可以以Recall为横坐标,Precision为纵坐标,得到P-R曲线。
对于横坐标Recall,需要滤除一些重复信息(保存Precision最大的那个)。
在这里插入图片描述
具体方法见视频。(目的就是求面积,就算不规则的也是类似画梯形去近似)
最后求得的0.6694就是对应猫这个类别的AP值。可以用同样的方法求得别的类别是AP值,最终一起求均值得到mAP。

coco评价标准:

使用目标检测网络训练后,在验证集中得到的coco评价列表
在这里插入图片描述
比较常见的两个目标检测数据集:pascal voc、coco
在这里插入图片描述
上面COCO评价标准中每一条数据的含义:
AP:
在这里插入图片描述
AP Across Scales:
针对小面积、中面积、大面积的AP
可以了解到目标检测网络对不同尺度目标的检测效果。
在这里插入图片描述
AR: recall查全率
在这里插入图片描述
第三个:
最多预测100个目标(检测框)。通过限定预测的值,可以从下图看出,大约64%的目标被检测出来。
在这里插入图片描述
AR Across Scales:
对应不同目标尺度的AR值。
在这里插入图片描述
建议看的:
在这里插入图片描述
如果对目标准确率较高就看IoU=0.75的哪个。
对小目标检测要求较高:
在这里插入图片描述
如果这两个差距很小的话,可以减少检测的目标个数,可以提高一些目标检测的效率。
在这里插入图片描述


http://www.niftyadmin.cn/n/369928.html

相关文章

计算机网络面试八股文

网络分层结构 计算机网络体系大致分为三种,OSI七层模型、TCP/IP四层模型和五层模型。一般面试的时候考察比较多的是五层模型。最全面的Java面试网站:最全面的Java面试网站 五层模型:应用层、传输层、网络层、数据链路层、物理层。 应用层&a…

idea不识别yml文件了

添加上这两个就好了

你所不知道的 数据在内存中储存 的来龙去脉

那么好了好了,宝子们,今天给大家介绍一下 “数据在内存中储存” 的来龙去脉,来吧,开始整活!⛳️ 一、数据类型的介绍 (1)整型和浮点型: (2)其他类型…

Web基础 ( 七 ) 变量

4.3.变量实例及内置对象 4.3.1.string 字符串 // string var a "abc" console.log( typeof(a) ) //stringvar b efg console.log( typeof b ) //stringvar c a>b console.log( c ) // 字符串比较按字母顺序console.log("abc\nefg") // \n 转义…

Web基础 ( 八 ) 内置对象

4.3.8.Error try{ for(var i0;i<3;i){if(i2) throw new Error("i2");} }catch(e){console.error(e); }finally{console.log("错就错了吧"); }4.3.9.Math 全局对象&#xff0c;直接使用 console.log("Math.PI : ", Math.PI) // 圆…

哈希表(Hash Table)原理和代码

哈希表&#xff08;Hash Table&#xff09;是一种高效的数据结构&#xff0c;用于存储键-值对&#xff08;Key-Value pairs&#xff09;。它通过将键映射到数组的索引位置来实现快速的插入、查找和删除操作。哈希表的核心原理是使用哈希函数将键转换为对应的数组索引&#xff0…

【网络】- TCP/IP四层(五层)协议 - 网际层(网络层) - 路由控制

目录 一、概述二、路由表(Routing table)三、最长匹配、默认路由、特定主机路由四 、IP数据报路由过程五、路由聚合 一、概述 网际协议 IP 大致分为三大作用模块&#xff0c; ①IP寻址、 ②路由&#xff08;最终节点为止的转发&#xff09; 、③IP分包与组包。前面两篇文章讨论…

jacoco增量覆盖率平台开发

先聊聊做这个平台的意义&#xff0c;从项目管理角度来说&#xff0c;测试说项目测试完成&#xff0c;该如何证明呢&#xff1f;一般情况下我们进行验收时没什么问题就算完成了&#xff0c;但是实际上测试很多情况并没有考虑到。所以该平台可以反哺测试的测试用例&#xff0c;让…