/openMVG

open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion.

Primary LanguageC++Mozilla Public License 2.0MPL-2.0

OpenMVG (open Multiple View Geometry)

License Documentation Continuous Integration (Linux/MacOs/Windows) Build Code Quality Chat
GitHub license doc
Wiki
Build Status
Build status
local/docker build tutorial Codacy Badge
Language grade: C/C++
CodeFactor
Join the chat

Our Mission

  • Extend awareness of the power of 3D reconstruction from images/photogrammetry by developing a C++ framework.

Our Vision

  • Simplify reproducible research with easy-to-read and accurate implementation of state of the art and "classic" algorithms.

Our Credo

  • "Keep it simple, keep it maintainable".
    • OpenMVG is designed to be easy to read, learn, modify and use.
    • Thanks to its strict test-driven development and samples, the library allows to build trusted larger systems.

Our codebase and pipeline

OpenMVG provides an end-to-end 3D reconstruction from images framework compounded of libraries, binaries, and pipelines.

  • 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, ...
  • 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.
  • The pipelines are created by chaining various binaries to compute image matching relation, solve the Structure from Motion problem (reconstruction, triangulation, localization) and ...

OpenMVG is developed in C++ and runs on Android, iOS, Linux, macOS, and Windows.

Tutorials

More information

Authors

See Authors text file

Contact

openmvg-team[AT]googlegroups.com

Citations

We 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 SfM [1], GlobalSfM [4] or Tracks [2]:

@inproceedings{moulon2016openmvg,
  title={Openmvg: Open multiple view geometry},
  author={Moulon, Pierre and Monasse, Pascal and Perrot, Romuald and Marlet, Renaud},
  booktitle={International Workshop on Reproducible Research in Pattern Recognition},
  pages={60--74},
  year={2016},
  organization={Springer}
}

[1] Moulon Pierre, Monasse Pascal and Marlet Renaud. ACCV 2012. Adaptive Structure from Motion with a contrario model estimation.

@inproceedings{Moulon2012,
  doi = {10.1007/978-3-642-37447-0_20},
  year  = {2012},
  publisher = {Springer Berlin Heidelberg},
  pages = {257--270},
  author = {Pierre Moulon and Pascal Monasse and Renaud Marlet},
  title = {Adaptive Structure from Motion with a~Contrario Model Estimation},
  booktitle = {Proceedings of the Asian Computer Vision Conference (ACCV 2012)}
}

[2] Moulon Pierre and Monasse Pascal. CVMP 2012. Unordered feature tracking made fast and easy.

@inproceedings{moulon2012unordered,
  title={Unordered feature tracking made fast and easy},
  author={Moulon, Pierre and Monasse, Pascal},
  booktitle={CVMP 2012},
  pages={1},
  year={2012}
}

[3] Moisan Lionel, Moulon Pierre and Monasse Pascal. IPOL 2012. Automatic Homographic Registration of a Pair of Images, with A Contrario Elimination of Outliers.

@article{moisan2012automatic,
  title={Automatic homographic registration of a pair of images, with a contrario elimination of outliers},
  author={Moisan, Lionel and Moulon, Pierre and Monasse, Pascal},
  journal={Image Processing On Line},
  volume={2},
  pages={56--73},
  year={2012}
}

[4] Moulon Pierre, Monasse Pascal, and Marlet Renaud. ICCV 2013. Global Fusion of Relative Motions for Robust, Accurate and Scalable Structure from Motion.

@inproceedings{moulon2013global,
  title={Global fusion of relative motions for robust, accurate and scalable structure from motion},
  author={Moulon, Pierre and Monasse, Pascal and Marlet, Renaud},
  booktitle={Proceedings of the IEEE International Conference on Computer Vision},
  pages={3248--3255},
  year={2013}
}

Acknowledgements

openMVG authors would like to thanks libmv authors for providing an inspiring base to design openMVG. Authors also would like to thanks Mikros Image and LIGM-Imagine laboratory for support and authorization to make this library an opensource project.