Spaces:
Running
on
Zero
Running
on
Zero
| from abc import abstractmethod | |
| import time | |
| from typing import Any | |
| from pathlib import Path | |
| import numpy as np | |
| from torch.utils.data import Dataset | |
| class BaseDataset(Dataset): | |
| def __init__(self) -> None: | |
| super().__init__() | |
| # @abstractmethod | |
| # def _get_img_indices(self, index) -> dict[str, list[Any]]: | |
| # pass | |
| # @abstractmethod | |
| # def _load_image(self, unique_id: Any) -> np.ndarray: | |
| # pass | |
| # @abstractmethod | |
| # def _load_depth_map(self, unique_id: Any) -> np.ndarray | None: | |
| # pass | |
| # @abstractmethod | |
| # def _get_pose(self, unique_id: Any) -> np.ndarray: | |
| # pass | |
| # @abstractmethod | |
| # def _get_calib(self, unique_id: Any) -> np.ndarray: | |
| # pass | |
| # @abstractmethod | |
| # def _load_occ(self, idx) -> np.ndarray | None: | |
| # pass | |
| # TODO: Check if needs to return the values | |
| def _process_image( | |
| img: np.ndarray, | |
| proj: np.ndarray, | |
| pose: np.ndarray, | |
| depth: np.ndarray | None, | |
| camera_type: str, | |
| aug_fn: dict[str, Any], | |
| ): | |
| pass | |
| def _create_aug_fn(self) -> dict[str, Any]: | |
| pass | |
| def __getitem__(self, index) -> dict[str, Any]: | |
| _start_time = time.time() | |
| img_paths = self._get_img_indices(index) | |
| occ = self._load_occ(index) | |
| aug_fn = self._create_aug_fn() | |
| frames = [] | |
| for camera_type, unique_id in img_paths.items(): | |
| img = self._load_image(unique_id) | |
| proj = self._get_calib(unique_id) | |
| pose = self._get_pose(unique_id) | |
| depth = self._load_depth_map(unique_id) | |
| self._process_image(img, proj, pose, depth, camera_type, aug_fn) | |
| frames.append( | |
| { | |
| "model": camera_type, | |
| "imgs": img, | |
| "proj": proj, | |
| "pose": pose, | |
| "depth": depth, | |
| } | |
| ) | |
| _proc_time = np.array(time.time() - _start_time) | |
| return { | |
| "frames": frames, | |
| "occ": occ, | |
| "__t_get_item__": np.array([_proc_time]), | |
| } | |