| import os |
| from shutil import copyfile |
|
|
|
|
| data_base = './montefloor_data/' |
| dir_names = list(sorted(os.listdir(data_base))) |
| out_path = './s3d_floorplan' |
|
|
| wrong_s3d_annotations_list = [3261, 3271, 3276, 3296, 3342, 3387, 3398, 3466, 3496] |
|
|
| train_list = [] |
| val_list = [] |
| test_list = [] |
|
|
| for dir_name in dir_names: |
| data_dir = os.path.join(data_base, dir_name) |
| annot_path = os.path.join(data_dir, 'annot.npy') |
| if not os.path.exists(annot_path): |
| continue |
| data_id = int(dir_name[-5:]) |
| if data_id in wrong_s3d_annotations_list: |
| continue |
| annot_dst = os.path.join(out_path, 'annot', dir_name[-5:] + '.npy') |
| density_dst = os.path.join(out_path, 'density', dir_name[-5:] + '.png') |
| normal_dst = os.path.join(out_path, 'normals', dir_name[-5:] + '.png') |
| density_src = os.path.join(data_dir, 'density.png') |
| normal_src = os.path.join(data_dir, 'normals.png') |
| copyfile(normal_src, normal_dst) |
| copyfile(density_src, density_dst) |
| copyfile(annot_path, annot_dst) |
| if 0 <= data_id < 3000: |
| train_list.append(dir_name[-5:]) |
| elif data_id < 3250: |
| val_list.append(dir_name[-5:]) |
| else: |
| test_list.append(dir_name[-5:]) |
|
|
| with open(os.path.join(out_path, 'train_list.txt'), 'w') as f: |
| for item in train_list: |
| f.write(item + '\n') |
| with open(os.path.join(out_path, 'valid_list.txt'), 'w') as f: |
| for item in val_list: |
| f.write(item + '\n') |
| with open(os.path.join(out_path, 'test_list.txt'), 'w') as f: |
| for item in test_list: |
| f.write(item + '\n') |
|
|