数据集如下:
这个位置放在哪里都可以。我是在detect下新建了一个文件夹:mydata,将traffic.yaml放入到mydata文件夹下。
train: /root/autodl-tmp/datasets/Traffic/train/images
val: /root/autodl-tmp/datasets/Traffic/valid/images
test: /root/autodl-tmp/datasets/Traffic/test/images
nc: 4
names:
0: bus
1: car
2: truck
3: undefined
注意:这里的路径请使用绝对路径,否则会报错。
根据下面路径,找到yolov8.yaml文件
修改yolov8.yaml文件:
原本红框内是80,则改为4,你的数据集类别个数有多少,就写多少。
我的为4类,则nc: 4
完成上述工作就可以进行训练了。
yolo task=detect mode=train model=yolov8s.yaml data=models/yolo/detect/mydata/traffic.yaml epochs=10 batch=8
参数详解:task:选择任务类型,可以选择['detect' 'segment' 'classify' 'init']
mode:选择任务类型,可以选择 训练、验证或者预测的任务,['train' 'val' 'test']
model:选择YOLOv8不同的模型配置文件,可选yolov8s.yaml、yolov8m.yaml、 yolov8x.yaml等
data: 选择数据集的配置文件
epochs:指的就是训练过程中整个数据集将被迭代多少次,显卡不行你就调小点。
batch:一次看完多少张图片才进行权重更新,梯度下降的mini-batch,显卡不行你就调 小点。
输入上述命令:训练过程如下:
训练结果将被保存在runs/detect/train8:结构是和YOLOv5一样的。
使用训练好的权重,进行验证:
yolo task=detect mode=val model=runs/detect/train8/weights/best.pt data=models/yolo/detect/mydata/traffic.yaml batch=8 device=0
使用训练好的权重进行预测:
yolo task=detect mode=predict model=runs/detect/train8/weights/best.pt source=assets device=cpu
推荐博客:
加油!每天学会一点点!!!!!