YOLO目标检测数据集划分代码

使用自制数据集训练YOLO目标检测算法前,需要对数据集进行划分,以下代码可以将数据集的图片和标签分别保存

import os
import shutil
import numpy as np
from tqdm import tqdm


def split_dataset(images_dir, labels_dir, train_ratio=0.7, val_ratio=0.2, test_ratio=0.1, random_seed=None):
    # # 检查比例是否合法
    # if train_ratio + val_ratio + test_ratio!= 1.0:
    #     raise ValueError("The sum of train_ratio, val_ratio, and test_ratio must be 1.0")
    # 获取所有图片文件的名称列表
    image_files = [f for f in os.listdir(images_dir) if os.path.isfile(os.path.join(images_dir, f))]
    num_images = len(image_files)
    # 使用 numpy 的随机排列函数
    if random_seed is not None:
        np.random.seed(random_seed)
    # 先将图片文件列表按照比例分成三个部分,而不是先随机打乱
    train_indices = np.random.choice(num_images, size=int(num_images * train_ratio), replace=False)
    remaining_indices = np.setdiff1d(np.arange(num_images), train_indices)
    val_indices = np.random.choice(remaining_indices, size=int(num_images * val_ratio), replace=False)
    test
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱喝咖啡的南猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值