基于YOLO的语义分割实战(以猪的分割为例)
数据集准备
数据集配置文件
其实语义分割和目标检测类似,包括数据集制备、存放格式基本一致像这样放好即可。
然后需要编写一个data.yaml文件,对应的是数据的配置文件。
train: C:\图标\dan\语义分割pig\dataset\train\images #绝对路径即可
val: C:\图标\dan\语义分割pig\dataset\valid\images
test: C:\图标\dan\语义分割pig\dataset\test\imagesnc: 1
names: ['pig']# roboflow:
# workspace: testecontagem
# project: teste-uggpc
# version: 4
# license: CC BY 4.0
# url: https://universe.roboflow.com/testecontagem/teste-uggpc/dataset/4
train.py
然后我们编写训练代码train.py
作者这里没有参照官方,因为都是兼容的,OK下面给出代码:
from ultralytics import YOLO
import torch# 加载模型
model = YOLO('./yolov8m-seg.yaml').load('./yolov8m-seg.pt') # 从YAML构建并转移权重if __name__ == '__main__':torch.cuda.empty_cache()# 训练模型results = model.train(data='./data.yaml', epochs=150, imgsz=256,batch = 32)metrics = model.val()
至于环境配置这里不再过多讲解。。。
训练过程
运行train.py即可开始训练,这里需要准备模型配置文件和预训练权重,当然这里已经配置完成,存放在本地目录。
训练结果
出现如下结果即可训练,训练结果保存在runs下面,
这是训练完的截图,里面对应的文件与目标检测类似。
OK,至此模型训练完毕。