第五章:计算机视觉(Computer Vision)- 项目实战之目标检测实战
第二部分:目标检测实战:中国交通标志检测
第四节:YOLOv8训练与测试
在完成数据准备与 YOLOv8 模型的搭建之后,本节我们进入到 模型训练、验证与测试 的全过程。
1. 训练流程概述
YOLOv8 的训练主要包括以下步骤:
-
加载预训练权重(如 yolov8n.pt)作为起点;
-
定义数据集路径(data.yaml);
-
设置训练超参数(batch、epochs、imgsz);
-
执行训练,保存最佳权重文件(best.pt);
-
模型验证,查看指标(Precision、Recall、mAP);
-
模型测试,在新图像上推理可视化结果。
2. 模型训练
YOLOv8 提供了命令行接口,也支持 Python API。我们先看命令行方式:
python
yolo detect train \
model=yolov8n.pt \
data=datasets/data.yaml \
epochs=50 \
imgsz=640 \
batch=16 \
workers=4 \
name=traffic_sign_yolov8
参数说明:
-
model
:预训练模型,可选 yolov8n/s/m/l/x。 -
data
:数据集配置文件。 -
epochs
:训练轮数(推荐 50~100)。 -
imgsz
:图像输入大小。 -
batch
:批量大小。 -
name
:保存实验结果的文件夹名。
训练完成后,会在 runs/detect/traffic_sign_yolov8/weights/
下生成:
-
last.pt
:最后一次保存的权重; -
best.pt
:验证效果最佳的权重。
3. 模型验证
YOLOv8 在训练过程中会自动验证,并绘制曲线:
-
loss 曲线(训练/验证集);
-
Precision-Recall 曲线;
-
mAP@0.5 和 mAP@0.5:0.95 曲线。
也可以单独执行验证:
python
yolo detect val \
model=runs/detect/traffic_sign_yolov8/weights/best.pt \
data=datasets/data.yaml \
imgsz=640
输出结果包括:
-
Precision、Recall、F1-score;
-
mAP@0.5 和 mAP@0.5:0.95;
-
验证集预测可视化。

4. 模型测试(推理)
在新数据或测试集上进行推理:
python
yolo detect predict \
model=runs/detect/traffic_sign_yolov8/weights/best.pt \
source=datasets/images/test \
imgsz=640 \
conf=0.25 \
save=True
参数说明:
-
source
:测试图片或文件夹; -
conf
:置信度阈值(默认 0.25); -
save=True
:保存预测结果。
预测结果会保存在 runs/detect/predict/
文件夹下,包含检测框、类别和置信度。
5. Python API 方式训练与推理
更推荐使用 Python 脚本调用,方便与数据预处理和可视化结合。
python
from ultralytics import YOLO
# 加载模型
model = YOLO("yolov8n.pt")
# 训练
model.train(
data="datasets/data.yaml",
epochs=50,
imgsz=640,
batch=16,
name="traffic_sign_yolov8"
)
# 验证
metrics = model.val()
print(metrics)
# 测试(推理)
results = model.predict(
source="datasets/images/test",
conf=0.25,
save=True
)
6. 可视化与结果分析
YOLOv8 默认会生成可视化图表:
-
results.png
:训练曲线(loss, P, R, mAP)。 -
confusion_matrix.png
:混淆矩阵。 -
PR_curve.png
:精确率-召回率曲线。
这些图表能帮助我们诊断:
-
过拟合(训练 loss 持续下降,验证 loss 不降反升);
-
欠拟合(loss 停留在较高水平);
-
类别不平衡(混淆矩阵某些类别检测效果差)。
7. 小结
在本节中,我们完成了 YOLOv8 的训练与测试:
-
学会了命令行与 Python API 两种方式训练模型;
-
理解了训练过程中的关键超参数;
-
掌握了验证与测试的指标与可视化方法。
下一步,我们将进入 第四节:中国交通标志检测完整 Pipeline 实现 ,结合 数据预处理、模型训练、推理与评估,搭建一个可复用的完整目标检测系统。