YOLOv11性能评估指标 AP、mAP、Precision、Recall、FPS、IoU、混淆矩阵、F1等YOLO相关参数指标讲解

开始讲解之前推荐一下我的专栏,本专栏的内容支持(分类、检测、分割、追踪、关键点检测),专栏目前为限时折扣,欢迎大家订阅本专栏,本专栏每周更新3-5篇最新机制,更有包含我所有改进的文件和交流群提供给大家。 

专栏回顾:YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备

一、简介

这篇博客,主要给大家讲解我们在训练yolov11时生成的结果文件中各个图片及其中指标的含义帮助大家更深入的理解,以及我们在评估模型时和发表论文时主要关注的参数有那些。本文通过举例训练过程中的某一时间的结果来帮助大家理解,大家阅读过程中如有任何问题可以在评论区提问出来,我会帮助大家解答。首先我们来看一个在一次训练完成之后都能生成多少个文件如下图所示,下面的文章讲解都会围绕这个结果文件来介绍。


二、评估用的数据集 

上面的训练结果,是根据一个检测飞机的数据集训练得来,其中只有个标签就是飞机,对于这种单标签的数据集,其实我们可以将其理解为一个二分类任务,

一种情况->检测为飞机,另一种情况->不是飞机。


三、结果分析 

我们可以从结果文件中看到其中共有文件24个,后12张图片是根据我们训练过程中的一些检测结果图片,用于我们可以观察检测结果,有哪些被检测出来了,那些没有被检测出来,其不作为指标评估的文件。         

 


Weights文件夹

我们先从第一个weights文件夹来分析,其中有两个文件,分别是best.pt、last.pt,其分别为训练过程中的损失最低的结果和模型训练的最后一次结果保存的模型。

 


args.yaml

第二个文件是args.yaml文件,其中主要保存一些我们训练时指定的参数,内容如下所示。

 


混淆矩阵(ConfusionMatrix)

第三个文件就是混淆矩阵,大家都应该听过这个名字,其是一种用于评估分类模型性能的表格形式。它以实际类别(真实值)和模型预测类别为基础,将样本分类结果进行统计和汇总。

对于二分类问题,混淆矩阵通常是一个2×2的矩阵,包括真阳性(True Positive, TP)、真阴性(True Negative, TN)、假阳性(False Positive, FP)和假阴性(False Negative, FN)四个元素。

True_Label = [1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1 ,0, 1, 0 , 1 , 0, 0 , 1]
Predict_Label = [0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1 ,0 , 0 , 1 , 0, 0 , 1, 0]

我们来分析这个图,其每个格子代表的含义我在图片上标注了出来,下面我们来拿一个例子来帮助大家来理解这个混淆矩阵。

假设我们的数据集预测为飞机标记为数字0、预测不为飞机标记为1,现在假设我们在模型的训练的某一批次种预测了20次其真实结果和预测结果如下所示。 

其中True_Label代表真实的标签,Predict_Label代表我们用模型预测的标签。

那么我们可以进行对比产生如下分析

  • 6个样本的真实标签和预测标签都是0(真阴性,True Negative)。
  • 1个样本的真实标签是0,但预测标签是1(假阳性,False Positive)。
  • 8个样本的真实标签是1,但预测标签是0(假阴性,False Negative)。
  • 5个样本的真实标签和预测标签都是1(真阳性,True Positive)。

下面根据我们的分析结果,我们就能够画出这个预测的混淆矩阵,

由此我们就能得到那一批次的混淆矩阵,我们的最终结果生成的混淆矩阵可以理解为多个混淆矩阵的统计结果。 

 


混淆矩阵归一化(Confusion Matrix Normal)

这个混淆矩阵的归一化,就是对混淆矩阵做了一个归一化处理,对混淆矩阵进行归一化可以将每个单元格的值除以该类别实际样本数,从而得到表示分类准确率的百分比。这种标准化使得我们可以直观地比较类别间的分类准确率,并识别出模型在哪些类别上表现较好或较差。

我们可以看到是对于列进行了归一化处理,0.9 + 0.1 = 1,1 + 0 = 1。 

 


计算mAP、Precision、Recall

在讲解其它的图片之前我们需要来计算三个比较重要的参数,这是其它图片的基础,这里的计算还是利用上面的某一批次举例的分析结果。

  1. 精确度(Precision):预测为正的样本中有多少是正确的,Precision = TP / (TP + FP) = 5 / (5 + 1) = 5/6 ≈ 0.833

  2. 召回率(Recall):真实为正的样本中有多少被正确预测为正,Recall = TP / (TP + FN) = 5 / (5 + 8) ≈ 0.385

  3. F1值(F1-Score):综合考虑精确度和召回率的指标,F1 = 2 * (Precision * Recall) / (Precision + Recall) = 2 * (0.833 * 0.385) / (0.833 + 0.385) ≈ 0.526

  4. 准确度(Accuracy):所有样本中模型正确预测的比例,Accuracy = (TP + TN) / (TP + TN + FP + FN) = (5 + 6) / (5 + 6 + 1 + 8) ≈ 0.565

  5. 平均精确度(Average Precision, AP):用于计算不同类别的平均精确度,对于二分类问题,AP等于精确度。AP = Precision = 0.833

  6. 平均精确度(Mean Average Precision, mAP):多类别问题的平均精确度,对于二分类问题,mAP等于AP(精确度),所以mAP = AP = 0.833

这里需要讲解的主要是AP和MAP如果是多分类的问题,AP和mAP怎么计算,首先我们要知道AP的全称就是Average Precision,平均精度所以我们AP的计算公式如下?

mAP就是Mean Average Precision,计算如下,计算每一个没别的AP进行求平均值处理就是mAP。

 


F1_Curve 

F1_Curve这个文件,我们点击去的图片的标题是F1-Confidence Curve它显示了在不同分类阈值下的F1值变化情况。

我们可以这么理解,先看它的横纵坐标,横坐标是置信度,纵坐标是F1-Score,F1-Score在前面我们以及讲解过了,那什么是置信度?

置信度(Confidence)->在我们模型的识别过程中会有一个概率,就是模型判定一个物体并不是百分百判定它是属于某一个分类,它会给予它以个概率,Confidence就是我们设置一个阈值,如果超过这个概率那么就确定为某一分类,假如我模型判定一个物体由0.7的概率属于飞机,此时我们设置的阈值如果为0.7以下那么模型就会输出该物体为飞机,如果我们设置的阈值大于0.7那么模型就不会输出该物体为飞机。

F1-Confidence Curve就是随着F1-Score随着Confience的逐渐增高而变化的一个曲线。

 


Labels

Labels图片代表每个检测到的目标的类别和边界框信息。每个目标都由一个矩形边界框和一个类别标签表示,我们逆时针来看这个图片!!!

  1. 目标类别:该像素点所检测到的目标类别,例如飞机等。
  2. 目标位置:该像素点所检测到的目标在图像中的位置,即该像素点在图像中的坐标。
  3. 目标大小:该像素点所检测到的目标的大小,即该像素点所覆盖的区域的大小。
  4. 其他信息:例如目标的旋转角度等其他相关信息。

 


labels_correlogram

labels_correlogram是一个在机器学习领域中使用的术语,它指的是一种图形,用于显示目标检测算法在训练过程中预测标签之间的相关性

具体来说,labels_correlogram是一张颜色矩阵图,它展示了训练集数据标签之间的相关性。它可以帮助我们理解目标检测算法在训练过程中的行为和表现,以及预测标签之间的相互影响。

通过观察labels_correlogram,我们可以了解到目标检测算法在不同类别之间的区分能力,以及对于不同类别的预测精度。此外,我们还可以通过比较不同算法或不同数据集labels_correlogram,来评估算法的性能和数据集的质量。

总之,labels_correlogram是一种有用的工具,可以帮助我们更好地理解目标检测算法在训练过程中的行为和表现,以及评估算法的性能和数据集的质量。

 


P_curve 

这个图的分析和F1_Curve一样,不同的是关于的是Precision和Confidence之间的关系,可以看出我们随着置信度的越来越高检测的准确率按理来说是越来越高的。 

 


R_curve 

这个图的分析和F1_Curve一样,不同的是关于的是Recall和Confidence之间的关系,可以看出我们随着置信度的越来越高召回率的准确率按理来说是越来越低的。 

 


PR_curve

它显示了在不同分类阈值下模型的精确度(Precision)和召回率(Recall)之间的关系。

PR曲线越靠近坐标轴的右上角,模型性能越好,越能够正确识别正样本,正确分类正样本的Precision值越高,而靠近右侧则说明模型对正样本的识别能力较差,即召回能力较差。

PR曲线的特点是随着分类阈值的变化,精确度和召回率会有相应的改变。通常情况下,当分类模型能够同时保持较高的精确度和较高的召回率时,PR曲线处于较高的位置。当模型偏向于高精确度或高召回率时,曲线则相应地向低精确度或低召回率的方向移动。

PR曲线可以帮助我们评估模型在不同阈值下的性能,并选择适当的阈值来平衡精确度和召回率。对于模型比较或选择,我们可以通过比较PR曲线下方的面积(称为平均精确度均值,Average Precision, AP)来进行定量评估。AP值越大,模型的性能越好。

总结:PR曲线是一种展示分类模型精确度和召回率之间关系的可视化工具,通过绘制精确度-召回率曲线,我们可以评估和比较模型在不同分类阈值下的性能,并计算平均精确度均值(AP)来定量衡量模型的好坏。

 


results.csv

results.csv记录了一些我们训练过程中的参数信息,包括损失和学习率等,这里没有什么需要理解大家可以看一看,我们后面的results图片就是根据这个文件绘画出来的。

 


results

这个图片就是生成结果的最后一个了,我们可以看出其中标注了许多小的图片包括训练过程在的各种损失,我们主要看的其实就是后面的四幅图mAP50、mAP50-95、metrics/precision、metrics/recall四张图片。 

  1. mAP50:mAP是mean Average Precision的缩写,表示在多个类别上的平均精度。mAP50表示在50%的IoU阈值下的mAP值。
  2. mAP50-95:这是一个更严格的评价指标,它计算了在50-95%的IoU阈值范围内的mAP值,然后取平均。这能够更准确地评估模型在不同IoU阈值下的性能。
  3. metrics/precision:精度(Precision)是评估模型预测正确的正样本的比例。在目标检测中,如果模型预测的边界框与真实的边界框重合,则认为预测正确。
  4. metrics/recall:召回率(Recall)是评估模型能够找出所有真实正样本的比例。在目标检测中,如果真实的边界框与预测的边界框重合,则认为该样本被正确召回。

 


检测效果图

 最后的十四张图片就是检测效果图了,给大家看一下这里没什么好讲解的了。


四、其它参数

FPS和IoU是目标检测领域中使用的两个重要指标,分别表示每秒处理的图片数量和交并比。

  1. FPS:全称为Frames Per Second,即每秒帧率。它用于评估模型在给定硬件上的处理速度,即每秒可以处理的图片数量。该指标对于实现实时检测非常重要,因为只有处理速度快,才能满足实时检测的需求。
  2. IoU:全称为Intersection over Union,表示交并比。在目标检测中,它用于衡量模型生成的候选框与原标记框之间的重叠程度。IoU值越大,表示两个框之间的相似性越高。通常,当IoU值大于0.5时,认为可以检测到目标物体。这个指标常用于评估模型在特定数据集上的检测准确度。

在目标检测领域中,处理速度和准确度是两个重要的性能指标。在实际应用中,我们需要根据具体需求来平衡这两个指标。

 


五、总结 

到此为止本篇博客就完结了,大家如果有什么不理解的可以在评论区留言,我看到了会给大家进行解答,大家通过综合考虑这些指标的数值,可以评估YOLOv8模型在目标检测任务中的准确性、召回率、速度和边界框质量等性能表现。根据具体需求,我们可以选择更适合任务场景的模型和参数配置。

最后祝大家学习顺利,科研成功,多多论文!!

<think>好的,我需要帮助用户了解YOLO模型的评估指标,特别是mAP、精确率和召回率。首先,我需要回忆这些指标的定义和计算方法。mAP是平均精度均值,常用于目标检测,而精确率和召回率则是分类任务中的常见指标,但在目标检测中如何应用呢? 根据用户提供的引用,引用[1]提到mAP是衡量目标检测模型性能的主要指标。引用[2]中提到了精确度、召回率和mAP的具体数值,以及数据增强对模型性能的影响。引用[3]则展示了如何在代码中输出mAP。我需要将这些信息整合起来,用中文清晰解释每个指标,并说明它们在YOLO模型中的应用。 首先,解释精确率(Precision)和召回率(Recall)。精确率是正确检测的正样本占所有检测为正样本的比例,召回率是正确检测的正样本占所有实际正样本的比例。这两个指标目标检测中通常通过IoU(交并比)来判断检测是否正确。比如,当IoU超过某个阈值(如0.5),则认为检测正确。 接下来是AP(Average Precision),即平均精度。AP是对单个类别的精度-召回率曲线下面积的积分或近似,通常在目标检测中每个类别都有自己的AP。而mAP则是所有类别AP的平均值,如引用[1]和[3]所述,这是YOLO模型评估的关键指标。 需要提到的是,YOLO在计算这些指标时的具体步骤,比如生成预测框、计算IoU、匹配真实框,然后统计TP、FP、FN。这些步骤对于理解评估过程很重要。此外,用户提供的引用[2]中提到使用数据增强和遗传算法优化超参数来提高mAP,这也值得在优化策略部分提及。 可能还需要解释不同IoU阈值对mAP的影响,比如mAP@0.5和mAP@0.5:0.95的区别。这部分在用户提供的引用中没有直接提到,但作为常见知识,应该补充进去以完善解释。 最后,生成相关问题时要围绕用户的需求,可能涉及指标的计算、优化方法、应用场景以及与其他模型的比较。确保问题能够引导用户进一步探索相关内容。 检查是否所有数学公式都正确使用了$...$或$$...$$格式,例如精确率的公式应该是$Precision = \frac{TP}{TP + FP}$,召回率是$Recall = \frac{TP}{TP + FN}$。AP的计算可能需要积分公式,如$AP = \int_{0}^{1} Precision(Recall) dRecall$,或者使用插值方法。确保这些公式的格式正确,并且符合系统级指令的要求。 总结时,要分点清晰,结合引用中的例子,比如引用[2]中的精确度、召回率和mAP的具体数值,说明实际应用中的表现。同时,强调mAP作为综合指标的重要性,以及如何通过数据增强和超参数优化来提升这些指标,如引用[2]和[3]所述。</think>### YOLO模型评估指标解析 YOLO(You Only Look Once)模型作为单阶段目标检测算法的代表,其评估指标主要包含**精确率(Precision)**、**召回率(Recall)**和**平均精度均值(mAP)**。以下是具体解释: --- #### 1. **精确率(Precision)** - **定义**:正确检测的正样本占所有被检测为正样本的比例。 公式为: $$Precision = \frac{TP}{TP + FP}$$ 其中,$TP$(True Positive)是正确检测的正样本数,$FP$(False Positive)是误检为目标的负样本数。 - **应用**:在目标检测中,若检测框与真实框的交并比(IoU)超过阈值(如0.5),则视为$TP$,否则为$FP$[^1]。 --- #### 2. **召回率(Recall)** - **定义**:正确检测的正样本占所有实际正样本的比例。 公式为: $$Recall = \frac{TP}{TP + FN}$$ 其中,$FN$(False Negative)是未被检测到的真实目标数。 - **应用**:召回率高表示模型漏检少,但可能伴随更多误检(高$FP$)[^1]。 --- #### 3. **平均精度均值(mAP)** - **定义**:mAP是所有类别平均精度(AP)的均值。 - **AP(Average Precision)**:单个类别的精度-召回率曲线下面积(AUC),通过插值计算: $$AP = \int_{0}^{1} Precision(Recall) \, dRecall$$ - **mAP**:对多类别目标检测任务,取所有类别AP的平均值。例如,YOLOv5在头盔检测任务中实现$mAP=0.641$[^2]。 - **计算步骤**: 1. 对每个类别生成精度-召回率曲线。 2. 计算曲线下面积得到AP。 3. 对所有AP取平均得到mAP。 - 代码示例:`print("Mean average precision:", results.box.map)`[^3]。 --- #### 4. **YOLO指标的实际应用** - **IoU阈值**:通常以IoU≥0.5作为$TP$的判断标准(记为mAP@0.5),或使用多阈值(如0.5:0.95)综合评估模型鲁棒性。 - **优化策略**: - 数据增强(如翻转、旋转)可提升模型泛化能力,从而提高mAP[^2]。 - 超参数优化(如遗传算法)能改进模型训练效率。 --- ###
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Snu77

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值