【深度学习】基于YOLOV5模型的图像识别-目标检测的性能指标详解与计算方法

目标检测是计算机视觉中的重要任务,主要目的是在图像中识别并定位特定的物体。YOLO(You Only Look Once)系列模型作为目标检测领域的代表性方法之一,凭借其高效和准确的特点,广泛应用于实际场景中。本文通过详细介绍目标检测的性能指标及其计算方法,帮助读者更好地理解和评估YOLO系列模型的表现。


一、目标检测性能指标介绍

目标检测 任务中,常用的性能指标主要包括 检测精度指标检测速度指标

1. 检测精度指标

检测精度指标 主要有以下几种:

中文名称英文名称简称意义
精确率 (查准率)PrecisionPrecision评估模型预测的准不准,在所有被预测为正样本的数据中,实际为正样本的比例。
召回率(查全率)RecallRecall评估模型找的全不全,在所有实际为正样本的数据中,被正确预测为正样本的比例。
F1 scoreF1 scoreF1 score精确率和召回率的调和平均数,用于综合评估模型的精确性和召回能力。
交并比Intersection over UnionIOU衡量预测框和真实框重叠程度,交集面积与并集面积的比值。
精确率-召回率曲线Precision-Recall curveP-R curve通过不同阈值下的精确率和召回率来评估模型性能的曲线。
平均精度Average PrecisionAP精确率-召回率曲线下的面积,用于衡量模型在不同阈值下的整体表现。
平均精度均值mean Average PrecisionmAP所有类别的AP取平均值,用于衡量多类别检测模型的整体性能。

2. 检测速度指标

检测速度指标 主要有以下几种:

中文名称英文名称简称意义
前传耗时Forward Pass TimeForward Pass Time模型从输入图像到输出预测结果所需的时间。
每秒帧数Frames Per SecondFPS模型每秒处理的图像帧数,FPS越高,表示模型速度越快。
浮点运算量Floating Point OperationsFLOPS模型在推理过程中所需的浮点运算次数,FLOPS越低,表示模型计算量越小,速度越快。

二、各性能指标的计算方法

为了说明这些指标的计算方法,我们将举一个形象的例子:

草原上有100头牛,其中60头是公牛,40头是母牛,我们要通过模型识别出所有公牛。

最终模型预测结果如下:

  • 实际为公牛且被预测为公牛(TP):50头
  • 实际为公牛但被预测为母牛(FN):10头
  • 实际为母牛但被预测为公牛(FP):5头
  • 实际为母牛且被预测为母牛(TN):35头

在这个例子的基础上,我们来讲解和计算下面的指标数据。


1. 基础数据与混淆矩阵

根据上面的实验结果数据,我们将数据转成如下表格:

实际/预测公牛 (Positive)母牛 (Negative)
公牛(True)TP = 50FN = 10
母牛(False)FP = 5TN = 35

其中行为牛的实际性别,列为预测出来的结果。

不看横竖标题,只看中间的两行两列:

[ T P F N F P T N ] = [ 50 10 5 35 ] \begin{bmatrix} TP&FN\\FP&TN\end{bmatrix}=\begin{bmatrix} 50&10\\5&35\end{bmatrix} [TPFPFNTN]=[5051035]

两行两列的数据组成了一个2x2的矩阵, [ T P F N F P T N ] \begin{bmatrix} TP&FN\\FP&TN\end{bmatrix} [TPFPFNTN]这个矩阵就叫做 混淆矩阵

我们提炼出行和列的首字母缩写,可以得到四个标签,TPTNFPFN,这是目标检测里最基础的概念:

  • TP:被模型预测为正类的正样本
  • TN:被模型预测为负类的负样本
  • FP:被模型预测为正类的负样本
  • FN:被模型预测为负类的正样本

通过这四个样本数据,我们可以计算出下面各种性能指标。


2. 精确率与召回率

① 精确率 (Precision)

精确率,又叫 查准率,评估的是模型预测的准不准,在所有被预测为正样本(公牛)的数据中,实际为正样本的比例。

公式如下:

P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP} Precision=TP+FPTP

代入数据计算:

P r e c i s i o n = 50 50 + 5 = 50 55 ≈ 0.909 Precision=\frac{50}{50+5}=\frac{50}{55}≈0.909 Precision=50+550=55500.909

精确率 约为0.909。


② 召回率 (Recall)

召回率,又叫 查全率,评估的是模型找的全不全,在所有实际为正样本(公牛)的数据中,被正确预测为正样本的比例。

公式如下:

R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=TP+FNTP

代入数据计算:

R e c a l l = 50 50 + 10 = 50 60 ≈ 0.833 Recall=\frac{50}{50+10}=\frac{50}{60}≈0.833 Recall=50+1050=60500.833

召回率 约为0.833。


3. F1 score

通常我们使用 PrecisionRecall 两个指标来衡量模型的好坏,为了同时权衡这两个量,我们选用 F1 score 来将这两个量组合,也就是 F1 score

F1 score (又称 F score, F measure) 是精确率和召回率的调和平均数,用于综合评估模型的精确性和召回能力。

F1 score 的计算公式如下:

F1 s c o r e = 2 1 P r e c i s i o n + 1 R e c a l l = 2 × P r e c i s i o n × R e c a l l P r e c i s i o n + R e c a l l score=\frac{2}{\frac{1}{Precision}+\frac{1}{Recall}}=2×\frac{Precision×Recall}{Precision+Recall} score=Precision1+Recall12=2×Precision+RecallPrecision×Recall

代入数据计算:

F1 s c o r e = 2 × 0.909 × 0.833 0.909 + 0.833 score=2×\frac{0.909×0.833}{0.909+0.833} score=2×0.909+0.8330.909×0.833 s c o r e = 2 × 0.758 1.742 score=2×\frac{0.758}{1.742} score=2×1.7420.758 ≈ 0.870

F1 score 为0.870。


4. IOU交并比

IOU (Intersection over Union) 是衡量预测框和真实框重叠程度的指标。

数学公式表达为: I o U ( A , B ) = A ∩ B A ∪ B IoU(A, B) =\frac{A ∩ B}{A ∪ B} IoU(A,B)=ABAB

在目标检测里,我们可以数形结合,表示为:

I O U = 预测框与真实框的交集面积 预测框与真实框的并集面积 IOU=\frac{预测框与真实框的交集面积}{预测框与真实框的并集面积} IOU=预测框与真实框的并集面积预测框与真实框的交集面积

假设某次目标检测结果如图所示:
在这里插入图片描述
原目标(真实框)为 Object 范围,检测到的结果(预测框)为 Result 范围,其中 ObjectResult 重合面积为40,二者有累计10的未重合面积。由图易得,本次检测中预测框和真实框的交集面积为40,预测框和真实框的并集面积为50,

代入数据计算:

I O U = 40 50 = 0.8 IOU=\frac{40}{50}=0.8 IOU=5040=0.8

IOU 为0.8。

IOU 的值位于0-1之间,IOU 为1意味着预测边界框和地面真实边界框完全重叠。

通常,我们需要为 IOU 设置阈值,以确定对象检测是否有效。

假设我们将 IOU 阈值设置为 0.5,在这种情况下:
如果 IOU >= 0.5,则将目标检测归类为 True Positive (TP)
如果 IOU < 0.5,则为错误检测,并将其归类为 False Negative (FP)


5. P-R曲线

假设在不同阈值下得到以下 精确率召回率

阈值精确率召回率
0.50.9090.833
0.60.9200.800
0.70.9300.750
0.80.9400.700
0.90.9500.650
1.00.9600.600

我们根据这组数据绘制横坐标为 Recall、纵坐标为 Precision 的折线图。

在这里插入图片描述

这个折线图就叫做 P-R曲线 (Precision-Recall Curve)

P-R曲线 是通过不同 阈值 下的 精确率召回率 来评估模型性能的曲线,展示了不同 阈值精确率召回率 的关系。


6. AP和mAP

① AP (Average Precision)

AP 是P-R曲线下的面积,用于衡量模型在不同阈值下的整体表现。

在这里插入图片描述
常用的计算方式包括:

  • 11点计算法 (11-point Interpolation):在 Recall 的每个固定点(0.0, 0.1, 0.2, …, 1.0)上最大精度的平均值。
  • 所有点的平均值:对所有数据点的精度进行平均。

11点计算法 已经逐步不用了,我们优先使用 所有点平均值 的计算方法。

计算方法为:

A P = ∫ 0 1 P r e c i s i o n ( R e c a l l ) d R e c a l l ≈ ∑ n ( R e c a l l n − R e c a l l n − 1 ) P r e c i s i o n n AP=\int_0^1Precision(Recall)dRecall≈\sum_n(Recall _n-Recall _{n-1})Precision_n AP=01Precision(Recall)dRecalln(RecallnRecalln1)Precisionn

代入数据计算:

A P = ( 0.833 − 0.800 ) × 0.909 + ( 0.800 − 0.750 ) × 0.920 + ( 0.750 − 0.700 ) × 0.930 + ( 0.700 − 0.650 ) × 0.940 + ( 0.650 − 0.600 ) × 0.950 + ( 0.600 − 0 ) × 0.960 AP = (0.833−0.800)×0.909+(0.800−0.750)×0.920+(0.750−0.700)×0.930+(0.700−0.650)×0.940+(0.650−0.600)×0.950+(0.600−0)×0.960 AP=(0.8330.800)×0.909+(0.8000.750)×0.920+(0.7500.700)×0.930+(0.7000.650)×0.940+(0.6500.600)×0.950+(0.6000)×0.960 0.0300 + 0.0460 + 0.0465 + 0.0470 + 0.0475 + 0.5760 = 0.793 0.0300+0.0460+0.0465+0.0470+0.0475+0.5760=0.793 0.0300+0.0460+0.0465+0.0470+0.0475+0.5760=0.793

AP 为0.793。


② mAP (mean Average Precision)

在实际操作中,我们的目标检测效果往往会受到检测目标种类不同的影响,导致精确度有上下浮动,比如我们对牛的性别识别,受牛种类影响,同种牛之间特征相似,异种特征差异明显,故不同种类间检测精确度会有差异。

用下面三组不同种类的牛的目标检测实验数据作为示例:

类别AP
奶牛0.774
肉牛0.793
耗牛0.758
水牛0.808

这时,我们需要一个涵盖各个种类牛的整体的平均精度,这个平均精度就是 mAP

mAP 是对所有类别的 AP 取平均值,用于衡量多类别检测模型的整体性能。

计算公式为:

m A P = 1 n ∑ i = 1 n A P i mAP=\frac{1}{n}\sum_{i=1}^{n} AP_i mAP=n1i=1nAPi

代入数据计算:

m A P = 1 4 ( 0.774 + 0.793 + 0.758 + 0.808 ) mAP=\frac{1}{4}(0.774+0.793+0.758+0.808) mAP=41(0.774+0.793+0.758+0.808) 1 4 \frac{1}{4} 41 × 3.133 = 0.78325

mAP 约为0.783。


③ AP 和 mAP 的比较

APmAP 区别如下:

指标意义
AP衡量的是学习出来的模型在每个类别上的好坏;
mAP衡量的是学出的模型在所有类别上的好坏;

7. 检测速度指标

检测速度指标 是评估模型的重要性能指标之一,影响在实时场景中的 可用性效率

检测速度指标 通常包含以下几种:

指标详细介绍
前传耗时 (Forward Pass Time)前传耗时 (Forward Pass Time) 是指模型从接收到输入图像到输出预测结果所需的时间。它是衡量模型处理单张图像效率的重要指标。前传耗时 越短,意味着模型在实际应用中能更快地做出预测。假设某模型处理一张图像的 前传耗时 为50毫秒,这表明模型在50毫秒内可以完成一次前向传播并输出结果。在实际应用中,较低的 前传耗时 可以确保更高的响应速度,尤其在需要实时反馈的场景中,例如自动驾驶和视频监控。
每秒帧数 (FPS)每秒帧数 (FPS) 是指模型每秒钟能够处理的图像帧数。FPS 是评估模型实时处理能力的重要指标。假设某模型的 FPS 为20帧每秒,这意味着该模型每秒钟可以处理20张图像。在实际应用中,较高的 FPS 可以确保视频流或连续图像处理的流畅性,避免延迟和卡顿现象。对于需要实时处理的任务,如监控视频分析和实时对象检测,高 FPS 至关重要。
浮点运算量 (FLOPS)浮点运算量 (FLOPS) 是指模型在推理过程中所需的浮点运算次数。FLOPS 是评估模型计算复杂度的指标之一。假设某模型的 FLOPS1.5 GFLOPS(即15亿次浮点运算),这表示模型在每次推理过程中需要执行15亿次浮点运算。较低的FLOPS通常意味着模型更高效,适合在资源受限的设备上运行,如移动设备或嵌入式系统。在选择模型时,FLOPS 是权衡模型性能与计算资源的重要参考因素。

前传耗时每秒帧数浮点运算量 是衡量检测速度的重要指标。高效的模型应在保证精度的同时,具备较低的前传耗时和 FLOPS,以及较高的 FPS,从而在各种实际应用场景中表现出色。


三、目标检测性能指标总结

在目标检测领域,精确率召回率F1 Score交并比 (IoU) 是最常用的性能评估指标。这些指标帮助我们全面理解模型的检测能力。精确率 衡量模型预测的准确性,召回率 则评估其覆盖所有正样本的能力,F1 Score 在二者之间找到平衡,而 交并比 则具体反映预测框与真实框的重合程度。通过这些指标,我们不仅能够确定模型是否能够准确识别目标,还能评估其在不同场景下的实际应用效果。高精确率高召回率高IoU值 的模型在实际应用中往往表现更加出色。

综合各项性能指标,目标检测模型的优劣不仅仅体现在精度和速度上,更重要的是其在实际应用中的 适用性鲁棒性。一个优秀的目标检测模型应在保证 高精确率高召回率 的同时,具备较低的前传耗时和FLOPS,以及较高的FPS,从而在各种实时和复杂环境中表现优异。随着深度学习技术的不断进步,未来的目标检测模型将会更加高效和智能,不仅能够处理更大规模的数据,还能适应更多元化的应用场景,从而为智能视觉系统的发展带来更广阔的前景。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++之移动语义与左值右值深入学习:从入门到精通!

简介 本文详细阐述了 C 中关于移动语义、左值右值等技术的基本概念和常用技巧。 问题的产生 每一项技术的诞生都是为了解决某一个问题&#xff0c;移动语义、左值右值也是一样&#xff0c;因此我们先来看看问题产生的背景。 先来看一段代码&#xff1a; #include <iost…

JavaEE: Thread类

Thread的常见构造方法 Thread的常见属性 ID 是线程的唯一标识,不同线程不会重复名称是在使用各种调试工具时会用到的状态表示线程当前所处的情况优先级高的线程理论上来说更容易被调度到关于后台线程,需要记住:JVM会在一个进程的所有非后台线程结束后,才会结束运行是否存活,即r…

社交及时通讯平台完整版源码,uniapp技术,可打包成app

源码简介&#xff1a; 全原生&#xff0c;从底层开始结构就完全不一样&#xff0c;mongodb的库&#xff0c;uniapp混编手端&#xff0c;二开难度要比视酷或者酷信容易很多。全开源&#xff0c;带开发文档。前端用的是uniapp技术&#xff0c;所以是多端合一&#xff0c;可以做h…

【JVM基础14】——垃圾回收-强引用、软引用、弱引用、虚引用的区别

目录 1- 引言&#xff1a;为什么分多种引用类型2- ⭐核心&#xff1a;2-1 强引用2-2 软引用2-3 弱引用2-4 虚引用 3- 小结&#xff1a;3-1 强引用、软引用、弱引用、虚引用的区别&#xff1f; 1- 引言&#xff1a;为什么分多种引用类型 在 Java 中&#xff0c;引用类型被分为强…

linux 6.10.0 CXL/reg.c 详解

文章目录 前言Ref正文1. cxl_setup_regs2. cxl_probe_regs()3. cxl_probe_component_regs()4. cxl_probe_device_regs()5. cxl_map_device_regs()6. cxl_count_regblock() / cxl_find_regblock_instance() 前言 CXL 是一个比较新的技术&#xff0c;内核版本迭代太快&#xff0…

python爬虫预备知识三-多进程

python实现多进程的方法&#xff1a;fork、multiprocessing模块创建多进程。 os.fork方法 os.fork方法只适合于unix/linux系统&#xff0c;不支持windows系统。 fork方法调用一次会返回两次&#xff0c;原因在于操作系统将当前进程&#xff08;父进程&#xff09;复制出一份…

在Linux中,什么叫做线程

在Linux中&#xff0c;什么叫做线程&#xff1f; CPU调度的基本单位。 在Linux中&#xff0c;什么叫做进程&#xff1f; 内核视角&#xff1a; 承担分配系统资源的基本实体。 一个进程内部可以有多个执行流。 task_struct可以理解为轻量级进程。 线程是进程内部的一个分支…

【python】Python中位运算算法详细解析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

数据库扩展新篇章:主流分库分表中间件全解析

摘要&#xff1a; 随着企业数据量的激增&#xff0c;传统的单体数据库架构已经无法满足日益增长的性能需求和数据管理复杂性。分库分表技术作为解决这一问题的有效手段&#xff0c;通过将数据水平或垂直地分散到多个数据库中&#xff0c;提高了系统的扩展性和处理能力。本文将详…

LISA: Reasoning Segmentation via Large Language Model

发表时间&#xff1a;CVPR 2024 论文链接&#xff1a;https://openaccess.thecvf.com/content/CVPR2024/papers/Lai_LISA_Reasoning_Segmentation_via_Large_Language_Model_CVPR_2024_paper.pdf 作者单位&#xff1a;CUHK Motivation&#xff1a;尽管感知系统近年来取得了显…

鸡舍环控系统

在现代养殖业中&#xff0c;科技的进步正悄然改变着传统模式&#xff0c;其中&#xff0c;基于物联网和自动控制技术的鸡舍环控系统正逐渐成为行业内的新宠。这套系统不仅能够集成温湿度、光照度等参数的监测与控制&#xff0c;还能通过智能化手段减轻日常养殖工作量&#xff0…

探索 Python 异步通信的奥秘:WebSockets 库的神奇之旅

文章目录 探索 Python 异步通信的奥秘&#xff1a;WebSockets 库的神奇之旅背景&#xff1a;为何选择 WebSockets&#xff1f;什么是 websockets 库&#xff1f;安装 websockets 库5个简单的库函数使用方法场景应用示例常见问题与解决方案总结 探索 Python 异步通信的奥秘&…

sqli-labs-php7-master\Less-1

1&#xff0c;进入mysql数据库 mysql -u root -p 接着&#xff1a; show databases; use security; select * from where id1 LIMIT 0,1; 函数的基本用法 system_user() #当前系统用户 user() #当前登录用户 current_user() #当前登录用…

electron-updater实现electron全量更新和增量更新——主进程部分

同学们可以私信我加入学习群&#xff01; 正文开始 前言更新功能所有文章汇总一、更新插件选择二、在main.js中引入我们的更新模块三、更新模块UpdateController.js暴露的方法checkUpdate四、更新模块UpdateController.js中的监听4.1监听是否有新版本需要更新&#xff1f;4.2 监…

怎样配置虚拟机IP

目录&#xff08;三步走&#xff09; 配置本机IP 配置虚拟机外部IP 配置虚拟机内部IP 参考链接&#xff1a; 配置本机IP 打开“网络和共享中心”——>更改“适配器设置” 找到“VMnet8”&#xff0c;然后右键“属性”&#xff0c;弹出下列窗口 输入本机IP&#xff08;你…

浅谈操作系统

我们前面谈到了一个可执行程序首先会到内存进行预先加载~而在我们的计算机中第一个被加载的软件就是操作系统~ 操作系统的主要工作就是对软硬件资源进行管理~ 这里我们先从操作系统下层开始讲起~ 我们把操作系统类比为校长&#xff0c;驱动程序类比为辅导员&#xff0c;底层硬件…

【学术会议征稿】第四届电气工程与计算机技术国际学术会议(ICEECT2024)

第四届电气工程与计算机技术国际学术会议&#xff08;ICEECT2024&#xff09; 2024 4th International Conference on Electrical Engineering and Computer Technology 第四届电气工程与计算机技术国际学术会议&#xff08;ICEECT2024&#xff09;将于9月27日-29日在哈尔滨举…

吴恩达机器学习COURSE1 WEEK2

COURSE1 WEEK2 多维特征 在线性回归中&#xff0c;往往特征不止一个&#xff0c;而是具有多维特征 例如&#xff0c;在预测房价的例子中&#xff0c;我们知道更多的信息&#xff1a; x 1 x_1 x1​&#xff1a;房屋的面积 x 2 x_2 x2​&#xff1a;卧室的数目 x 3 x_3 x3​&a…

微信小程序 - 自定义计数器 - 优化(键盘输入校验)

微信小程序通过自定义组件&#xff0c;实现计数器值的增加、减少、清零、最大最小值限定、禁用等操作。通过按钮事件触发方式&#xff0c;更新计数器的值&#xff0c;并修改相关联的其它变量。通过提升用户体验&#xff0c;对计数器进行优化设计&#xff0c;使用户操作更加便捷…

蜂窝网络架构

2G/3G 4G eNB RF-RRU eCPRI RRU-BBU 光纤 5G From 38.300 AMF处理信令等&#xff0c;UPF 用户面&#xff0c;后面还有SMF