news 2026/5/5 20:47:35

(深度学习/计算机视觉)手把手教你从零部署YOLOv8目标检测算法-----模型训练(5/5)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
(深度学习/计算机视觉)手把手教你从零部署YOLOv8目标检测算法-----模型训练(5/5)

⚡⚡⚡ 欢迎预览,批评指正⚡⚡⚡


文章目录

    • 一、训练前的数据准备
      • 1.1 数据集目录结构
      • 1.2 数据划分
      • 1.3 数据放置位置
      • 1.4 数据集描述文件(YAML)
    • 二、模型训练
      • 2.1 命令行方式训练
      • 2.2 Python API 方式训练
      • 2.3 自定义配置文件
    • 三、训练结果
      • 3.1 结果保存位置
      • 3.2 结果内容
      • 3.3 使用训练好的模型进行预测
    • 四、使用中的注意事项
      • 4.1 Windows 系统 workers 参数
      • 4.2 虚拟内存设置
      • 4.3 数据集路径问题
      • 4.4 缓存文件问题
    • 五、本集核心要点回顾

一、训练前的数据准备

1.1 数据集目录结构

需要将数据整理为以下结构:

dataset/ ├── images/ │ ├── train/ # 训练集图片 │ └── val/ # 验证集图片 ├── labels/ │ ├── train/ # 训练集标签 │ └── val/ # 验证集标签 └── classes.txt # 类别文件

1.2 数据划分

  • 从已标注的数据中抽取 300~400 张作为训练集
  • 剩余数据作为验证集
  • 重要:标签文件的名称必须与训练集图片名称完全对应

1.3 数据放置位置

与 YOLOv5 不同:YOLOv8 的数据集必须放在datasets目录下。

ultralytics/ └── datasets/ └── BVN/ # 自定义数据集名称 ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/

1.4 数据集描述文件(YAML)

path:datasets/BVN# 数据集根路径(从 datasets 目录开始写)train:images/train# 训练集图片路径val:images/val# 验证集图片路径nc:2# 类别数量names:['戴图','名人']# 类别名称列表

关键点:

  • pathdatasets目录开始写起,不是从项目根目录
  • 标签文件名称必须与图片名称完全一致

二、模型训练

2.1 命令行方式训练

yolo detect trainmodel=yolov8n.ptdata=ultralytics.yamlepochs=100workers=0batch=16

参数说明:

参数说明示例值
detect train任务类型(训练)detect train
model预训练模型yolov8n.pt
data数据集描述文件ultralytics.yaml
epochs训练轮数100
workers数据加载线程数0(Windows 必须设为 0)
batch批次大小16

2.2 Python API 方式训练

fromultralyticsimportYOLO# 加载模型model=YOLO("yolov8n.pt")# 开始训练model.train(data="ultralytics.yaml",epochs=100,workers=0,batch=16)

注意事项:

  • Windows 系统workers必须设为 0,否则会出现多进程问题
  • 确保 Python 解释器选择正确(之前创建的 yolov8 环境)

2.3 自定义配置文件

YOLOv8 支持使用配置文件覆盖默认参数:

# 复制默认配置文件yolo copy cfg# 修改配置文件中的参数# 然后使用配置文件训练yolo cfg.yaml

配置文件位置ultralytics/cfg/default.yaml


三、训练结果

3.1 结果保存位置

训练结果保存在runs/detect/train/目录下。

3.2 结果内容

文件/文件夹说明
results.png训练曲线(Loss、mAP 等指标)
confusion_matrix.png混淆矩阵
weights/best.pt最佳模型(验证集上表现最好的)
weights/last.pt最后一轮模型(可用于继续训练)
args.yaml训练参数记录


3.3 使用训练好的模型进行预测

yolo detect predictmodel=runs/detect/train/weights/best.ptsource=video.mp4show=True

四、使用中的注意事项

4.1 Windows 系统 workers 参数

必须设置workers=0,否则会出现多进程错误。

4.2 虚拟内存设置

如果训练过程中出现虚拟内存不足的错误:

  1. 右键"此电脑" → 属性 → 高级系统设置
  2. 性能 → 设置 → 高级 → 虚拟内存 → 更改
  3. 取消"自动管理"
  4. 选择安装目录所在的盘(建议 C 盘)
  5. 设置为自定义大小(50000~100000 MB)
  6. 点击"设置" → 确定 → 重启电脑

4.3 数据集路径问题

重要:数据集描述文件(YAML)中的path必须从datasets目录开始写起。

# ✅ 正确写法path:datasets/BVN# ❌ 错误写法path:/full/path/to/datasets/BVN

4.4 缓存文件问题

YOLOv8 在运行时会在~/.cache/ultralytics/目录下生成缓存文件(cache.yaml),其中记录了数据集路径等信息。

常见问题

  • 如果切换了工作目录或数据集路径,缓存文件中的旧路径会导致找不到数据
  • 解决方案:删除缓存文件,重新运行训练命令
# 删除缓存文件rm~/.cache/ultralytics/cache.yaml

或者修改源码:在ultralytics/data/utils.py中找到init_dataset_cache_dir方法,注释掉相关代码,强制每次重新生成缓存。


五、本集核心要点回顾

  1. 数据准备:整理为 images/labels 结构,划分 train/val,放在 datasets 目录下
  2. YAML 描述文件:path 从 datasets 目录开始写,classes 写类别名称
  3. 训练命令yolo detect train model=yolov8n.pt data=xxx.yaml epochs=100 workers=0 batch=16
  4. Windows 必须 workers=0:避免多进程问题
  5. 训练结果:best.pt(最佳模型)、last.pt(最后一轮)、results.png(训练曲线)
  6. 缓存问题:切换目录时删除 cache.yaml 避免路径错误

感谢阅读,下期更精彩 👋👋👋

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 20:47:34

别再手动改格式了!用Python脚本一键搞定LabelImg的YOLO txt与VOC xml互转

高效数据标注转换:Python实现YOLO与VOC格式互转实战指南 在计算机视觉项目的实际开发中,数据标注格式的转换往往是令人头疼却又无法回避的环节。想象一下这样的场景:你的团队已经用LabelImg完成了数千张图片的标注工作,突然项目需…

作者头像 李华
网站建设 2026/5/5 20:41:32

对比直接使用厂商API体验Taotoken在路由容灾上的便利

服务波动下的无缝切换:Taotoken 路由容灾实践观察 1. 背景与问题场景 在实际开发过程中,依赖单一模型供应商的 API 服务存在潜在风险。当供应商出现临时性服务波动或区域性故障时,传统解决方案通常需要开发者手动切换 API 端点或模型&#…

作者头像 李华
网站建设 2026/5/5 20:39:28

告别枯燥理论!手把手教你用CANoe的LIN Stress IG模块模拟真实总线错误

告别枯燥理论!手把手教你用CANoe的LIN Stress IG模块模拟真实总线错误 在车载网络测试领域,LIN总线作为CAN总线的经济型补充,广泛应用于门窗控制、座椅调节等对实时性要求不高的场景。但恰恰因为其低成本特性,LIN节点更容易出现硬…

作者头像 李华
网站建设 2026/5/5 20:37:31

AI模型选型实战:基于开源工具llmarena.ai的成本与性能对比

1. 项目概述:一个为开发者而生的AI模型比价与选型工具在AI应用开发这个行当里摸爬滚打了几年,我最大的感触就是“选择困难症”越来越严重了。早些年,大家基本就盯着OpenAI的API,GPT-3.5够用,GPT-4更强,没太…

作者头像 李华
网站建设 2026/5/5 20:37:30

使用Taotoken CLI工具一键生成多款AI工具配置提升团队效率

使用Taotoken CLI工具一键生成多款AI工具配置提升团队效率 1. Taotoken CLI工具概述 Taotoken CLI工具(taotoken/taotoken)是为开发者提供的命令行工具,旨在简化多款AI开发工具的配置流程。通过该工具,团队技术负责人可以快速为…

作者头像 李华