【生成无标签数据集格式】

Python 生成无标签数据集格式

对于无监督任务

1,假设整个数据集文件夹如下:

data_root
├── meta
│ ├── test.txt # 测试数据集的标注文件
│ ├── train.txt # 训练数据集的标注文件
│ └── val.txt # 验证数据集的标注文件
├── train
│ ├── 123.png
│ ├── folder_1
│ │ ├── xxx.png
│ │ └── xxy.png
│ └── nsdf3.png
├── test
└── val

示例代码:

import os
import random
from sklearn.model_selection import train_test_split
import shutil

def gen_unlabel_dataset(image_folder, data_root):
    # 创建meta目录及其子目录
    meta_dir = os.path.join(data_root, "meta")
    os.makedirs(meta_dir, exist_ok=True)

    # 创建train、test和val目录
    train_dir = os.path.join(data_root, "train")
    test_dir = os.path.join(data_root, "test")
    val_dir = os.path.join(data_root, "val")

    os.makedirs(train_dir, exist_ok=True)
    os.makedirs(test_dir, exist_ok=True)
    os.makedirs(val_dir, exist_ok=True)
    
    # 获取图片文件列表
    Image_suffix = ['jpg', 'bmp', 'png', 'jpeg']
    image_files = []
    for img in os.listdir(image_folder):
        if img.split('.')[-1] in Image_suffix:
            image_files.append(img)
    # 随机打乱图片文件夹列表
    random.shuffle(image_files)
    
    # 划分训练集和验证集
    train_files, val_files = train_test_split(image_files, test_size=0.2)
    
    # 将文件夹写入train.txt
    train_file = os.path.join(meta_dir, "train.txt")
    with open(train_file, "w", encoding="utf-8") as f:
        for file in train_files:
            f.write(f"{file}\n")
            
            # 将图片复制到train目录下
            src_path = os.path.join(image_folder, file)
            dst_path = os.path.join(train_dir, file)
            shutil.copy(src_path, dst_path)

    # 将文件路径写入val.txt
    val_file = os.path.join(meta_dir, "val.txt")
    with open(val_file, "w", encoding="utf-8") as f:
        for file in val_files:
            f.write(f"{file}\n")
            # 将图片复制到val目录下
            src_path = os.path.join(image_folder, file)
            dst_path = os.path.join(val_dir, file)
            os.rename(src_path, dst_path)

    # 创建test.txt
    test_file = os.path.join(meta_dir, "test.txt")
    open(test_file, "w").close()

if __name__ == "__main__":
    image_folder = r''
    data_root = os.path.join(image_folder, "unlabeled_dataset")
    os.makedirs(data_root, exist_ok=True)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值