【YOLOv5实战4】基于YOLOv5的交通标志识别系统-模型测试与评估

实战博客指引:

  1. 实战环境搭建
  2. 自定义数据集
  3. 模型训练
  4. 模型测试与评估
  5. YOLOv5整合PyQt5
  6. 项目源代码

一、参数说明

在上一个步骤中,我们进行了模型的训练,训练时的截图如下:
在这里插入图片描述
在这里解释一下各个字段的含义:

  • Epoch: num0/num1,num0表示当前的轮数,num1表示一共多少轮。图中为0/19,表示共20轮,当前为第0轮。
  • gpu_mem: GPU内存的使用量。
  • 中间几个将在训练的结果中进行解释。
  • 最右边的几个数字表示当前训练状态。8/57表示本次epoch需要进行57次迭代,当前迭代次数为8。
  • 00:11<01:09,表示本次epoch已运行了11s,预计还需运行1m9s。1.43s/it表示每次迭代大概需要1.43s。(可以简单计算一下,1.43*57=81.51≈1m9s+11s=80s)。借助这几个参数可以判断你每次的epoch大概需要执行多久,然后再乘上你的epoch,就能大致推断训练的时间大概是多长。

二、结果评估

在训练完成后,会在你相应的结果目录下(runs/train/expi,i为你第几次训练的数字)下。比如本人之前进行了三次训练用于测试是否有问题,而没有删除相关文件,然后在第四次完整地训练,因此结果保存在exp3下,如图:
在这里插入图片描述
weights/目录保存了你的训练过程中效果最好的一次以及最后一次训练的模型。在这里插入图片描述
exp3/包含了许多文件和图片,这里重点介绍一下result.png,简要介绍一下其他文件:

2.1 results.png

results.png如下:
在这里插入图片描述

  • Box: YOLO V5使用 GIOU Loss作为bounding box的损失,Box推测为GIoU损失函数均值,越小方框越准,即预测框与真实值框的重合程度;
  • Objectness: 推测为目标检测loss均值,越小目标检测越准;
  • Classification:推测为分类loss均值,越小分类越准;
真实\预测TF
TTPFN
FFPTN
  • Precision:查准率(找对的正类/所有找到的正类)。其计算公式为:【YOLOv5实战4】基于YOLOv5的交通标志识别系统-模型测试与评估,表示在你认为为真的样本中实际为真的概率,表示你的准确率。
  • Recall: 查全率(找对的正类/所有本应该被找对的正类)。其计算公式为:【YOLOv5实战4】基于YOLOv5的交通标志识别系统-模型测试与评估,表示在所有为真的样本中你找对的概率。
  • mAP@0.5 & mAP@0.5:0.95:就是mAP是用Precision和Recall作为两轴作图后围成的面积,m表示平均,@后面的数表示判定iou为正负样本的阈值,@0.5:0.95表示阈值取0.5:0.05:0.95后取均值。

一般训练结果主要观察精度和召回率波动情况(波动不是很大则训练效果较好)。然后观察mAP@0.5 & mAP@0.5:0.95 评价训练结果,一般来说这两个值越大越好,表示你的模型更优秀。

2.2其他文件截图

  1. confusion_matrix.png(混淆矩阵)
    混淆矩阵能对分类问题的预测结果进行总结,显示了分类模型的在进行预测时会对哪一部分产生混淆。纵轴为预测值,横轴为真实值。
    在这里插入图片描述

  2. F1_curve:
    F1分数与置信度之间的关系。F1分数(F1-score)是分类问题的一个衡量指标,是精确率precision和召回率recall的调和平均数,最大为1,最小为0, 1是最好,0是最差
    在这里插入图片描述

  3. labels.jpg
    第一个图 classes:每个类别的数据量
    第二个图 labels:标签
    第三个图 center xy
    第四个图 labels 标签的长和宽
    在这里插入图片描述

  4. P_curve.png :
    准确率precision和置信度confidence的关系图
    在这里插入图片描述

  5. PR_curve.png:
    PR曲线中的P代表的是precision(精准率),R代表的是recall(召回率),其代表的是精准率与召回率的关系,一般情况下,将recall设置为横坐标,precision设置为纵坐标。PR曲线下围成的面积即AP,所有类别AP平均值即Map.
    如果PR图的其中的一个曲线A完全包住另一个学习器的曲线B,则可断言A的性能优于B,当A和B发生交叉时,可以根据曲线下方的面积大小来进行比较。一般训练结果主要观察精度和召回率波动情况(波动不是很大则训练效果较好)。
    在这里插入图片描述

  6. R_curve.png :召回率和置信度之间的关系
    在这里插入图片描述

观察上述截图可发现,博主的模型比较辣鸡(毕竟设备不行,用的数据集较少,导致准确度不高)。

三、模型测试

python detect.py --weights weights/best.pt --source data/images/test --img-size 640 --device 0

上述命令指定了测试使用的模型权重为训练得到的模型best.pt,测试数据集为test/目录,也可以指定为单张图片,测试的过程如下:
在这里插入图片描述
结果保存在runs/detect/exp/目录下。其中的样例如图:
在这里插入图片描述

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年2月28日 下午10:40
下一篇 2023年2月28日 下午10:41

相关推荐