| """ |
| Habitat-Matterport 3D Dataset |
| |
| Author: Xiaoyang Wu (xiaoyang.wu.cs@gmail.com) |
| Please cite our work if the code is helpful to you. |
| """ |
|
|
| import glob |
| import os |
| from collections.abc import Sequence |
| from .builder import DATASETS |
| from .defaults import DefaultDataset |
|
|
|
|
| @DATASETS.register_module() |
| class HM3DDataset(DefaultDataset): |
| def __init__( |
| self, |
| force_label=True, |
| **kwargs, |
| ): |
| |
| self.force_label = force_label |
| super().__init__(**kwargs) |
|
|
| def get_single_data_list(self, split): |
| if self.force_label: |
| data_list = glob.glob( |
| os.path.join(self.data_root, split, "*", "segment.npy") |
| ) |
| data_list = [os.path.dirname(data) for data in data_list] |
| else: |
| data_list = glob.glob(os.path.join(self.data_root, split, "*")) |
| return data_list |
|
|
| def get_data_list(self): |
| if isinstance(self.split, str): |
| data_list = self.get_single_data_list(self.split) |
| elif isinstance(self.split, Sequence): |
| data_list = [] |
| for split in self.split: |
| data_list += self.get_single_data_list(split) |
| else: |
| raise NotImplementedError |
| return data_list |
|
|