Skip to content

Latest commit

 

History

History
118 lines (80 loc) · 2.58 KB

README.md

File metadata and controls

118 lines (80 loc) · 2.58 KB

Fast and Robust Relative Pose Estimation for Calibrated Cameras

This repository contains the code for the relative pose estimation between two central and calibrated cameras for the paper [1].

Authors: Mercedes Garcia-Salguero, Javier Gonzalez-Jimenez

License: GPLv3

If you use this code for your research, please cite:

@misc{garciasalguero2021fast,
      title={Fast and Robust Certifiable Estimation of the Relative Pose Between Two Calibrated Cameras}, 
      author={Mercedes Garcia-Salguero and Javier Gonzalez-Jimenez},
      year={2021},
      eprint={2101.08524},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Some parts of this repository are based on previous works:

  1. Matlab & python bindings from TEASER++

     ```
             @article{yang2020teaser,
               title={Teaser: Fast and certifiable point cloud registration},
               author={Yang, Heng and Shi, Jingnan and Carlone, Luca},
               journal={arXiv preprint arXiv:2001.07715},
               year={2020}
             }
     ```
    
  2. Scene generation from opengv

Dependences

  • Eigen
       sudo apt install libeigen3-dev
  • Optimization (own fork)
       git clone https://github.com/mergarsal/Optimization.git
  • GNCSO
        git clone --recursive https://github.com/mergarsal/GNCSO.git 
  • OpenGV
        git clone https://github.com/laurentkneip/opengv.git

Build

git clone --recursive https://github.com/mergarsal/FastCertRelPose.git
cd GNCSO

mkdir build & cd build 

cmake .. 

make -jX

The compiled examples should be inside the bin directory. Run:

        ./bin/example_essential_matrix

Install

In build folder:

        sudo make install

We also provide the uninstall script:

        sudo make uninstall

How to use the library in your project

See the example in the folder example_install for the basic elements.

  1. In your CMakeLists.txt, add the dependences:
        find_package(gncso REQUIRED)
        find_package(opengv REQUIRED)        
        find_package(Essential REQUIRED)
  1. For your executable, add the library in
        target_link_libraries(XXX Essential opengv gncso)