YOLOv8 代码部署

一、获取代码

YOLOv8官方GitHub网址
https://github.com/ultralytics/ultralytics
在这里插入图片描述
获取YOLOv8代码压缩包

二、虚拟环境配置

这个就不写了,装个Anaconda,网上教程很多

三、PyCharm安装与配置(可选)

这个也不写了,直接用命令行也行,或者使用其他IDE,网上教程很多

四、下载ultralytics依赖库

这里默认代码压缩包已经打开,并且PyCharm也已经装好并打开了。
此时的终端已经打开,并且路径在YOLOv8的文件夹下。
输入YOLOv8官方代码里的REDAME.md里的第一步(代码部署都应该先看一下作者写的README.md文件,相当于代码的使用说明书)

在这里插入图片描述

pip install ultralytics

五、测试YOLOv8安装的成功与否

在这里插入图片描述
这是YOLOv8作者的使用在网络图片的测试语句

yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'

这是使用本地图片的测试语句

yolo task=detect mode=predict model=yolov8n.pt conf=0.25 source='ultralytics/assets/bus.jpg'

只要能正确得出运行结果,就说明YOLOv8安装成功了。
而这个运行结果为什么会保存在ultralytics\runs\detect\train这个路径下,则会在下一节讲述。

六、YOLOv8的保存路径

YOLOv8的保存路径与YOLOv5不同,是使用settings.yaml文件来设定的。
这个文件放在这个路径下

C:\Users\你的用户名\AppData\Roaming\Ultralytics

详情参考这个博客 YOLOv8数据集存放位置
之所以会谈到这个问题,是因为YOLOv8默认的文件路径相比YOLOv5有所变动。
所以在后续Python文件调用YOLOv8的代码时,所用的资源文件建议用绝对路径。

七、为使用YOLOv8来训练自己的数据集做一些准备工作

首先需要数据集,也就是train(训练集)、val(验证集)、test(测试集)
这个就不多说了,网络上也有很多教程。
主要讲所需的另一份文件dataset.yaml

这里最好用绝对路径,不然会报错,相对路径也不是不可以,就是没那个耐心调整了。

train: 训练集所在的绝对路径
# train images (relative to 'path')
# 例如D:/yolov8/ultralytics/datasets/train/images

val: 验证集所在的绝对路径
# val images (relative to 'path') 
# 例如D:/yolov8/ultralytics/datasets/val/images

test: 测试集所在的绝对路径
# test images (optional)
# 例如D:/yolov8/ultralytics/datasets/test/images

# number of classes
nc: 数据集种类的数量

# Classes
names: [数据集的种类的名称]

八、使用Python文件来训练自己的数据集

YOLOv8的Python语句用法详见 YOLOv8官方Python文档
https://docs.ultralytics.com/usage/python/

将以下代码写入train.py文件

from ultralytics import YOLO

# Load a model
#model = YOLO("yolov8n.yaml")  # build a new model from scratch
model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)

# Use the model
model.train(data="./dataset.yaml", epochs=3)  # train the model

下面开始数据集的训练,运行以下代码
(此处应当在你的YOLOv8项目的根路径下,且已经打开对应的虚拟环境)

python train.py

九、使用GPU训练数据集时报错(仅限WIN系统)

如果直接使用CPU来训练数据集时,不会报错,但是当使用GPU来训练数据集时,则会报错。
此错误具体为:

RuntimeError:
		An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.

错误详情参考这篇文章
解决RuntimeError: An attempt has been made to start a new process before…办法
解决方法也很简单,在YOLOv8的项目里搜索num_workers
num_workers=nw改为num_workers=0
这行代码的具体位置是

你的YOLOv8项目根目录\ultralytics\data\build.py

在这个py文件里搜索num_workers=nw即可

之后再次训练数据集即可正常运行。

十、使用Python文件训练、验证、测试自己的数据集

训练加验证加测试

#训练加验证加测试
from ultralytics import YOLO

# Load a model
#model = YOLO("yolov8n.yaml")  # build a new model from scratch
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Use the model
model.train(data="./dataset.yaml", epochs=200)  # train the model

# Export the model to ONNX format
success = model.export(format='onnx')

# Evaluate the model's performance on the validation set
model.val()

# Define path to directory containing images and videos for inference
source = r'./ultralytics/datasets/test/images/'

# Run inference on the source
results = model.predict(source, save=True) # generator of Results objects

为验证而训练

#为验证而训练
from ultralytics import YOLO

# Load a model
#model = YOLO("yolov8n.yaml")  # build a new model from scratch
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Use the model
model.train(data="./dataset.yaml", epochs=3)  # train the model

# Export the model to ONNX format
success = model.export(format='onnx')

在训练的基础上验证

#在训练的基础上验证
from ultralytics import YOLO

model = YOLO(r'ultralytics\runs\detect\train30\weights\best.pt') #非通用
#model = YOLO(r'ultralytics\runs\detect\train30\weights\best.onnx') #通用
model.val()

在训练的基础上预测

#在训练的基础上预测
from ultralytics import YOLO

# Load a model
model = YOLO(r'ultralytics\runs\detect\train30\weights\best.pt') #非通用
#model = YOLO(r'ultralytics\runs\detect\train30\weights\best.onnx') #通用

# Define path to directory containing images and videos for inference
source = r'./ultralytics/datasets/test/images'

# Run inference on the source
results = model.predict(source, save=True) # generator of Results objects

独自训练

#独自训练
from ultralytics import YOLO

# Load a model
#model = YOLO("yolov8n.yaml")  # build a new model from scratch
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Use the model
model.train(data="./dataset.yaml", epochs=3)  # train the model

# Export the model to ONNX format
success = model.export(format='onnx')

独自验证

#独自验证
from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Evaluate the model's performance on the validation set
model.val(data="./dataset.yaml")

独自预测

#独自预测
from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Define path to directory containing images and videos for inference
source = r'./ultralytics/datasets/test/images'

# Run inference on the source
results = model.predict(source, save=True) # generator of Results objects

参考链接:
YOLOv8官方GitHub网址
YOLOv8官方Python文档
YOLOv8详解 【网络结构+代码+实操】
windows使用YOLOv8训练自己的模型(0基础保姆级教学)
YOLOv8部署训练操作实录
用YOLOv8一站式解决图像分类、检测、分割
YOLOv8数据集存放位置
零基础:编译器安装+深度学习环境配置+YOLOv8运行:第三部分YOLOv8运行
解决RuntimeError: An attempt has been made to start a new process before…办法

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值