3dlg-hcvc / hssd

Code repository for the Habitat Synthetic Scenes Dataset (HSSD) paper.
https://3dlg-hcvc.github.io/hssd/
57 stars 5 forks source link

Using HSSD with Habitat Lab #8

Open verityw opened 9 months ago

verityw commented 9 months ago

Hello! I'm trying to use HSSD with Habitat Lab, but am running into some issues. I'm running the following code:

config = habitat.get_config("benchmark/nav/objectnav/objectnav_hssd-hab.yaml", overrides=["habitat.dataset.split=val"])
split = "val"
with read_write(config):
    config.habitat.dataset.split = split
    config.habitat.dataset.data_path = f"./habitat-lab/data/datasets/objectnav/hssd-hab/{split}/{split}.json.gz"

env = habitat.Env(config=config)

to create a Habitat lab environment, but am getting the error:

AssertionError: ESP_CHECK failed: No Stage Attributes exists for requested scene 
'data/scene_datasets/hssd-hab/scenes/c/ProcTHOR-Val-682' in currently specified Scene 
Dataset `data/scene_datasets/ai2thor-hab/ai2thor-hab/ai2thor-hab.scene_dataset_config.json`. 
Likely the Scene Dataset Configuration requested was not found and so a new, empty Scene 
Dataset was created. Verify the Scene Dataset Configuration file name used.

From what I understand, the first path in the error is from appending the scene ID (c/ProcTHOR-Val-682) to the config.habitat.dataset.scenes_dir (which is data/scene_datasets/hssd-hab/scenes). This works for HM3D (their scene IDs are like hm3d/val/00877-4ok3usBNeis/4ok3usBNeis.basis.glb, which, when prepended with the scenes dir, gets you a path to that basis.glb file). However, that's not the convention that HSSD seems to take.

I thus had the following questions:

Any help with the above questions or general method for using Habitat Lab with HSSD would be extremely helpful. Please let me know if any additional information is required, and I'd be glad to provide it!

mukulkhanna commented 9 months ago

Hello @verityw,

First and foremost, it seems like you are loading the HSSD task config, but trying to load ProcTHOR scenes. ProcTHOR scenes have a separate task config (here). Please use this one.

Also, make sure the scene dataset config file (e.g. data/scene_datasets/ai2thor-hab/ai2thor-hab/ai2thor-hab.scene_dataset_config.json) for the scene dataset exists for the scenes to be loaded correctly.

verityw commented 9 months ago

Thanks for the reply!

How can I load the HSSD files then? It seems like the download links here for HSSD and ProcTHOR are identical, as it was changed 3 weeks ago. I initially didn't notice this and instead unzipped the download for ProcTHOR to data/datasets/objectnav/hssd-hab, so when I used the config file for HSSD, it locked in that path and found the ProcTHOR dataset info.

Edit: the download link has been fixed!

I have confirmed that the ai2thor-hab.scene_dataset_config.json exists. I see now that the c/Procthor-whatever is the prefix for the scene config files in habitat-lab/data/scene_datasets/ai2thor-hab/ai2thor-hab/configs/scenes/ProcTHOR. Additionally, while I am getting a similar error as before, I think it may just be a pathing issue (since all the paths start with data but I am working in the same directory as habitat-lab, so ./habitat-lab/ may need to be prepended to everything). I will message again tomorrow when I've tried this.