Skip to content

Add metrics to measure timing for rotation averaging, translation averaging, and bundle adjustment #2059

Add metrics to measure timing for rotation averaging, translation averaging, and bundle adjustment

Add metrics to measure timing for rotation averaging, translation averaging, and bundle adjustment #2059

Workflow file for this run

name: Benchmark GTSFM on select datasets using SIFT and Deep front-ends
on: [pull_request, workflow_dispatch]
jobs:
benchmark:
name: Benchmark
runs-on: ubuntu-latest
strategy:
# Prevents other configs from being canceled if one of them fails.
fail-fast: false
matrix:
config_dataset_info:
[
# config dataset lookahead img-extension source loader max-res share-intrinsics
[sift_front_end, door-12, 12, JPG, test_data, olsson-loader, 1296, true],
[deep_front_end, door-12, 12, JPG, test_data, olsson-loader, 1296, true],
[sift_front_end, skydio-8, 8, jpg, gdrive , colmap-loader, 760, true],
[deep_front_end, skydio-8, 8, jpg, gdrive, colmap-loader, 760, true],
[sift_front_end, skydio-32, 32, jpg, gdrive, colmap-loader, 760, true],
[deep_front_end, skydio-32, 32, jpg, gdrive, colmap-loader, 760, true],
[sift_front_end, palace-fine-arts-281, 25, jpg, wget, olsson-loader, 320, true],
[deep_front_end, notre-dame-20, 20, jpg, gdrive, colmap-loader, 760, false],
[sift_front_end_astrovision, 2011205_rc3, 65, png, wget, astrovision, 1024, true],
[deep_front_end_astrovision, 2011205_rc3, 65, png, wget, astrovision, 1024, true],
[sift_front_end, gerrard-hall-100, 0, jpg, wget, colmap-loader, 760, true],
[deep_front_end, gerrard-hall-100, 0, jpg, wget, colmap-loader, 760, true],
[sift_front_end, south-building-128, 0, jpg, wget, colmap-loader, 760, true],
[deep_front_end, south-building-128, 0, jpg, wget, colmap-loader, 760, true],
]
defaults:
run:
shell: bash -l {0}
env:
PYTHON_VERSION: 3.8
steps:
- uses: actions/[email protected]
- name: Cache frontend
uses: actions/cache@v3
env:
# Increase this value to reset cache
CACHE_NUMBER_FRONTEND: 0
with:
path: cache
key: ${{ matrix.config_dataset_info[0] }}-${{ matrix.config_dataset_info[1] }}-${{ matrix.config_dataset_info[2] }}-${{ matrix.config_dataset_info[6] }}-${{ env.CACHE_NUMBER_FRONTEND }}
- uses: mamba-org/setup-micromamba@v1
with:
micromamba-version: '1.3.1-0'
environment-file: environment_linux_cpuonly.yml
- name: Environment setup
run: |
bash .github/scripts/setup.sh
conda info
- name: Prepare dataset
run: |
DATASET_NAME=${{ matrix.config_dataset_info[1] }}
DATASET_SRC=${{ matrix.config_dataset_info[4] }}
bash .github/scripts/download_single_benchmark.sh \
$DATASET_NAME \
$DATASET_SRC \
- name: Run GTSFM
run: |
DATASET_NAME=${{ matrix.config_dataset_info[1] }}
CONFIG_NAME=${{ matrix.config_dataset_info[0] }}
MAX_FRAME_LOOKAHEAD=${{ matrix.config_dataset_info[2] }}
IMAGE_EXTENSION=${{ matrix.config_dataset_info[3] }}
LOADER_NAME=${{ matrix.config_dataset_info[5] }}
MAX_RESOLUTION=${{ matrix.config_dataset_info[6] }}
SHARE_INTRINSICS=${{ matrix.config_dataset_info[7] }}
bash .github/scripts/execute_single_benchmark.sh \
$DATASET_NAME \
$CONFIG_NAME \
$MAX_FRAME_LOOKAHEAD \
$IMAGE_EXTENSION \
$LOADER_NAME \
$MAX_RESOLUTION \
$SHARE_INTRINSICS
- name: Archive dataset metrics, plots, and output data (camera poses + points)
uses: actions/upload-artifact@v3
with:
name: results-${{ matrix.config_dataset_info[0] }}-${{ matrix.config_dataset_info[1] }}-${{ matrix.config_dataset_info[2] }}-${{ matrix.config_dataset_info[3] }}-${{ matrix.config_dataset_info[4] }}-${{ matrix.config_dataset_info[5] }}-${{ matrix.config_dataset_info[6] }}-${{ matrix.config_dataset_info[7] }}.zip
path: |
result_metrics
plots
results