一 yolov8 背景介绍

YOLOv8是一种尖端的、最先进的(SOTA)模型,建立在以前 YOLO 版本的成功基础上,并引入了新的特性和改进,以进一步提高性能和灵活性。YOLOv8被设计为快速、准确、易于使用,这使它成为一个很好的选择,用于范围广泛的目标检测和跟踪、实例分割、图像分类和姿势估计任务。

一个不错的参考:yolov8官方代码训练模型

github yolov8 官网地址 地址:

GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite

 预训练模型在 coco 数据集的执行效果:

YOLOv8 目标检测项目实操-LMLPHP

1.1 环境安装

1.2 安装cuda

使用的是重新配置的一套环境,使用最新版的cuda 本机执行没有成功,使用11.8可以

二 数据集

本项目场景比较通用,使用的网上的公共数据集,下载网站:

Roboflow Universe: Open Source Computer Vision Community

这里选择数据集下载格式:

YOLOv8 目标检测项目实操-LMLPHP

三 执行训练 

3.1 先把代码拉到本地

git clone https://github.com/ultralytics/ultralytics.git

3.2 使用demo文件做测试

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.yaml')  # build a new model from YAML
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)
model = YOLO('yolov8n.yaml').load('yolov8n.pt')  # build from YAML and transfer weights

# Train the model
results = model.train(data='coco128.yaml', epochs=100, imgsz=640)

3.3 wandb 显示bug

YOLOv8 目标检测项目实操-LMLPHP

这个报错显示了你正在使用的代码试图使用 Wandb(Weights & Biases),但是没有配置正确的 API 密钥。

要解决这个问题,你需要提供正确的 Wandb API 密钥。你可以按照之前的建议在代码中调用 wandb.login(key="your_api_key") 方法来配置 API 密钥。确保将 "your_api_key" 替换为你自己生成的 API 密钥。

3.3.1 解决方法

命令行执行:

方法二,没测试不知道是否可行:

import wandb
wandb.disabled = True

3.4 调整配置参数

注意 线程的数据 设置不能是8,默认设为0,设为8给我卡住了。

YOLOv8 目标检测项目实操-LMLPHP

3.5 下载预训练模型

根据需要和场景下载适合的预训练模型:

YOLOv8 目标检测项目实操-LMLPHP

3.6 开始训练

from ultralytics import YOLO
import multiprocessing

# Load a model
model = YOLO('yolov8m.yaml')  # build a new model from YAML
model = YOLO('./yolov8m.pt')  # load a pretrained model (recommended for training)
model = YOLO('yolov8m.yaml').load('./yolov8m.pt')  # build from YAML and transfer weights

# results = model.train(data='./data.yaml', epochs=10, imgsz=640)

if __name__ == '__main__':
    multiprocessing.freeze_support()

    # 这里放置你的主程序代码
    # 例如,调用 model.train() 函数
    results = model.train(data='./data.yaml', epochs=500, imgsz=640)

YOLOv8 目标检测项目实操-LMLPHP

04-17 12:35