Skip to content
Simon Fuhrmann edited this page Aug 5, 2015 · 55 revisions

Wiki Home

With the release of MVE 2, the view file format has changed. Previously, one view was a single file. In the new format, views are directories with one file per embedding, and a meta data file with key/value pairs. The `viewupgrade` app can be used to upgrade your datasets to the new format. Be sure to make backups of important data!

Welcome to the MVE wiki!

The Multi-View Environment is an effort to ease the work with multi-view datasets and to support the development of algorithms based on multiple views, such as Multi-View Stereo or Photometric Stereo. The project is initiated and maintained by Michael Goesele's research group at the TU Darmstadt.

For further documentation, refer to these Wiki pages.

Features

MVE provides an API for management of scenes. A scene is composed of a set of views and each view describes an image viewport with associated camera parameters, images of various data type, and generic (binary) data. MVE also implements an incremental Structure from Motion system, a Multi-View Stereo algorithm based on [GSC+07], and a user interface called UMVE.

MVE is written in C++ and consists of efficient, cross-platform and easy-to-use libraries. The code runs on Linux, MacOS X, Windows and others. MVE has minimal dependencies on external libraries: 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 inspection of the datasets.

The MVE libraries support the following features:

  • A view container to aggregate per-view attributes (such as camera parameters), images of arbitrary size and type, and arbitrary data embeddings.
  • Scene management which aggregates multiple views.
  • An incremental Structure-from-Motion system, plus support to import from external applications such as Noah Snavely's Bundler, VisualSfM and OpenMVG, using the makescene application.
  • A Multi-View Stereo library implementing [GSC+07].
  • Image data type with loaders, writers and processing tools. Supported file types are PNG, JPG, TIFF, PFM and PPM.
  • Mesh data type with loaders, writers and processing tools. Supported file types are OFF, PLY and PBRT.
  • Various cross-platform routines, such as argument parser, timer, string processing, tokenizer, INI-file parser, endian conversion, threads and mutex, smart pointer, file system abstraction, atomic operations, sleep, ...
  • Mathematical data types (e.g. matrix, vector, quaternion) and routines (e.g. geometric predicates).
  • A simple OpenGL abstraction for rapid OpenGL 3+ visualization.

The UMVE application supports the following features:

  • Inspection of the scene and the 3D structure.
  • Inspection and management of the views and the image embeddings.
  • Loading and rendering of triangle meshes.
  • Triangulation of depth maps.

Rudimentary Python bindings are available here.

Note: MVE does not yet include code to create a global surface mesh by combining several depth maps. Please refer to the code available here: Floating Scale Surface Reconstruction.

Datasets

A few example datasets can be found here.

Contact and License

The code is distributed under the GPL v3 license. If you want to license the code for commercial purposes, like incorporating parts of it into a propritary project or link against our libraries without the restrictions imposed by the GPL, please get in contact with us. For further information, please see the User's Guide and the COPYING.txt file which is contained in the code distribution.

The code on this website is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. A copy of the GNU General Public License is available at http://www.gnu.org/copyleft/gpl.html. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.