Home

Awesome

MegBA: A High-Performance and Distributed Library for Large-Scale Bundle Adjustment

This repo contains an official implementation of MegBA.

MegBA is a fast and distributed library for large-scale Bundle Adjustment (BA). MegBA has a novel end-to-end vectorised BA algorithm which can fully exploit the massive parallel cores on GPUs, thus speeding up the entire BA computation. It also has a novel distributed BA algorithm that can automatically partition BA problems, and solve BA sub-problems using distributed GPUs. The GPUs synchronise intermediate solving state using network-efficient collective communication, and the synchronisation is designed to minimise communication cost. MegBA has a memory-efficient GPU runtime and it exposes g2o-compatible APIs. Experiments show that MegBA can out-perform state-of-the-art BA libraries (i.e., Ceres and DeepLM) by ~50x and ~5x respectively, in public large-scale BA benchmarks.

Version

Todo

Paper: https://arxiv.org/abs/2112.01349 (updated version)

Quickstart

Dependencies:

You can also easily install all dependencies with script: script

Demo with BAL dataset:

Notes for the practitioners

Documentation

Under doc/ (Coming soon...)

Collaborate with Us

Please check here for MegBA's future plan.

If you are interested in MegBA and want to collaborate, you can:

Contact Information:

BibTeX Citation

If you find MegBA useful for your project, please consider citing:

@inproceedings{2021megba,
  title={MegBA: A GPU-Based Distributed Library for Large-Scale Bundle Adjustment}, 
  author={Jie Ren and Wenteng Liang and Ran Yan and Luo Mai and Shiwen Liu and Xiao Liu},
  booktitle={European Conference on Computer Vision},
  year={2022}
}

License

MegBA is licensed under the Apache License, Version 2.0.