一、YOLO数据集格式
YOLO算法的标注格式主要使用.txt文件来存储图像中物体的标注信息。每个图像都有一个对应的.txt文件,文件中的每行表示一个物体的标注,包括物体的类别索引和边界框(bounding box)的坐标。以下是YOLO标注格式的详细介绍:
- 类别索引:每个物体的类别由一个整数索引表示,索引对应于预先定义的类别列表。
- 边界框坐标:边界框由其中心点坐标(x_center, y_center)和宽度width、高度height组成。这些值通常是归一化到图像宽度和高度的比例值,范围在0到1之间。
- 坐标格式:边界框坐标通常按照[class_index x_center y_center width height]的格式记录,其中class_index是类别索引,x_center和y_center是边界框中心点的x和y坐标,width和height是边界框的宽度和高度。
二、YOLO训练日志
在使用YOLO进行训练时,生成的exp/detect/train类型的文件夹是训练过程中的一个关键组成部分。
- 模型权重 (.pt 或 .pth 文件): 训练过程中保存的模型权重,可以用于后续的测试或继续训练。
- 日志文件 (.log 文件): 包含训练过程中的所有输出信息,如损失值、精度、速度等。
- 配置文件 (.yaml 或 .cfg 文件): 训练时使用的配置文件副本,记录了数据路径、类别名、模型架构等设置。
- 图表和可视化: 有时YOLO会生成训练过程中的性能图表,如损失曲线、精度曲线等。
- 测试结果: 如果训练过程中包括了测试阶段,可能会有测试结果的保存,如检测结果的图片或统计数据。
- F1_curve.png, PR_curve.png, P_curve.png, R_curve.png: 包含模型性能的不同评估指标曲线图,如F1分数(F1_curve.png)、精确率-召回率曲线(PR_curve.png)、精确率(P_curve.png)和召回率(R_curve.png)。
- results.csv: 一个CSV文件,包含模型训练或测试的结果数据。
- results.png: 包含训练结果的汇总图表或图像。
- train_batch*.jpg: 包含训练过程中不同批次的图像和它们的标注。
- val_batch0_labels.jpg, val_batch0_pred.jpg: 验证集批次的图像,可能包含真实标签(labels)和模型预测(pred)的可视化。
- weights/: 一个目录,通常包含模型训练过程中保存的权重文件,如.pt或.pth文件。
提示:在训练过程中和训练完成后,都可以查看训练日志。
指标 | 解释说明 |
---|---|
epoch | 表示模型在整个训练数据集上进行了一次前向和后向传播的完整周期。 |
train/box_loss | 衡量模型预测的边界框与真实边界框之间差异的损失值。 |
train/cls_loss | 衡量模型预测的类别与真实类别之间差异的损失值。 |
train/dfl_loss | 衡量模型对难分类样本的关注程度,减少易分类样本的影响。 |
metrics/precision(B) | 在训练过程中,预测为正类别中实际为正类别的比例。 |
metrics/recall(B) | 在训练过程中,所有实际正类别中被模型正确预测为正类别的比例。 |
metrics/mAP50(B) | 在50%的IoU阈值下计算,衡量模型的整体性能。 |
metrics/mAP50-95(B) | 在0.5到0.95的IoU阈值范围内计算,提供更全面的模型性能评估。 |
val/box_loss | 模型在未见过的验证集上的边界框损失,用于监控模型的泛化能力。 |
val/cls_loss | 模型在验证集上的分类损失,用于监控模型的泛化能力。 |
val/dfl_loss | 模型在验证集上的难易样本平衡损失。 |