File: mainpage.dox

package info (click to toggle)
opengv 1.0%2B1git91f4b1-8
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 5,484 kB
  • sloc: cpp: 45,813; python: 152; makefile: 17; xml: 13; sh: 4
file content (101 lines) | stat: -rw-r--r-- 6,839 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/** \mainpage The OpenGV library
 *
 * <b>Important note:</b> If you are only interested in using the library under Matlab, now there is a precompiled mex-library for 64-bit systems available. You can download it from:
 *
\verbatim
Windows: http://laurentkneip.github.io/publications/opengv.mexw64
Mac OSX: http://laurentkneip.github.io/publications/opengv.mexmaci64
\endverbatim
 *
 * These versions have been added around March 2016, so please be aware that later additions may not be included in this distribution. You can go immediately to \ref page_matlab "Use under Matlab" to receive further instructions on the Matlab interface.
 *
 * The OpenGV library aims at unifying geometric computer vision algorithms for calibrated camera pose computation within a single
 * efficient C++-library. OpenGV stands for Open Geometric Vision. It contains classical central and more recent non-central absolute
 * and relative camera pose computation algorithms, as well as triangulation and point-cloud alignment functionalities, all extended
 * by non-linear optimization and RANSAC contexts. It contains a flexible C++-interface as well as Matlab and Python wrappers, and eases the
 * comparison of different geometric vision algorithms. A benchmark to compare the various solutions for one particular problem against
 * each other is included in the Matlab stuff.
 *
 * The library is described in the paper (Please cite if you use it for your research!):
 *
 * - L. Kneip, P. Furgale, "OpenGV: A unified and generalized approach to real-time calibrated geometric vision", Proc. of The IEEE International Conference on Robotics and Automation (ICRA), Hong Kong, China. May 2014.
 *
 * The library has been developped in the context of the following papers.
 *
 * - L. Kneip, D. Scaramuzza, R. Siegwart, "A Novel Parametrization of the Perspective-Three-Point Problem for a Direct Computation of Absolute Camera Position and Orientation", Proc. of The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Colorado Springs, USA. June 2011.
 * - L. Kneip, M. Chli, R. Siegwart, "Robust Real-Time Visual Odometry with a Single Camera and an IMU", Proc. of The British Machine Vision Conference (BMVC), Dundee, UK. August 2011.
 * - T. Kazik, L. Kneip, J. Nikolic, M. Pollefeys, R. Siegwart, "Real-Time 6D Stereo Visual Odometry with Non-Overlapping Fields of View", Proc. of The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Providence, USA. June 2012.
 * - L. Kneip, R. Siegwart, M. Pollefeys, "Finding the Exact Rotation Between Two Images Independently of the Translation", Proc. of The European Conference on Computer Vision (ECCV), Florence, Italy. October 2012.
 * - L. Kneip, P. Furgale, R. Siegwart, "Using Multi-Camera Systems in Robotics: Efficient Solutions to the NPnP Problem", Proc. of The IEEE International Conference on Robotics and Automation (ICRA), Karlsruhe, Germany. May 2013.
 * - L. Kneip, S. Lynen, "Direct Optimization of Frame-to-Frame Rotation", Proc. of The International Conference on Computer Vision (ICCV), Sydney, Australia. December 2013.
 * - L. Kneip, H. Li, "Efficient Computation of Relative Pose for Multi-Camera Systems", In Proc. of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Columbus, USA. June 2014.
 * - L. Kneip, H. Li, Y. Seo, "UPnP: An optimal O(n) solution to the absolute pose problem with universal applicability", In Proc. of The European Conference on Computer Vision (ECCV), Zurich, Switzerland. September 2014.
 *
 * Please cite the OpenGV paper as well as the corresponding paper if you use OpenGV to work on a particular problem.
 *
 * \section main_sec_2 Getting started
 *
 * OpenGV features the following set of algorithms:
 * 
 *  <ul>
 *  <li> Absolute camera pose computation:
 *    <ol>
 *    <li>absolute pose computation with known rotation
 *    <li>two P3P-algorithms (Kneip, Gao)
 *    <li>generalized P3P
 *    <li>the EPnP algorithm by Lepetit and Fua
 *    <li>an extension of the EPnP algorithm to the non-central case (Kneip)
 *    <li>the generalized absolute pose solver presented at ICRA 2013 (Kneip)
 *    <li>non-linear optimization over n correspondences (both central and non-central)
 *    <li>the UPnP algorithm presented at ECCV 2014 (both central and non-central, and minimal and non-minimal)
 *    </ol>
 *  <li> Relative camera-pose computation:
 *    <ol>
 *    <li>2-point algorithm for computing the translation with known relative rotation
 *    <li>2-point algorithm for deriving the rotation in a pure-rotation situation
 *    <li>n-point algorithm for deriving the rotation in a pure-rotation situation
 *    <li>5-point algorithm by Stewenius
 *    <li>5-point algorithm by Nister
 *    <li>5-point algorithm to solve for rotations directly (by Kneip)
 *    <li>7-point algorithm
 *    <li>8-point algorithm by Longuet-Higgins
 *    <li>6-point algorithm by Henrik Stewenius for generalized relative pose
 *    <li>17-point algorithm by Hongdong Li
 *    <li>non-linear optimization over n correspondences (both central and non-central)
 *    <li>relative rotation as an iterative eigenproblem (by Kneip)
 *    <li>generalized reltive rotation for multi-camera systems as an iterative eigenproblem (by Kneip)
 *    </ol>
 *  <li>Two methods for point-triangulation
 *  <li>Arun's method for aligning point clouds
 *  <li>Generic sample-consensus problems for most algorithms useable with Ransac
 *  <li>Math tools:
 *    <ol>
 *    <li>Generic Sturm-sequence implementation for numerical root-finding
 *    <li>Algebraic root finding
 *    <li>Cayley rotations
 *    </ol>
 *  <li>Unit/Benchmarking tests for all algorithms
 *  <li>Matlab interface
 *  <li>Python interface
 *  </ul>
 * 
 * The aim of OpenGV is to make these algorithms accessible
 * to real-time computer vision and robotics-related tasks, that require efficient
 * pose computation of calibrated cameras. It is also intended to serve as a
 * benchmarking framework for testing and comparing different solutions
 * to geometric-vision problems. The library realizes a clean separation between
 * 2D-2D, 2D-3D, and 3D-3D registration tasks. It thus provides
 * a somewhat missing block between image-processing libraries (e.g. OpenCV) and
 * more exhaustive non-linear optimization frameworks (e.g. g2o, ceres). By
 * working exclusively with 3D unit bearing-vectors, it allows to be applied in
 * conjunction with any optical projection system.
 *
 * Please consult the following sub-pages to get a step-by-step introduction to the library:
 * - \subpage page_installation "Installation"
 * - \subpage page_how_to_use "How to use"
 * - \subpage page_matlab "Use under Matlab"
 * - \subpage page_how_to_contribute "How to contribute"
 * - \subpage page_contact "Contact"
 * - \subpage page_references "References"
 *
 */