【自动划分数据集】提供图片与标签(.txt)文件即可自动生成YOLO格式数据集

【自动划分数据集】提供图片与标签(.txt)文件即可自动生成YOLO格式数据集,第1张

"""
input:
1.img_path 数据集图片地址
2.label_path 数据集标签地址(.txt格式)
3.划分比例(0到1) split_rate

output:
--dataset
    --images
        --train
        --val
    --labels
       --train
       --val
"""
import os
import random
import shutil

def get_imlist(path):
    return [os.path.join(path, f) for f in os.listdir(path) if f.endswith('.jpg')] #后缀要换成自己的

def move_labels(dest_dir, path):
    label_list = get_imlist(dest_dir + f'/images/{path}')
    for names in label_list:
        name = names.split('\')[-1:][0]
        name = name.split('.')[0]
        label = name + '.txt'
        if os.path.exists(f'{label_path}/'):
            shutil.copy(f'{label_path}/
', dest_dir + f'/labels/{path}') else: print(f'

is not exists') def main(src_path): dest_dir = output_path # 这个文件夹需要提前建好 img_list = get_imlist(src_path) random.shuffle(img_list) length = int(len(img_list) * split_rate) # 这个可以修改划分比例 os.makedirs(dest_dir + '/images/train') os.makedirs(dest_dir + '/images/test') os.makedirs(dest_dir + '/labels/train') os.makedirs(dest_dir + '/labels/test') for f in img_list[length:]: shutil.copy(f, dest_dir + '/images/train') for f in img_list[:length]: shutil.copy(f, dest_dir + '/images/test') #移动对应的标签到对应位置 move_labels(dest_dir, 'test') move_labels(dest_dir, 'train') print(f'finished') if __name__ == '__main__': path_dataset = r'..\output\crazing.15_0.5-0.5_1\expertLabel0.15_0.5' img_path = path_dataset + '\images' label_path = path_dataset + '\labels' split_rate = 0.2 output_path = r'datasets\demo' if not os.path.exists(output_path): os.makedirs(output_path) main(img_path)

欢迎分享,转载请注明来源:

内存溢出

原文地址:
https://54852.com/langs/942294.html
(0)微信扫一扫打赏 支付宝扫一扫微信扫一扫
支付宝扫一扫
管理员组
PyTorch环境搭建与使用MindStudio进行PyTorch模型开发上一篇
2022-05-18
步骤超详细: 在Kaggle上做手写数字识别
2022-05-18

请登录后评论...
后才能评论
提交

    评论列表(0条)
    保存
    {label}{label}{label}