mihaibujanca / dynamicfusion

Implementation of Newcombe et al. CVPR 2015 DynamicFusion paper
BSD 3-Clause "New" or "Revised" License
396 stars 105 forks source link
3d-reconstruction computer-vision cuda non-rigid opencv

DynamicFusion

Implementation of Newcombe et al. 2015 DynamicFusion paper.

This project is no longer maintained. Dependencies like CUDA and Opt are likely to be severely outdated.

The code is based on this KinectFusion implemenation

Building instructions:

Ubuntu 16.04

Clone dynamicfusion and dependencies.

git clone https://github.com/mihaibujanca/dynamicfusion --recursive

Install NVIDIA drivers.

Alternatively a good tutorial with some common issues covered can be found here.

For fresh installs (this assumes you cloned your project in your home directory!):

chmod +x build.sh
./build.sh

If you are not on a fresh install, check build.sh for building instructions and dependencies.

If you want to build the tests as well, set -DBUILD_TESTS=ON.\ To save frames showing the reconstruction progress, pass -DSAVE_RECONSTRUCTION_FRAMES=ON. The frames will be saved in <project_root>/output

To build documentation, go to the project root directory and execute

doxygen -g
doxygen Doxyfile

Running

./download_data 
./build/bin/dynamicfusion data/umbrella

Windows

Dependencies:

Implicit dependency (needed by opencv_viz):

Install NVIDIA drivers and CUDA

Optionals:

Download the dataset.\ Create a data folder inside the project root directory. \ Unzip the archive into data and remove any files that are not .png. \ Inside data, create directories color and depth, and move color and depth frames to their corresponding folders.

To use with .oni captures or straight from a kinect device, use ./build/bin/dynamicfusion_kinect <path-to-oni> or ./build/bin/dynamicfusion_kinect <device_id>


Note: currently, the frame rate is too low (10s / frame) to be able to cope with live inputs, so it is advisable that you capture your input first.

References

DynamicFusion project page

@InProceedings{Newcombe_2015_CVPR,
author = {Newcombe, Richard A. and Fox, Dieter and Seitz, Steven M.},
title = {DynamicFusion: Reconstruction and Tracking of Non-Rigid Scenes in Real-Time},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2015}
}

The example dataset is taken from the VolumeDeform project.

@inbook{innmann2016volume,
author = "Innmann, Matthias and Zollh{\"o}fer, Michael and Nie{\ss}ner, Matthias and Theobalt, Christian 
         and Stamminger, Marc",
editor = "Leibe, Bastian and Matas, Jiri and Sebe, Nicu and Welling, Max",
title = "VolumeDeform: Real-Time Volumetric Non-rigid Reconstruction",
bookTitle = "Computer Vision -- ECCV 2016: 14th European Conference, Amsterdam, The Netherlands,
            October 11-14, 2016, Proceedings, Part VIII",
year = "2016",
publisher = "Springer International Publishing",
address = "Cham",
pages = "362--379",
isbn = "978-3-319-46484-8",
doi = "10.1007/978-3-319-46484-8_22",
url = "http://dx.doi.org/10.1007/978-3-319-46484-8_22"
}