-
Notifications
You must be signed in to change notification settings - Fork 7
Code release #1
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
Merged
Code release #1
Changes from all commits
Commits
Show all changes
673 commits
Select commit
Hold shift + click to select a range
75834f0
fix
nushakrishnan 210f55e
naming
nushakrishnan 0b45d8f
rm dummy imu params
nushakrishnan 7ecafcb
upd init
nushakrishnan 1cff2ed
colmap links
nushakrishnan 8fbeab2
delete files from folder
nushakrishnan 4c74190
unused func
nushakrishnan e5e949f
ruff
nushakrishnan 522bb5c
clear unused fn
nushakrishnan 1e31dc5
ruff
nushakrishnan 3a581ad
mv extraction
nushakrishnan 8ba0a6a
mv
nushakrishnan bfa8070
vrs
nushakrishnan beab16b
extract fix
nushakrishnan 1185f6a
del
nushakrishnan 05fa8ca
sync
nushakrishnan 1e80750
importing sync
nushakrishnan 4e1d10b
estimate loading
nushakrishnan 46c3abe
estimate
nushakrishnan f0341a1
revert
nushakrishnan 4447fb5
estimate class upd
nushakrishnan a634047
init recon from calib file
nushakrishnan 590f680
sparse eval
nushakrishnan 9f3d8e0
est upd
nushakrishnan 4567c4f
estimate
nushakrishnan 010a108
undistort asl add cameras rm
nushakrishnan fdb763b
util fn init recon from claib
nushakrishnan 21dbae5
sparse eval
nushakrishnan 5817d5a
ruff
nushakrishnan 73f14b0
est upd
nushakrishnan 04aeab9
ruff
nushakrishnan d319d94
edits
nushakrishnan 806d9de
lamaria recons
nushakrishnan 59da348
vi recons
nushakrishnan 2677fa1
vi recons
nushakrishnan 3aa6150
renaming
nushakrishnan df103b4
virecons
nushakrishnan 720559b
vi reconstruction
nushakrishnan 475c500
keyframe selection
nushakrishnan d36f209
vi recon naming upd
nushakrishnan acb9932
vi recon
nushakrishnan 6647ab0
run pipeline
nushakrishnan cdb9af0
mv control point
nushakrishnan 3111204
structs cps
nushakrishnan 9f3175b
mv
nushakrishnan 7579168
fix circular import
nushakrishnan 71ffb66
to vi
nushakrishnan a31a17b
fix
nushakrishnan 533b10a
vi opt
nushakrishnan f2b4756
ruff
nushakrishnan aeba49d
timestamps
nushakrishnan 61b5a6d
timestamps
nushakrishnan 6480840
func
nushakrishnan 67d052f
estimate upd
nushakrishnan 71e881b
timestamp naming
nushakrishnan ff08e45
cps struct
nushakrishnan e11c88a
ruff
nushakrishnan 1fcd1fa
sparse eval variables
nushakrishnan 1370755
cleaner sparse eval
nushakrishnan 67524f6
init recon with cameras
nushakrishnan 7e05703
aria
nushakrishnan 0633595
updating est
nushakrishnan 161cae2
naming
nushakrishnan cc3de83
naming
nushakrishnan 2a160f7
fixes
nushakrishnan fdb0515
renmaing
nushakrishnan 13af9cd
fixes
nushakrishnan 164c0ae
fixes
nushakrishnan 4b374bb
cp
nushakrishnan 4185886
structs for sparse eval
nushakrishnan 35e2077
result
nushakrishnan 8ba62a3
fix
nushakrishnan f036160
fixes
nushakrishnan a63f8ba
fixes
nushakrishnan b49a0d3
fix
nushakrishnan 73b2989
eval
nushakrishnan a07d713
add load fn for result
nushakrishnan 7b69dc9
load from file
nushakrishnan edbfbe0
fix loading
nushakrishnan e87ff5f
return type
nushakrishnan 9f101e9
return
nushakrishnan 4846d6a
todo
nushakrishnan 9e398f5
readme init
nushakrishnan 1d5e77d
ruff
nushakrishnan e3d7623
readme
nushakrishnan 2dabcbd
read
nushakrishnan 76b9d9b
readme init, assets
nushakrishnan 1492095
spacing
nushakrishnan 3d212d6
quickstart shell
nushakrishnan 93279f6
req.txt
nushakrishnan b50c539
proj aria tools
nushakrishnan abad621
pgt nd traj association
nushakrishnan 38f8469
ts
nushakrishnan e739267
ruff
nushakrishnan 7de41da
argparser
nushakrishnan 5ae7582
req
nushakrishnan 77dca6a
pr
nushakrishnan 4579c20
op path desc
nushakrishnan b557af6
fix requirements.txt
B1ueber2y a16b097
useless str in sensoroptions
nushakrishnan ae305f5
aria upd
nushakrishnan e7ba58b
rm stream id
nushakrishnan d96f919
streamid intro in vrs to asl
nushakrishnan 5f26deb
streamid
nushakrishnan be0edee
sparse eval result naming
nushakrishnan d307b53
rm cp reproj std
nushakrishnan bd0d6a4
sparse
nushakrishnan 084ab39
rm cp reproj std
nushakrishnan e9cf2dc
Merge branch 'dev' of github.com:cvg/lamaria into dev
nushakrishnan 5706ef6
imu camera
nushakrishnan c24e3ac
aria imu dummy camera
nushakrishnan d48c76f
return reconstruction instead of path
nushakrishnan 85ef4bd
init recons
nushakrishnan 5f80383
types
nushakrishnan 5e3f9e3
return
nushakrishnan 7e86ed4
init recons
nushakrishnan 2ede45d
aria
nushakrishnan 3cea488
data input
nushakrishnan b32f97c
renaming
nushakrishnan d42622c
upd control point
nushakrishnan d020ee9
comment
nushakrishnan 9c49ecc
comms
nushakrishnan 6cf98e4
fix
nushakrishnan 1d44bbc
cp
nushakrishnan e897285
ssparse
nushakrishnan 2bd2787
eval
nushakrishnan a1039f8
sparse
nushakrishnan c1d95a2
ruff
nushakrishnan fef2a95
ruff
nushakrishnan 6e01271
cp tri
nushakrishnan 4893e65
cp
nushakrishnan 5f85c29
cp trii
nushakrishnan a3ae3d6
fix
nushakrishnan a1a05d0
ruff
nushakrishnan a3e2e7a
ruff
nushakrishnan 5067f03
cp summary
nushakrishnan 046586a
abstract TimedReconstruction and refactor I/O.
B1ueber2y ddda41d
ev
nushakrishnan 826d410
sparse eval
nushakrishnan a775626
Merge branch 'dev' into shaohui/dev
B1ueber2y adadd29
format and fix.
B1ueber2y 05fcc3b
format
B1ueber2y a57e41b
f
nushakrishnan 2fc7835
metrics
nushakrishnan 3d34855
evo eval against mps
nushakrishnan 7b02733
unused import
nushakrishnan 5cec9ed
traj
nushakrishnan 39a8423
traj
nushakrishnan 54c3bb9
eval wrt mps
nushakrishnan 9c8ca1a
evo eval
nushakrishnan c82690d
ate rmse
nushakrishnan abc13a2
ruff
nushakrishnan c625bf4
ruff
nushakrishnan abd86dd
fix
nushakrishnan e687790
split estimate and mps in the data init.
B1ueber2y 811e9f7
fix and format
B1ueber2y 80be58d
fix
B1ueber2y 4d34a8b
format
B1ueber2y 41f5f9b
Merge branch 'dev' into shaohui/dev
B1ueber2y 4e74cb1
installation readme
nushakrishnan f371eeb
minor
B1ueber2y 163f194
vrs installation tools
nushakrishnan cfaea93
Merge pull request #3 from cvg/shaohui/dev
nushakrishnan c8b8327
Merge branch 'dev' of github.com:cvg/lamaria into dev
nushakrishnan db93e99
fix broken impl
B1ueber2y 0b12d3b
format
B1ueber2y a7bed5f
RGB CAMERA STREAM ID
nushakrishnan 4a52e36
Merge branch 'dev' of github.com:cvg/lamaria into dev
nushakrishnan 5305ca8
mv into pipeline
nushakrishnan 5513115
pyproject toml
nushakrishnan c4280bf
ruff
nushakrishnan f6f6eae
readme
nushakrishnan 8001bde
download lamaria
nushakrishnan 0e8aaa7
Download section
nushakrishnan 336961f
more readme
nushakrishnan 995136b
download dataset
nushakrishnan 8340dac
download
nushakrishnan e9df9ff
readme
nushakrishnan c15be65
demo data folder
nushakrishnan 6e2d3e9
toml
nushakrishnan dec0aa8
quick start
nushakrishnan eb55944
ruff
nushakrishnan 2de021e
read
nushakrishnan 1ba9277
evo fix
nushakrishnan cdf01f7
readme
nushakrishnan 1d1ab11
fix
nushakrishnan a7b7b0b
pose recall
nushakrishnan 450f7c1
pgt
nushakrishnan f6308f7
no need for op path
nushakrishnan 01529bb
space
nushakrishnan 4a3eeb1
array
nushakrishnan 0c0b87b
readme
nushakrishnan 20e2862
pgt
nushakrishnan 6755bb0
ruff
nushakrishnan d2b735d
Readme
nushakrishnan f35fd6e
readme
nushakrishnan c07c27e
readme
nushakrishnan e07ab9d
readme
nushakrishnan f83e525
readme
nushakrishnan 11f7638
logo
nushakrishnan d41aba6
readne
nushakrishnan 4b07bdb
tools
nushakrishnan f334909
naming consistency
nushakrishnan 66fe2eb
readme
nushakrishnan d9bf622
fix
nushakrishnan 3d11031
ros1bag
nushakrishnan 2671380
read
nushakrishnan 3333a69
readme
nushakrishnan 42826a4
readme
nushakrishnan b7b637f
evo bagpy and cvbridge
nushakrishnan ea77454
llaalalaa
nushakrishnan 0b10ca7
download
nushakrishnan 916b388
readme changes
nushakrishnan 60de167
sizes
nushakrishnan 4de2fbf
fix
nushakrishnan 5da1c3d
collapsed
nushakrishnan 145987c
read
nushakrishnan eb52368
better
nushakrishnan c3065d7
train test split
nushakrishnan 0c67fd9
readme
nushakrishnan 871c9fa
readme comments without viz
nushakrishnan 6dc8c33
mps estimate trajec
nushakrishnan 3e91c34
readme
nushakrishnan aee915a
removing the rudeness from readme
nushakrishnan 748ac9d
rm mps
nushakrishnan 46bf992
mps ocal rm
nushakrishnan e6a118d
rm mps
nushakrishnan 100cbe3
use mps
nushakrishnan 48b8025
rm mps
nushakrishnan 9460a87
rm has slam drops
nushakrishnan 066035c
make output_dir mandatory.
B1ueber2y 1093ed2
fix.
B1ueber2y 4e7b35b
change example to lighter sequences.
B1ueber2y de29d77
adapt file structure
B1ueber2y 59604b4
rename pseudo_dense and sparse into pGT and control_points.
B1ueber2y 5289efe
fix readme
B1ueber2y 414af60
update readme
B1ueber2y 21d6227
update demo paths
B1ueber2y 0377cd6
update vi optim
B1ueber2y 262d4f6
update
B1ueber2y 9a99605
update
B1ueber2y 3405124
update
B1ueber2y 5800ec9
add note on imu bottleneck. add ruff==0.12.7 to requirements.txt
B1ueber2y 1e8885a
format
B1ueber2y b82fbd1
fix
B1ueber2y 88b51af
SE3 type hint.
B1ueber2y c10748c
optimized
nushakrishnan aa9c1da
resukt
nushakrishnan ae3a5be
red
nushakrishnan f7746b7
fix vi demo script and remove figure.
B1ueber2y File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| **/__pycache__/ | ||
| .DS_Store | ||
| lamaria_data/ | ||
| demo/ | ||
| demo_outputs/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1,259 @@ | ||
| # lamaria | ||
| <p align="center"> | ||
| <h1 align="center"><ins>The LaMAria Dataset</ins> <br>Benchmarking Egocentric Visual-Inertial SLAM at City Scale</h1> | ||
| <h4 align="center"> | ||
| <a href="https://github.com/nushakrishnan" target="_blank" rel="noopener noreferrer">Anusha Krishnan</a><sup>*</sup>, | ||
| <a href="https://github.com/B1ueber2y" target="_blank" rel="noopener noreferrer">Shaohui Liu</a><sup>*</sup>, | ||
| <a href="https://github.com/sarlinpe" target="_blank" rel="noopener noreferrer">Paul-Edouard Sarlin</a><sup>*</sup>, | ||
| Oscar Gentilhomme,<br> | ||
| David Caruso, | ||
| Maurizio Monge, | ||
| Richard Newcombe, | ||
| Jakob Engel, | ||
| Marc Pollefeys | ||
| </h4> | ||
| <p align="center"> | ||
| <sup>*</sup>Equal contribution | ||
| </p> | ||
| <p align="center"> | ||
| <img src="assets/iccv_logo.png" width="160"/><br/> | ||
| </p> | ||
| </p> | ||
| <h3 align="center"> | ||
| <a href="https://lamaria.ethz.ch" target="_blank" rel="noopener noreferrer">Website</a> | | ||
| <a href="" target="_blank" rel="noopener noreferrer">Paper</a> | ||
| </h3> | ||
|
|
||
|
|
||
| We present **LaMAria**, an egocentric, city-scale benchmark for **visual-inertial SLAM**, featuring | ||
| ~ **22 hours / 70 km** of trajectories with survey-grade control points providing **centimeter-accurate ground truth**. | ||
|
|
||
| Using **LaMAria**, you can: | ||
| - Evaluate SLAM systems under real-world egocentric setup: low light, moving platforms, exposure changes, time-varying sensor calibrations. | ||
| - Benchmark against highly accurate ground truths. | ||
|
|
||
| This dataset offers 23 training sequences and 63 test sequences. | ||
|
|
||
| <p align="center"> | ||
| <img src="assets/teaser_final.png" alt="Overview of LaMAria" width="900"/><br/> | ||
| <em>Figure 1: Overview of the LaMAria dataset and benchmark.</em> | ||
| </p> | ||
|
|
||
| To learn more about the dataset, please refer to our main dataset website or our paper. | ||
|
|
||
| ## Table of Contents | ||
| - [Installation](#installation) | ||
| - [Downloading the Dataset](#downloading-the-dataset) | ||
| - [Evaluation](#evaluation) | ||
| - [Evaluation w.r.t. Control Points](#evaluation-wrt-control-points) | ||
| - [Evaluation w.r.t. Pseudo-GT](#evaluation-wrt-pseudo-gt) | ||
| - [EVO Evaluation w.r.t. MPS](#evo-evaluation-wrt-mps) | ||
| - [Converting VRS to ASL/ROSbag format](#converting-vrs-to-aslrosbag-format) | ||
| - [Example Visual-Inertial Optimization](#example-visual-inertial-optimization) | ||
| - [BibTeX Citation](#bibtex-citation) | ||
|
|
||
|
|
||
| ## Installation | ||
|
|
||
| Create an environment: | ||
| ```bash | ||
| python3 -m venv lamaria_env | ||
| source lamaria_env/bin/activate | ||
| ``` | ||
|
|
||
| Install the package: | ||
| ```bash | ||
| git clone git@github.com:cvg/lamaria.git | ||
| cd lamaria | ||
| python -m pip install -r requirements.txt | ||
| python -m pip install -e . | ||
| ``` | ||
|
|
||
| ## Downloading the dataset | ||
| Our dataset is fully hosted via the archive <a href="https://cvg-data.inf.ethz.ch/lamaria/" target="_blank" rel="noopener noreferrer">here</a>. | ||
|
|
||
| ```bash | ||
| python -m tools.download_lamaria --help | ||
| ``` | ||
|
|
||
| We provide a downloading script [here](tools/download_lamaria.py), which can be used to download: | ||
| - Specific sequences or entire sets (training/test). | ||
| - Specific types: | ||
| - Raw - Downloads raw `.vrs` files and Aria calibration file. | ||
| - ASL - Downloads ASL folder and pinhole calibration file. | ||
| - ROSbag - Downloads ROS1 bag and pinhole calibration file. | ||
| - All - Downloads both raw and pinhole data. | ||
|
|
||
| Ground truth files are automatically downloaded for the training sequences. | ||
|
|
||
| ### Data sizes | ||
| - Raw data (vrs + aria_calibrations): ~890G (training: ~117G + test: ~773G) | ||
| - ASL folder + pinhole_calibrations: ~1.1T (training: ~170G + test: ~884G) | ||
| - ROSbag + pinhole_calibrations: ~1.5T (training: ~247G + test: ~1.3T) | ||
|
|
||
| ### Some example commands | ||
|
|
||
| To download the raw data of a specific sequence (e.g., `R_01_easy`): | ||
| ```bash | ||
| python -m tools.download_lamaria --output_dir ./lamaria_data \ | ||
| --sequences R_01_easy --type raw | ||
| ``` | ||
| To download 3 custom sequences in rosbag format: | ||
| ```bash | ||
| python -m tools.download_lamaria --output_dir ./lamaria_data \ | ||
| --sequences R_01_easy R_02_easy R_03_easy --type rosbag | ||
| ``` | ||
| To download 3 custom sequences in asl format: | ||
| ```bash | ||
| python -m tools.download_lamaria --output_dir ./lamaria_data \ | ||
| --sequences R_01_easy R_02_easy R_03_easy --type asl | ||
| ``` | ||
| To download all training sequences in both raw and pinhole formats: | ||
| ```bash | ||
| python -m tools.download_lamaria --output_dir ./lamaria_data \ | ||
| --set training --type all | ||
| ``` | ||
|
|
||
| The downloaded raw data is stored in the following way: | ||
| ``` | ||
| output_dir/ | ||
| ├── training/ | ||
| │ ├── R_01_easy/ | ||
| │ │ ├── aria_calibrations/ | ||
| │ │ │ └── R_01_easy.json | ||
| │ │ ├── ground_truth/ | ||
| │ │ │ ├── pGT/ | ||
| │ │ │ │ └── R_01_easy.txt | ||
| │ │ │ └── control_points/ | ||
| │ │ │ └── # if sequence has CPs | ||
| │ │ ├── raw_data/ | ||
| │ │ │ └── R_01_easy.vrs | ||
| │ └── ... | ||
| └── test/ # no ground truth | ||
| └── sequence_1_1 | ||
| ``` | ||
|
|
||
| For more information about the training and test sequences, refer to the <a href="https://lamaria.ethz.ch/slam_datasets" target="_blank" rel="noopener noreferrer">dataset details</a>. To learn more about the various data formats, calibration files and ground-truths, visit our <a href="https://lamaria.ethz.ch/slam_documentation" target="_blank" rel="noopener noreferrer">documentation</a>. | ||
|
|
||
| ## Evaluation | ||
| Our training and test sequences are categorized into varying challenges. To evaluate your SLAM results on our data, we provide two main ways: | ||
| 1. **Evaluation via the website**: Upload your results on our <a href="https://lamaria.ethz.ch/login" target="_blank" rel="noopener noreferrer">website</a> to get evaluation results. **All sequences can be submitted via our website.** Results on test sequences are displayed on the public [leaderboard](https://www.lamaria.ethz.ch/leaderboard). | ||
| 2. **Standalone evaluation**: Run the evaluation scripts locally using the provided `lamaria` package. These scripts can be run only on the training sequences (since ground truth is required). | ||
|
|
||
| ### Input format | ||
| The input pose estimate file must be a text file where each line corresponds to a timestamped pose in the following format: | ||
| ``` | ||
| timestamp tx ty tz qx qy qz qw | ||
| ``` | ||
| The timestamp must be in nanoseconds. | ||
|
|
||
| ### Download demo data | ||
| We provide a small script `quickstart.sh` that downloads demo data from the archive. The standalone evaluations and example visual-inertial optimization can be run on the downloaded data. | ||
|
|
||
| ```bash | ||
| chmod +x quickstart.sh | ||
| ./quickstart.sh | ||
| ``` | ||
|
|
||
| The first sequence of the controlled experimental set (R_01_easy) and additional set (sequence_1_19) are stored in the `demo/` folder. | ||
|
|
||
| ### Evaluation w.r.t. Control Points | ||
| Three sequences in the controlled experimental set and the additional set sequences can be evaluated w.r.t. control points. This script computes the score and control point recall based on the alignment of the estimated trajectory to the control points. | ||
|
|
||
| To perform the evaluation on the downloaded demo data: | ||
| ```bash | ||
| python -m evaluate_wrt_control_points --estimate demo/estimate/sequence_1_19.txt \ | ||
| --cp_json_file demo/sequence_1_19/ground_truth/control_points/sequence_1_19.json \ | ||
| --device_calibration_json demo/sequence_1_19/aria_calibrations/sequence_1_19.json \ | ||
| --corresponding_sensor imu \ | ||
| --output_path demo_outputs/eval_cp | ||
| ``` | ||
|
|
||
| *This command evaluates the provided estimate w.r.t. control points and stores the results in `demo/eval_cp`. The `--corresponding_sensor` flag indicates which sensor the poses are expressed in (e.g., `imu` or `cam0`).* | ||
|
|
||
| To learn more about the control points and sparse evaluation, refer to Section 4.1 and 4.2 of our paper. | ||
|
|
||
| ### Evaluation w.r.t Pseudo-GT | ||
| This script evaluates the estimated trajectory w.r.t. the pseudo-dense ground truth from our ground-truthing pipeline. It requires the alignment obtained from the sparse evaluation (w.r.t. control points). The script computes the pose recall @ 1m and @ 5m, after aligning the estimated trajectory to the pseudo-ground truth. | ||
|
|
||
| To perform the evaluation on the downloaded demo data: | ||
| ```bash | ||
| python -m evaluate_wrt_pgt --estimate demo/estimate/sequence_1_19.txt \ | ||
| --gt_estimate demo/sequence_1_19/ground_truth/pGT/sequence_1_19.txt \ | ||
| --sparse_eval_result demo_outputs/eval_cp/sparse_eval_result.npy | ||
| ``` | ||
|
|
||
| ### EVO Evaluation w.r.t MPS | ||
| This script evaluates the estimated trajectory w.r.t. the pseudo-dense ground truth from Machine Perception Services (MPS). It computes the Absolute Trajectory Error (ATE) RMSE between the two trajectories. | ||
|
|
||
| To perform the evaluation on the downloaded demo data: | ||
| ```bash | ||
| python -m evaluate_wrt_mps --estimate demo/estimate/R_01_easy.txt \ | ||
| --gt_estimate demo/R_01_easy/ground_truth/pGT/R_01_easy.txt | ||
| ``` | ||
|
|
||
| This method is used to evaluate results on the controlled experimental set, where the gt estimate file is built directly from the MPS estimated trajectory. | ||
|
|
||
| ## Converting VRS to ASL/ROSbag format | ||
B1ueber2y marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| We provide some utility scripts in the `tools/` folder to convert between different data formats used in our dataset. | ||
|
|
||
| <details> | ||
| <summary>Click to expand commands</summary> | ||
| <br> | ||
|
|
||
| 1. Converting from `.vrs` to ASL folder format: | ||
| ```bash | ||
| python -m tools.vrs_to_asl_folder --vrs_file path/to/sequence.vrs --output_asl_folder path/to/output_asl_folder | ||
| ``` | ||
|
|
||
| 2. Converting from ASL folder to ROS1 bag: | ||
| ```bash | ||
| python -m tools.asl_folder_to_rosbag --input_asl_folder path/to/asl_folder --output_rosbag path/to/output.bag | ||
| ``` | ||
|
|
||
| 3. Undistorting ASL folder images to PINHOLE format: | ||
| ```bash | ||
| python -m tools.undistort_asl_folder --calibration_file path/to/calibration.json --asl_folder path/to/asl_folder --output_asl_folder path/to/output_undistorted_asl_folder | ||
| ``` | ||
| *Note: The undistortion script requires COLMAP to be installed from source. Please follow the instructions [here](https://colmap.github.io/install.html) to install the library.* | ||
nushakrishnan marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| <!-- 4. Rotating ASL folder upright: | ||
| ```bash | ||
| python -m tools.rotate_asl_folder --asl_folder path/to/asl_folder --output_asl_folder path/to/output_upright_asl_folder | ||
| ``` --> | ||
| </details> | ||
|
|
||
| ## Example Visual-Inertial Optimization | ||
|
|
||
| As a byproduct of our groundtruthing pipeline, we provide an example visual-inertial optimization pipeline built within the `lamaria` package. This pipeline takes as input a pose estimate file (in the format described below) and `.vrs`, performs keyframing and triangulation, and optimizes the trajectory using visual and inertial residuals. | ||
|
|
||
| The input pose estimate file must follow the same format as described in the [input format](#input-format) section above. | ||
|
|
||
| ### Additional Installation | ||
| To extract images from a `.vrs` file, it is required to install the [VRS Command Line Tools](https://facebookresearch.github.io/vrs/docs/VrsCliTool/). Please follow the instructions [here](https://github.com/facebookresearch/vrs?tab=readme-ov-file#instructions-macos-and-ubuntu-and-container) to install the library from source. | ||
|
|
||
| ### Running the example | ||
| To run an example visual-inertial optimization on the demo data downloaded following [download demo data](#download-demo-data) (Here the intitial estimation file in the demo is from a run of [OpenVINS](https://docs.openvins.com/)): | ||
| ```bash | ||
| python -m example_vi_optimization --output demo_outputs/vi_optim \ | ||
| --vrs demo/sequence_1_18/raw_data/sequence_1_18.vrs \ | ||
| --estimate demo/estimate/sequence_1_18.txt | ||
| ``` | ||
|
|
||
| ## BibTeX citation | ||
nushakrishnan marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| ```bibtex | ||
| @InProceedings{Krishnan_2025_ICCV, | ||
| author = {Krishnan, Anusha and | ||
| Liu, Shaohui and | ||
| Sarlin, Paul-Edouard and | ||
| Gentilhomme, Oscar and | ||
| Caruso, David and | ||
| Monge, Maurizio and | ||
| Newcombe, Richard and | ||
| Engel, Jakob and | ||
| Pollefeys, Marc}, | ||
| title = {Benchmarking Egocentric Visual-Inertial SLAM at City Scale}, | ||
| booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)}, | ||
| year = {2025} | ||
| } | ||
| ``` | ||
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| # Default configuration for run_pipeline.py | ||
| keyframing: | ||
| max_rotation: 20.0 | ||
| max_distance: 1.0 | ||
| max_elapsed: 1e9 # 1 second in ns | ||
|
|
||
| triangulation: | ||
| feature_conf: aliked-n16 | ||
| matcher_conf: aliked+lightglue | ||
| retrieval_conf: netvlad | ||
| num_retrieval_matches: 5 | ||
|
|
||
| # relaxed triangulation | ||
| # https://github.com/colmap/colmap/tree/3.12.6/src/colmap/sfm/incremental_triangulator.h | ||
| merge_max_reproj_error: 15.0 | ||
| complete_max_reproj_error: 15.0 | ||
| min_angle: 1.0 | ||
|
|
||
| # https://github.com/colmap/colmap/tree/3.12.6/src/colmap/sfm/incremental_mapper.h | ||
| filter_max_reproj_error: 15.0 | ||
| filter_min_tri_angle: 1.0 | ||
|
|
||
| optimization: | ||
| general: | ||
| use_callback: true | ||
| max_num_iterations: 10 | ||
| normalize_reconstruction: false | ||
| minimizer_progress_to_stdout: true | ||
| update_state_every_iteration: true | ||
|
|
||
| cam: | ||
| feature_std: 1.0 | ||
| optimize_focal_length: false | ||
| optimize_principal_point: false | ||
| optimize_extra_params: false | ||
| optimize_cam_from_rig: false | ||
|
|
||
| imu: | ||
| optimize_scale: false | ||
| optimize_gravity: false | ||
| optimize_imu_from_rig: false | ||
| optimize_bias: true | ||
| gyro_infl: 1.0 | ||
| acc_infl: 1.0 | ||
| integration_noise_density: 0.05 |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.