Spaces:
Running
on
Zero
Running
on
Zero
File size: 2,107 Bytes
1ea89dd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
import json
import os
import h5py
import numpy as np
import torch
from unik3d.datasets.image_dataset import ImageDataset
from unik3d.datasets.utils import DatasetFromList
class Argoverse(ImageDataset):
min_depth = 0.05
max_depth = 120.0
depth_scale = 256.0
test_split = "argo_val.txt"
train_split = "argo_train.txt"
intrisics_file = "argo_intrinsics.json"
hdf5_paths = ["argoverse11.hdf5"]
def __init__(
self,
image_shape,
split_file,
test_mode,
crop=None,
benchmark=False,
augmentations_db={},
normalize=True,
resize_method="hard",
mini=1.0,
**kwargs,
):
super().__init__(
image_shape=image_shape,
split_file=split_file,
test_mode=test_mode,
benchmark=benchmark,
normalize=normalize,
augmentations_db=augmentations_db,
resize_method=resize_method,
mini=mini,
**kwargs,
)
self.test_mode = test_mode
self.crop = crop
self.load_dataset()
def load_dataset(self):
h5file = h5py.File(
os.path.join(self.data_root, self.hdf5_paths[0]),
"r",
libver="latest",
swmr=True,
)
txt_file = np.array(h5file[self.split_file])
txt_string = txt_file.tostring().decode("ascii")[:-1] # correct the -1
intrinsics = np.array(h5file[self.intrisics_file]).tostring().decode("ascii")
intrinsics = json.loads(intrinsics)
h5file.close()
dataset = []
for line in txt_string.split("\n"):
image_filename, depth_filename = line.strip().split(" ")
intrinsics_val = torch.tensor(intrinsics[image_filename]).squeeze()[:, :3]
sample = [image_filename, depth_filename, intrinsics_val]
dataset.append(sample)
if not self.test_mode:
dataset = self.chunk(dataset, chunk_dim=1, pct=self.mini)
self.dataset = DatasetFromList(dataset)
self.log_load_dataset()
|