第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.目标检测有哪些评价指标?
目标检测评价指标是用来衡量目标检测算法性能的指标,可以分为两类:框级别评价指标和像素级别评价指标。
框级别评价指标主要用于评估检测框的准确性和召回率,常见的包括:
- Precision(精确率):表示模型预测的正样本中真实正样本的比例,计算公式为:Precision = TP / (TP + FP),其中 TP 表示真正例(模型正确检测的正样本数),FP 表示假正例(模型错误检测的正样本数)。
- Recall(召回率):表示模型正确检测的正样本数占所有真实正样本的比例,计算公式为:Recall = TP / (TP + FN),其中 FN 表示假负例(模型未能检测到的正样本数)。
- Average Precision(平均精确率):结合了不同置信度下的 Precision 和 Recall,通过计算 Precision-Recall 曲线下的面积来衡量模型的性能。
- Mean Average Precision (mAP)(平均精确率均值):计算不同类别的 Average Precision 的平均值,是目标检测中常用的评价指标之一。
- ROC曲线(Receiver Operating Characteristic curve):ROC曲线是以假阳性率(False Positive Rate)为横轴,真阳性率(True Positive Rate)为纵轴绘制的曲线,用于衡量模型在不同阈值下的性能。
- P-R曲线(Precision-Recall curve):P-R曲线是以查准率为横轴,查全率为纵轴绘制的曲线,用于衡量模型在不同阈值下的性能。
等等......🍉 🍓 🍑 🍈 🍌 🍐
像素级别评价指标主要用于评估目标检测模型在像素级别上的准确性,常见的包括:
- Intersection over Union (IoU)(交并比):计算检测框和真实框之间的重叠程度,常用于衡量目标检测的准确性。IoU 的计算公式为:IoU = (Detection ∩ Ground Truth) / (Detection ∪ Ground Truth)。
- Mean IoU (mIoU)(平均交并比):计算不同类别的 IoU 的平均值,是像素级别评价中常用的指标之一。
等等......🍉 🍓 🍑 🍈 🍌 🍐
🚀2.目标检测评价指标详解
在目标检测相关博客或论文中,经常看到一堆简写:TP、TN、FP、FN,这些是什么含义呢?它们的含义具体如下:👇
- 预测值为正例,记为P(Positive)
- 预测值为反例,记为N(Negative)
- 预测值与真实值相同,记为T(True)
- 预测值与真实值相反,记为F(False)
那么从上面可以知道:
- TP:真实为正样本,预测也为正样本,又称(真阳性)。
- FN:真实为正样本,预测为负样本,又称(假阴性)。
- FP:真实为负样本,预测为正样本,又称(假阳性)。
- TN:真实为负样本,预测为负样本,又称(真阴性)。
知道了这几个定义,下面就好理解了。✅
💥💥2.1 Precision(精确率)
Precision(精确率)又叫查准率,表示模型预测的正样本中真实正样本的比例。在目标检测中,精确率用于衡量模型预测的准确性,精确率越高,表示模型预测的结果中真正为正例的比例越高。
式中,代表一共识别出的物体数量。举例说明:对于口罩人脸检测的一个效果图,图中9个检测框,7个正确检测出口罩,则TP = 7,2 个未正确检测出口罩,则FP = 2 ,参照公式准确率为0.78。
💥💥2.2 Recall(召回率 )
召回率 (Recall)又叫查全率,是正确识别出的物体占总物体数的比率。
表示一共有多少个需要检测的物体。举例说明:如果一共有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
为模型的检测结果,B
为Ground Truth
即样本的标注结果,那么A
与B
相交的区域即为A∩B
,而A
与B
的并集即为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࿰…...

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

浅谈智能安全配电装置在老年人建筑中的应用
摘要:我国每年因触电伤亡人数非常多,大多数事故是发生在用电设备和配电装置。在电气事故中,无法预料和不可抗拒的事故是比较少的,大量用电事故可采取切实可行措施来预防。本文通过结合老年人建筑的特点和智能安全配电装置的功能&a…...
【ES】笔记-ES6模块化
暴露数据引入模块语法 规范基本语法分别暴露 (按需暴露)统一暴露 export {暴露内容1,暴露内容2}默认暴露 (适合只暴露一个数据) 只能暴露一次同时使用在app.js中引入 规范 每个文件都是一个模块要借助Babel和Browserify依次编译代码,才能在浏览器端运行…...
阿里云/腾讯云国际站代理:腾讯云国际站开户购买EdgeOne发布,安全加速一体化方案获业内认可
作为下一代CDN产品面世的腾讯云EdgeOne,历时一年服务,腾讯云国际站凭借安全加速一体化的解决方案,用All in One 架构构筑边缘应用无限想象。 近年来,随着5G网络、物联网、边缘计算的快速发展,爆炸式增长的数据量和市场…...
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,下载地址: Github 下载地址:https://github.com/rjpcomputing/luaforwindows/releases 可以有一个叫SciTE的IDE环境执行lua程序 1 – 简介 Lua 是一种强大、高效、轻量级、可嵌入的脚本语言。 它支持过程编程, 面向对…...
Leetcode.121 买卖股票的最佳时机
题目链接 Leetcode.121 买卖股票的最佳时机 esay 题目描述 给定一个数组 p r i c e s prices prices ,它的第 i i i 个元素 p r i c e s [ i ] prices[i] prices[i] 表示一支给定股票第 i i i 天的价格。 你只能选择 某一天 买入这只股票,并选择在…...
IDE相关设置和插件
https://www.jetbrains.com/zh-cn/webstorm/ 一、插件 Chinese (Simplified) Language Pack:中文语言包Translation:翻译插件,需要申请国内翻译软件应用,可以搜索translations配置快捷键any-rule:正侧插件&#…...
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())
项目场景: 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非常容易,以下是针对不同操作系统的安装步骤: 在Windows上安装GIT: 访问 Git官方网站。下载适合您Windows版本的GIT安装程序(32位或64位)。运行下载的安装程序。…...

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

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

C++深入学习part_1
Linux下编译C程序 安装g命令:sudo apt install g 编译命令:$ g *.cc 或者 *.cpp -o fileName; hellworld 编译程序可以看到: namespace命名空间 首先,命名空间的提出是为了防止变量重名冲突而设置的。 浅浅试一下࿱…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...

恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...
前端高频面试题2:浏览器/计算机网络
本专栏相关链接 前端高频面试题1:HTML/CSS 前端高频面试题2:浏览器/计算机网络 前端高频面试题3:JavaScript 1.什么是强缓存、协商缓存? 强缓存: 当浏览器请求资源时,首先检查本地缓存是否命中。如果命…...

企业大模型服务合规指南:深度解析备案与登记制度
伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...

uni-app学习笔记三十五--扩展组件的安装和使用
由于内置组件不能满足日常开发需要,uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件,需要安装才能使用。 一、安装扩展插件 安装方法: 1.访问uniapp官方文档组件部分:组件使用的入门教程 | uni-app官网 点击左侧…...
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...

持续交付的进化:从DevOps到AI驱动的IT新动能
文章目录 一、持续交付的本质:从手动到自动的交付飞跃关键特性案例:电商平台的高效部署 二、持续交付的演进:从CI到AI驱动的未来发展历程 中国…...
Java毕业设计:办公自动化系统的设计与实现
JAVA办公自动化系统 一、系统概述 本办公自动化系统基于Java EE平台开发,实现了企业日常办公的数字化管理。系统包含文档管理、流程审批、会议管理、日程安排、通讯录等核心功能模块,采用B/S架构设计,支持多用户协同工作。系统使用Spring B…...