This is an ubuntu porting project for https://github.com/niessner/BundleFusion, a GPU-based 3D reconstruction method.
Youtube Demo:https://www.youtube.com/watch?v=QOHhFObUprA
@article{dai2017bundlefusion,
title={BundleFusion: Real-time Globally Consistent 3D Reconstruction using On-the-fly Surface Re-integration},
author={Dai, Angela and Nie{\ss}ner, Matthias and Zoll{\"o}fer, Michael and Izadi, Shahram and Theobalt, Christian},
journal={ACM Transactions on Graphics 2017 (TOG)},
year={2017}
}
Update 03/15/2023: We add Docker support for easy usage Thanks @adizhol add the support for docker, now BundelFusion_Ubuntu_Pangolin can be deployed via docker
Requirements:
Find suitable docker image for cuda from here: https://hub.docker.com/r/nvidia/cudagl/ Recommanded:
docker build -t bundlefusion-cu10.0-cudagl:latest .
export DATASETS=path/to/dataset
./run_docker.sh
This code is tested under ubuntu16.04/GCC7/CUDA10.1 (GPU: RTX2060).
Requirements:
Optional:
mkdir build && cd build
cmake -DVISUALIZATION=ON ..
make -j8
We use -DVISUALIZATION=OFF/ON to switch visualization plug.
cd build
./bundle_fusion_example ../zParametersDefault.txt ../zParametersBundlingDefault.txt /PATH/TO/dataset/office2
A pangolin window will show up and get real time reconstruction result.
we provide save mesh button at pangoln GUI, you need to specify the save path at zParametersDefault.txt for item "s_generateMeshDir".
We provide a reconstruction result of dataset office2 with Google Drive: https://drive.google.com/file/d/121rR0_6H_xTpsSsYAHIHV_sZqJjHdN5R/view?usp=sharing
Problem:
/usr/local/include/pangolin/gl/glsl.h:709:70: error: ‘glUniformMatrix3dv’ was not declared in this scope
glUniformMatrix3dv( GetUniformHandle(name), 1, GL_FALSE, m.data());
^
/usr/local/include/pangolin/gl/glsl.h: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, const Matrix4d&)’:
/usr/local/include/pangolin/gl/glsl.h:713:70: error: ‘glUniformMatrix4dv’ was not declared in this scope
glUniformMatrix4dv( GetUniformHandle(name), 1, GL_FALSE, m.data());
Solution:
sudo vim /usr/local/include/pangolin/gl/glplatform.h
#goto line#58
#replace "GL/glew.h" with "/usr/include/GL/glew.h"
contact with fangasfrank #at gmail.com for porting issues.