Implementation of DynamicFusion



Author:   Tao Jiang, Shuang Liu
Date:   December 01, 2018

Abstract

This is an implementation of CVPR2015 paper "DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time". We implemented the whole pipeline on GPU, including Block Compressed Row(BSR) sparse matrix, K-d tree, Marching Cube, Gauss Newton solver, Cholesky solver and so on. As the cuSolver libarary takes Compressed sparse row(CSR) matrix as input, we also did the conversion from BSR to CSR. Gauss-Newton algorithm is used to optimize the non-linear system, while Cholesky factorization is utilized to solve the linearised system in every iteration. To visualize the reconstructed data, we implement a viewer which can display the mesh, the cloud points, the fustrum and the volume bounding box. Further optimization can be made to speed up, such as, using voxel hashing.






Implementation Details

Operating System: Ubuntu16.04
Programming Language: C++, CUDA
Libraries: cuBlas, cuSparse, cuSolver
IDE: QtCreator
Optimization: Gauss-Newton, Cholesky
Depth Sensor: Kinect v1
GPU: NVIDIA GeForce GTX 1070 Max-Q

Links and Downloads

Paper