YOLOv8训练自己数据集

看了网上好多YOLOv8训练自己数据集的帖子,都存在一个问题,在远程服务器上该怎样部署?下面是我的步骤:

1.前往github下载源码

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

YOLOv8训练自己数据集_第1张图片

2.准备自己的数据集

新建dataset文件夹,文件夹文件如图所示

YOLOv8训练自己数据集_第2张图片

其中VOCdevkit中目录,Annotations中存放所有xml标签,JPEGImages中存放所有图像,txt文件中为所有txt标签

images和labels中的文件夹都一样,images中存放图像,labels中存放标签(txt文件)

到此,数据集制作就完成了,如果有想要划分数据集图像的代码,可以关注留言,我可以看到

3.配置文件修改

在yolov8下新建data.yaml

其中的内容如图所示

train: ./dataset/images/train  # train images (relative to 'path') 128 images
val: ./dataset/images/val  # val images (relative to 'path') 128 images
test: ./dataset/images/test

nc: 3

# Classes
names: ['类别1','类别2','类别3']

自己替换类别和个数

4.权重下载

Releases · ultralytics/assets · GitHub

自己下载权重哈!!!一般就是yolov8n.pt, yolov8s.pt , yolov8l.pt, yolov8x.pt,自己需要哪个下载哪个

下载好后,直接放在yolov8下。

5.其实这里大家如果需要调参,可以去下面的路径调整

YOLOv8训练自己数据集_第3张图片

具体怎么调,这是个玄学!!!自己把握

YOLOv8训练自己数据集_第4张图片

6.新建训练文件。其实这里是可以进入下图路径中去运行的,但是,各位不觉的难搞吗?直接整一个接口文件。

YOLOv8训练自己数据集_第5张图片

在yolov8下新建train.py,内容如下:
 

from ultralytics import YOLO
 
model = YOLO("weights/yolov8n.pt")
 
results = model.train(data="data.yaml",imgsz=640, epochs=300, batch=16, device=0, workers=4)

 这里我就用yolov8n了,也就是模型最小,速度最快的那位!!

其次,这里的imgsz根据自己数据集选择,不要太大!!batch一般就是4,16,32,64,自己选。但是越大模型收敛越快!!!works我选择的4,如果自己设备好,可以考虑8个线程。

7.终于准备完了!!!上传到云服务器,我用的是恒源云,你们可以根据自己情况选择。上传命令的话,恒源云官方文档都有,如果有实在不会的小伙伴,记得评论区留言!我会应粉丝要求,出一篇博客,如何使用云服务器!

8.云服务器处需要修改部分。一般都是上传到hy-tmp下。

9.高能预警!!!!!!!

此处需要将datasets数据集复制到与yolov8同级目录下!!!

YOLOv8训练自己数据集_第6张图片

原因是遇到以下报错!!!!真的是,恶心至极,竟然找不到数据集!!!原因是因为Ubuntu下的远程服务器中的setting设置导致的,因此,要把数据集dataset复制一份,挪到datasets(自己新建一个)中。

RuntimeError: Dataset 'data.yaml' error ❌ 
Dataset 'data.yaml' images not found ⚠️, missing paths ['/hy-tmp/datasets/dataset/images/val']
Note dataset download directory is '/hy-tmp/datasets'. You can update this in '/root/.config/Ultralytics/settings.yaml'

10.开始训练。python train.py

 YOLOv8训练自己数据集_第7张图片

 可以看到终于运行成功了!!!

11.验证模型性能

对于我们这种科研狗,还是得有这一步的,毕竟这一步可比结果重要

还是在yolov8目录下新建val.py。此时切记,训练的最好的best.pt放在yolov8目录下。这里的batch=1这就是评估每一张图像(切记切记!!),devices=0代表gpu个数

from ultralytics import YOLO
 
model = YOLO("best.pt") #用于迁移训练的权重文件路径
 
results = model.val(data="data.yaml",batch=1, device=0,save=True)

最终python val.py运行成功!本人的实验数据保密!!

YOLOv8训练自己数据集_第8张图片

当然,大家有问题可以在评论区留言,当然有时候可能系统信息太多可能会漏,大家可以在b站发消息给我!如果有必要我会在b站出对应视频教程,需要的可以在下面关注小编,评论区写上视频

YOLOv8训练自己数据集_第9张图片

你可能感兴趣的:(YOLOv8,YOLO)