划分数据集

import glob
import shutil



total_file = 'total_file.txt'
train = 'train.txt'
val = 'val.txt'

bin_path = 'data_L/v/*.bin'  # 总的点云数据集文件路径(如果是自己的路径,就是 :自己点云文件夹/*.bin)
bin_train_dir = 'train/v'          #训练集点云文件夹,如DATA_DIR/training/velodyne      (自己手动建)
bin_val_dir = 'val/v'            #训练集点云文件夹,如DATA_DIR/validation/velodyne     (自己手动建)

total_bin = glob.glob(bin_path)
print(total_bin)
split_rate = 0.5




total_bin_num = len(total_bin)

with open(total_file, 'w') as f:
    for i in range(0, total_bin_num):
        bin_ = total_bin[i].split('/')[-1].split('.bin')[0]  # bin_格式: 000, 001,
        f.write(bin_+"\n")

with open(train, 'w') as f:
    for i in range(0, int(total_bin_num*split_rate)):
        bin_ = total_bin[i].split('/')[-1].split('.bin')[0]  # bin_格式: 000, 001,
        f.write(bin_+"\n")

with open(val, 'w') as f:
    for i in range(int(total_bin_num*split_rate), total_bin_num):
        bin_ = total_bin[i].split('/')[-1].split('.bin')[0]  # bin_格式: 000, 001,
        f.write(bin_+"\n")





#划分点云
for i in range(0, int(total_bin_num*split_rate)):
    shutil.copy(total_bin[i], bin_train_dir)

for i in range(int(total_bin_num*split_rate), total_bin_num):
    shutil.copy(total_bin[i], bin_val_dir)

#划分label

label_dir = 'data_L/l'          #划分前存放所有样本label的文件夹地址
label_train_dir = 'train/label'    #训练集label文件夹,如DATA_DIR/training/label_2   (自己手动建)
label_val_dir = 'val/label'      #验证集label文件夹,如DATA_DIR/validation/label_2    (自己手动建)

with open(train, 'r') as f:
    label_files = f.readlines()
    for files in label_files:
        files = files.strip('\n')
        files_path = label_dir + '/' + files + '.txt'
        shutil.copy(files_path, label_train_dir)

with open(val, 'r') as f:
    label_files = f.readlines()
    for files in label_files:
        files = files.strip('\n')
        files_path = label_dir + '/' + files + '.txt'
        shutil.copy(files_path, label_val_dir)

#划分图片
image_dir = 'data_L/image'              #划分前存放图片文件夹
image_train_dir = 'train/image'        #训练集图片文件夹,如DATA_DIR/training/image_2     (自己手动建)
image_val_dir = 'val/image'          #验证集集图片文件夹,如DATA_DIR/validation/image_2   (自己手动建)

with open(train, 'r') as f:
    label_files = f.readlines()
    for files in label_files:
        files = files.strip('\n')
        files_path = image_dir + '/' + files + '.png'
        shutil.copy(files_path, image_train_dir)

with open(val, 'r') as f:
    label_files = f.readlines()
    for files in label_files:
        files = files.strip('\n')
        files_path = image_dir + '/' + files + '.png'
        shutil.copy(files_path, image_val_dir)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值