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

news2024/9/27 5:48:05

前言:Hello大家好,我是小哥谈。目标检测评价指标是用来衡量目标检测算法性能的指标,主要包括几个指标:精确率(Precision)、召回率(Recall)、交并比(IoU)、平均精度(AP)和多个类别AP的平均值即mAP等等。本节课就给大家重点介绍下目标检测中的相关评价指标及其含义,希望大家学习之后能够有所收获!🌈  

前期回顾:

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

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

            目录

🚀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(每秒浮点运算次数)

 🚀3.参考文章

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

目标检测评价主要包括几个指标:精确率(Precision)、召回率(Recall)、交并比(IoU)、平均精度(AP)和多个类别AP的平均值即mAP等等。其中,精确率指的是检测出的目标中真正为目标的比例,召回率指的是所有真正为目标的样本中被检测出来的比例,交并比指的是检测框与真实框的交集面积与并集面积的比值,平均精度指的是不同置信度下的精确率与召回率的曲线下面积,而mAP则是多个类别AP的平均值。这些指标可以通过混淆矩阵来计算。在实际应用中,我们需要根据具体的场景和需求选择合适的评价指标来评估模型的性能。 

具体含义如下所示:

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

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


🚀2.评价指标详解

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

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

那么从上面可以知道:

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

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

💥💥2.1 Precision(精确率)

Precision(精确率)是指在所有被分类器预测为正例的样本中,真正为正例的样本所占的比例。简单来说,就是分类器预测为正例的样本中,有多少是真正的正例。精确率越高,说明分类器预测为正例的样本中真正为正例的比例越高,分类器的性能越好。精确率的计算公式为:TP/(TP+FP),其中TP表示真正为正例的样本数,FP表示被错误地预测为正例的负例样本数。

公式:

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

💥💥2.2 Recall(召回率 )

Recall(召回率)是指在所有实际为正样本的样本中,被正确预测为正样本的样本数占比。计算公式为预测样本中实际正样本数/所有的正样本数,即recall=TP/(TP+FN)。其中,TP表示真正例(True Positive),即实际为正样本且被正确预测为正样本的样本数;FN表示假反例(False Negative),即实际为正样本但被错误预测为负样本的样本数。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


 🚀3.参考文章

作者:智能算法;文章:【必备】目标检测中的评价指标有哪些?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1130767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ES SearchAPI----Query DSL语言

文章目录 Getting Startedmatch_all查询全部sort排序from\size分页_source指定字段 match匹配查询match_phrase短语匹配multi_match多字段匹配range范围查询bool复合查询must必须匹配,可贡献得分must_not必须不匹配,可贡献得分should可有可无&#xff0c…

GIS 数据结构BSP树

BSP树(Binary Space Partitioning Tree,二值空间划分树)的主要思想是将空间分割成更小的部分,从而使空间查询和其他运算更加高效。每个节点在BSP树中代表一个空间区域,这个区域可以进一步被子节点所分割。 一旦把凹形区…

C# 读取文件类型

获取示例 代码 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks;namespace ConsoleApp6filetype {internal class Program{static void Main(…

使用openlayers加载离线瓦片地图

一、需求背景 我们现在的项目就说使用openlayer geoServer自己发布的矢量地图,是和公安合作的项目,由于政府大都使用的是天地图,所以需要将geoServer的矢量地图改为天地图,搭配openlayers使用,openlayers还可以切换不…

spi的基本知识、软件spi、硬件spi(ADXL362为测试对象)

一、spi基础知识 1.1、spi基础知识一 SPI(Serial Peripheral Interface,串行外设接口)是由摩托罗拉(Motorola)在1980前后提出的一种全双工同步串行通信接口,它用于MCU与各种外围设备以串行方式进行通…

纹波类型及纹波抑制措施

纹波主要有这几种类型:输入低频纹波、高频纹波、寄生参数引起的共模纹波噪声、功率器件开关过程中产生的超高频谐振噪声和闭环调节控制引起的纹波噪声。 1、低频纹波 低频纹波是与输出电路的滤波电容容量相关。电容的容量不可能无限制地增加,导致输出低…

视频号视频提取小程序,快速下载视频号视频

​视频号提取小程序可以帮助用户方便地从视频号视频平台获取到自己喜欢的视频号内容。通过这个小程序,你可以快速搜索并提取出视频号,并进行相关的操作。 据悉视频下载bot小程序目前已经更名为【提取下载小助手】 使用视频号提取小程序有以下几个步骤&…

postgresql group by之后对string字段进行拼接

数据如下 想要的效果 sql 如下 SELECT company_id, string_agg(employee, , ORDER BY employee) FROM mytable GROUP BY company_id;PostgreSQL STRING_AGG()函数是一个聚合函数,用于连接字符串列表并在它们之间放置分隔符。该函数不会在字符串的末尾添加分隔符。…

C语言猜数字小游戏(也包含python实现的用法)

猜数字小游戏 前言1. C语言中随机数生成1.1 rand1.2 srand1.3 time1.4 设置随机数的范围 2. 猜数字游戏实现C语言实现猜数字小游戏python方法实现猜数字小游戏 前言 本文基于VS2022、pycharm和前面的知识,写一个凭借分支与循环的小游戏,比如&#xff1a…

C# 使用using报错CS1674解决办法

Severity Code Description Project File Line Suppression State Error CS1674 ‘MutipleThreadResetEvent’: type used in a using statement must be implicitly convertible to ‘System.IDisposable’. 第一种解决方法:工具 -.NuGet下载EntityFramework是否能…

C++设计模式_12_Singleton 单件模式

在之前的博文C57个入门知识点_44:单例的实现与理解中,已经详细介绍了单例模式,并且根据其中内容,单例模式已经可以在日常编码中被使用,本文将会再做梳理。 Singleton 单件模式可以说是最简单的设计模式,但由…

力扣第1005题 K 次取反后最大化的数组和 c++ 贪心 双思维

题目 1005. K 次取反后最大化的数组和 简单 相关标签 贪心 数组 排序 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以…

【Javascript】通过浏览器书签构建与执行自动刷新脚本

0x00 前言 日常工作中,经常遇到需要时不时点一下刷新这样的事情(怪前端想不到写一个自动刷新) 但是…… 没有自动刷新按钮,在这页面手动点刷新还是太浪费时间了。 有时候懒得等了去做别的事情,过一小时回来刷新一下&a…

k8s之Flannel网络插件安装提示forbidden无权限

一、问题描述 在安装k8s的网络插件时,提示如下信息,各种forbidden无权限 [rootzzyk8s01 scripts]# kubectl apply -f kube-flannel.yml Error from server (Forbidden): error when retrieving current configuration of: Resource: "policy/v1b…

Vue中使用Web Serial API连接串口,实现通信交互

Vue中使用Web Serial API连接串口,实现通信交互 Web Serial API,web端通过串口与硬件通信; 该API是JS本身 navigator 对象上就独有的,所以与Vue和React框架开发都没有太大的关系, 串口是一个双向通信接口,允许字节发送…

ES6 模块化编程 详解

目录 一、基本介绍 二、基本原理示意图 三、传统CommonJS实现模块化编程 1.介绍 : 2.实例 : 四、ES6新特性实现模块化编程 1.介绍 : 2.实例 : 一、基本介绍 (1) ES6新特性——模块化编程,用于解决传统非模块化开发中出现的"命名冲突", "文件…

LDAP和Kerberos疑难问题诊断方法

不同的工具和方法总能给问题的解决带来希望。本文使用SSSD工具诊断Kerberos和LDAP登录问题诊断。后端(通常也称为数据提供程序)是管理和创建缓存的 SSSD 子进程。此过程与LDAP服务器通信,执行不同的查找查询并将结果存储在缓存中。它还针对 L…

PY32F002A系列单片机:高性价比、低功耗,满足多样化应用需求

PY32F002A系列微控制器是一款高性能、低功耗的MCU,它采用32位ARM Cortex-M0内核,最高工作频率达到24MHz,提供了强大的计算能力。此外,PY32F002A拥有最大20Kbytes的flash存储器和3Kbytes的SRAM,为简单的数据处理提供了充…

一文速通Nginx网关与gateway网关区分

目录 API网关介绍 gateway基本介绍 Nginx基本介绍 Nginx与API gateway网关 API网关介绍 网关的角色是作为一个 API 架构,用来保护、增强和控制对于 API 服务的访问。API 网关是一个处于应用程序或服务(提供 REST API 接口服务)之前的系…

创建 Edge 浏览器扩展教程(上)

创建 Edge 浏览器扩展教程(上) 介绍开始之前后续步骤开始之前1:创建清单 .json 文件2 :添加图标3:打开默认弹出对话框 介绍 在如今日益数字化的时代,浏览器插件在提升用户体验、增加功能以及改善工作流程方…