当前位置: 首页 > news >正文

yolo性能评价指标(训练后生成文件解读)results、mAP、Precision、Recall、FPS、Confienc--笔记

results

1、train/box_loss


意思:在训练集上的 box loss(框损失)。
理解:表示模型在预测目标框时的误差,通常是通过 回归损失 来度量(如 IoU损失 或 CIoU)。它衡量了预测框与实际标注框之间的 位置和尺寸差异,该值越小越好。 

2、 train/cls_loss


意思:在训练集上的 classification loss(分类损失)。
理解:表示模型预测目标类别的误差,通常是通过 交叉熵损失来计算。它衡量了模型对每个目标的类别预测的准确性。分类损失越小,表示模型在分类任务上表现越好。


3、train/dfl_loss


意思:在训练集上的 distribution Focal loss(分布焦点损失)。
理解:这是 Focal Loss 的一种扩展,用于处理 类别不平衡 的问题。它的作用是降低易分类样本的权重,增强难分类样本的贡献。在目标检测中,这有助于模型更好地学习 困难样本,而不是大量容易预测的样本。

4、metrics/precision(B)


意思:在 训练集 上计算的 Precision(精确度)。
理解:表示模型预测为正类的样本中,实际为正类的比例。精确度衡量的是模型的 预测准确性,即 正确的正类预测 与 所有正类预测 之间的比例。精确度越高,说明模型的预测误报越少。
B 表示 Box,即 边框级别的精确度,针对每个目标框的预测结果进行计算。

5、metrics/recall(B)


意思:在 训练集 上计算的 Recall(召回率)。
解释:表示所有实际正类样本中,被模型正确预测为正类的比例。召回率衡量的是模型 捕获正类样本的能力,即 正确预测的正类样本数 与 所有实际正类样本数 之间的比例。召回率越高,意味着模型能找出更多的正类样本。
B 同样表示 Box 级别的召回率,针对每个目标框的检测结果计算。

6、val/box_loss


意思:在 验证集 上的 box loss(框损失)。
解释:与 训练集的框损失 相同,表示模型在验证集上预测目标框时的误差。通常来说,验证集的损失应该比训练集的损失高,模型通过验证集来评估其泛化能力。

7、 val/cls_loss


意思:在 验证集 上的 classification loss(分类损失)。
解释:与 训练集的分类损失 相同,表示模型在验证集上的分类准确性。验证集的分类损失可以帮助评估模型的 泛化能力。

8、val/dfl_loss


意思:在 验证集 上的 distribution focal loss(分布焦点损失)。
解释:与 训练集的 DFL loss 相同,这一损失用于 类别不平衡 的目标检测任务。它帮助模型关注那些 难以分类的样本,通过增加困难样本的权重,提高模型在这些样本上的学习能力。

9、 metrics/mAP50(B)


意思:在 训练集 上计算的 mAP@50(平均精度,IoU 阈值为 0.5)。
解释:mAP 是 mean Average Precision(平均精度) 的缩写,是目标检测中常用的评估指标。mAP50 表示 IoU 阈值为 0.5 时的平均精度,衡量的是模型在多个类别上的 精度,通常高于 0.5 的预测框被认为是“正确的”。该指标综合了 精确度 和 召回率,越高表示模型性能越好。

10、metrics/mAP50-95(B)


意思:在 训练集 上计算的 mAP@50-95(平均精度,IoU 阈值从 0.5 到 0.95 的均值)。
解释:这是 mAP 的一个扩展,计算了多个 IoU 阈值(从 0.5 到 0.95)下的 平均精度,其目的是更加严格地评估模型在不同 IoU 值下的表现。与 mAP50 不同,mAP50-95 在计算时会使用不同的 IoU 阈值,从而提供更细致的评估,尤其适用于 精确的目标框检测。

confusion_matrix.png 和confusion_matrix_normalized.png是用于评估目标检测模型性能的混淆矩阵图。

混淆矩阵是一个表格,用于显示分类模型在测试数据上的预测结果与实际标签之间的关系。它将实际标签分为正例(Positive)和负例(Negative),将预测结果划分为真阳性(True Positive)、真阴性(True Negative)、假阳性(False Positive)和假阴性(False Negative)四种情况。

真阳性(True Positive):模型正确预测为正例的样本数。
真阴性(True Negative):模型正确预测为负例的样本数。
假阳性(False Positive):模型错误地将负例预测为正例的样本数。
假阴性(False Negative):模型错误地将正例预测为负例的样本数。

confusion_matrix.png

confusion_matrix.png 则是未经过归一化处理的混淆矩阵图,显示的是预测结果的绝对数量。

confusion_matrix_normalized.png

confusion_matrix_normalized.png是经过归一化处理的混淆矩阵图。归一化后的混淆矩阵显示的是预测结果的相对比例或百分比,可以更清楚地了解模型在不同类别上的分类准确性。

这两个图表可以帮助您分析模型在不同类别上的分类性能,进而评估模型的准确性、召回率和误报率等指标。 

Labels

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

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

labels_correlogram

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

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

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

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

 

 

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的逐渐增高而变化的一个曲线。

 

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图片就是根据这个文件绘画出来的。

args.yaml文件

其中主要保存一些我们训练时指定的参数,内容如下所示。

lr0: 0.01 lrf: 0.01 momentum: 0.937 weight_decay: 0.0005 warmup_epochs: 3.0 warmup_momentum: 0.8 warmup_bias_lr: 0.1 box: 0.05 cls: 0.5 cls_pw: 1.0 obj: 1.0 obj_pw: 1.0 iou_t: 0.2 anchor_t: 4.0 fl_gamma: 0.0 hsv_h: 0.015 hsv_s: 0.7 hsv_v: 0.4 degrees: 0.0 translate: 0.1 scale: 0.5 shear: 0.0 perspective: 0.0 flipud: 0.0 fliplr: 0.5 mosaic: 1.0 mixup: 0.0 copy_paste: 0.0

 

 


其他

1、Precision

    精度 (Precision)是评估模型预测正确的正样本的比例。在目标检测
    中,如果模型预测的边界框与真实的边界框重合,则认为预测正确。

2、Recall

    召回率(Recall)是评估模型能够找出所有真实正样本的比例。在目标检
    测中,如果真实的边界框与预测的边界框重合,则认为该样本被正确召回。

3、FPS

    全称为Frames Per Second,即每秒帧率。
    用于评估模型在给定硬件上的处理速度,即每秒可以处理的图片数量。
    该指标对于实现实时检测非常重要,因为只有处理速度快,才能满足实时检测的需求。

4、loU

    全称为Intersection over Union,表示交并比。
    在目标检测中,它用于衡量模型生成的候选框与原标记框之间的重叠程度。
    loU值越大,表示两个框之间的相似性越高。通常,当loU值大于0.5时,认为可以检测到目标物体。
    这个指标常用于评估模型在特定数据集上的检测准确度。

5、FLOPs

    全称为Floating Point Operations Per Second,每秒浮点运算次数,表示处理器每秒钟能够执行的浮点运算次数。
    常被用来衡量模型的复杂度或者计算成本。一个模型的FLOPs越高,意味着它需要更多的计算资源和时间来进行训练或推理。
    因此,对于需要在资源有限的设备(如移动设备或嵌入式设备)上运行的深度学习模型,通常需要尽可能地减少模型的FLOPs。

参考链接:

yolo系列目标检测模型训练结果分析_yolo训练结果分析-CSDN博客 

YOLOv5性能评估指标->mAP、Precision、Recall、FPS、Confienc (讲解论文关注的主要指标)-阿里云开发者社区 YOLOv5性能评估指标->mAP、Precision、Recall、FPS、Confienc (讲解论文关注的主要指标)_yolov5目标检测模型评估指标-CSDN博客

results认识与使用_大家的技术博客_51CTO博客 

YOLOv10性能评价指标_yolo map50-95-CSDN博客 

http://www.dtcms.com/a/266893.html

相关文章:

  • 韩顺平之第九章综合练习-----------房屋出租管理系统
  • 从0写自己的操作系统(3)x86操作系统的中断和异常处理
  • 02每日简报20250704
  • Spring Boot + 本地部署大模型实现:安全性与可靠性保障
  • 高档宠物食品对宠物的健康益处有哪些?
  • MySQL/MariaDB数据库主从复制之基于二进制日志的方式
  • 如何查看自己电脑的显卡信息?
  • 力扣hot100题(1)
  • C++26 下一代C++标准
  • 通用人工智能三大方向系统梳理
  • 学习者的Python项目灵感
  • 【python实用小脚本-128】基于 Python 的 Hacker News 爬虫工具:自动化抓取新闻数据
  • [数据结构]详解红黑树
  • 小架构step系列04:springboot提供的依赖
  • mobaxterm终端sqlplus乱码问题解决
  • 使用循环抵消算法求解最小费用流问题
  • opencv的颜色通道问题 rgb bgr
  • 智绅科技:以科技为翼,构建养老安全守护网
  • Vue中对象赋值问题:对象引用被保留,仅部分属性被覆盖
  • 八股学习(三)---MySQL
  • 高流量发布会,保障支付系统稳定运行感想
  • Flink-05学习 接上节,将FlinkJedisPoolConfig 从Kafka写入Redis
  • 关于python
  • Javaweb - 10.2 Servlet
  • 【51单片机倒计时选位最右侧2位显示秒钟后最左侧1位显示8两秒后复位初始状态2个外部中断组合按键功能】2022-7-5
  • 数据库位函数:原理、应用与性能优化
  • Nuxt 3 面试题合集(中高级)
  • 在 C++ 中,判断 `std::string` 是否为空字符串
  • 【贪心】P2660 zzc 种田
  • Rust 中的返回类型