python打乱数据集并确保图片与标签仍然对应

本文详细描述了如何使用Python对YOLO数据集中的图片和标签进行随机重命名,保持两者之间的关联性。
摘要由CSDN通过智能技术生成

python打乱数据集并确保图片与标签仍然对应

将图片和标签重命名为随机字符,适用于YOLO格式的数据集。

import os
import random
import string
import shutil

# 图片文件夹路径
image_dir = r'D:\YOLO\dataset\葡萄\GDS2\images\val'

# 标签文件夹路径
label_dir = r'D:\YOLO\dataset\葡萄\GDS2\labels\val'

# 获取图片和标签文件夹中的文件列表
image_files = os.listdir(image_dir)
label_files = os.listdir(label_dir)

# 创建打乱后的文件夹
shuffled_image_dir = r'D:\YOLO\dataset\葡萄\GDS3\images\val'
shuffled_label_dir = r'D:\YOLO\dataset\葡萄\GDS3\labels\val'
os.makedirs(shuffled_image_dir, exist_ok=True)
os.makedirs(shuffled_label_dir, exist_ok=True)

# 生成随机文件名函数
def generate_random_filename():
    return ''.join(random.choices(string.ascii_letters + string.digits, k=10))

# 重命名并复制文件到新文件夹中,保持对应关系
for image_file, label_file in zip(image_files, label_files):
    random_filename = generate_random_filename()

    image_src = os.path.join(image_dir, image_file)
    label_src = os.path.join(label_dir, label_file)

    image_dst = os.path.join(shuffled_image_dir, random_filename + os.path.splitext(image_file)[1])
    label_dst = os.path.join(shuffled_label_dir, random_filename + os.path.splitext(label_file)[1])

    shutil.copyfile(image_src, image_dst)
    shutil.copyfile(label_src, label_dst)

print("数据集已成功重命名为随机字符并保持对应关系。")

对应的路径修改为自己的就好。会保留原来的数据集,再生成一个新的打乱之后的数据集。


成功之后可到文件夹进行查看

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值