README.md
1OpenMVG (open Multiple View Geometry)
2=====================================
3
4<p align="center">
5<img src="https://github.com/openMVG/openMVG/raw/master/logo/openMVG_Logo.png">
6<p/>
7
8| **License** | **Documentation** | Continuous Integration (Linux/MacOs/Windows) |Build | Code Quality | Chat |
9|:-:|:-:|:-:|:-:|:-:|:-:|
10| [![GitHub license](https://img.shields.io/badge/license-MPL2-blue)](https://github.com/openMVG/openMVG/blob/master/LICENSE) | [![doc](https://img.shields.io/badge/doc-readthedocs-blueviolet)](http://openmvg.readthedocs.org/en/latest) <br> [Wiki](https://github.com/openMVG/openMVG/wiki) | [![Build Status](https://travis-ci.org/openMVG/openMVG.png?branch=develop)](https://travis-ci.org/openMVG/openMVG) <br> [![Build status](https://ci.appveyor.com/api/projects/status/3nv6rt41yxqx5v7i?svg=true)](https://ci.appveyor.com/project/pmoulon/openmvg) | [local/docker build tutorial ](https://github.com/openMVG/openMVG/blob/master/BUILD.md)| [![Codacy Badge](https://api.codacy.com/project/badge/Grade/e067bc979aef48f5a96818714a5b33b9)](https://www.codacy.com/manual/pmoulon/openMVG?utm_source=github.com&utm_medium=referral&utm_content=openMVG/openMVG&utm_campaign=Badge_Grade) <br> [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/openMVG/openMVG.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/openMVG/openMVG/context:cpp) <br> [![CodeFactor](https://www.codefactor.io/repository/github/openmvg/openmvg/badge)](https://www.codefactor.io/repository/github/openmvg/openmvg) | [![Join the chat](https://img.shields.io/badge/chat-on%20gitter-green)](https://gitter.im/openMVG/Lobby) |
11
12**Our Mission**
13- Extend awareness of the power of 3D reconstruction from images/photogrammetry by developing a C++ framework.
14
15**Our Vision**
16- Simplify reproducible research with easy-to-read and accurate implementation of state of the art and "classic" algorithms.
17
18**Our Credo**
19- "Keep it simple, keep it maintainable".
20 - OpenMVG is designed to be easy to read, learn, modify and use.
21 - Thanks to its strict test-driven development and samples, the library allows to build trusted larger systems.
22
23**Our codebase and pipeline**
24
25OpenMVG provides an end-to-end 3D reconstruction from images framework compounded of libraries, binaries, and pipelines.
26- **The libraries** provide easy access to features like: images manipulation, features description and matching, feature tracking, camera models, multiple-view-geometry, robust-estimation, structure-from-motion algorithms, ...
27- **The binaries** solve unit tasks that a pipeline could require: scene initialization, feature detection & matching and structure-from-motion reconstruction, export the reconstructed scene to others Multiple-View-Stereovision framework to compute dense point clouds or textured meshes.
28- **The pipelines** are created by chaining various binaries to compute image matching relation, solve the Structure from Motion problem (reconstruction, triangulation, localization) and ...
29
30OpenMVG is developed in C++ and runs on Android, iOS, Linux, macOS, and Windows.
31
32<p align="center">
33<img src="./docs/sphinx/rst/openMVG/sfm/pipeline_simple.png">
34<p/>
35
36**Tutorials**
37- See [Wiki](https://github.com/openMVG/openMVG/wiki)
38 - [OpenMVG Data Structure](https://github.com/openMVG/openMVG/wiki/OpenMVG-data-structures)
39 - [Using OpenMVG as a library](https://github.com/openMVG/openMVG/blob/develop/BUILD.md#using-openmvg-as-a-third-party-library-dependency-with-cmake)
40 - [Using OpenMVG on your image dataset](https://github.com/openMVG/openMVG/wiki/OpenMVG-on-your-image-dataset)
41 - ...
42
43**More information**
44- [Authors](#authors)
45- [Contact](#contact)
46- [Citations](#citations)
47- [Acknowledgements](#acknowledgements)
48
49## Authors
50
51See [Authors](https://github.com/openMVG/openMVG/raw/master/AUTHORS) text file
52
53## Contact
54
55openmvg-team[AT]googlegroups.com
56
57
58## Citations
59
60We are recommending citing `OpenMVG` if you are using the whole library or the adequate paper if you use only a submodule `AContrario Ransac [3], AContrario
61SfM [1], GlobalSfM [4] or Tracks [2]`:
62
63```
64@inproceedings{moulon2016openmvg,
65 title={Open{MVG}: Open multiple view geometry},
66 author={Moulon, Pierre and Monasse, Pascal and Perrot, Romuald and Marlet, Renaud},
67 booktitle={International Workshop on Reproducible Research in Pattern Recognition},
68 pages={60--74},
69 year={2016},
70 organization={Springer}
71}
72```
73
74[1] Moulon Pierre, Monasse Pascal and Marlet Renaud. ACCV 2012.
75[Adaptive Structure from Motion with a contrario model estimation.](http://hal.archives-ouvertes.fr/index.php?halsid=1n2qdqiv2a0l5eq7qpos9us752&view_this_doc=hal-00769266&version=1)
76```
77@inproceedings{Moulon2012,
78 doi = {10.1007/978-3-642-37447-0_20},
79 year = {2012},
80 publisher = {Springer Berlin Heidelberg},
81 pages = {257--270},
82 author = {Pierre Moulon and Pascal Monasse and Renaud Marlet},
83 title = {Adaptive Structure from Motion with a~Contrario Model Estimation},
84 booktitle = {Proceedings of the Asian Computer Vision Conference (ACCV 2012)}
85}
86```
87
88[2] Moulon Pierre and Monasse Pascal. CVMP 2012.
89[Unordered feature tracking made fast and easy.](http://hal.archives-ouvertes.fr/index.php?halsid=ggdarhl8cv1j6ohq2073eok8q3&view_this_doc=hal-00769267&version=1)
90```
91@inproceedings{moulon2012unordered,
92 title={Unordered feature tracking made fast and easy},
93 author={Moulon, Pierre and Monasse, Pascal},
94 booktitle={CVMP 2012},
95 pages={1},
96 year={2012}
97}
98```
99
100[3] Moisan Lionel, Moulon Pierre and Monasse Pascal. IPOL 2012.
101[Automatic Homographic Registration of a Pair of Images, with A Contrario Elimination of Outliers.](http://dx.doi.org/10.5201/ipol.2012.mmm-oh)
102```
103@article{moisan2012automatic,
104 title={Automatic homographic registration of a pair of images, with a contrario elimination of outliers},
105 author={Moisan, Lionel and Moulon, Pierre and Monasse, Pascal},
106 journal={Image Processing On Line},
107 volume={2},
108 pages={56--73},
109 year={2012}
110}
111```
112
113[4] Moulon Pierre, Monasse Pascal, and Marlet Renaud. ICCV 2013.
114[Global Fusion of Relative Motions for Robust, Accurate and Scalable Structure from Motion.](http://imagine.enpc.fr/~moulonp/publis/iccv2013/index.html)
115
116```
117@inproceedings{moulon2013global,
118 title={Global fusion of relative motions for robust, accurate and scalable structure from motion},
119 author={Moulon, Pierre and Monasse, Pascal and Marlet, Renaud},
120 booktitle={Proceedings of the IEEE International Conference on Computer Vision},
121 pages={3248--3255},
122 year={2013}
123}
124```
125
126## Acknowledgements
127
128openMVG authors would like to thanks libmv authors for providing an inspiring
129base to design openMVG. Authors also would like to thanks [Mikros Image](http://www.mikrosimage.eu/)
130and [LIGM-Imagine laboratory](http://imagine.enpc.fr/) for support and authorization to make this
131library an opensource project.
132