• 【目标检测算法】YOLO-V5训练结果的分析与评价



    voc2007数据集下的结果评价: 权重文件为:yolov5m。我只训练了10轮

    零、目标检测性能指标

    检测精度检测速度
    Precision,Recall,F1 score前传耗时
    IoU(Intersection over Union)每秒帧数 FPS(Frames Per Sencond)
    P-R curve浮点运算量(FLOPS)
    AP、mAP

    检测速度

    • 前传耗时(ms):从输入一张图像到输出最终结果所消耗的时间,包括前处理耗时(如图像归一化)、网络前传耗时、后处理耗时(如非极大值抑制)
    • 每秒帧数FPS (Frames Per Second): 每秒钟能处理的图像数量
    • 浮点运算量(FLOPS):处理一-张图像所需要的浮点运算数量,跟具体软硬件没有关系,可以公平地比较不同算法之间的检测速度

    检测精度 下面会逐步介绍

    一、 confusion_matrix

    请添加图片描述

    在机器学习领域和统计分类问题中,混淆矩阵(英语:confusion matrix)是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。矩阵的每一列代表一个类的实例预测,而每一行表示一个实际的类的实例。之所以如此命名,是因为通过这个矩阵可以方便地看出机器是否将两个不同的类混淆了(比如说把一个类错当成了另一个)。

    • 混淆矩阵的每一列代表了预测类别,每一行是预测类别。每一列是真实类别。
    • 矩阵中Aij的含义是:第j个类别被预测为第i个类别的概率

    二、P&R&PR&F1_curve

    涉及到准确率(查准率)和召回率(查全率)。这一块内容其他博主介绍也十分详细。

    1. P_curve

    precision(单一类准确率) : 预测为positive的准确率。
    请添加图片描述
    准确率和置信度的关系图。
    意思就是,当我设置置信度为某一数值的时候,各个类别识别的准确率。可以看到,当置信度越大的时候,类别检测的越准确。这也很好理解,只有confidence很大,才被判断是某一类别。但也很好想到,这样的话,会漏检一些置信度低的类别。

    2. R_curve

    recall(真实为positive的准确率),即正样本有多少被找出来了(召回了多少)。请添加图片描述
    召回率(查全率)和置信度的关系图。
    意思就是,当我设置置信度为某一数值的时候,各个类别查全的概率。可以看到,当置信度越小的时候,类别检测的越全面。

    3. PR_curve

    mAP 是 Mean Average Precision 的缩写,即 均值平均精度。可以看到:精度越高,召回率越低。
    但我们希望我们的网络,在准确率很高的前提下,尽可能的检测到全部的类别。所以希望我们的曲线接近(1,1)点,即希望mAP曲线的面积尽可能接近1。
    请添加图片描述

    4. F1_curve

    F1分数(F1-score)是分类问题的一个衡量指标。一些多分类问题的机器学习竞赛,常常将F1-score作为最终测评的方法。它是精确率和召回率的调和平均数,最大为1,最小为0。

    对于某个分类,综合了Precision和Recall的一个判断指标,F1-Score的值是从0到1的,1是最好,0是最差。
    请添加图片描述
    在这里插入图片描述

    三、labels&labels_correlogram

    请添加图片描述

    • 第一个图是训练集得数据量,每个类别有多少个
    • 第二个是框的尺寸和数量
    • 第三个是center点的位置。可以看到口罩数据集中口罩的位置大多分布在图像的中心。
    • 第四个是labeld的高宽。口罩一般相比于整个图片比较小,所以看到样本大多分布在(0-0.2,0-0.2)。

    请添加图片描述

    ???这个框体的输出结果是做什么用的,我也没搜到…

    四、result.png&result.txt

    1. loss functions

    损失函数是用来衡量模型预测值和真实值不一样的程度,极大程度上决定了模型的性能。

    • 定位损失box_loss:预测框与标定框之间的误差(GIoU)
    • 置信度损失obj_loss:计算网络的置信度
    • 分类损失cls_loss:计算锚框与对应的标定分类是否正确

    请添加图片描述
    Box:YOLOV5使用 GIOU loss作为bounding box的损失,Box推测为GIoU损失函数均值越小,方框越准
    Objectness:推测为目标检测loss均值,越小目标检测越准
    Classification:推测为分类loss均值,越小分类越准

    val BOX: 验证集bounding box损失
    val Objectness:验证集目标检测loss均值
    val classification:验证集分类loss均值

    Precision:精度(找对的正类/所有找到的正类)
    Recall:真实为positive的准确率,即正样本有多少被找出来了(召回了多少)

    mAP@0.5:0.95(mAP@[0.5:0.95])
    表示在不同IoU阈值(从0.5到0.95,步长0.05)(0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95)上的平均mAP。

    mAP@0.5:表示阈值大于0.5的平均mAP

    目标检测中PR曲线和mAP

    2. result.csv

    results.txt中最后三列是验证集结果,前面的是训练集结果,全部列分别是:
    训练次数,GPU消耗,边界框损失,目标检测损失,分类损失,total,targets,图片大小,P,R,mAP@.5, mAP@.5:.95, 验证集val Box, 验证集val obj, 验证集val cls

    在这里插入图片描述

    五、train_batchx

    这里我设置的一个batchsize是8,所以一次读了8张照片
    请添加图片描述

    六、val_batchx_labels&val_batchx_pred

    val_batchx_labels:验证集第x轮的实际标签
    请添加图片描述
    val_batchx_pred:验证集第x轮的预测标签
    请添加图片描述

  • 相关阅读:
    苹果电容笔和apple pencil区别是什么?值得入手的电容笔品牌排行榜
    使用TypeScript和jsdom库实现自动化数据抓取
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java快递柜管理系统25b40
    Github上都在疯找的京东内部“架构师进阶手册”终于来了
    QT--创建QT程序
    在Ubuntu系统中安装VNC并结合内网穿透实现公网远程访问
    linux查看用户相关信息的命令
    c#学习_第三弹
    基于PHP+MySQL的校园二手旧书回收捐赠系统
    Source Insight 宏-添加单行的c注释
  • 原文地址:https://blog.csdn.net/weixin_45751396/article/details/126726120