CoLi-BA is an open-source C++ library for solving bundle adjustment problems. CoLi-BA has a very high solution speed, which is several times of the existing solution algorithm.
Requirements
- C++17
- GCC 7.5+
- CMake 3.10+
Dependencies from the default Ubuntu repositories:
sudo apt-get install \
wget \
git \
cmake \
build-essential \
libglew-dev \
libgtest-dev \
libgflags-dev \
libgoogle-glog-dev \
libatlas-base-dev \
libsuitesparse-dev \
libtbb-dev
Install eigen
git clone https://gitlab.com/libeigen/eigen.git
cd eigen
mkdir build && cd build
cmake .. && sudo make install
Install g2o
git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
mkdir build && cd build
cmake .. && make -j4 &&sudo make install
Compile CoLi-BA
git clone --recursive https://github.com/zju3dv/CoLi-BA.git
cd CoLi-BA/ceres-solver
mkdir build && cd build
cmake .. && make -j4 && sudo make install
cd ../../
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4
-
Download the provided test data or prepare data with your own images.
-
The input data can be generated by colmap
/data/path/ ├── cameras.bin ├── images.bin └── points3D.bin
-
Run the following command to solve the BA problems:
./bin/main /data/path/ coli
@article{ye2022coli,
title={CoLi-BA: Compact Linearization based Solver for Bundle Adjustment},
author={Ye, Zhichao and Li, Guanglin and Liu, Haomin and Cui, Zhaopeng and Bao, Hujun and Zhang, Guofeng},
journal={IEEE Transactions on Visualization and Computer Graphics},
year={2022},
publisher={IEEE}
}