一 yolov8 背景介绍
YOLOv8是一种尖端的、最先进的(SOTA)模型,建立在以前 YOLO 版本的成功基础上,并引入了新的特性和改进,以进一步提高性能和灵活性。YOLOv8被设计为快速、准确、易于使用,这使它成为一个很好的选择,用于范围广泛的目标检测和跟踪、实例分割、图像分类和姿势估计任务。
一个不错的参考:yolov8官方代码训练模型
github yolov8 官网地址 地址:
GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite
预训练模型在 coco 数据集的执行效果:
1.1 环境安装
pip install ultralytics
1.2 安装cuda
使用的是重新配置的一套环境,使用最新版的cuda 本机执行没有成功,使用11.8可以
pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118
二 数据集
本项目场景比较通用,使用的网上的公共数据集,下载网站:
Roboflow Universe: Open Source Computer Vision Community
这里选择数据集下载格式:
三 执行训练
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
这个报错显示了你正在使用的代码试图使用 Wandb(Weights & Biases),但是没有配置正确的 API 密钥。
要解决这个问题,你需要提供正确的 Wandb API 密钥。你可以按照之前的建议在代码中调用 wandb.login(key="your_api_key")
方法来配置 API 密钥。确保将 "your_api_key" 替换为你自己生成的 API 密钥。
3.3.1 解决方法
命令行执行:
wandb offline
方法二,没测试不知道是否可行:
import wandb
wandb.disabled = True
3.4 调整配置参数
注意 线程的数据 设置不能是8,默认设为0,设为8给我卡住了。
3.5 下载预训练模型
根据需要和场景下载适合的预训练模型:
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)