数据集标签划分:Python代码实现训练集、验证集和检测集的标签整理
假设数据集的文件夹结构如下:
- data
- train
- image1.jpg
- image2.jpg
...
- val
- image3.jpg
- image4.jpg
...
- detect
- image5.jpg
- image6.jpg
...
- labels
- image1.txt
- image2.txt
- image3.txt
- image4.txt
- image5.txt
- image6.txt
...
你可以使用以下Python代码将标签文件划分到相应的文件夹中:
import os
import shutil
# 定义数据集文件夹路径
data_dir = 'data'
# 定义标签文件夹路径
labels_dir = os.path.join(data_dir, 'labels')
# 定义划分后的标签文件夹路径
train_labels_dir = os.path.join(data_dir, 'train', 'labels')
val_labels_dir = os.path.join(data_dir, 'val', 'labels')
detect_labels_dir = os.path.join(data_dir, 'detect', 'labels')
# 创建划分后的标签文件夹
os.makedirs(train_labels_dir, exist_ok=True)
os.makedirs(val_labels_dir, exist_ok=True)
os.makedirs(detect_labels_dir, exist_ok=True)
# 获取所有标签文件名
label_files = os.listdir(labels_dir)
# 根据文件名划分标签文件
for label_file in label_files:
# 获取文件名和扩展名
filename, extension = os.path.splitext(label_file)
# 判断文件所属的数据集
if filename in os.listdir(os.path.join(data_dir, 'train')):
# 将标签文件移动到train的labels文件夹中
shutil.move(os.path.join(labels_dir, label_file), os.path.join(train_labels_dir, label_file))
elif filename in os.listdir(os.path.join(data_dir, 'val')):
# 将标签文件移动到val的labels文件夹中
shutil.move(os.path.join(labels_dir, label_file), os.path.join(val_labels_dir, label_file))
elif filename in os.listdir(os.path.join(data_dir, 'detect')):
# 将标签文件移动到detect的labels文件夹中
shutil.move(os.path.join(labels_dir, label_file), os.path.join(detect_labels_dir, label_file))
运行以上代码后,标签文件将被划分到相应的数据集文件夹中的labels子文件夹下。
原文地址: https://www.cveoy.top/t/topic/phWU 著作权归作者所有。请勿转载和采集!