-
速度快:YOLO的设计目标是实现快速的对象检测,它在保持相对高准确度的同时,能够实现高帧率的实时检测。
-
易于实现:YOLO的架构相对简单,易于理解和实现,这使得它在学术和工业界都得到了广泛的应用。
-
版本迭代:YOLO自2016年首次发布以来,已经经历了多个版本的迭代(如YOLOv5、YOLOv6、YOLOv7等),每个版本都在性能和效率上有所提升。
-
社区支持:YOLO拥有一个活跃的开发者社区,提供了大量的教程、工具和预训练模型,这使得小白也可以快速上手并应用YOLO。
-
灵活性:YOLO的架构允许用户根据特定需求调整网络结构,例如改变输入图像的尺寸或调整网络的深度。
YOLO 数据集格式
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../dataset/ # dataset root dir
train: images/train/ # train images (relative to 'path') 128 images
val: images/val/ # train images (relative to 'path') 128 images
# Classes
nc: 2 # number of classes表示类别的数量,这里设置为2,意味着数据集中有两类物体需要被识别。
names: ["0", '1'] # class names包含了每个类别的名称。这里有两个类别,名称分别是"0"和"1"。这些名称在训练和测试过程中用于引用特定的类别。
数据集配置
path:数据集的根目录,设置为/数据集/。
train和val:分别包含训练和验证图像的目录。这些路径是相对于路径目录的。在这种情况下,训练图像位于images/strain/中,验证图像位于images/val/中。
类配置
nc:数据集中的类数,设置为2。这意味着模型将被训练以识别两类不同的对象。
names:类名列表,用于在培训和测试期间引用特定的类。在这种情况下,这两个类分别命名为“0”和“1”。
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文件。
在训练过程中和训练完成后,都可以查看训练日志。可以优先查看results.png,图像的内容类似如下。从验证集上的损失 (val/box_loss, val/cls_loss, val/dfl_loss) 和性能指标可以评估模型在未见数据上的泛化能力。在下面的训练日志中,我们发现模型在验证集发生了过拟合。

| 缩写 | 作用描述 |
| epoch | 表示模型在整个训练数据集上进行了一次前向和后向传播的完整周期。 |
| train/box_loss | 衡量模型预测的边界框与真实边界框之间差异的损失值。 |
| train/cls_loss | 衡量模型预测的类别与真实类别之间差异的损失值。 |
| train/dfl_loss | 衡量模型对难分类样本的关注程度,减少易分类样本的影响。 |
| metrics/precision(B) | 在训练过程中,预测为正类别中实际为正类别的比例。 |
| metrics/recall(B) | 在训练过程中,所有实际正类别中被模型正确预测为正类别的比例。 |
| metrics/mAP50(B) | 在50%的IoU阈值下计算,衡量模型的整体性能。 |
| metrics/mAP50 |

最低0.47元/天 解锁文章
8327

被折叠的 条评论
为什么被折叠?



