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.txt
under the root directory. Then, paste the key intogoogle_map_api.txt
- Open
scripts/annotate_scene_all.sh
and modify the scene(s) you want to annotate, for example, if you want to annotate LONDON:SCENES=(LONDON)
- Run
bash scripts/annotate_scene_all.sh
to 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_square
presets 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.json
andbuilding_metadata.json
- (Optional) Annotate the global image
global_annotated.png
for 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.png
for transit - Annotate the global image
global_annotated.png
for places and transit