import os import json import torch import torchvision.transforms as transforms import os.path import numpy as np import cv2 from torch.utils.data import Dataset import random from .__base_dataset__ import BaseDataset class UASOLDataset(BaseDataset): def __init__(self, cfg, phase, **kwargs): super(UASOLDataset, self).__init__( cfg=cfg, phase=phase, **kwargs) self.metric_scale = cfg.metric_scale def process_depth(self, depth, rgb): depth[depth>65500] = 0 depth /= self.metric_scale return depth def load_rgb_depth(self, rgb_path: str, depth_path: str) -> (np.array, np.array): """ Load the rgb and depth map with the paths. """ rgb = self.load_data(rgb_path, is_rgb_img=True) if rgb is None: self.logger.info(f'>>>>{rgb_path} has errors.') depth = self.load_data(depth_path) if depth is None: self.logger.info(f'{depth_path} has errors.') depth = depth.astype(np.float) depth = self.process_depth(depth, rgb) depth = depth[1:-1, ...] return rgb, depth if __name__ == '__main__': from mmcv.utils import Config cfg = Config.fromfile('mono/configs/Apolloscape_DDAD/convnext_base.cascade.1m.sgd.mae.py') dataset_i = UASOLDataset(cfg['Apolloscape'], 'train', **cfg.data_basic) print(dataset_i)