Spaces:
Running
on
Zero
Running
on
Zero
import argparse | |
import sys | |
sys.path.append(".") | |
from pathlib import Path | |
import subprocess | |
import cv2 | |
import numpy as np | |
from tqdm import tqdm | |
from datasets.kitti_360.kitti_360_dataset import Kitti360Dataset | |
DRY_RUN = False | |
def main(): | |
parser = argparse.ArgumentParser("KITTI 360 Preprocessing") | |
parser.add_argument("--data_path", "-d", type=str) | |
parser.add_argument("--resolution", "-r", default=(192, 640)) | |
parser.add_argument("--fisheye_rotation", "-f", default=(0, -15)) | |
parser.add_argument("--only_fisheye", "-o", action="store_true") | |
args = parser.parse_args() | |
data_path = Path(args.data_path) | |
resolution = args.resolution | |
rotation = args.fisheye_rotation | |
only_fisheye = args.only_fisheye | |
print("Setting up dataset") | |
dataset = Kitti360Dataset( | |
data_path=data_path, | |
pose_path=data_path / "data_poses", | |
split_path=None, | |
return_stereo=True, | |
frame_count=1, | |
fisheye_rotation=rotation, | |
color_aug=False, | |
return_segmentation=False, | |
) | |
print("Setting up folders...") | |
for i in tqdm(range(len(dataset))): | |
sequence, id, is_right = dataset._datapoints[i] | |
if is_right: | |
continue | |
image_00 = data_path / "data_2d_raw" / sequence / "image_00" / f"data_{resolution[0]}x{resolution[1]}" | |
image_01 = data_path / "data_2d_raw" / sequence / "image_01" / f"data_{resolution[0]}x{resolution[1]}" | |
image_02 = data_path / "data_2d_raw" / sequence / "image_02" / f"data_{resolution[0]}x{resolution[1]}_{rotation[0]}x{rotation[1]}" | |
image_03 = data_path / "data_2d_raw" / sequence / "image_03" / f"data_{resolution[0]}x{resolution[1]}_{rotation[0]}x{rotation[1]}" | |
img_id = dataset._img_ids[sequence][id] | |
if (image_00 / f"{img_id:010d}.png").exists(): | |
continue | |
data = dataset[i] | |
image_00.mkdir(exist_ok=True, parents=True) | |
image_01.mkdir(exist_ok=True, parents=True) | |
image_02.mkdir(exist_ok=True, parents=True) | |
image_03.mkdir(exist_ok=True, parents=True) | |
img_00 = (np.transpose(data["imgs"][0].numpy(), (1, 2, 0)) * .5 + .5) * 255. | |
img_01 = (np.transpose(data["imgs"][1].numpy(), (1, 2, 0)) * .5 + .5) * 255. | |
img_02 = (np.transpose(data["imgs"][2].numpy(), (1, 2, 0)) * .5 + .5) * 255. | |
img_03 = (np.transpose(data["imgs"][3].numpy(), (1, 2, 0)) * .5 + .5) * 255. | |
if not only_fisheye: | |
cv2.imwrite(str(image_00 / f"{img_id:010d}.png"), cv2.cvtColor(img_00, cv2.COLOR_RGB2BGR)) | |
cv2.imwrite(str(image_01 / f"{img_id:010d}.png"), cv2.cvtColor(img_01, cv2.COLOR_RGB2BGR)) | |
cv2.imwrite(str(image_02 / f"{img_id:010d}.png"), cv2.cvtColor(img_02, cv2.COLOR_RGB2BGR)) | |
cv2.imwrite(str(image_03 / f"{img_id:010d}.png"), cv2.cvtColor(img_03, cv2.COLOR_RGB2BGR)) | |
if __name__ == "__main__": | |
main() | |