使用 Ultralytics YOLOv8 训练自定义目标检测模型

使用 Ultralytics YOLOv8 训练自定义目标检测模型

Ultralytics 的 YOLOv8 是目前目标检测领域中最流行、最易用的开源项目之一。本文将手把手教你如何使用 YOLOv8 训练自定义数据集,适用于想要检测特定物体或进行项目落地的开发者。


🧰 一、环境准备

首先,你需要配置好 Python 环境并安装 ultralytics

1. 创建虚拟环境(可选)

conda create -n yolo_env python=3.10 -y
conda activate yolo_env

2. 安装 Ultralytics YOLOv8

pip install ultralytics

验证是否安装成功:

yolo help

📁 二、准备自定义数据集

YOLOv8 使用 YOLO 格式,每张图片需配套一个 .txt 标签文件,格式如下:

class_id x_center y_center width height

坐标都是对图片宽高的归一化值(范围在 0~1 之间)。

1. 数据集目录结构

建议整理成如下结构:

datasets/
└── my_dataset/
    ├── images/
    │   ├── train/
    │   └── val/
    └── labels/
        ├── train/
        └── val/

2. 数据配置 YAML 文件

新建 my_dataset.yaml

path: datasets/my_dataset
train: images/train
val: images/val

names:
  0: cat
  1: dog
  2: rabbit

🚀 三、开始训练模型

使用 yolo 命令行开始训练:

yolo task=detect mode=train model=yolov8n.yaml data=my_dataset.yaml epochs=100 imgsz=640 batch=16

参数说明:

  • task=detect:目标检测任务
  • model=yolov8n.yaml:使用轻量级模型
  • data=my_dataset.yaml:数据配置文件
  • epochs=100:训练 100 轮
  • imgsz=640:输入图像大小
  • batch=16:批量大小

训练过程会生成相关结果于 runs/detect/train/


📊 四、查看训练结果

训练结束后,会生成:

  • results.png:Loss/精度/收回率/响应时间折线图
  • weights/:包括 best.ptlast.pt 模型

使用如下方式可观看评估指标:

from ultralytics import YOLO

model = YOLO('runs/detect/train/weights/best.pt')
metrics = model.val()

🧪 五、模型推理测试

1. 命令行模型推理

yolo task=detect mode=predict model=runs/detect/train/weights/best.pt source=path/to/image.jpg

2. Python API

from ultralytics import YOLO

model = YOLO('runs/detect/train/weights/best.pt')
results = model('path/to/image.jpg')
results[0].show()

💪 附加:评估结果推荐代码

from ultralytics import YOLO

# 载入最佳模型
model = YOLO("runs/detect/train/weights/best.pt")

# 进行验证
metrics = model.val()

# 输出统计结果
print("mAP50:", metrics.box.map50)
print("mAP50-95:", metrics.box.map)
print("Precision:", metrics.box.precision)
print("Recall:", metrics.box.recall)

✅ 总结

使用 Ultralytics YOLOv8 训练自定义数据集只需几个步骤:

  1. 准备数据
  2. 编写 .yaml 配置
  3. 执行训练命令
  4. 推理和可视化结果

Ultralytics 提供了简单结构、规范符合的方式,很适合新手快速实现项目落地。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值