This dataset provides room labels, bounding boxes and interconnections between rooms for 50 scenes from the Habitat-Matterport 3D Semantics Dataset (HM3DSem).
This code was developed on Ubuntu 22.04
using habitat-sim v0.3.1
-
Create and activate conda environment
conda create -n domestigraph python=3.9 cmake=3.14.0 conda activate domestigraph
-
Install habitat-sim
conda install habitat-sim -c conda-forge -c aihabitat
-
Install Open3D
pip3 install open3d
-
Gain access to the HM3D data by following these instructions
-
Once you have been granted access to the data, the
habitat
andobj+mtl
files for thetrain
andval
splits can be downloaded from here. Theobj+mtl
files are underHM3D v0.1
. -
Clone this repository
git clone git@bitbucket.org:frank-gallagher/domestigraph.git
Run main.py
providing the parent directory of the scene_datasets
folder and the index of the scene you want to process
python3 main.py --parent-dir </path/to/parent/directory> --scene-index <index of scene to be processed>
This produces a YAML file <name_of_scene>.yaml
with the bounding box, object and connections data for each room.
To label a room, open this file and manually fill in the label
field, using the 3D visualisation and the room index indicator to assist you.
Once the 3D visualisation is closed, a new YAML file is automatically produced with the object data for each room removed. This is the format of the data provided in this repository.
Notes:
- The parent directory only needs to be provided the first time the script is run to produce the
HM3DSem_paths.json
file which contains the absolute paths to the files for each scene required by habitat-sim - Room 0 in each of the HM3DSem scenes is a null region which is ignored by our process. Therefore, indexing starts at 1
In our dataset we use 13 room classes:
bathroom,
bedroom,
closet,
dining room,
garage,
hallway,
kitchen,
living room,
office,
other,
outdoor area,
toilet,
utility room
hallway
refers to any room with the sole function of connecting rooms together.
outdoor area
refers to gardens, porches, balconies etc.
dining room
refers to a dining area distinct from a kitchen so a kitchen/dining room
label is applied to a room when the kitchen is distinct from the dining area but they are assigned to the same room. A kitchen with a table does not qualify as a kitchen/dining room
.
other
refers to rooms where the function is unclear.
bathroom vs toilet: The toilet
label refers to a room that only contains a toilet and wash basin. The bathroom
label refers to a room with a wash basin and a shower/bath. A bathroom
may or may not contain a toilet.
Multifunctional Rooms: Labels can be chained together with /
for rooms that contain more than one function. For example, a kitchen with a sitting area is labelled as kitchen/living room
.
Of course any set of labels can be used which best suit the application.
If you use this dataset in your research please cite this paper
@inproceedings{Gallagher2024,
title = {A Dataset of Domestic Environment Room Adjacency Scene Graphs},
author = {Frank Gallagher and Louis Gallagher and Marco Cognetti and John B. McDonald},
booktitle = {Irish Machine Vision and Image Processing Conference},
year = {2024}
}
The data provided in this repository is derived from the HM3DSem dataset so is covered by the Matterport Terms of Service.
This work was funded by the Irish Research Council Government of Ireland Postgraduate Scholarship Scheme 2023 (GOIPG/2023/3321).