当前位置: 首页 > news >正文

第1篇 目标检测概述 —(4)目标检测评价指标

前言:Hello大家好,我是小哥谈。目标检测评价指标是用来衡量目标检测算法性能的指标,可以分为两类,包括框级别评价指标和像素级别评价指标。本节课就给大家重点介绍下目标检测中的相关评价指标及其含义,希望大家学习之后能够有所收获!🌈 

前期回顾:

            第1篇 目标检测概述 —(1)目标检测基础知识

            第1篇 目标检测概述 —(2)目标检测算法介绍

            第1篇 目标检测概述 —(3)YOLO系列算法

             目录

🚀1.目标检测有哪些评价指标?

🚀2.目标检测评价指标详解

💥💥2.1 Precision(精确率)

💥💥2.2 Recall(召回率 )

💥💥2.3 Average Precision(平均精确率)

💥💥2.4 Mean Average Precision (mAP)(平均精确率均值)

💥💥2.5 mAP@0.5

💥💥2.6 mAP@0.5:0.95

💥💥2.7 ROC曲线

💥💥2.8 P-R曲线

💥💥2.9 IoU(交并比)

💥💥2.10 mIoU(平均交并比)

💥💥2.11 FPS(每秒传输帧数)

💥💥2.12 FLOPS(每秒浮点运算次数)

🚀1.目标检测有哪些评价指标?

目标检测评价指标是用来衡量目标检测算法性能的指标,可以分为两类:框级别评价指标和像素级别评价指标。

框级别评价指标主要用于评估检测框的准确性和召回率,常见的包括:

  1. Precision(精确率):表示模型预测的正样本中真实正样本的比例,计算公式为:Precision = TP / (TP + FP),其中 TP 表示真正例(模型正确检测的正样本数),FP 表示假正例(模型错误检测的正样本数)。
  2. Recall(召回率):表示模型正确检测的正样本数占所有真实正样本的比例,计算公式为:Recall = TP / (TP + FN),其中 FN 表示假负例(模型未能检测到的正样本数)。
  3. Average Precision(平均精确率):结合了不同置信度下的 Precision 和 Recall,通过计算 Precision-Recall 曲线下的面积来衡量模型的性能。
  4. Mean Average Precision (mAP)(平均精确率均值):计算不同类别的 Average Precision 的平均值,是目标检测中常用的评价指标之一。
  5. ROC曲线(Receiver Operating Characteristic curve):ROC曲线是以假阳性率(False Positive Rate)为横轴,真阳性率(True Positive Rate)为纵轴绘制的曲线,用于衡量模型在不同阈值下的性能。
  6. P-R曲线(Precision-Recall curve):P-R曲线是以查准率为横轴,查全率为纵轴绘制的曲线,用于衡量模型在不同阈值下的性能。

等等......🍉 🍓 🍑 🍈 🍌 🍐

像素级别评价指标主要用于评估目标检测模型在像素级别上的准确性,常见的包括:

  1. Intersection over Union (IoU)(交并比):计算检测框和真实框之间的重叠程度,常用于衡量目标检测的准确性。IoU 的计算公式为:IoU = (Detection ∩ Ground Truth) / (Detection ∪ Ground Truth)。
  2. Mean IoU (mIoU)(平均交并比):计算不同类别的 IoU 的平均值,是像素级别评价中常用的指标之一。

等等......🍉 🍓 🍑 🍈 🍌 🍐


🚀2.目标检测评价指标详解

在目标检测相关博客或论文中,经常看到一堆简写:TPTNFPFN,这些是什么含义呢?它们的含义具体如下:👇

  • 预测值为正例,记为P(Positive)
  • 预测值为反例,记为N(Negative)
  • 预测值与真实值相同,记为T(True)
  • 预测值与真实值相反,记为F(False)

那么从上面可以知道:

  • TP:真实为正样本,预测也为正样本,又称(真阳性)。
  • FN:真实为正样本,预测为负样本,又称(假阴性)。
  • FP:真实为负样本,预测为正样本,又称(假阳性)。
  • TN:真实为负样本,预测为负样本,又称(真阴性)。

知道了这几个定义,下面就好理解了。

💥💥2.1 Precision(精确率)

Precision(精确率)又叫查准率,表示模型预测的正样本中真实正样本的比例。在目标检测中,精确率用于衡量模型预测的准确性,精确率越高,表示模型预测的结果中真正为正例的比例越高。

式中,num_{pred}代表一共识别出的物体数量。举例说明:对于口罩人脸检测的一个效果图,图中9个检测框,7个正确检测出口罩,则TP = 7,2 个未正确检测出口罩,则FP = 2 ,参照公式准确率为0.78。

💥💥2.2 Recall(召回率 )

召回率 (Recall)又叫查全率,是正确识别出的物体占总物体数的比率。

num_{sample}表示一共有多少个需要检测的物体。举例说明:如果一共有8个带着口罩的目标,其中7个正确检测出口罩,则TP = 7 ,1个未检测出口罩,则FN = 1 ,根据计算公式,得到召回率为0.875。

💥💥2.3 Average Precision(平均精确率)

Average Precision(平均精确率)是一种用于衡量物体检测算法准确性的指标。它结合了查准率(precision)和召回率(recall)来评估模型在不同阈值下的性能。平均精确率通过计算不同阈值下的查准率,并对其进行平均来得到。它可以反映出模型在不同阈值下的性能变化情况。

PR曲线图上表现为PR曲线下面的面积。AP的值越大,则说明模型的平均准确率越高。

💥💥2.4 Mean Average Precision (mAP)(平均精确率均值)

Mean Average Precision (mAP)(平均精确率均值)是一种用于评估目标检测算法性能的指标。它是计算每个类别下的 Average Precision (AP) 的平均值。AP 是通过计算在不同召回率水平下的最大精确率来衡量算法在不同目标类别上的准确性。mAP 提供了一个综合性的度量,可以比较和评估不同算法的性能。

💥💥2.5 mAP@0.5

mAP@0.5是指在计算平均精度(mAP)时,使用IoU阈值为0.5。具体而言,mAP@0.5是计算每个类别下所有图片的平均精度,其中IoU阈值设定为0.5。通常情况下,mAP@0.5是用来评估目标检测算法的性能的指标之一。较高的mAP@0.5值表示算法在检测目标时具有更高的准确性。

💥💥2.6 mAP@0.5:0.95

mAP@0.5:0.95是指在IoU阈值从0.5到0.95的范围内,以步长为0.05进行计算的平均mAP。这意味着对于不同的IoU阈值(0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95),计算每个阈值下每个类别的所有图片的AP,并求平均得到的mAP值。

说明:♨️♨️♨️

在目标检测任务中,mAP(mean Average Precision)是一个广泛使用的指标,用于衡量检测模型的性能。其中,mAP@0.5,即在IoU(Intersection over Union)阈值为0.5时的mAP,是最常用的mAP值,也是PASCAL VOC竞赛中使用的标准评价指标。这是因为IoU阈值为0.5是一个相对较宽松的标准,既能够检测出较大的目标,也能检测出较小的目标,因此更能全面评估检测模型的性能。但是,mAP@0.5并不能完全反映出检测模型在不同IoU阈值下的表现。因此,mAP@0.5:0.95这个指标被提出,它是在IoU阈值从0.5到0.95变化时的平均mAP值。这个指标能够更全面地评估模型的性能,因为它考虑了不同IoU阈值下的检测结果。而且,在某些应用场景下,如自动驾驶、安防等,对目标检测的精度要求较高,因此mAP@0.5:0.95更能反映模型的性能。综上所述,mAP@0.5是最常用的mAP指标,但是mAP@0.5:0.95对于某些应用场景更为重要,因为它能够更全面、更准确地评估模型的性能。

💥💥2.7 ROC曲线

ROC曲线是一种常用的分类模型性能评估方法。它通过绘制真正例率(True Positive Rate,TPR)和假正例率(False Positive Rate,FPR)之间的关系曲线来展示分类器在不同阈值下的表现。TPR表示被正确分类为正例的样本占所有实际正例样本的比例,而FPR则表示被错误分类为正例的样本占所有实际负例样本的比例。ROC曲线的横坐标为FPR,纵坐标为TPR,曲线越靠近左上角,说明分类器的性能越好。

💥💥2.8 P-R曲线

P-R曲线是指Precision-Recall曲线,用于评估分类模型的性能。横坐标为Recall(召回率),纵坐标为Precision(精确率)。P-R曲线反映了在不同召回率下模型的精确率变化情况。通常情况下,P-R曲线越靠近右上角,模型的性能越好。

💥💥2.9 IoU(交并比)

IoU是指交并比(Intersection over Union),即预测框(prediction)和实际目标(ground truth)的交集和并集的比值,用以确定预测目标的置信度。当一个预测框的IoU大于某个阈值时才认定其为正分类(一般为0.5或0.3)。最理想情况下,完全重叠时,IoU的值为1。

上图中假设A为模型的检测结果,BGround Truth即样本的标注结果,那么AB相交的区域即为A∩B,而AB的并集即为AB共有的区域A∪B,那么IoU的计算公式即为:  IoU = (A∩B) / (A∪B) 

这个还是很简单就能理解的,反应到样本图上就如下图:

其中上图蓝色框框为检测结果,红色框框为真实标注。一般情况下对于检测框的判定都会存在一个阈值,也就是IoU的阈值,一般可以设置当IoU的值大于0.5的时候,则可认为检测到目标物体。

💥💥2.10 mIoU(平均交并比)

mIoU,即平均交并比(Mean Intersection over Union),是一种用于评估语义分割任务中预测结果与真实标签相似度的常用指标。它通过计算每个类别的交并比(IoU),并对所有类别的IoU取平均值得到。

💥💥2.11 FPS(每秒传输帧数)

FPS是指每秒传输的帧数,用于衡量动画或视频画面的流畅程度。较高的FPS意味着画面更新更频繁,动作更加流畅。一般来说,30帧每秒是为了避免动作不流畅的最低要求。一些计算机视频格式每秒只能提供15帧。此外,FPS也可以理解为刷新率,即屏幕每秒刷新的次数,常用单位为Hz。较高的刷新率可以提供更好的图像显示效果和视觉感观。

💥💥2.12 FLOPS(每秒浮点运算次数)

FLOPS,FLoating point Operations Per Second的缩写,即每秒浮点运算次数,或表示为计算速度,是一个衡量硬件性能的指标。

说明:♨️♨️♨️

FLOPS,浮点数运算,指计算量,越小越好。通俗点讲,指显卡算力,对应英伟达官网的那些:CUDA GPUs - Compute Capability | NVIDIA Developer


相关文章:

第1篇 目标检测概述 —(4)目标检测评价指标

前言:Hello大家好,我是小哥谈。目标检测评价指标是用来衡量目标检测算法性能的指标,可以分为两类,包括框级别评价指标和像素级别评价指标。本节课就给大家重点介绍下目标检测中的相关评价指标及其含义,希望大家学习之后…...

前端和后端是Web开发中的两个不同的领域,你更倾向于哪一种?

前端和后端是Web开发中的两个不同的领域,你更倾向于哪一种? 你可以从以下几个维度谈谈你对前端开发和后端开发的看法。此为内容创作模板,在发布之前请将不必要的内容删除 一、引言 提示:可对前端开发和后端开发进行简要介绍并提出…...

SpringBoot集成MyBatis-Plus实现增删改查

背景 因为学习工具的时候经常需要用到jar包,需要增删查改接口,所以参考文章实现了基于mybatis-plus的增删查改接口。 参考文章:第二十二节:SpringBoot集成MyBatis-Plus实现增删改查 原文中的git地址不存在,本文内容是原文代码修…...

基于STM32设计的智能水产养殖系统(华为云IOT)

一、设计简述 基于STM32设计的智能水产养殖监测系统 1.1 项目背景 随着经济的发展和人口的增长,对水产养殖的需求不断增加。然而,传统的水产养殖方式存在一系列问题,如水质污染、鱼病爆发等。因此,智能化水产养殖技术成为当前热门研究领域。其中,基于物联网技术的智能水产…...

运行软件找不到mfc140u.dll怎么解决,mfc140u.dll是什么文件

"找不到 mfc140u.dll"是一条错误信息,表示您的计算机上缺少一个名为 mfc140u.dll 的动态链接库(DLL)文件。这个文件通常与 Microsoft Visual C Redistributable 相关。Mfc140u.dll 是 Microsoft 基础类库(MFC&#xff0…...

数据结构(2-5~2-8)

2-5编写算法&#xff0c;在单链表中查找第一值为x的结点&#xff0c;并输出其前驱和后继的存储位置 #include<stdio.h> #include<stdlib.h>typedef int DataType; struct Node {DataType data; struct Node* next; }; typedef struct Node *PNode; …...

浅谈智能安全配电装置在老年人建筑中的应用

摘要&#xff1a;我国每年因触电伤亡人数非常多&#xff0c;大多数事故是发生在用电设备和配电装置。在电气事故中&#xff0c;无法预料和不可抗拒的事故是比较少的&#xff0c;大量用电事故可采取切实可行措施来预防。本文通过结合老年人建筑的特点和智能安全配电装置的功能&a…...

【ES】笔记-ES6模块化

暴露数据引入模块语法 规范基本语法分别暴露 (按需暴露)统一暴露 export {暴露内容1&#xff0c;暴露内容2}默认暴露 (适合只暴露一个数据) 只能暴露一次同时使用在app.js中引入 规范 每个文件都是一个模块要借助Babel和Browserify依次编译代码&#xff0c;才能在浏览器端运行…...

阿里云/腾讯云国际站代理:腾讯云国际站开户购买EdgeOne发布,安全加速一体化方案获业内认可

作为下一代CDN产品面世的腾讯云EdgeOne&#xff0c;历时一年服务&#xff0c;腾讯云国际站凭借安全加速一体化的解决方案&#xff0c;用All in One 架构构筑边缘应用无限想象。 近年来&#xff0c;随着5G网络、物联网、边缘计算的快速发展&#xff0c;爆炸式增长的数据量和市场…...

AIGC AI绘画 Midjourney 的详细使用手册

Midjourney参数提示与用法。 常见的命令有: --seed:种子值 --q:品质 --c:混乱 --no:负面提示 --iw:权重(0.5-2) ::(多重提示) -- repeat(重复) --stop(停止) --title(无缝贴图:适用于模型版本 1、2、3、5) --video(过程动画,适用于模型版本 1、2…...

Lua系列文章(1)---Lua5.4参考手册学习总结

windows系统上安装lua,下载地址&#xff1a; Github 下载地址&#xff1a;https://github.com/rjpcomputing/luaforwindows/releases 可以有一个叫SciTE的IDE环境执行lua程序 1 – 简介 Lua 是一种强大、高效、轻量级、可嵌入的脚本语言。 它支持过程编程&#xff0c; 面向对…...

Leetcode.121 买卖股票的最佳时机

题目链接 Leetcode.121 买卖股票的最佳时机 esay 题目描述 给定一个数组 p r i c e s prices prices &#xff0c;它的第 i i i 个元素 p r i c e s [ i ] prices[i] prices[i] 表示一支给定股票第 i i i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在…...

IDE相关设置和插件

https://www.jetbrains.com/zh-cn/webstorm/ 一、插件 Chinese ​(Simplified)​ Language Pack&#xff1a;中文语言包Translation&#xff1a;翻译插件&#xff0c;需要申请国内翻译软件应用&#xff0c;可以搜索translations配置快捷键any-rule&#xff1a;正侧插件&#…...

nodejs之jsdom插件,运行浏览器环境

https://www.npmjs.com/package/jsdom 一、安装依赖 npm install jsdom二、用法 var jsdom require(jsdom) var { JSDOM } jsdom; var dom new JSDOM(<!DOCTYPE html><html lang"cn"><head></head><body></body></htm…...

运行vite项目报错:await import(‘source-map-support‘).then((r) => r.default.install())

项目场景&#xff1a; Electron vue3 vite项目实现屏幕截图功能 问题描述 运行 npm run dev 启动项目报错 await import(source-map-support).then((r) > r.default.install()) PS D:\study\electron\electronDemo> npm run dev> electronDemo0.0.1 dev D:\study…...

【GIT版本控制】--安装GIT

一、在不同操作系统上安装GIT 在不同操作系统上安装GIT非常容易&#xff0c;以下是针对不同操作系统的安装步骤&#xff1a; 在Windows上安装GIT&#xff1a; 访问 Git官方网站。下载适合您Windows版本的GIT安装程序&#xff08;32位或64位&#xff09;。运行下载的安装程序。…...

java 常见api Arrays类

int类型数组 package daysreplace;import java.util.Arrays;public class Test {public static void main(String[] args) {int[] arrays{38,24,42,56,22,44};//直接输出数组名称就是内存地址System.out.println(arrays);//Arrays.toString()会将数组内容转成字符串形式System…...

Java常见设计模式

单例模式&#xff1a;程序自始至终只创建一个对象。 应用场景&#xff1a;1.整个程序运行中只允许一个类的实例时 2.需要频繁实例化然后销毁的对象 3.创建对象时耗时过多但又经常用到的对象 4.方便资源相互通信的环境 懒汉式线程不安全问题解决方案&#xff1a; 双重检查加锁机…...

Hive 【Hive(七)窗口函数练习】

窗口函数案例 数据准备 1&#xff09;建表语句 create table order_info (order_id string, --订单iduser_id string, -- 用户iduser_name string, -- 用户姓名order_date string, -- 下单日期order_amount int -- 订单金额 ); 2&#xff09;装载语句 i…...

C++深入学习part_1

Linux下编译C程序 安装g命令&#xff1a;sudo apt install g 编译命令&#xff1a;$ g *.cc 或者 *.cpp -o fileName; hellworld 编译程序可以看到&#xff1a; namespace命名空间 首先&#xff0c;命名空间的提出是为了防止变量重名冲突而设置的。 浅浅试一下&#xff1…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...

生信服务器 | 做生信为什么推荐使用Linux服务器?

原文链接&#xff1a;生信服务器 | 做生信为什么推荐使用Linux服务器&#xff1f; 一、 做生信为什么推荐使用服务器&#xff1f; 大家好&#xff0c;我是小杜。在做生信分析的同学&#xff0c;或是将接触学习生信分析的同学&#xff0c;<font style"color:rgb(53, 1…...

【Pandas】pandas DataFrame dropna

Pandas2.2 DataFrame Missing data handling 方法描述DataFrame.fillna([value, method, axis, …])用于填充 DataFrame 中的缺失值&#xff08;NaN&#xff09;DataFrame.backfill(*[, axis, inplace, …])用于**使用后向填充&#xff08;即“下一个有效观测值”&#xff09…...

安全领域新突破:可视化让隐患无处遁形

在安全领域&#xff0c;隐患就像暗处的 “幽灵”&#xff0c;随时可能引发严重事故。传统安全排查手段&#xff0c;常常难以将它们一网打尽。你是否好奇&#xff0c;究竟是什么神奇力量&#xff0c;能让这些潜藏的隐患无所遁形&#xff1f;没错&#xff0c;就是可视化技术。它如…...

JS设计模式(5): 发布订阅模式

解锁JavaScript发布订阅模式&#xff1a;让代码沟通更优雅 在JavaScript的世界里&#xff0c;我们常常会遇到这样的场景&#xff1a;多个模块之间需要相互通信&#xff0c;但是又不想让它们产生过于紧密的耦合。这时候&#xff0c;发布订阅模式就像一位优雅的信使&#xff0c;…...

CKA考试知识点分享(2)---ingress

CKA 版本&#xff1a;1.32 第二题是涉及ingress相关。本文不是题目&#xff0c;只是为了学习相关知识点做的实验。 1. 环境准备 需要准备一套K8S集群。 1.1 安装ingress-nginx 下载deploy文件&#xff1a; wget -O controller-v1.12.2.yaml https://raw.githubusercontent…...

网页抓取混淆与嵌套数据处理流程

当我们在网页抓取中&#xff0c;遇到混淆和多层嵌套的情况是比较常见的挑战。混淆大部分都是为了防止爬虫而设计的&#xff0c;例如使用JavaScript动态加载、数据加密、字符替换、CSS偏移等。多层嵌套则可能是指HTML结构复杂&#xff0c;数据隐藏在多层标签或者多个iframe中。 …...