FangGet / BundleFusion_Ubuntu_Pangolin

a porting for BundleFusion working on ubuntu, with Pangolin as visualizer
Other
122 stars 32 forks source link

BundleFusion_Ubuntu_Pangolin

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

demo for BundleFusion_Ubuntu

@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}
}

Docker Installation

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:

Build:

docker build -t bundlefusion-cu10.0-cudagl:latest .

Usage:

export DATASETS=path/to/dataset
./run_docker.sh

Local Installation

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.

Usage

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".

Result

We provide a reconstruction result of dataset office2 with Google Drive: https://drive.google.com/file/d/121rR0_6H_xTpsSsYAHIHV_sZqJjHdN5R/view?usp=sharing

Issues

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

contact with fangasfrank #at gmail.com for porting issues.