Spaces:
Sleeping
Sleeping
| import os | |
| from os import path as osp | |
| import numpy as np | |
| import sys | |
| from tqdm import tqdm | |
| SLAM3R_DIR = osp.dirname(osp.dirname(osp.abspath(__file__))) | |
| sys.path.insert(0, SLAM3R_DIR) # noqa: E402 | |
| from slam3r.datasets import Replica | |
| def get_replica_gt_pcd(scene_id, save_dir, sample_stride=20): | |
| os.makedirs(save_dir, exist_ok=True) | |
| H, W = 224, 224 | |
| dataset = Replica(resolution=(W,H), scene_name=scene_id, num_views=1, sample_freq=sample_stride) | |
| print(dataset[0][0]['pts3d'].shape) | |
| all_pcd = np.zeros([len(dataset),H,W,3]) | |
| valid_masks = np.ones([len(dataset),H,W], dtype=bool) | |
| for id in tqdm(range(len(dataset))): | |
| view = dataset[id][0] | |
| pcd =view['pts3d'] | |
| valid_masks[id] = view['valid_mask'] | |
| all_pcd[id] = pcd | |
| np.save(os.path.join(save_dir, f"{scene_id}_pcds.npy"), all_pcd) | |
| np.save(os.path.join(save_dir, f"{scene_id}_valid_masks.npy"), valid_masks) | |
| if __name__ == "__main__": | |
| for scene_id in ['office0', 'office1', 'office2', 'office3', 'office4', 'room0', 'room1', 'room2']: | |
| get_replica_gt_pcd(scene_id, sample_stride=1, save_dir="results/gt/replica") |