yolo格式数据集划分代码

yolo格式数据集划分代码

一、描述

目前只有两个文件夹,image—存放图像,labels----存放txt格式的标签文件。
需要划分为训练集、验证集和测试集。
手动划分的话,一个费时费力,还无法保证随机性。

二、按图像划分代码

####从图像文件夹中随机抽取一定比例的图像,并根据图像名字,抽取对应的txt标签
import os
import random
import shutil
def moveFile(Imgdir):
        pathDir = os.listdir(Imgdir)    #获取图像列表
        filenumber=len(pathDir)
        rate=0.1    #定义抽取图片的比例
        random_imgnum=int(filenumber*rate) #按照比例从文件夹中取一定数量图片
        sample = random.sample(pathDir, random_imgnum)  #随机选取random_imgnum数量的样本图片
        print (sample)
        for imgname in sample:
                #name0 = os.path.join(outdir1,os.path.basename(name))
                nametxt=os.path.splitext(imgname)[0]
                shutil.move(Imgdir+imgname, img_target_dir+imgname)
                shutil.move(Txtdir+nametxt+'.txt', Txt_target_dir+nametxt+'.txt')
        return


if __name__ == '__main__':
    
    Imgdir = "/home/jun/work/img/"#图像文件夹
    img_target_dir = "/home/jun/work/img1/"#划分目标图像文件夹
    Txtdir = "/home/jun/work//txt/"#标签文件夹
    Txt_target_dir="/home/jun/work/txt1/"#划分目标标签文件夹
    moveFile(Imgdir)

三、按标签划分代码

####从txt标签文件夹中随机抽取一定比例的txt标签,并根据txt标签名字,抽取对应的图像
import os
import random
import shutil
def moveFile(Txtdir):
        pathDir = os.listdir(Txtdir)    #获取标签列表
        filenumber=len(pathDir)
        rate=0.2    #定义抽取图片的比例
        random_imgnum=int(filenumber*rate) #按照比例从文件夹中取一定数量标签
        sample = random.sample(pathDir, random_imgnum)  #随机选取random_imgnum数量的样本标签
        print (sample)
        for labelname in sample:
            nameimg = os.path.splitext(labelname)[0]
            shutil.move(Txtdir+labelname, Txt_target_dir+labelname)
            shutil.move(Imgdir+nameimg+'.jpg', img_target_dir+nameimg+'.jpg')

        '''
        for imgname in sample:
                #name0 = os.path.join(outdir1,os.path.basename(name))
                nametxt=os.path.splitext(imgname)[0]
                shutil.move(Imgdir+imgname, img_target_dir+imgname)
                shutil.move(Txtdir+nametxt+'.txt', Txt_target_dir+nametxt+'.txt')
        '''
        return


if __name__ == '__main__':
    
    Imgdir = "/images/"#图像文件夹
    img_target_dir = "/img/"#划分目标图像文件夹
    Txtdir = "/labels/"#标签文件夹
    Txt_target_dir="/ann/"#划分目标标签文件夹
    #moveFile(Imgdir)
    moveFile(Txtdir)


  • 4
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小俊俊的博客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值