Reconstructing White Walls - Multi-View, Multi-Shot 3D Reconstruction of Textureless Surfaces
Authors
Abstract
The reconstruction of the 3D geometry of a scene based on image sequences has been a very active field of research for decades. Nevertheless, there are still existing challenges in particular for homogeneous parts of objects. This paper proposes a solution to enhance the 3D reconstruction of weakly-textured surfaces by using standard cameras as well as a standard multi-view stereo pipeline. The underlying idea of the proposed method is based on improving the signal-to-noise ratio in weakly-textured regions while adaptively amplifying the local contrast to make better use of the limited numerical range in 8-bit images. Based on this premise, multiple shots per viewpoint are used to suppress statistically uncorrelated noise and enhance low-contrast texture. By only changing the image acquisition and adding a preprocessing step, a tremendous increase of up to 300% in completeness of the 3D reconstruction is achieved.Images
Paper
Author version: Presentation slides: Coming soonCode
This is the software release contains tools to reduce noise in images for the purpose of improving the results of Structure from Motion (SfM) and Multi-View Stereo (MVS) approaches. Noise is reduced by averaging multiple images acquired from the same perspective (via a tripod). In addition, non-random fixed pattern noise (FPN) can be estimated upfront and suppressed as well. Since most SfM/MVS pipelines operate on 8-bit per channel images, the resulting denoised images are packed into the 8-bit range. This is achieved by removing the low frequency components and amplifying the high frequency parts into the full numerical interval.Requirements
The code base is written in C++14. The entire framework was developed under Linux but should be easy to port to other OS ecosystems like Windows.In addition, the following libraries/programs are needed:
- Doxygen (to build the documentation)
- CMake (build system)
- ImageMagick
- Boost
- OpenEXR
- Eigen
- dcraw
How to Build the Framework
To build the documentation (you'll need Doxygen), go to the "doc/" directory and execute the "buildDoc.sh" shell script, e.g.:
$ cd doc
$ ./buildDoc.sh
$ ./buildDoc.sh
You will then find the main documentation in "doc/html/index.html" with instructions on how to build and use the framework.
Building the actual code is based on CMake. See the doxygen generated documentation for more details.
Downloads
- Version 1.0 (<1MB)
Citation
If you use this code for your research, please cite:
@Article{isprs-annals-III-3-91-2016,
AUTHOR = {Ley, A. and H\"ansch, R. and Hellwich, O.},
TITLE = {RECONSTRUCTING WHITE WALLS: MULTI-VIEW, MULTI-SHOT 3D RECONSTRUCTION OF TEXTURELESS SURFACES},
JOURNAL = {ISPRS Annals of Photogrammetry, Remote Sensing and Spatial Information Sciences},
VOLUME = {III-3},
YEAR = {2016},
PAGES = {91--98},
URL = {http://www.isprs-ann-photogramm-remote-sens-spatial-inf-sci.net/III-3/91/2016/},
DOI = {10.5194/isprs-annals-III-3-91-2016}
}
AUTHOR = {Ley, A. and H\"ansch, R. and Hellwich, O.},
TITLE = {RECONSTRUCTING WHITE WALLS: MULTI-VIEW, MULTI-SHOT 3D RECONSTRUCTION OF TEXTURELESS SURFACES},
JOURNAL = {ISPRS Annals of Photogrammetry, Remote Sensing and Spatial Information Sciences},
VOLUME = {III-3},
YEAR = {2016},
PAGES = {91--98},
URL = {http://www.isprs-ann-photogramm-remote-sens-spatial-inf-sci.net/III-3/91/2016/},
DOI = {10.5194/isprs-annals-III-3-91-2016}
}