ThunderVVV's picture
add thirdparty
b7eedf7
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
import pickle
class DIMLDataset(BaseDataset):
def __init__(self, cfg, phase, **kwargs):
super(DIMLDataset, self).__init__(
cfg=cfg,
phase=phase,
**kwargs)
self.metric_scale = cfg.metric_scale
def load_meta_data(self, anno: dict) -> dict:
"""
Load meta data information.
"""
if self.meta_data_root is not None and ('meta_data' in anno or 'meta' in anno):
meta_data_path = os.path.join(self.meta_data_root, anno['meta_data']) if 'meta_data' in anno else os.path.join(self.meta_data_root, anno['meta'])
with open(meta_data_path, 'rb') as f:
meta_data = pickle.load(f)
meta_data.update(anno)
else:
meta_data = anno
# DIML_indoor has no cam_in
if 'cam_in' not in meta_data:
meta_data['cam_in'] = [1081, 1081, 704, 396]
return meta_data
def process_depth(self, depth, rgb):
depth[depth>65500] = 0
depth /= self.metric_scale
h, w, _ = rgb.shape # to rgb size
depth_resize = cv2.resize(depth, (w, h), interpolation=cv2.INTER_NEAREST)
return depth_resize
if __name__ == '__main__':
from mmcv.utils import Config
cfg = Config.fromfile('mono/configs/Apolloscape_DDAD/convnext_base.cascade.1m.sgd.mae.py')
dataset_i = DIMLDataset(cfg['Apolloscape'], 'train', **cfg.data_basic)
print(dataset_i)