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:
-
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} } ```
-
Scene generation from opengv
- 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
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
In build
folder:
sudo make install
We also provide the uninstall script:
sudo make uninstall
See the example in the folder example_install
for the basic elements.
- In your CMakeLists.txt, add the dependences:
find_package(gncso REQUIRED)
find_package(opengv REQUIRED)
find_package(Essential REQUIRED)
- For your executable, add the library in
target_link_libraries(XXX Essential opengv gncso)