python YOLOv5 训练数据准备

利用YOLOv5尝试进行口罩识别,在网上下载了口罩的数据集,为了制作训练集和验证集,需要从整体数据中随机选取一定比例的图片,并放至val文件夹中,同时图像标注的结果也要相应的放至在labels文件夹中。

1 创建文件目录

在data文件夹下新建数据文件mask_data,mask_data文件下新建images和labels两个文件夹,文件夹内容如下:

  1. images
  • train -----放训练图片, 将下载的口罩数据集图片放入这里
  • val -----放验证图片
  1. labels —图像标注后的结果存放在这里
  • train -----放训练label, 将下载的口罩数据集图片对应的结果放入这里
  • val -----放验证label

2 随机选取一定比例的图片放入val文件夹

方法参考了这位博主的文章python随机选取10000张图片并复制到另一个文件夹中,在这里记录一下。

import os, random, shutil

def moveFile(fileDir, tarDir):
    pathDir = os.listdir(fileDir)  # 原始图片的路径
    filenumber = len(pathDir)
    rate = 0.2  # 选取图片的比例,这里我的训练集和验证集数据量比例为4:1,即抽取比例为0.2
    picknumber = int(filenumber * rate)  # 按照rate比例从文件夹中取一定数量图片
    sample = random.sample(pathDir, picknumber)  # 随机选取picknumber数量的样本图片
    print(sample)
    for name in sample:
        shutil.move(fileDir + name, tarDir + "\\" + name)
    return

if __name__ == '__main__':
    fileDir = r"F:\facemask_detect\data\mask_data\images\train" + "\\"  # 原始图片文件夹路径
    tarDir = r'F:\facemask_detect\data\mask_data\images\val'  # 移动到新的文件夹路径
    moveFile(fileDir, tarDir)

3 将images\val中同名的txt文件放入labels\val中

找出labels/train文件夹中与images/val文件夹中同名的txt文件,作为验证集的标签放到labels\val中,方法参考了这位博主python实现取出某个文件夹A中与另外一个文件夹B图片中相同名字的txt文件放到C文件夹下

import os,shutil

file_root = r'F:\facemask_detect\data\mask_data\images\val'  # images\val文件夹路径
file_list = os.listdir(file_root)

for i in file_list:
    if i.endswith('.jpg'):
        filename = r'F:\facemask_detect\data\mask_data\labels\train' + "\\" + i[:-4] + '.txt'
        print(os.path.exists(filename))
        if os.path.exists(filename):
            shutil.move(filename, r'F:\facemask_detect\data\mask_data\labels\val')#需要保存的位置,labels\val文件夹路径


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Rena要努力

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

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

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

打赏作者

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

抵扣说明:

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

余额充值