【第五章:计算机视觉-项目实战之目标检测实战】2.目标检测实战:中国交通标志检测-(3)YOLOv8模型搭建
本文介绍了YOLOv8模型在中国交通标志检测项目中的实战应用。首先讲解了YOLOv8的环境搭建和数据集配置(data.yaml)方法,包括路径设置和类别定义。然后对比了不同规格的YOLOv8预训练模型(yolov8n/s/m/l/x.pt)的特点,建议根据实际需求选择合适的模型。详细说明了模型训练参数配置和验证测试方法,包括训练命令、验证指标和预测结果的保存。最后提到YOLOv8会自动生成训练曲线
第五章:计算机视觉(Computer Vision)- 项目实战之目标检测实战
第二部分:目标检测实战:中国交通标志检测
第三节:YOLOv8 模型搭建
在完成 数据准备与格式转化 之后,本节我们进入 YOLOv8 模型的搭建与训练 阶段。YOLOv8 是 Ultralytics 于 2023 年推出的最新一代 YOLO 模型,相比 YOLOv5、YOLOv7,具备更快的推理速度和更优的检测精度,非常适合我们在 中国交通标志检测 中使用。
1. YOLOv8 环境搭建
在开始之前,我们需要准备好运行环境:
# 安装 YOLOv8
pip install ultralytics
# 检查是否安装成功
yolo help
如果你看到一系列命令提示(如 yolo detect train/predict/val/export),说明 YOLOv8 已安装成功。
2. 数据集配置文件(data.yaml)
YOLOv8 需要一个 YAML 配置文件,用来描述数据集路径与类别信息。例如针对 TT100K 交通标志数据集 转换后的格式,我们编写如下文件:
# data.yaml
path: datasets # 数据集根目录
train: images/train
val: images/val
test: images/test
nc: 200 # 类别数量 (TT100K 是200类,可根据实际精简)
names:
- prohibitory
- speedlimit
- stop
- crosswalk
- trafficlight
- ... # 依次写入 classes.txt 的内容
其中:
-
nc表示类别总数。 -
names必须与classes.txt保持一致。 -
你可以选择保留全部 200 类,或只保留常见的 10 类标志以降低难度。
3. YOLOv8 模型选择
YOLOv8 提供多个预训练模型,大小与速度各不相同:
| 模型 | 参数量 | 特点 |
|---|---|---|
| yolov8n.pt | 最小 | 速度最快,适合入门或移动端 |
| yolov8s.pt | 小型 | 较平衡,适合快速实验 |
| yolov8m.pt | 中型 | 准确率更高 |
| yolov8l.pt | 大型 | 精度高但速度稍慢 |
| yolov8x.pt | 最大 | 最强性能,适合 GPU 训练 |
在交通标志检测任务中,如果我们只是想 快速验证流程,可以用 yolov8n.pt;如果要 实际部署,推荐 yolov8s.pt 或 yolov8m.pt。
4. 模型训练
准备好数据后,开始训练模型:
yolo detect train \
data=datasets/data.yaml \
model=yolov8n.pt \
epochs=50 \
imgsz=640 \
batch=16 \
name=traffic_sign_yolov8
参数说明:
-
data:数据集配置文件。 -
model:预训练权重,可以选择yolov8n.pt等。 -
epochs:训练轮数,50~100 较为常见。 -
imgsz:输入图像尺寸,通常 640。 -
batch:批量大小,根据显存设置。 -
name:保存实验的名称。
5. 模型验证与测试
训练完成后,可以使用验证命令:
yolo detect val model=runs/detect/traffic_sign_yolov8/weights/best.pt data=datasets/data.yaml
也可以直接在测试集图片上运行预测:
yolo detect predict model=runs/detect/traffic_sign_yolov8/weights/best.pt source=datasets/images/test
预测结果会保存在 runs/detect/predict/ 文件夹下。
6. 可视化结果
YOLOv8 默认会生成训练过程中的曲线图,包括:
-
loss 曲线:显示训练/验证集的损失下降情况。
-
mAP 曲线:显示检测精度提升情况。
-
PR 曲线:Precision-Recall 关系。
这些图表可以帮助我们判断模型是否 收敛,是否存在 过拟合。
7. 总结
在本节中,我们完成了 YOLOv8 的搭建与训练:
-
安装 YOLOv8 并准备运行环境。
-
编写
data.yaml配置文件,定义交通标志数据集。 -
选择合适的 YOLOv8 模型(n/s/m/l/x)。
-
使用
yolo detect train命令进行训练。 -
使用验证与预测命令测试模型效果。
这样,我们就得到了一个能够自动检测交通标志的 YOLOv8 模型。
更多推荐
所有评论(0)