目标检测常用评估指标(metrics)

devtools/2024/12/24 22:02:01/
  • 1、基本概念
    • 真正例(TP):样本的实际类别为正类,并且模型将其预测为正类。
    • 假正例(FP):样本的实际类别为负类,并且模型将其预测为正类。
    • 真负例(TN):样本的实际类别为负类,并且模型将其预测为负类。
    • 假负例(FN):样本的实际类别为正类,并且模型将其预测为负类。
      T和F可以是看做模型的预测结果(P和N)的定语。
实际\预测预测为正类预测为负类
实际正类真正例(TP)假负例(FN)
实际负类假正例(FP)真负例(TN)
  • 2、精准率

    • 定义:预测为正类的数据中,实际为正类的样本占比。
    • 计算公式: P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP} Precision=TP+FPTP
  • 3、召回率

    • 定义:实际为正类的样本数据中,预测为正类的样本占比。
    • 计算公式: R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=TP+FNTP
    • 分母为真正例+假负例的样本数量相加。为什么加假负,因为模型的预测结果为假的负样本,那实际上就是真的正样本。
  • 4、目标检测任务的真正例、假正例、假负例如何划分

    • 1) T P TP TP:真正例,模型预测出一个框,与标注框的IOU大于阈值且分类正确。
    • 2) F P FP FP:假正例(误报),模型预测出一个框,与标注框的IOU小于阈值或者预测类别为背景或者分类错误。FP是相对于预测框。
    • 3) F N FN FN:假负例(漏报),图片中有一个标注框,但是没有任何一个预测框能匹配上,要么IOU低于阈值 ,要么类别对不上。FN是相对于标注框(Ground Truth来说的)。
    • 4) T N TN TN:真负例。在目标检测领域不考虑,因为真负例可以被理解为所有未预测且不含目标的区域,而这样的框是有连续且无穷多的。
  • 5、论文是如何计算相关指标的
    Faster R-CNN、SSD、YOLO等算法在训练阶段的正负样本的划分有各自的细节,但在最终测试和验证阶段评估精准率和召回率时,流程和算法本质上是一致的:对网络输出的所有预测框做阈值过滤和NMS,然后与标注框做IOU比较。统计TP、FP和FN。

    • 计算离散 R-P曲线
      对于单一类别C、固定的IOU:
      • 1)收集并保留模型对"类别C"做出的所有预测框(即模型输出标签 = C 的那些框)
      • 2)按置信度对预测框从大到小排序
      • 2)将这些框与"类别C"的标注框进行IOU匹配,判断那些是TP和FP。
      • 3)从i=1到i=N,一次只加入一个预测框,检查它是否与某个标注框是否匹配成功(IOU大于阈值),如果成功就是TP,否则就是FP。
      • 4)同时累计到目前为止的TP数、FP数。
      • 5)计算截止到当前预测框为止的精准率和召回率
        P r e c i s i o n i = T P i T P i + F P i Precision_{i}=\frac{TP_{i}}{TP_{i}+FP_{i}} Precisioni=TPi+FPiTPi
        R e c a l l i = T P i T P i + F N i Recall_{i}=\frac{TP_{i}}{TP_{i}+FN_{i}} Recalli=TPi+FNiTPi
    • AP计算
      • 通过插值或积分,对离散的PR曲线计算面积,得到该类别的AP
      • 计算所有类别AP的均值,得到mAP.
  • 6、目标检测的3个阈值

    • IOU阈值:用于判定一个预测框是否与某个标注框"匹配成功",从而记为TP。
    • 置信度阈值:用于筛选预测框(比如只保留置信度 > 0.5 >0.5 >0.5的预测框),绘制PR曲线就是取的不同的置信度阈值。
    • NMS中的IOU阈值:用于在预测框之间进行去重,比如只要两个预测框的IOU超过0.5,救认为他们检测到的目标高度重合,去掉置信度分数低的那个。

http://www.ppmy.cn/devtools/145089.html

相关文章

青少年编程与数学 02-004 Go语言Web编程 12课题、本地数据存储

青少年编程与数学 02-004 Go语言Web编程 12课题、本地数据存储 一、本地数据存储1. Cookies2. LocalStorage3. SessionStorage4. IndexedDB5. Web SQL实现客户端本地数据存储的示例注意事项 二、应用场景1. 用户偏好设置2. 表单数据保存3. 离线访问4. 购物车功能5. 游戏状态保存…

用Moninfo.exe轻松获取显示器EDID

我们天天在用显示器,但显示器的一些关键参数却总是记不住。有时为了配置电脑,有时为了发挥显示器的极限性能,有时为了定制驱动,等等,都需要获取显示器的EDID数据。有些工具虽然可以读出EDID,但难以解读那一…

vue中使用echarts做一个基础可滚动的折线图及dataZoom滚动配置项

需求背景 在项目开发中有的页面会要求使用图表区显示以往数据 但时间跨度很大 数据比较多 若展示一个月的话 每天对应一组数据 那就是30条左右 全部堆积到图表上会密密麻麻的 这使用有几种解决方式 要么设置时间范围 要么就给图表加入滚动条 样例展示 这是没有设置初…

Java重要面试名词整理(一):MySQLJVMTomcat

文章目录 MySQL篇联合索引最左前缀法则索引下推并发事务处理带来的问题事务隔离级别Read Uncommitted(读取未提交内容)Read Committed(读取提交内容 RC)Repeatable Read(可重读 RR)Serializable&#xff08…

docling:PDF解析

目录 环境部署部署问题 用法转换单个文档 解析效果 环境部署 下载 git clone https://gitclone.com/github.com/DS4SD/docling.git conda create -n docling python3.11 conda activate docling pip install docling安装模型 git clone https://www.modelscope.cn/AI-ModelS…

ElasticSearch学习7

SpringBoot整合文档相关的操作 1、文档的添加 // 测试添加文档(先创建一个User实体类,添加fastjson依赖) Test public void testAddDocument() throws IOException { // 创建一个User对象 User liuyou new User("liuyou", 18); // 创建请求 …

Android Studio2024版本安装环境SDK、Gradle配置

一、软件版本,安装包附上 👉android-studio-2024.1.2.12-windows.exe👈 👉百度网盘Android Studio安装包👈 (若下载连链接失效可去百度网盘链接下载) 二、软件安装过程 ​ ​ ​ 三、准备运行…

在Windows本地用网页查看编辑服务器上的 jupyter notebook

​ Motivation: jupyter notebook 可以存中间变量,方便我调整代码,但是怎么用服务器的GPU并在网页上查看编辑呢? 参考 https://zhuanlan.zhihu.com/p/440080687 服务端(Ubuntu): 激活环境 source activate my_env安装notebook …