使用windows进行YOLO8的自定义数据训练

使用windows进行YOLO8的自定义数据训练

[YOLOv8](ultralytics/README.zh-CN.md at main · ultralytics/ultralytics (github.com))是Ultralytics公司开发的YOLO目标检测图像分割模型的最新版本,相较于之前的版本,YOLOv8可以更快速有效地识别和定位图像中的物体,以及更准确地分类它们。

一.环境准备

强烈建议使用GPU训练啊!!!Nvidia显卡可用,ATI等其它显卡直接跳过划走!!!

我的环境如下:

  • Windows 11
  • torch 1.7.1+cu110
  • torchvision 0.8.2+cu110
  • python 3.7.10

其他依赖库按照requirements.txt文件安装即可。

首先需要安装ultralytics,目前YOLOv8核心代码都封装在这个依赖包里面:

pip install ultralytics

1. 运行测试

运行D:\你的虚拟安装环境Venv\Lib\site-packages\ultralytics\yolo\v8\detect\predict.py

查看结果是CPU推理还是GPU推理

image-20230227110822830

如若此处是CPU,请按照我之前的文章【Windows11】Cuda和Cudnn详细安装教程_Jin

Nvidia显卡可用,ATI等其它显卡直接跳过划走!!!

安装好之后,根据自己cuda支持的版本安装PyTorch,选择+cu的命令

进入PyTorch链接

我的安装命令如下:

pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

一.数据准备

1. 构建自己的数据集

为了不让这个过程那么痛苦和耗时,我们可以用上Roboflow这个工具(不过需要科学上网)

登录Roboflow网站从创建账户开始

因为我已经成功进行过数据标注并且导出,因此这里给大家找了两篇Roboflow的使用教程,请食用:

选择YOLOv8导出的数据集如下:

在“pycharm”打开自创数据集中的“data.yaml”,修改文件中的路径。在这里,因为相对路径出了很多问题也很多报错,我就直接改成了绝对路径,尤其注意不要出现中文路径(别问,问就是错过)

2.开始训练

修改保存后,在yolo环境下终端中输入

yolo task=detect mode=train model=yolov8n.pt data=flyerdata/data.yaml epochs=100 imgsz=640 workers=4 batch=4

同时将“data=”后缀修改为自己数据集的路径,回车开始训练。训练完成之后,结果会保存在最后一行指示的路径中。

以上参数解释如下:

task:选择任务类型,可选[‘detect’, ‘segment’, ‘classify’, ‘init’]

mode: 选择是训练、验证还是预测的任务蕾西 可选[‘train’, ‘val’, ‘predict’]

model: 选择yolov8不同的模型配置文件,可选yolov8s.yaml、yolov8m.yaml、yolov8l.yaml、yolov8x.yaml

data: 选择生成的数据集配置文件

epochs:指的就是训练过程中整个数据集将被迭代多少次,显卡不行你就调小点。
batch:一次看完多少张图片才进行权重更新,梯度下降的mini-batch,显卡不行你就调小点。
训练过程如下:

3. 验证数据集

训练完成后,会得到一个自己的模型,最好的模型权重和最后的模型权重

根据自己数据集路径来修改以下验证的data路径

yolo task=detect mode=val model=runs/detect/train5/weights/best.pt data=flyerdata/data.yaml

4. 测试新数据

接下来根据数据集训练结果模型的位置来修改以下代码,“source”是指新图片文件夹的位置,由于我们已经将文件夹放在了仓库主路径中,故可直接修改为”source=images”,然后开始预测。

yolo detect mode=predict model=runs/detect/train33/weights/best.pt source=images

图片保存在…/runs/detect/predict 文件夹中

由于数据敏感,就暂不贴图啦。

猜你喜欢

转载自blog.csdn.net/Jin1Yang/article/details/129243590