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)
划分数据集
最新推荐文章于 2023-12-18 09:10:17 发布