YOLOV8训练自己的数据(训练样本整理)

YOLOV8训练自己的数据(训练样本整理/训练和预测)

YOLOV8训练自己的数据语义分割篇

yolov8都出来了,你还在用老模型?确定不一起来看看?

1、模型下载

https://github.com/ultralytics/ultralytics

下载下来后用自己以前配置的py38的环境进行运行,正常可用。按项目需求,配置安装相应的包,并下载预训练权重文件。

2、训练样本配置文件生成

2.1数据标注

使用cvat等工具标注好自己的数据,导出对应的 /annotations/instances_test2017.json 文件

2.2将json文件格式转换成yolov8训练所需数据格式

代码参考https://github.com/ultralytics/JSON2YOLO感谢贡献者
使用程序general_json2yolo.py 进行数据格式转换。
YOLOV8训练自己的数据(训练样本整理)_第1张图片
数据转换过程中出现了报错,错误不记得了。
做了如下几个修改,可以正常使用了:
a:修改general_json2yolo.py文件
YOLOV8训练自己的数据(训练样本整理)_第2张图片
YOLOV8训练自己的数据(训练样本整理)_第3张图片
b:修改utils.py文件

将unity.py中添加如下程序

def coco91_to_coco1280_class(data):  # converts 80-index (val2014) to 91-index (paper)
    # https://tech.amikelive.com/node-718/what-object-categories-labels-are-in-coco-dataset/
    cls_json = data['categories']
    clss = {'%g' % x['id']: x["name"] for x in cls_json}
    if not os.path.exists('ultralytics-main/mydata_process/json2yolo-master/labelfile.txt'):
        labelfiles=[]
        print('label file empty')
    else:
        print('read exist label')
        with open('ultralytics-main/mydata_process/json2yolo-master/labelfile.txt','r') as f:
            labelfiles = f.read().split('\n')[:-1]



cout = 0
for tmp in cls_json:
    k,v  = tmp['id'], tmp['name']
    if v not in labelfiles:
        with open('ultralytics-main/mydata_process/json2yolo-master/labelfile.txt','a') as fw:
            fw.write(str(v)+'\n')

        with open('ultralytics-main/mydata_process/json2yolo-master/labelfile_bak.txt','a') as fw:
            fw.write('{}: '.format(cout) + str(v)+'\n')
        cout += 1

with open(
        'ultralytics-main/mydata_process/json2yolo-master/labelfile.txt',
        'r') as f:
    labelfiles = f.read().split('\n')[:-1]


clss_out = {'{}'.format(labelfiles[i]) : i for i in range(len(labelfiles))}

return clss, clss_out

2.3 整理的训练样本文件格式

生成的样本数据的标签文件如下:
├── coco128-seg
│ ├── images
│ │ └── train2017
│ ├── labels
│ │ ├── train2017
│ │ └── train2017.cache
│ ├── LICENSE
│ └── README.txt

2.4 生成的样本数据的标签格式

YOLOV8训练自己的数据(训练样本整理)_第4张图片

2.5 配置训练参数文件

训练样本配置文件所在路径如下

ultralytics/datasets/coco128-seg.yaml
YOLOV8训练自己的数据(训练样本整理)_第5张图片

3、train.py

训练语义分割项目train.py文件路径

ultralytics/yolo/v8/segment/train.py

预测运行的中间结果及输出模型保存在run文件夹下面

4、predict.py

预测文件路径

ultralytics/yolo/v8/segment/predict.py

预测所用配置文件路径

ultralytics/yolo/cfg/default.yaml
YOLOV8训练自己的数据(训练样本整理)_第6张图片

预测输出结果路径

/ultralytics-main/ultralytics/yolo/v8/segment/runs/detect

你可能感兴趣的:(python,图像算法,yolov8,YOLO,python,开发语言)