YOLOv26性能评估指标 AP、mAP、Precision、Recall、FPS、IoU、混淆矩阵、F1等YOLO相关参数指标讲解
开始讲解之前推荐一下我的专栏本专栏的内容支持(分类、检测、分割、追踪、关键点检测),专栏目前为限时折扣欢迎大家订阅本专栏本专栏每周更新3-5篇最新机制更有包含我所有改进的文件和交流群提供给大家。专栏链接YOLOv26有效涨点专栏包含Conv、注意力机制、主干/Backbone、损失函数、优化器、后处理等改进机制一、简介这篇博客主要给大家讲解我们在训练yolov26时生成的结果文件中各个图片及其中指标的含义帮助大家更深入的理解以及我们在评估模型时和发表论文时主要关注的参数有那些。本文通过举例训练过程中的某一时间的结果来帮助大家理解大家阅读过程中如有任何问题可以在评论区提问出来我会帮助大家解答。首先我们来看一个在一次训练完成之后都能生成多少个文件如下图所示下面的文章讲解都会围绕这个结果文件来介绍。二、评估用的数据集上面的训练结果是根据一个检测飞机的数据集训练得来其中只有个标签就是飞机对于这种单标签的数据集其实我们可以将其理解为一个二分类任务一种情况-检测为飞机另一种情况-不是飞机。三、结果分析我们可以从结果文件中看到其中共有文件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 11 0 1。计算mAP、Precision、Recall在讲解其它的图片之前我们需要来计算三个比较重要的参数这是其它图片的基础这里的计算还是利用上面的某一批次举例的分析结果。精确度Precision预测为正的样本中有多少是正确的Precision TP / (TP FP) 5 / (5 1) 5/6 ≈ 0.833召回率Recall真实为正的样本中有多少被正确预测为正Recall TP / (TP FN) 5 / (5 8) ≈ 0.385F1值F1-Score综合考虑精确度和召回率的指标F1 2 * (Precision * Recall) / (Precision Recall) 2 * (0.833 * 0.385) / (0.833 0.385) ≈ 0.526准确度Accuracy所有样本中模型正确预测的比例Accuracy (TP TN) / (TP TN FP FN) (5 6) / (5 6 1 8) ≈ 0.565平均精确度Average Precision, AP用于计算不同类别的平均精确度对于二分类问题AP等于精确度。AP Precision 0.833平均精确度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_CurveF1_Curve这个文件我们点击去的图片的标题是F1-Confidence Curve它显示了在不同分类阈值下的F1值变化情况。我们可以这么理解先看它的横纵坐标横坐标是置信度纵坐标是F1-ScoreF1-Score在前面我们以及讲解过了那什么是置信度置信度(Confidence)-在我们模型的识别过程中会有一个概率就是模型判定一个物体并不是百分百判定它是属于某一个分类它会给予它以个概率Confidence就是我们设置一个阈值如果超过这个概率那么就确定为某一分类假如我模型判定一个物体由0.7的概率属于飞机此时我们设置的阈值如果为0.7以下那么模型就会输出该物体为飞机如果我们设置的阈值大于0.7那么模型就不会输出该物体为飞机。F1-Confidence Curve就是随着F1-Score随着Confience的逐渐增高而变化的一个曲线。LabelsLabels图片代表每个检测到的目标的类别和边界框信息。每个目标都由一个矩形边界框和一个类别标签表示我们逆时针来看这个图片目标类别该像素点所检测到的目标类别例如飞机等。目标位置该像素点所检测到的目标在图像中的位置即该像素点在图像中的坐标。目标大小该像素点所检测到的目标的大小即该像素点所覆盖的区域的大小。其他信息例如目标的旋转角度等其他相关信息。labels_correlogramlabels_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.csvresults.csv记录了一些我们训练过程中的参数信息包括损失和学习率等这里没有什么需要理解大家可以看一看我们后面的results图片就是根据这个文件绘画出来的。results这个图片就是生成结果的最后一个了我们可以看出其中标注了许多小的图片包括训练过程在的各种损失我们主要看的其实就是后面的四幅图mAP50、mAP50-95、metrics/precision、metrics/recall四张图片。mAP50mAP是mean Average Precision的缩写表示在多个类别上的平均精度。mAP50表示在50%的IoU阈值下的mAP值。mAP50-95这是一个更严格的评价指标它计算了在50-95%的IoU阈值范围内的mAP值然后取平均。这能够更准确地评估模型在不同IoU阈值下的性能。metrics/precision精度Precision是评估模型预测正确的正样本的比例。在目标检测中如果模型预测的边界框与真实的边界框重合则认为预测正确。metrics/recall召回率Recall是评估模型能够找出所有真实正样本的比例。在目标检测中如果真实的边界框与预测的边界框重合则认为该样本被正确召回。检测效果图最后的十四张图片就是检测效果图了给大家看一下这里没什么好讲解的了。四、其它参数FPS和IoU是目标检测领域中使用的两个重要指标分别表示每秒处理的图片数量和交并比。FPS全称为Frames Per Second即每秒帧率。它用于评估模型在给定硬件上的处理速度即每秒可以处理的图片数量。该指标对于实现实时检测非常重要因为只有处理速度快才能满足实时检测的需求。IoU全称为Intersection over Union表示交并比。在目标检测中它用于衡量模型生成的候选框与原标记框之间的重叠程度。IoU值越大表示两个框之间的相似性越高。通常当IoU值大于0.5时认为可以检测到目标物体。这个指标常用于评估模型在特定数据集上的检测准确度。在目标检测领域中处理速度和准确度是两个重要的性能指标。在实际应用中我们需要根据具体需求来平衡这两个指标。五、总结到此为止本篇博客就完结了大家如果有什么不理解的可以在评论区留言我看到了会给大家进行解答大家通过综合考虑这些指标的数值可以评估YOLOv8模型在目标检测任务中的准确性、召回率、速度和边界框质量等性能表现。根据具体需求我们可以选择更适合任务场景的模型和参数配置。最后祝大家学习顺利科研成功多多论文