Scene Annotation Pipeline
Complete pipeline for annotating places and transit in the scene
Published: 6/19/2025 Last updated: 6/19/2025
By Virtual Community Team
Run
- Prepare the Google Maps Platform API key with Places API enabled and create
google_map_api.txtunder the root directory. Then, paste the key intogoogle_map_api.txt - Open
scripts/annotate_scene_all.shand modify the scene(s) you want to annotate, for example, if you want to annotate LONDON:SCENES=(LONDON) - Run
bash scripts/annotate_scene_all.shto start annotation process
Reminders
The script supports annotating multiple scenes at once, for example, SCENES=(LONDON TORONTO), but we recommend annotating one scene at a time.
Procedure Overview
There are 3 steps in the annotation pipeline. We provide an overview of main sub-steps of each step. Please refer to the source code for full sub-steps.
Step 1: Prepare necessary files
Move center.txt, building_to_osm_tags.json, and road data from Genesis/genesis/assets/ViCo/scene/v1/SCENE to ViCo/assets/scenes/SCENE.
Step 2: Annotate scene places
- Take the top-down bird’s-eye view (i.e., global image
global.png) of the scene, and save the global camera parameters inglobal_cam_parameters.json - Search places using the Google Maps Platform API. If too few places are found, lower
search_resolution - Filter places.
filter_distance_squarepresets to 300, which means filtered places are in the range of 300m x 300m - Generate oriented bounding boxes of all loaded buildings in the format of
(cx,cy,cz,dx,dy,dz,theta) - Generate the obstacle grid and its parameters in
obstacle_grid.pkl - Generate scene-level metadata through accessibility filtering, extra places pruning, probabilistic place filtering, and place/building metadata alignment. This step generates
place_metadata.jsonandbuilding_metadata.json - (Optional) Annotate the global image
global_annotated.pngfor places
Step 3: Annotate transit and annotate the global image for places and transit
- Generate place clusters for bus, controlled by
num_bus_clusters - Generate bus routes and stops nearest to place clusters for bus
- Compute bus schedules
- Generate place clusters for bicycle, controlled by
num_bicycle_clusters - Generate bicycle stations nearest to place clusters for bicycle
- Generate the annotation image
transit.pngfor transit - Annotate the global image
global_annotated.pngfor places and transit