|
import os |
|
import glob |
|
from tqdm import tqdm |
|
|
|
|
|
dataset_metadata = { |
|
'davis': { |
|
'img_path': "./data/davis/DAVIS/JPEGImages/480p", |
|
'mask_path': "./data/davis/DAVIS/Annotations/480p", |
|
'dir_path_func': lambda img_path, seq: os.path.join(img_path, seq), |
|
'gt_traj_func': lambda img_path, anno_path, seq: None, |
|
'traj_format': None, |
|
'seq_list': None, |
|
'full_seq': True, |
|
'mask_path_seq_func': lambda mask_path, seq: os.path.join(mask_path, seq), |
|
'skip_condition': None, |
|
'process_func': None, |
|
}, |
|
'test': { |
|
'img_path': "./data/test_set", |
|
'mask_path': None, |
|
'dir_path_func': lambda img_path, seq: os.path.join(img_path, seq), |
|
'gt_traj_func': lambda img_path, anno_path, seq: None, |
|
'traj_format': None, |
|
'seq_list': None, |
|
'full_seq': True, |
|
'mask_path_seq_func': lambda mask_path, seq: None, |
|
'skip_condition': None, |
|
'process_func': None, |
|
}, |
|
'bonn': { |
|
'img_path': "./data/bonn/rgbd_bonn_dataset", |
|
'mask_path': None, |
|
'dir_path_func': lambda img_path, seq: os.path.join(img_path, f'rgbd_bonn_{seq}', 'rgb_110'), |
|
'gt_traj_func': lambda img_path, anno_path, seq: os.path.join(img_path, f'rgbd_bonn_{seq}', 'groundtruth_110.txt'), |
|
'traj_format': 'tum', |
|
'seq_list': ["balloon2", "crowd2", "crowd3", "person_tracking2", "synchronous"], |
|
'full_seq': False, |
|
'mask_path_seq_func': lambda mask_path, seq: None, |
|
'skip_condition': None, |
|
'process_func': lambda args, img_path: process_bonn(args, img_path), |
|
}, |
|
'tum': { |
|
'img_path': "./data/tum", |
|
'mask_path': None, |
|
'dir_path_func': lambda img_path, seq: os.path.join(img_path, seq, 'rgb_50'), |
|
'gt_traj_func': lambda img_path, anno_path, seq: os.path.join(img_path, seq, 'groundtruth_50.txt'), |
|
'traj_format': 'tum', |
|
'seq_list': None, |
|
'full_seq': True, |
|
'mask_path_seq_func': lambda mask_path, seq: None, |
|
'skip_condition': None, |
|
'process_func': None, |
|
}, |
|
'sintel': { |
|
'img_path': "./data/MPI-Sintel/MPI-Sintel-training_images/training/final", |
|
'anno_path': "./data/MPI-Sintel/MPI-Sintel-depth-training/training/camdata_left", |
|
'mask_path': "./data/MPI-Sintel/MPI-Sintel-depth-training/training/dynamic_label_perfect/", |
|
'dir_path_func': lambda img_path, seq: os.path.join(img_path, seq), |
|
'gt_traj_func': lambda img_path, anno_path, seq: os.path.join(anno_path, seq), |
|
'traj_format': None, |
|
'seq_list': ["alley_2", "ambush_4", "ambush_5", "ambush_6", "cave_2", "cave_4", "market_2", |
|
"market_5", "market_6", "shaman_3", "sleeping_1", "sleeping_2", "temple_2", "temple_3"], |
|
'full_seq': False, |
|
'mask_path_seq_func': lambda mask_path, seq: None, |
|
'skip_condition': None, |
|
'process_func': lambda args, img_path: process_sintel(args, img_path), |
|
}, |
|
} |
|
|
|
|
|
def process_kitti(args, img_path): |
|
for dir in tqdm(sorted(glob.glob(f'{img_path}/*'))): |
|
filelist = sorted(glob.glob(f'{dir}/*.png')) |
|
save_dir = f'{args.output_dir}/{os.path.basename(dir)}' |
|
yield filelist, save_dir |
|
|
|
def process_bonn(args, img_path): |
|
if args.full_seq: |
|
for dir in tqdm(sorted(glob.glob(f'{img_path}/*/'))): |
|
filelist = sorted(glob.glob(f'{dir}/rgb/*.png')) |
|
save_dir = f'{args.output_dir}/{os.path.basename(os.path.dirname(dir))}' |
|
yield filelist, save_dir |
|
else: |
|
seq_list = ["balloon2", "crowd2", "crowd3", "person_tracking2", "synchronous"] if args.seq_list is None else args.seq_list |
|
for seq in tqdm(seq_list): |
|
filelist = sorted(glob.glob(f'{img_path}/rgbd_bonn_{seq}/rgb_110/*.png')) |
|
save_dir = f'{args.output_dir}/{seq}' |
|
yield filelist, save_dir |
|
|
|
def process_nyu(args, img_path): |
|
filelist = sorted(glob.glob(f'{img_path}/*.png')) |
|
save_dir = f'{args.output_dir}' |
|
yield filelist, save_dir |
|
|
|
def process_scannet(args, img_path): |
|
seq_list = sorted(glob.glob(f'{img_path}/*')) |
|
for seq in tqdm(seq_list): |
|
filelist = sorted(glob.glob(f'{seq}/color_90/*.jpg')) |
|
save_dir = f'{args.output_dir}/{os.path.basename(seq)}' |
|
yield filelist, save_dir |
|
|
|
def process_sintel(args, img_path): |
|
if args.full_seq: |
|
for dir in tqdm(sorted(glob.glob(f'{img_path}/*/'))): |
|
filelist = sorted(glob.glob(f'{dir}/*.png')) |
|
save_dir = f'{args.output_dir}/{os.path.basename(os.path.dirname(dir))}' |
|
yield filelist, save_dir |
|
else: |
|
seq_list = ["alley_2", "ambush_4", "ambush_5", "ambush_6", "cave_2", "cave_4", "market_2", |
|
"market_5", "market_6", "shaman_3", "sleeping_1", "sleeping_2", "temple_2", "temple_3"] |
|
for seq in tqdm(seq_list): |
|
filelist = sorted(glob.glob(f'{img_path}/{seq}/*.png')) |
|
save_dir = f'{args.output_dir}/{seq}' |
|
yield filelist, save_dir |