pmoulon / CoLi-BA

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CoLi-BA: Compact Linearization based Solver for Bundle Adjustment

Introduction

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.

Install

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

Getting Started

  1. Download the provided test data or prepare data with your own images.

  2. The input data can be generated by colmap

    /data/path/
    ├── cameras.bin
    ├── images.bin
    └── points3D.bin
  3. Run the following command to solve the BA problems:

    ./bin/main /data/path/ coli
    

Citation

@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}
}

About

License:MIT License


Languages

Language:C++ 96.9%Language:CMake 2.0%Language:Python 1.1%