YOLOv8 基于 COCO 数据集训练教程

YOLOv8 基于 COCO 数据集训练教程

本文介绍如何使用 Ultralytics YOLOv8COCO 数据集 上进行目标检测训练,适合入门与快速实战。


一、开源数据集推荐: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

参数说明:

参数 含义

model
模型结构(
n
,
s
,
m
,
l
,
x
分别代表不同规模)

epochs
训练轮数

imgsz
图像输入大小

batch
批次大小(根据 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
输出权重:
runs/detect/train/weights/{best.pt,last.pt}
验证评估:每个 epoch 自动计算 mAP@0.5:0.95;早停机制
patience=50
预计耗时

yolov8s
模型在 RTX 3090 上训练 COCO 约 10~20 小时。


五、调优建议

场景 建议配置
小数据集
pretrained=True
+
freeze=10
过拟合 增加
dropout=0.1
多 GPU
device=0,1
学习率调整
lr0=0.001
~
0.01

六、训练后评估与推理

✅ 验证模型性能


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 环境;训练与验证模型;进行推理与可视化。

这是目标检测入门与实验的理想起点 🚀

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容