The Multi-View Environment, MVE, is an implementation of a complete end-to-end pipeline for image-based geometry reconstruction. It features Structure-from-Motion, Multi-View Stereo and Surface Reconstruction. The individual steps of the pipeline are available as command line applications, but most features are also available from our user interface UMVE. The project is developed at TU-Darmstadt by Michael Goesele's research group.
MVE is written in C++ and comes with a set of efficient, cross-platform and easy-to-use libraries. The code runs on Linux, MacOS X and Windows. MVE has minimal dependencies on external libraries; see the diagram. It depends on libpng, libjpeg and libtiff. A front-end QT-based application called UMVE — the Ultimate MVE — is built on top of these libraries, for easy management of the multi-view datasets.
If you use our system and want to mention MVE in your publications, please cite the following paper:
MVE – A Multi-View Reconstruction Environment [Paper, 10MB]
Simon Fuhrmann, Fabian Langguth and Michael Goesele
In: Proceedings of the Eurographics Workshop on Graphics and Cultural Heritage, Darmstadt, Germany, 2014.
On a high level, MVE features:
- An incremental Structure-from-Motion (SfM) algorithm [FLG14].
- A Multi-View Stereo implementation based on [GSC+07].
- Tools to export SfM points or dense MVS point clouds.
- A surface reconstruction algorithm based on [FG14].
The MVE libraries support the following features:
- A view container for per-view data (camera parameters, images, arbitrary data).
- A scene management which aggregates multiple views.
- Image loaders, writers and various image processing tools.
- Mesh loaders, writers and various mesh processing tools.
- Various cross-platform routines (argument parser, timer, string processing, tokenizer, endian conversion, threads and mutex, smart pointer, file system abstraction, atomic operations, sleep, …)
- Some mathematical data types and routines (vector, matrix, quaternion, geometric predicates, …)
- A simple OpenGL abstraction for rapid OpenGL visualization.
- Python bindings for MVE are available here: https://github.com/davll/py-mve
Structure from Motion
SfM reconstruction is part of MVE (using the sfmrecon application), but can also be performed by external aplications. The bundler output can then be imported to an MVE scene using the makescene command line application, which is included in the distribution.
MVE includes an implementation of Michael Goesele's Multi-View Stereo algorithm that computes dense, highly accurate depth maps even from uncontrolled image collections.
MVE includes the Floating Scale Surface Reconstruction code to create a global surface mesh from dense MVS. The following project websites might be interesting:
- Floating Scale Surface Reconstruction [Paper]
Simon Fuhrmann and Michael Goesele
In: ACM Transactions on Graphics (Proceedings of ACM SIGGRAPH 2014), Vancouver, Canada, 2014.
- Surface Reconstruction from Multi-Resolution Sample Points [Paper] [Code]
Patrick Mücke, Ronny Klowsky and Michael Goesele
In: Proceedings of Vision, Modeling, and Visualization (VMV 2011), Berlin, Germany, October 4-6, 2011.
A high-quality texture from the input images for the final mesh model can be generated using the following approach. Please find the code on their website.
- Let There Be Color! – Large-Scale Texturing of 3D Reconstructions [Website with code]
Michael Waechter, Nils Moehrle and Michael Goesele
In: Proceedings of European Conference on Computer Vision 2014, Zurich, Switzerland, 2014.
Windows binaries (64 bit only): mve-20160517-win64.zip [12MB]
Build instructions for Windows: https://github.com/simonfuhrmann/mve/wiki/Build-Instructions-for-Windows
The MVE user's guide can be found here.
These example datasets can be used in conjunction with the Multi-View Environment:
- Kermit Dataset (11 images, 9 registered) [Download 6MB]
- Achteck-Turm Dataset (36 images) [Download 83MB]
- Der Hass (79 images with bundle) [Download 62MB]
This download does not contain an MVE scene, just images and a VisualSfM bundle file. Create an MVE scene using the makescene tool: makescene der_hass-20140923/bundle.nvm OUTPUT_SCENE_DIR
- Citywall (564 images with bundle) [Download 376MB]
This download does not contain an MVE scene, just images and a VisualSfM bundle file. Create an MVE scene using the makescene tool: makescene citywall-20140923/bundle.nvm OUTPUT_SCENE_DIR
- Reader Dataset (539 images) [Download 1.3GB]
If you have bug reports, questions or suggestions, please create an issue on Github.