-
Notifications
You must be signed in to change notification settings - Fork 492
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Receptacle unique_name filtering #1298
Conversation
…ort for filter files configured in scene instance config user_defined fields.
habitat-lab/habitat/datasets/rearrange/run_episode_generator.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure I am the best positioned to review this code, but it seems like an improvement,
scene_user_defined = mm.get_scene_user_defined(scene_handle) | ||
filtered_unique_names = [] | ||
if scene_user_defined is not None and scene_user_defined.has_value( | ||
"scene_filter_file" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are these strings documented somewhere?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We are using the "user_defined" fields for this, so there is no official documentation. It is documented in the Receptacle filtering process and the tools used to generate the configs.
Once we have everything working for the dataset release we should add a doc page to the website about the entire Receptacle system.
* refactor to use Receptacle unique_name for sample filtering. Add support for filter files configured in scene instance config user_defined fields. * assert uniqueness of Receptacle names when loaded.
* refactor to use Receptacle unique_name for sample filtering. Add support for filter files configured in scene instance config user_defined fields. * assert uniqueness of Receptacle names when loaded.
Motivation and Context
Current RearrangeEpisode generation relies on pre-configured filtering substrings to cull unwanted receptacles or split them into sets for different purposes. These substrings were checked against Receptacle names, which were not instance-unique and therefore could not differentiate between multiple instances of the same object.
This PR refactors all filtering to consider unique_name, a combination of object instance name and receptacle name, as well as adding support for per-scene filter files (output of Habitat-sim 2078).
Note: requires Habitat-sim 2081 (
main
merged 04/24).Format example:
In my_scene.scene_instance.json, add a user_defined entry
"scene_filter_file"
referencing a dataset-local filepath to the filter JSON:The filter file contains several lists of unique_names. See Habitat-sim 2078 for more details. Those currently parsed are:
An example unique_name:
How Has This Been Tested
Locally with output from Habitat-sim 2078.
Types of changes
Checklist