This repository hosts the source code of the paper:
"Minimal Solutions to Generalized Three-View Relative Pose Problem" published in ICCV 2023 (oral presentation). [Paper][Supp]
Two minimal cases for the generalized three-view relative pose problem were proposed: (i) the 4-point case and (ii) the 6-line case, which are both solved by GPU-HC. It has shown to be more robust than the generalized two-view relative pose (which requires 6 points for a minimal case), and are efficient, e.g., ~5.11 (ms) for the 6-line case and 4.77 for the 4-point case running on NVIDIA Titan V GPU.
(Note that the timings reported here are a bit faster than what was reported in the paper because the performance of our GPU-HC solver has greatly improved.)
(1) CMake 3.14 or higher
(2) MAGMA 2.6.1 or higher (used for easy complex number computation on both CPU and GPU sides)
(3) CUDA 11.X or higher
(4) cuBlas
(5) openBlas
(6) YAML-CPP from here (used to parse data from the .yaml file)
Note!! The code is under a major update right now. Expect to complete by Jan. 4th., 2025
Synthetic data used to feed the solver is generated by synthetic-data/generate_*.m
. Basically it generates system target parameters, ground-truth relative rotations and translations, etc. You will find the order of the system target parameters so that it makes transmission from synthetic data to real-world data easy.
All changes and update information reside in changelogs.md
If you use the code, please cite our paper:
@InProceedings{Ding:etal:ICCV:2023,
author = {Ding, Yaqing and Chien, Chiang-Heng and Larsson, Viktor and \r{A}str\"om, Karl and Kimia, Benjamin},
title = {Minimal Solutions to Generalized Three-View Relative Pose Problem},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month = {October},
year = {2023},
pages = {8156-8164}
}