【YOLOv5 数据集划分】训练和验证、训练验证和测试(train、val),(train、val、test)
①在已有测试集的情况下划分训练集和验证集
# 将图片和标注数据按比例切分为 训练集和测试集
import shutil
import random
import os
# 数据集路径
image_original_path = './mydatasets/source_images/'
label_original_path = './mydatasets/train_labels/'
# 训练集路径
train_image_path = './mydatasets/train/'
train_label_path = './mydatasets/train_txt/'
# 验证集路径
val_image_path = './mydatasets/val/'
val_label_path = './mydatasets/val_txt/'
# 数据集划分比例,训练集80%,验证集20%,按需修改
train_percent = 0.8
val_percent = 0.2
# 检查文件夹是否存在
def mkdir():
if not os.path.exists(train_image_path):
os.makedirs(train_image_path)
if not os.path.exists(train_label_path):
os.makedirs(train_label_path)
if not os.path.exists(val_image_path):
os.makedirs(val_image_path)
if not os.path.exists(val_label_path):
os.makedirs(val_label_path)
def main():
mkdir()
total_txt = os.listdir(label_original_path)
num_txt = len(total_txt)
list_all_txt =