问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

YOLO基础-目标检测的性能指标详解与计算方法

创作时间:
作者:
@小白创作中心

YOLO基础-目标检测的性能指标详解与计算方法

引用
CSDN
1.
https://blog.csdn.net/weixin_41793160/article/details/140893087

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

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

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

1. 检测精度指标

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

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

2. 检测速度指标

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

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

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

为了说明这些指标的计算方法,我们将举一个形象的例子:草原上有100头牛,其中60头是公牛,40头是母牛,我们要通过模型识别出所有公牛。最终模型预测结果如下:

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

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

1. 基础数据与混淆矩阵

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

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

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

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

[
\begin{bmatrix}
TP & FN \
FP & TN
\end{bmatrix} =
\begin{bmatrix}
50 & 10 \
5 & 35
\end{bmatrix}
]

两行两列的数据组成了一个2x2的矩阵,这个矩阵就叫做混淆矩阵。

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

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

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

2. 精确率与召回率

① 精确率 (Precision)

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

公式如下:

[
Precision = \frac{TP}{TP + FP}
]

代入数据计算:

[
Precision = \frac{50}{50 + 5} = \frac{50}{55} \approx 0.909
]

即精确率约为0.909。

② 召回率 (Recall)

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

公式如下:

[
Recall = \frac{TP}{TP + FN}
]

代入数据计算:

[
Recall = \frac{50}{50 + 10} = \frac{50}{60} \approx 0.833
]

即召回率约为0.833。

3. F1 score

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

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

F1 score的计算公式如下:

[
F1 score = \frac{2}{\frac{1}{Precision} + \frac{1}{Recall}} = 2 \times \frac{Precision \times Recall}{Precision + Recall}
]

代入数据计算:

[
F1 score = 2 \times \frac{0.909 \times 0.833}{0.909 + 0.833} \approx 2 \times \frac{0.758}{1.742} \approx 0.870
]

即F1 score为0.870。

4. IOU交并比

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

数学公式表达为:

[
IoU(A, B) = \frac{A \cap B}{A \cup B}
]

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

[
IOU = \frac{预测框与真实框的交集面积}{预测框与真实框的并集面积}
]

假设某次目标检测结果如图所示:

原目标(真实框)为Object范围,检测到的结果(预测框)为Result范围,其中Object与Result重合面积为40,二者有累计10的未重合面积。由图易得,本次检测中预测框和真实框的交集面积为40,预测框和真实框的并集面积为50,

代入数据计算:

[
IOU = \frac{40}{50} = 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.5
0.909
0.833
0.6
0.920
0.800
0.7
0.930
0.750
0.8
0.940
0.700
0.9
0.950
0.650
1.0
0.960
0.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点计算法已经逐步不用了,我们优先使用所有点平均值的计算方法。

计算方法为:

[
AP = \int_0^1 Precision(Recall)dRecall \approx \sum_n(Recall_n - Recall_{n-1})Precision_n
]

代入数据计算:

[
AP = (0.833 - 0.800) \times 0.909 + (0.800 - 0.750) \times 0.920 + (0.750 - 0.700) \times 0.930 + (0.700 - 0.650) \times 0.940 + (0.650 - 0.600) \times 0.950 + (0.600 - 0) \times 0.960
]

[
AP \approx 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取平均值,用于衡量多类别检测模型的整体性能。

计算公式为:

[
mAP = \frac{1}{n}\sum_{i=1}^{n} AP_i
]

代入数据计算:

[
mAP = \frac{1}{4}(0.774 + 0.793 + 0.758 + 0.808) \approx \frac{1}{4} \times 3.133 = 0.78325
]

即mAP约为0.783。

③ AP 和 mAP 的比较

AP和mAP区别如下:

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

7. 检测速度指标

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

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

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

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

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

在目标检测领域,精确率、召回率、F1 Score和交并比 (IoU)是最常用的性能评估指标。这些指标帮助我们全面理解模型的检测能力。

精确率衡量模型预测的准确性,召回率则评估其覆盖所有正样本的能力,F1 Score在二者之间找到平衡,而交并比则具体反映预测框与真实框的重合程度。通过这些指标,我们不仅能够确定模型是否能够准确识别目标,还能评估其在不同场景下的实际应用效果。

高精确率、高召回率和高IoU值的模型在实际应用中往往表现更加出色。

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

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号
YOLO基础-目标检测的性能指标详解与计算方法