共计 2985 个字符,预计需要花费 8 分钟才能阅读完成。
导读
- YOLOv8 是什么(任务谱系与模型家族)
- 环境准备(Python/ 虚拟环境 /GPU 驱动要点)
- 安装与自检(Ultralytics/ 依赖 / 版本核对)
- 最小可运行:3 条命令跑通推理 / 训练 / 验证
- 数据与标注格式(YOLO txt + 数据集 YAML)
- 常用命令速查(CLI 与 Python API)
- 导出与部署(ONNX/TensorRT/CoreML/OpenVINO)
- 复现与监控(随机种子、日志、可视化)
- 常见报错与排查
- 练习与下一课预告
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
评估关注:
mAP50与mAP50-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 显存不足时减小
imgsz或batch,启用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 分钟)
- 完成环境自检:创建虚拟环境 →
pip install ultralytics→yolo checks。 - 用
yolov8n.pt对ultralytics/assets/bus.jpg运行推理,并查看runs/predict/exp/输出。 - 在 CPU 或 GPU 上用
coco128.yaml训练 3 个 epoch,观察mAP50变化与可视化曲线。 - 导出
best.pt为ONNX,加载到你喜欢的推理框架测试一张图(可选)。 - 自建一个 2 类玩具集(10 张 / 类),写出 YAML,并成功启动训练(跑到 5 个 epoch 即可)。
正文完

