目标检测-数据划分(YOLO格式)

1、总代码

import os, shutil
from sklearn.model_selection import train_test_split

#需修改,划分比例
val_size = 0.2
test_size = 0.1

#需修改,确保图片后缀一致
postfix = 'jpg'
#需修改,划分的图片路径
imgpath = r'F:\xuedi\New_img\images\resized_fods_2000_imgs_near'
#需修改,划分的标签路径
txtpath = r'F:\xuedi\New_img\images\resized_fods_2000_labels_near'

os.makedirs('images/train', exist_ok=True)
os.makedirs('images/val', exist_ok=True)
os.makedirs('images/test', exist_ok=True)
os.makedirs('labels/train', exist_ok=True)
os.makedirs('labels/val', exist_ok=True)
os.makedirs('labels/test', exist_ok=True)

listdir = [i for i in os.listdir(txtpath) if 'txt' in i]
train, test = train_test_split(listdir, test_size=test_size, shuffle=True, random_state=0)
train, val = train_test_split(train, test_size=val_size, shuffle=True, random_state=0)

for i in train:
    shutil.copy('{}/{}.{}'.format(imgpath, i[:-4], postfix), 'images/train/{}.{}'.format(i[:-4], postfix))
    shutil.copy('{}/{}'.format(txtpath, i), 'labels/train/{}'.format(i))

for i in val:
    shutil.copy('{}/{}.{}'.format(imgpath, i[:-4], postfix), 'images/val/{}.{}'.format(i[:-4], postfix))
    shutil.copy('{}/{}'.format(txtpath, i), 'labels/val/{}'.format(i))

for i in test:
    shutil.copy('{}/{}.{}'.format(imgpath, i[:-4], postfix), 'images/test/{}.{}'.format(i[:-4], postfix))
    shutil.copy('{}/{}'.format(txtpath, i), 'labels/test/{}'.format(i))

 2、需要修改部分讲解

仅修改四处即可完成对数据集的划分

(1)确定划分比例,根据自己的要求划分数据集,常见的划分比例为

        在第4行

        Train:Val:Test=7:2:1

        Train:Val:Test=8:1:1

#需修改,划分比例
val_size = 0.2
test_size = 0.1

(2)确定图片的后缀一致,根据自己的图片后缀进行替换

        在第8行

#需修改,确保图片后缀一致
postfix = 'jpg'

(3)图片路径和标签路径修改

        在第10行

#需修改,划分的图片路径
imgpath = r'F:\xuedi\New_img\images\resized_fods_2000_imgs_near'
#需修改,划分的标签路径
txtpath = r'F:\xuedi\New_img\images\resized_fods_2000_labels_near'

实验结果 

最后生成的文件在运行代码目录下的文件夹里,具体目录结构为:

split_data.py

————images

——————train

——————val

——————test

————labels

——————train

——————val

——————test


代码仅供自己学习 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值