Spaces:
Running
on
Zero
Running
on
Zero
| import os | |
| import numpy as np | |
| import os.path as osp | |
| from PIL import Image | |
| from tqdm import tqdm | |
| import csv | |
| import cv2 | |
| import json | |
| import glob | |
| import shutil | |
| from natsort import natsorted | |
| from eval_utils import even_or_odd | |
| from eval_utils import gen_json, get_sorted_files, copy_crop_files | |
| def extract_kitti( | |
| root, | |
| depth_root, | |
| sample_len=-1, | |
| saved_dir="", | |
| datatset_name="", | |
| ): | |
| scenes_names = os.listdir(depth_root) | |
| all_samples = [] | |
| for i, seq_name in enumerate(tqdm(scenes_names)): | |
| all_img_names = get_sorted_files( | |
| osp.join(depth_root, seq_name, "proj_depth/groundtruth/image_02"), suffix=".png" | |
| ) | |
| seq_len = len(all_img_names) | |
| step = sample_len if sample_len > 0 else seq_len | |
| for ref_idx in range(0, seq_len, step): | |
| print(f"Progress: {seq_name}, {ref_idx // step + 1} / {seq_len//step}") | |
| video_imgs = [] | |
| video_depths = [] | |
| if (ref_idx + step) <= seq_len: | |
| ref_e = ref_idx + step | |
| else: | |
| continue | |
| for idx in range(ref_idx, ref_e): | |
| im_path = osp.join( | |
| root, seq_name[0:10], seq_name, "image_02/data", all_img_names[idx] | |
| ) | |
| depth_path = osp.join( | |
| depth_root, seq_name, "proj_depth/groundtruth/image_02", all_img_names[idx], | |
| ) | |
| out_img_path = osp.join( | |
| saved_dir, datatset_name,seq_name, "rgb", all_img_names[idx] | |
| ) | |
| out_depth_path = osp.join( | |
| saved_dir, datatset_name,seq_name, "depth", all_img_names[idx] | |
| ) | |
| copy_crop_files( | |
| im_path=im_path, | |
| depth_path=depth_path, | |
| out_img_path=out_img_path, | |
| out_depth_path=out_depth_path, | |
| dataset=datatset_name, | |
| ) | |
| # 110 frames like DepthCraft | |
| out_json_path = osp.join(saved_dir, datatset_name, "kitti_video.json") | |
| gen_json( | |
| root_path=osp.join(saved_dir, datatset_name), dataset=datatset_name, | |
| start_id=0, end_id=110, step=1, save_path=out_json_path) | |
| #~500 frames in paper | |
| out_json_path = osp.join(saved_dir, datatset_name, "kitti_video_500.json") | |
| gen_json( | |
| root_path=osp.join(saved_dir, datatset_name), dataset=datatset_name, | |
| start_id=0, end_id=500, step=1, save_path=out_json_path) | |
| if __name__ == "__main__": | |
| extract_kitti( | |
| root="path/to/kitti", | |
| depth_root="path/to/kitti/val", | |
| saved_dir="./benchmark/datasets/", | |
| sample_len=-1, | |
| datatset_name="kitti", | |
| ) |