StableRecon / dust3r /datasets /scannetpp.py
Stable-X's picture
Upload folder using huggingface_hub
e4bf056 verified
raw
history blame
1.88 kB
import os
import os.path as osp
import json
import itertools
from collections import deque
import cv2
import numpy as np
from dust3r.datasets.base.base_stereo_view_dataset import BaseStereoViewDataset
from dust3r.utils.image import imread_cv2
class Scannetpp(BaseStereoViewDataset):
def __init__(self, num_frames=5, *args, ROOT, **kwargs):
self.ROOT = ROOT
super().__init__(*args, **kwargs)
self.num_frames = num_frames
# load all scenes
self.load_all_scenes(ROOT)
def __len__(self):
return len(self.scenes) * self.num_seq
def load_all_scenes(self, base_dir, num_seq=200):
meta_split = osp.join(base_dir, 'splits', f'nvs_sem_{self.split}')
if not osp.exists(meta_split):
raise FileNotFoundError(f"Split file {meta_split} not found")
with open(meta_split) as f:
scene_list = f.read().splitlines()
print(f"Found {len(scene_list)} scenes in split {self.split}")
self.scenes = {}
data_all = os.listdir(base_dir)
print('All datasets in Habitat:', data_all)
for data in data_all:
scenes = os.listdir(osp.join(base_dir, data))
self.scenes[data] = scenes
self.scenes = {(k, v2): list(range(num_seq)) for k, v in self.scenes.items()
for v2 in v}
self.scene_list = list(self.scenes.keys())
if __name__ == '__main__':
dataset = Scannetpp(split='train', ROOT="/media/hengyi/Data/scannet++", resolution=224)