Skip to content
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

rough draft of scene qa script #1971

Draft
wants to merge 31 commits into
base: main
Choose a base branch
from
Draft

rough draft of scene qa script #1971

wants to merge 31 commits into from

Conversation

jrreyna
Copy link
Contributor

@jrreyna jrreyna commented Dec 20, 2022

Motivation and Context

Introduces a tool for automated SceneDataset performance metric analysis.

NOTE : Requires colorama library

To use the tool:

  1. Place or link your dataset in data/ directory.
  2. Create or modify a config file in tools/qa_scenes/configs/ overriding default values from tools/qa_scenes/qa_scene_settings.py
  3. Install habitat-sim python module as normal (git clone of repo is required)
  4. run python tools/qa_scenes/qa_scenes.py --config_file_path path/to/my.qa_scene_config.json

Results will print to terminal and images/json/csv will output to tools/qa_scenes/qa_scenes_output/

Features:

  • Scans all scene_instance.json and stage_config.json defined in a SceneDataset with many configurable choices. See tools/qa_scenes/qa_scene_settings.py
  • Render timing (output to csv and detail json)
  • Topdown RGB images of each scene
  • Topdown navmesh island maps of each floor for each scene (from automated floor clustering)
  • Collision timing: iterative 3D grid collision check against a box object (output to csv and detail JSON with result of each voxel check)
  • Dynamic simulation timing and settling time check (output to csv and detail JSON)

How Has This Been Tested

Locally

Types of changes

  • Docs change / refactoring / dependency upgrade
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have completed my CLA (see CONTRIBUTING)
  • I have added tests to cover my changes.
  • All new and existing tests passed.

@jrreyna jrreyna self-assigned this Dec 20, 2022
@facebook-github-bot facebook-github-bot added the CLA Signed Do not delete this pull request or issue due to inactivity. label Dec 20, 2022
@aclegg3 aclegg3 assigned aclegg3 and unassigned jrreyna Feb 14, 2023
@jturner65 jturner65 self-assigned this Mar 10, 2023
@jturner65 jturner65 force-pushed the qa-scenes branch 3 times, most recently from a0a3104 to 2d9499b Compare March 23, 2023 13:37
@jturner65 jturner65 force-pushed the qa-scenes branch 4 times, most recently from 457d833 to d1b3789 Compare April 3, 2023 15:44
@jturner65 jturner65 force-pushed the qa-scenes branch 3 times, most recently from 91e4d2a to f7be4e2 Compare April 5, 2023 15:49
@jturner65 jturner65 force-pushed the qa-scenes branch 2 times, most recently from 0ece367 to c915125 Compare April 13, 2023 13:25
aclegg3 and others added 12 commits April 19, 2023 12:18
…ead of specifying on the command line when running the qa_scene.py script. Also added colored print statements to make the output easier to read. Also added a qa_scene_utils.py file to separate the important processing code from helper functions
…Application so that we can test how fast the rendering is
…abstracted some big chunks of scene/stage processing code into functions, and created a new qa scene json config file
…ofile_scene() from inside the iteratively_test_all_scenes() function. Added ability to specify initial transform of agent. Started writing code to generate a default scene if none exists in the dataset config file
…u specify in the config file. You can press 'c' to watch the collision test occur, or if you don't run the app with the viewer on, it will run all the tests specified in the config file you want to test. Refactoring some of the functions in qa_scenes.py, and abstracting some code snippets into separate methods bc some of the functions were getting long and difficult to read. Also added code to time how long the collision test takes at each position
…over a given number of seconds. It saves the results in the comprehensive json file
jrreyna and others added 18 commits April 19, 2023 12:18
…till work when some of the tests aren't run, e.g. if we are running the render test, but not the collision nor sleep tests
…ig options for reduced metric output. Minor cleanup.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed Do not delete this pull request or issue due to inactivity.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants