【第五章:计算机视觉-项目实战之目标检测实战】2.目标检测实战:中国交通标志检测-(4)YOLOv8训练与测试

第五章:计算机视觉(Computer Vision)- 项目实战之目标检测实战

第二部分:目标检测实战:中国交通标志检测

第四节:YOLOv8训练与测试

在完成数据准备与 YOLOv8 模型的搭建之后,本节我们进入到 模型训练、验证与测试 的全过程。


1. 训练流程概述

YOLOv8 的训练主要包括以下步骤:

  1. 加载预训练权重(如 yolov8n.pt)作为起点;

  2. 定义数据集路径(data.yaml);

  3. 设置训练超参数(batch、epochs、imgsz);

  4. 执行训练,保存最佳权重文件(best.pt);

  5. 模型验证,查看指标(Precision、Recall、mAP);

  6. 模型测试,在新图像上推理可视化结果。


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 实现 ,结合 数据预处理、模型训练、推理与评估,搭建一个可复用的完整目标检测系统。

相关推荐
Uopiasd1234oo4 小时前
上下文引导模块改进YOLOv26局部与全局特征融合能力双重提升
深度学习·yolo·机器学习
zhihuishuxia__4 小时前
Multiplex通讯(多路复用通讯)
网络·图像处理·数码相机·计算机视觉·自动化
懷淰メ5 小时前
【AI加持】基于PyQt+YOLO+DeepSeek的钢材焊接缺陷检测系统(详细介绍)
yolo·目标检测·计算机视觉·pyqt·缺陷检测·deepseek·钢材缺陷
一碗白开水一5 小时前
【论文解读】VMamba: Visual State Space Model
人工智能·计算机视觉
动物园猫6 小时前
工业织物缺陷目标检测数据集分享(适用于YOLO系列深度学习分类检测任务)
深度学习·yolo·目标检测
迪菲赫尔曼6 小时前
从 0 到 1 打造工业级推理控制台:UltraConsole(Ultralytics + FastAPI + React)开源啦!
前端·yolo·react.js·计算机视觉·开源·fastapi
隔壁大炮7 小时前
Day07-RNN层(循环网络层)
人工智能·pytorch·python·rnn·深度学习·神经网络·计算机视觉
极智视界9 小时前
分类数据集 - 遥感航空影像云量检测图像分类数据集下载
yolo·数据集·图像分类·算法训练·遥感航空影像云量检测
极智视界10 小时前
分类数据集 - 伪造人脸和真实人脸分类数据集下载
人工智能·yolo·数据集·图像分类·算法训练·人脸伪造检测
深度学习lover11 小时前
<数据集>yolo 常见对象检测<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·常见对象检测