Spaces:
Running
Running
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() |