YOLOv8 基于 COCO 数据集训练教程
本文介绍如何使用 Ultralytics YOLOv8 在 COCO 数据集 上进行目标检测训练,适合入门与快速实战。
一、开源数据集推荐:COCO 数据集(子集)
YOLO v8(Ultralytics 官方实现)最常用且兼容的开源数据集是 MS COCO 2017。
它包含:
训练集:118,287 张图像验证集:5,000 张图像类别数:80 类(如人、车、动物等)标注格式:COCO JSON(YOLOv8 原生支持)
YOLOv8 内置支持直接加载 COCO 格式,非常适合目标检测任务。
📦 下载地址
官方页面:https://cocodataset.org/#download
训练集(2017 Train images)(约 18GB)验证集(2017 Val images)(约 1GB)标注文件(2017 Annotations)(约 241MB)
🚀 YOLO 格式(推荐)
无需手动转换,直接可用于 YOLOv8:
Roboflow: https://public.roboflow.com/object-detection/cocoHugging Face Datasets(镜像下载更快):
pip install datasets
from datasets import load_dataset
dataset = load_dataset("coco")
📂 下载步骤
下载上述文件;解压至本地目录,如:;创建
./coco/ 配置文件(见下文)。
data.yaml
💡 若仅想测试,可用 YOLO 官方小型数据集:
https://github.com/ultralytics/ultralytics/blob/main/docs/en/datasets/detect/coco8.yaml
二、训练环境与准备
2.1 安装依赖
pip install ultralytics
验证安装:
yolo version
硬件要求:
推荐:NVIDIA GPU(RTX 系列)可选:CPU(速度较慢)
2.2 数据集配置文件
在项目根目录创建 :
data.yaml
path: ./coco # 数据集根目录
train: images/train2017
val: images/val2017
nc: 80
names: ['person', 'bicycle', 'car', ...] # 80个类别名(从 COCO 官网复制)
若为 YOLO 格式,路径可调整为:
train: ./coco/train/images
val: ./coco/val/images
三、训练命令与参数
🧩 命令行方式(推荐新手使用)
yolo detect train data=data.yaml model=yolov8s.pt epochs=100 imgsz=640 batch=16
参数说明:
| 参数 | 含义 |
|---|---|
|
模型结构(, , , , 分别代表不同规模) |
|
训练轮数 |
|
图像输入大小 |
|
批次大小(根据 GPU 内存调整) |
例如 RTX 3060 可使用 。
batch=32
🧠 Python API 方式
from ultralytics import YOLO
# 加载预训练模型
model = YOLO('yolov8s.pt')
# 开始训练
results = model.train(
data='data.yaml',
epochs=100,
imgsz=640,
batch=16
)
四、训练过程解析
数据加载:YOLOv8 自动读取图像与标注,启用数据增强(mosaic、flip、HSV 等);模型结构:CSPDarknet 主干 + PANet 颈部 + YOLO 检测头;损失函数:CIoU + DF + CLS;优化器:SGD 或 AdamW;学习率调度:cosine annealing;日志与监控:
实时 loss 与 mAP;TensorBoard:输出权重:
tensorboard --logdir runs/train; 验证评估:每个 epoch 自动计算 mAP@0.5:0.95;早停机制:
runs/detect/train/weights/{best.pt,last.pt};预计耗时:
patience=50
模型在 RTX 3090 上训练 COCO 约 10~20 小时。
yolov8s
五、调优建议
| 场景 | 建议配置 |
|---|---|
| 小数据集 | + |
| 过拟合 | 增加 |
| 多 GPU | |
| 学习率调整 | ~ |
六、训练后评估与推理
✅ 验证模型性能
yolo detect val data=data.yaml model=runs/detect/train/weights/best.pt
🔍 推理预测(单图示例)
yolo detect predict model=best.pt source='https://ultralytics.com/images/bus.jpg'
生成结果保存在:
runs/detect/predict/
七、完整示例脚本
# train_yolo.py
from ultralytics import YOLO
model = YOLO('yolov8n.pt') # 从最小模型开始
results = model.train(
data='data.yaml',
epochs=50,
imgsz=640,
batch=32,
name='coco_train'
)
# 推理
model.predict(source='test.jpg', save=True, conf=0.25)
运行命令:
python train_yolo.py
八、训练结果参考(COCO)
| 模型 | mAP@0.5 | mAP@0.5:0.95 | 推理速度(RTX 3060) |
|---|---|---|---|
| yolov8n | 37.3% | 28.2% | ~120 FPS |
| yolov8s | 44.9% | 37.3% | ~80 FPS |
| yolov8m | 50.2% | 41.0% | ~60 FPS |
九、常见问题与资源
官方文档:Ultralytics Docs官方 Colab 示例:Google ColabGitHub 项目:https://github.com/ultralytics/ultralytics
💡 总结
通过本文步骤,你可以快速完成:
下载并准备 COCO 数据集;配置 YOLOv8 环境;训练与验证模型;进行推理与可视化。
这是目标检测入门与实验的理想起点 🚀















暂无评论内容