1.数据集准备
在官网下载coco128数据集,或者在链接中通过百度网盘分享的文件:coco128.zip
链接:https://pan.baidu.com/s/15X3vcbMLdvPWvmFDEAwjBA?pwd=abeg
提取码:abeg 里面有图片和打好的标签
我创建了个dataset文件夹,然后把coco128文件到dataset文件夹下,也可以之间把数据集放到ultralytics-main\ultralytics\cfg\datasets文件夹下
2.官网下载YOLOv8
在github上下载或者在gitee下载,别忘了下载权重文件,我使用的是yolov8n.pt
3.配置环境
我在pycharm中跑的代码,参考其他博主的流程,我很早就配置了环境,但是在训练过程中显示有些库的版本太老了,个人比较懒就没有重新配环境(主要是怕配置不好影响之前的配好的环境)
4.训练及参数修改
4.1 yaml参数修改
4.1.1 数据集yaml文件参数修改
在ultralytics-main\ultralytics\cfg\datasets\coco128.yaml下修改train和val的路径,使用绝对路径
如
train: E:\venv2\ultralytics-main\dataset\coco128\images\train2017 # train images (relative to 'path') 128 images val: E:\venv2\ultralytics-main\dataset\coco128\images\train2017
4.1.2 配置yaml文件参数修改
在ultralytics-main\ultralytics\cfg\default.yaml下修改参数,task,mode,model,data(使用绝对路径),epochs,batch,save,device,works等。
注意:data的路径表示的是cfg\datasets\中的yaml文件,试了相对路径报错,因此改为绝对路径
下面给出部分参数修改代码:
task: detect # (str) YOLO task, i.e. detect, segment, classify, pose mode: train # (str) YOLO mode, i.e. train, val, predict, export, track, benchmark
#train setting model: yolov8n.pt # (str, optional) path to model file, i.e. yolov8n.pt, yolov8n.yaml data: E:\venv2\ultralytics-main\ultralytics\cfg\datasets\coco128.yaml # (str, optional) path to data file, i.e. coco128.yaml epochs: 50 # (int) number of epochs to train for
4.2 训练
在终端输入下列代码
yolo train model=yolov8n.pt data=coco128.yaml epochs=50 imgsz=640
但是训练结束后的配置文件args.yaml显示batch,save_period,device未修改,不知道是什么原因,可能是需要修改哪个yaml文件(目前没找到),因此在输入训练代码时指定部分参数
yolo train model=yolov8n.pt data=coco128.yaml epochs=50 imgsz=640 batch=4 workers=2 save_period=10 patience=1
这样跑出来就正常了
5.预测
预测采用的官方的权重文件
需要修改ultralytics-main\ultralytics\cfg\default.yaml的mode为predict
在终端中输入下面代码为
yolo predict model=yolov8n.pt source='./ultralytics/assets/zidane.jp'
6.报错
6.1 找不到数据,miss data
将数据路径都改为绝对路径
6.2 训练出来显示一些参数和设置的不一样,比如batch
在训练时终端中直接指定