Spaces:
Runtime error
Runtime error
| import os | |
| import glob | |
| from re import split | |
| from tqdm import tqdm | |
| from multiprocessing import Pool | |
| from functools import partial | |
| scannet_dir = "/root/data/ScanNet-v2-1.0.0/data/raw" | |
| dump_dir = "/root/data/scannet_dump" | |
| num_process = 32 | |
| def extract(seq, scannet_dir, split, dump_dir): | |
| assert split == "train" or split == "test" | |
| if not os.path.exists(os.path.join(dump_dir, split, seq)): | |
| os.mkdir(os.path.join(dump_dir, split, seq)) | |
| cmd = ( | |
| "python reader.py --filename " | |
| + os.path.join( | |
| scannet_dir, | |
| "scans" if split == "train" else "scans_test", | |
| seq, | |
| seq + ".sens", | |
| ) | |
| + " --output_path " | |
| + os.path.join(dump_dir, split, seq) | |
| + " --export_depth_images --export_color_images --export_poses --export_intrinsics" | |
| ) | |
| os.system(cmd) | |
| if __name__ == "__main__": | |
| if not os.path.exists(dump_dir): | |
| os.mkdir(dump_dir) | |
| os.mkdir(os.path.join(dump_dir, "train")) | |
| os.mkdir(os.path.join(dump_dir, "test")) | |
| train_seq_list = [ | |
| seq.split("/")[-1] | |
| for seq in glob.glob(os.path.join(scannet_dir, "scans", "scene*")) | |
| ] | |
| test_seq_list = [ | |
| seq.split("/")[-1] | |
| for seq in glob.glob(os.path.join(scannet_dir, "scans_test", "scene*")) | |
| ] | |
| extract_train = partial( | |
| extract, scannet_dir=scannet_dir, split="train", dump_dir=dump_dir | |
| ) | |
| extract_test = partial( | |
| extract, scannet_dir=scannet_dir, split="test", dump_dir=dump_dir | |
| ) | |
| num_train_iter = ( | |
| len(train_seq_list) // num_process | |
| if len(train_seq_list) % num_process == 0 | |
| else len(train_seq_list) // num_process + 1 | |
| ) | |
| num_test_iter = ( | |
| len(test_seq_list) // num_process | |
| if len(test_seq_list) % num_process == 0 | |
| else len(test_seq_list) // num_process + 1 | |
| ) | |
| pool = Pool(num_process) | |
| for index in tqdm(range(num_train_iter)): | |
| seq_list = train_seq_list[ | |
| index * num_process : min((index + 1) * num_process, len(train_seq_list)) | |
| ] | |
| pool.map(extract_train, seq_list) | |
| pool.close() | |
| pool.join() | |
| pool = Pool(num_process) | |
| for index in tqdm(range(num_test_iter)): | |
| seq_list = test_seq_list[ | |
| index * num_process : min((index + 1) * num_process, len(test_seq_list)) | |
| ] | |
| pool.map(extract_test, seq_list) | |
| pool.close() | |
| pool.join() | |