假设数据集的文件夹结构如下:

- 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子文件夹下。

数据集标签划分:Python代码实现训练集、验证集和检测集的标签整理

原文地址: https://www.cveoy.top/t/topic/phWU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录