一、获取代码
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…办法