yolo_v8入坑实践

33次阅读
没有评论

共计 2985 个字符,预计需要花费 8 分钟才能阅读完成。

导读

  1. YOLOv8 是什么(任务谱系与模型家族)
  2. 环境准备(Python/ 虚拟环境 /GPU 驱动要点)
  3. 安装与自检(Ultralytics/ 依赖 / 版本核对)
  4. 最小可运行:3 条命令跑通推理 / 训练 / 验证
  5. 数据与标注格式(YOLO txt + 数据集 YAML)
  6. 常用命令速查(CLI 与 Python API)
  7. 导出与部署(ONNX/TensorRT/CoreML/OpenVINO)
  8. 复现与监控(随机种子、日志、可视化)
  9. 常见报错与排查
  10. 练习与下一课预告

1) YOLOv8 是什么

  • 任务类型
    • detect 目标检测(方框);
    • segment 实例分割(像素级);
    • pose 关键点;
    • classify 图像分类。
  • 模型家族(参数从小到大,速度↔精度权衡):n(nano)< s < m < l < x。入门 / 边缘用 yolov8n/s,精度优先用 m/l/x
  • 特性速记
    • 多任务同一套 API;
    • Anchor-free 头(默认)+ 解耦头;
    • 训练 / 推理 / 验证 / 导出一体化。

2) 环境准备

2.1 Python 与虚拟环境

# 选择你喜欢的位置
python3 -m venv .venv
source .venv/bin/activate        # Windows: .venv\\Scripts\\activate
python -m pip install --upgrade pip

2.2 GPU(可选)

  • NVIDIA:确保 CUDA + 驱动 与所装 PyTorch 版本匹配;验证:nvidia-smi。无 GPU 时自动走 CPU。
  • macOS(Apple Silicon):可用 CPU 或 MPS(Metal),速度较 GPU 慢但能跑通。
  • Windows:推荐原生或 WSL2;注意路径与权限。

3) 安装与自检

pip install ultralytics  # 安装 YOLOv8 套件
# 可选:安装匹配你平台的 PyTorch(见 PyTorch 官网指引),否则 ultralytics 会拉 CPU 版

自检

yolo checks   # 打印环境、Python、PyTorch/CUDA 等版本信息

看到 checks: ✅、设备列表与版本号即通过。


4) 最小可运行(3 条命令)

下面以检测任务 yolov8n.pt 为例。第一次运行会自动下载权重与样例。

1) 推理(单图像 / 目录 / 摄像头)

yolo predict model=yolov8n.pt source=ultralytics/assets/bus.jpg  # 单图像
# 目录:source=path/to/images;摄像头:source=0

输出在 runs/predict/exp*/,含标注框的可视化图片 / 视频。

2) 训练(用内置样例数据 COCO128)

yolo train model=yolov8n.pt data=coco128.yaml epochs=3 imgsz=640 batch=16

训练日志与权重保存在 runs/detect/train*

3) 验证(评估指标 mAP/Precision/Recall)

yolo val model=runs/detect/train*/weights/best.pt data=coco128.yaml

评估关注:mAP50mAP50-95(越高越好),推理速度(ms/img),参数量(params)与 GFLOPs。


5) 数据与标注格式

5.1 YOLO 标签(*.txt)

每张图一个同名 .txt 文件,一行一个目标

<class_id> <x_center> <y_center> <width> <height>
  • 位置均为 相对比例(0–1),相对图像宽高;
  • 例:0 0.512 0.433 0.210 0.180

5.2 目录结构示例

datasets/dogs-vs-cats/
  images/
    train/ ...jpg
    val/   ...jpg
  labels/
    train/ ...txt
    val/   ...txt

5.3 数据集 YAML(自定义)

# dogs_cats.yaml
path: datasets/dogs-vs-cats
train: images/train
val: images/val
nc: 2
names: [dog, cat]

训练命令:

yolo train model=yolov8n.pt data=dogs_cats.yaml epochs=50 imgsz=640

6) 常用命令速查

  • 推理yolo predict model=*.pt source=... conf=0.25 device=0 save=True show=False
  • 训练yolo train model=*.pt data=*.yaml epochs=100 imgsz=640 batch=auto device=0,1 workers=8
  • 验证yolo val model=*.pt data=*.yaml split=val
  • 继续训练yolo train resume=True(或指定 model=.../last.pt
  • 可视化yolo settings 查看 / 修改默认设置;tensorboard --logdir runs/ 打开曲线
  • Python API
from ultralytics import YOLO
model = YOLO('yolov8n.pt')
model('ultralytics/assets/bus.jpg')              # 推理
model.train(data='coco128.yaml', epochs=3)       # 训练
metrics = model.val()                            # 验证

7) 导出与部署

一条命令导出多种部署格式:

yolo export model=best.pt format=onnx opset=12 dynamic=True
# 还可选:engine(TensorRT) / coreml / openvino / tflite / torchscript 等
  • ONNX:跨框架推理,适合服务器 / 跨语言;
  • TensorRT:NVIDIA GPU 高性能部署;
  • CoreML:iOS/macOS;
  • OpenVINO:Intel CPU/ 集成显卡加速。

8) 复现与监控

  • 随机种子yolo train ... seed=42
  • 确定性(可能降速):yolo train ... deterministic=True
  • 日志runs/ 目录;可选接入 W&B/MLflow 进行在线记录;
  • 资源:GPU 显存不足时减小 imgszbatch,启用 device=cpu 作为退路。

9) 常见报错与排查

  • CUDA out of memory:减小 imgsz/batch;关闭其他占用 GPU 的进程;或切 CPU。
  • No module named 'ultralytics':确认虚拟环境已激活;pip show ultralytics
  • torch not compiled with CUDA:当前 PyTorch 为 CPU 版;按平台重新安装 GPU 版。
  • 标注错位:确认标签坐标为 归一化,且与图像对应;类别 ID 必须从 0 开始连续编号。

10) 练习(建议 30–45 分钟)

  1. 完成环境自检:创建虚拟环境 → pip install ultralyticsyolo checks
  2. yolov8n.ptultralytics/assets/bus.jpg 运行推理,并查看 runs/predict/exp/ 输出。
  3. CPUGPU 上用 coco128.yaml 训练 3 个 epoch,观察 mAP50 变化与可视化曲线。
  4. 导出 best.ptONNX,加载到你喜欢的推理框架测试一张图(可选)。
  5. 自建一个 2 类玩具集(10 张 / 类),写出 YAML,并成功启动训练(跑到 5 个 epoch 即可)。

正文完
 0
一诺
版权声明:本站原创文章,由 一诺 于2025-09-07发表,共计2985字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码