视频演示
大家好,我是Coding茶水间。
今天,我将基于我的视频内容,为大家带来一篇图文详解文章,重点解释YOLO模型训练结束后生成的各种结果文件。
这些文件包括配置文件、曲线图、混淆矩阵、统计图、日志文件以及权重文件等。
通过这篇文章,你将学会如何解读这些输出,帮助你更好地优化和应用YOLO模型。
在训练YOLO模型时,我们使用了一个简单的手势识别数据集,包括三种类别:Paper(布手势)、Rock(石头手势)和Scissors(剪刀手势)。
这些结果文件可以帮助我们评估模型的性能、识别潜在问题,并指导后续的部署。
接下来,我们逐一拆解。
1. args.yaml 文件:训练参数配置
首先是args.yaml文件,这个文件记录了整个训练过程的配置参数。它本质上是一个YAML格式的配置文件,里面包含了关键信息,比如:
- 数据集路径(dataset path)
- 权重文件保存路径(weights save path)
- 训练迭代次数(epochs)
- 图像归一化大小(image size)
- 数据增强参数(如翻转、缩放等)
这个文件没什么特别复杂的,主要用于复现训练过程或调试。如果你需要修改参数,可以直接编辑它再重新训练。
(图1:args.yaml 文件内容截图,展示参数列表)
2. 四个性能曲线图:Precision、Recall 和 F1 的可视化
训练结束后,会生成四个曲线图,这些图是评估模型性能的核心。每个图都以三种颜色曲线表示三个类别(Paper - 蓝色、Rock - 橙色、Scissors - 绿色),深蓝色曲线为平均值。横坐标通常是置信度(Confidence),表示模型对预测的"确信程度"(从0到1)。
2.1 Precision-Confidence 曲线
- 横坐标: 置信度(Confidence)
- 纵坐标: 精准率(Precision),即模型预测正确的比例(类似于考试中答对的题占总答题数的比例)。
- 含义: 随着自信度增加,精准率逐步上升。例如,当自信度为0.983时,三类平均精准率达到1.0(100%)。
这表明模型在高自信度下非常可靠。
(图2:Precision vs Confidence 曲线图)
2.2 Recall-Confidence 曲线
- 横坐标: 置信度
- 纵坐标: 召回率(Recall),表示模型捕捉到所有正样本的比例(避免"漏检",类似于考试中做完所有题的比例)。
- 含义: 当自信度接近0.97时,召回率为0,意味着模型只有在极度确信时才会预测,但可能导致大量漏检。
召回率强调完整性,与精准率互补。
(图3:Recall vs Confidence 曲线图)
2.3 F1-Confidence 曲线
- 横坐标: 置信度
- 纵坐标: F1 分数(F1 Score),这是精准率和召回率的调和平均,综合评估模型。
- 含义: 在自信度为0.658时,F1 分数达到最佳值0.94。这为实际检测提供参考:设置置信度阈值为0.658,能获得最佳平衡。
F1 分数是部署模型时的重要指标。
(图4:F1 vs Confidence 曲线图)
2.4 Precision-Recall 曲线
- 横坐标: 召回率
- 纵坐标: 精准率
- 含义: 曲线呈反比关系:召回率增加时,精准率下降(类似于做题越多,错误率越高)。这里给出mAP@0.5(平均精准率,当IoU>0.5时视为正确):Paper 0.963、Rock 0.960、Scissors 0.960,平均0.961。
这表明模型在覆盖率大于50%的边界框下,识别准确率高达96.1%。
(图5:Precision vs Recall 曲线图)
3. 混淆矩阵(Confusion Matrix):识别错误分析
混淆矩阵有两个版本:一个是绝对次数,一个是归一化概率。矩阵的行和列包括三个类别 + Background(背景)。
- 绝对次数矩阵: 例如,对角线上的值最高(如Paper vs Paper 为131次),表示正确识别。非对角线如Paper识别为Rock为0次,Paper识别为Scissors为2次,Paper识别为Background为6次。颜色越深,表示次数越多。
- 归一化矩阵: 显示概率,例如Paper识别为Paper的概率为0.94(94%)。
矩阵是对称的,用于直观查看误分类情况。如果对角线值最高,模型性能良好。
(图6:混淆矩阵示例,包括次数和归一化版本)
4. labels 文件:数据集统计图
这个文件包含四个统计图,展示数据集的分布情况:
- 左上: 每个类别的图像数量(Paper: 1250-1500张,Rock: 近2000张,Scissors: 类似Paper)。
- 右上: 边界框大小分布(不同颜色矩形表示类别,蓝色Paper框较大,Rock较集中)。
- 左下: 目标物体坐标分布(蓝色越深,表示越集中,通常居中)。
- 右下: 图像分辨率分布(越集中,表示数据集尺寸越统一)。
这些图帮助检查数据集是否平衡和统一。
(图7:labels 文件的四个统计图)
5. results.csv 文件:训练日志
这是一个CSV文件,记录每轮训练(从1到100轮)的指标变化,包括:
- 训练时间
- 损失函数(Loss)
- 精准率(Precision)
- 召回率(Recall)
- mAP@0.5 和 mAP@0.5:0.95(后者更严格,平均多个IoU阈值)
使用Excel或Notepad打开查看,便于追踪训练进展。
(图8:results.csv 文件内容截图)
6. 损失函数和指标变化图
这些图分为训练集(上)和验证集(下),总共10个左右:
- 损失函数图(Box Loss、Class Loss、Object Loss): 随着轮次增加,损失下降(正常趋势)。
- 指标图: Precision、Recall、mAP@0.5 和 mAP@0.5:0.95 随轮次上升,趋近1.0。
mAP@0.5:0.95 是从IoU=0.5到0.95的平均,更具说服力。
(图9:损失函数和指标变化曲线组图)
7. 样本结果图:训练和验证可视化
- 前四个图: 训练集随机样本,展示标注和数据增强效果。
- 后几个图: 验证集样本,每组包括原始标注图和模型预测图(边界框和类别)。
这些图直观显示模型在实际图像上的表现。
(图10:训练和验证样本图示例)
8. weights 文件夹:最终权重文件
文件夹中包含两个文件:
在部署时,优先使用best.pt以获得最佳性能。
(图11:weights 文件夹内容)
结语
通过以上解析,你应该能全面理解YOLO训练结果的含义。这些文件不仅是评估工具,还能指导优化(如调整自信度阈值或数据集平衡)。
如果有疑问,欢迎在评论区讨论!
记得点赞、收藏和关注Coding茶水间,更多AI教程等着你。