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

2 篇文章 0 订阅
1 篇文章 0 订阅

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 进行数据格式转换。
在这里插入图片描述
数据转换过程中出现了报错,错误不记得了。
做了如下几个修改,可以正常使用了:
a:修改general_json2yolo.py文件
在这里插入图片描述
在这里插入图片描述
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 生成的样本数据的标签格式

在这里插入图片描述

2.5 配置训练参数文件

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

ultralytics/datasets/coco128-seg.yaml
在这里插入图片描述

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
可以通过设置source指定要预测的文件夹,设置save_txt来保存预测框结果文件

预测输出结果路径

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

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值