YOLOv13保姆级入门教程(三):模型训练与验证全流程! | 手把手教你构建数据集、标签格式转换与yaml配置
📖 前言
Hello,大家好!欢迎来到YOLOv13保姆级教程的第三部分,也是最激动人心的实战环节。在上一期《环境配置与推理验证》中,我们已经成功搭建了YOLOv13的运行环境。
今天,我们将正式开始使用我们自己的数据集来训练和验证YOLOv13模型。这对于将YOLO技术应用于实际项目至关重要。
(1) 准备自定义数据集
在开始训练之前,你需要有一个已经标注好的、符合YOLO格式的数据集。
1.1 数据集结构
这里我们以一个PCB电路板缺陷检测数据集为例,它的目录结构如下:
/path/to/your/dataset/
├── images/
│ ├── 01_missing_hole_01.jpg
│ ├── 01_missing_hole_02.jpg
│ └── ...
├── labels/
│ ├── 01_missing_hole_01.txt
│ ├── 01_missing_hole_02.txt
│ └── ...
├── train.txt
└── val.txt
images/: 存放所有原始图片。labels/: 存放与图片同名的.txt标注文件,每一行代表一个边界框。train.txt和val.txt: 分别存放训练集和验证集所有图片的绝对路径。
小贴士:关于如何从XML格式转换为YOLO的TXT格式,可以参考我之前在YOLOv12系列中详细讲解的《数据集构建》教程。
1.2 创建数据集配置文件 (.yaml)
为了让YOLOv13知道如何使用你的数据集,我们需要创建一个.yaml格式的配置文件。
-
参考官方配置:
在yolov13-main/ultralytics/cfg/datasets/目录下,有很多官方数据集的.yaml文件,例如coco.yaml。我们可以复制一份并进行修改。 -
创建你的
.yaml文件:
我们将coco.yaml复制并重命名为PCB.yaml。 -
修改配置文件内容:
打开PCB.yaml,修改以下关键部分:# 数据集根目录的路径 path: /path/to/your/DATASET # 修改为你数据集的绝对路径 train: train.txt # 训练集图片路径列表文件 val: val.txt # 验证集图片路径列表文件 # test: (可选) # 类别信息 names: 0: Missing_hole 1: Mouse_bite 2: Open_circuit 3: Short 4: Spur 5: Spurious_copperpath: 必须是你的数据集根目录的绝对路径。train/val: 指向包含图片路径的.txt文件。names: 定义你的类别名称,顺序必须与标注文件中的类别ID(从0开始)严格对应。
(2) 配置并开始训练
准备好数据集配置文件后,我们就可以配置训练脚本并启动训练了。
-
创建训练脚本
在yolov13-main目录下创建一个train.py文件。 -
编写训练代码
将以下代码粘贴到train.py中。这段代码与官方README中的示例基本一致,但我们做了一些关键修改。from ultralytics import YOLO # 1. 加载一个模型配置 (这里使用yolov13n.yaml从零开始训练) # 也可以加载预训练权重,如 model = YOLO('yolov13n.pt') model = YOLO('yolov13n.yaml') # 2. 训练模型 results = model.train( data='ultralytics/cfg/datasets/PCB.yaml', # ‼️ 关键:指向你的数据集配置文件 epochs=600, batch=-1, # 设为-1,YOLO会自动寻找最佳batch size imgsz=640, scale=0.5, mosaic=1.0, mixup=0.0, # S:0.05; L:0.15; X:0.2 copy_paste=0.1, # S:0.15; L:0.5; X:0.6 device='0' # 指定使用第0号GPU,多卡用 '0,1,2,3' ) -
理解关键训练参数:
model: 可以是.yaml(从零训练)或.pt(使用预训练权重)。对于自定义数据集,强烈推荐使用预训练权重,这样收敛更快,效果更好。data: 这是最关键的一步,必须准确指向你刚刚创建的数据集.yaml文件。epochs: 训练的总轮数。可以先设小一点测试,实际训练时根据收敛情况调整。batch: 每批次训练的图片数量。设为-1可以让YOLO自动测试并选择显存允许的最大值,非常方便。device: 指定训练用的GPU。
-
启动训练
在激活了yolov13的conda环境下,运行脚本:# (yolov13) ...$ python train.py如果一切配置正确,你会看到终端开始打印模型结构,并启动
auto batch测试,然后正式开始训练。训练日志和权重文件会保存在runs/detect/train/目录下。
(3) 模型验证 (Validation)
训练完成后,你需要验证模型在验证集上的性能。
-
创建验证脚本
在yolov13-main目录下创建val.py文件。 -
编写验证代码
from ultralytics import YOLO # 1. 加载你训练好的模型权重 # 通常是 runs/detect/trainX/weights/best.pt model = YOLO('runs/detect/train/weights/best.pt') # 2. 运行验证 metrics = model.val( data='ultralytics/cfg/datasets/PCB.yaml', # 同样指向你的数据集配置文件 batch=128, half=True # 使用半精度推理,可以加速 )model: 这里加载的是你训练过程中保存下来的最佳权重 (best.pt)。data: 同样指向你的数据集配置文件。
-
运行验证
# (yolov13) ...$ python val.py运行结束后,终端会打印出详细的性能指标表格,包括每个类别的
P(Precision),R(Recall),mAP50,mAP50-95等。
(4) 总结
本期教程详细讲解了使用自定义数据集训练和验证YOLOv13的全流程:
- 准备了符合YOLO格式的数据集。
- 创建并配置了关键的
.yaml数据集文件。 - 修改并运行了训练脚本,并解释了核心参数。
- 使用训练好的权重进行了模型验证,并解读了性能指标。
至此,你已经掌握了YOLOv13从环境配置到模型训练的核心技能。下一期,我们将探讨如何使用训练好的模型进行图片、视频的推理,以及模型的导出。我们下期再见!
399

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



