All Projects → weigao95 → Surfelwarp

weigao95 / Surfelwarp

Licence: bsd-3-clause
SurfelWarp: Efficient Non-Volumetric Dynamic Reconstruction

Projects that are alternatives of or similar to Surfelwarp

3D-Reconstruction-With-RGBD
a 3D-Reconstruction demo done with Kinect
Stars: ✭ 16 (-89.26%)
Mutual labels:  kinect, 3d-reconstruction
StrayVisualizer
Visualize Data From Stray Scanner https://keke.dev/blog/2021/03/10/Stray-Scanner.html
Stars: ✭ 30 (-79.87%)
Mutual labels:  slam, 3d-reconstruction
cv-arxiv-daily
🎓Automatically Update CV Papers Daily using Github Actions (Update Every 12th hours)
Stars: ✭ 216 (+44.97%)
Mutual labels:  slam, 3d-reconstruction
DSP-SLAM
[3DV 2021] DSP-SLAM: Object Oriented SLAM with Deep Shape Priors
Stars: ✭ 377 (+153.02%)
Mutual labels:  slam, 3d-reconstruction
Teaser Plusplus
A fast and robust point cloud registration library
Stars: ✭ 607 (+307.38%)
Mutual labels:  slam, 3d-reconstruction
simple-sfm
A readable implementation of structure-from-motion
Stars: ✭ 19 (-87.25%)
Mutual labels:  slam, 3d-reconstruction
G2LTex
Code for CVPR 2018 paper --- Texture Mapping for 3D Reconstruction with RGB-D Sensor
Stars: ✭ 104 (-30.2%)
Mutual labels:  slam, 3d-reconstruction
slam-python
SLAM - Simultaneous localization and mapping using OpenCV and NumPy.
Stars: ✭ 80 (-46.31%)
Mutual labels:  slam, 3d-reconstruction
Livescan3d
LiveScan3D is a system designed for real time 3D reconstruction using multiple Azure Kinect or Kinect v2 depth sensors simultaneously at real time speed.
Stars: ✭ 512 (+243.62%)
Mutual labels:  3d-reconstruction, kinect
Voxelhashing
[Siggraph Asia 2013] Large-Scale, Real-Time 3D Reconstruction
Stars: ✭ 447 (+200%)
Mutual labels:  3d-reconstruction, kinect
r3live
A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package
Stars: ✭ 1,355 (+809.4%)
Mutual labels:  slam, 3d-reconstruction
Gradslam
gradslam is an open source differentiable dense SLAM library for PyTorch
Stars: ✭ 833 (+459.06%)
Mutual labels:  slam, 3d-reconstruction
maks
Motion Averaging
Stars: ✭ 52 (-65.1%)
Mutual labels:  slam, 3d-reconstruction
relative pose
A Collection of Algorithms for Relative Pose Estimation of a Calibrated Camera
Stars: ✭ 27 (-81.88%)
Mutual labels:  slam, 3d-reconstruction
Flame
FLaME: Fast Lightweight Mesh Estimation
Stars: ✭ 164 (+10.07%)
Mutual labels:  slam, 3d-reconstruction
Semantic slam
Real time semantic slam in ROS with a hand held RGB-D camera
Stars: ✭ 317 (+112.75%)
Mutual labels:  slam, 3d-reconstruction
Kimera
Index repo for Kimera code
Stars: ✭ 802 (+438.26%)
Mutual labels:  slam, 3d-reconstruction
Bundlefusion
[Siggraph 2017] BundleFusion: Real-time Globally Consistent 3D Reconstruction using Online Surface Re-integration
Stars: ✭ 979 (+557.05%)
Mutual labels:  3d-reconstruction, kinect
Meshroommaya
Photomodeling plugin for Maya
Stars: ✭ 118 (-20.81%)
Mutual labels:  3d-reconstruction
Easy slam tutorial
首个中文的简单从零开始实现视觉SLAM理论与实践教程,使用Python实现。包括:ORB特征点提取,对极几何,视觉里程计后端优化,实时三维重建地图。A easy SLAM practical tutorial (Python).图像处理、otsu二值化。更多其他教程我的CSDN博客
Stars: ✭ 137 (-8.05%)
Mutual labels:  slam

SurfelWarp

SurfelWarp is a dynamic reconstruction pipeline. Compared to other dynamic reconstruction methods like DynamicFusion, surfelwarp uses flat surfel array (instead of volumetric field) as the geometry representation, which makes the pipeline robust and efficient. The approach is described in our paper.

Demo [Video][Presentation]

Surfelwarp

Publication

Wei Gao and Russ Tedrake, "SurfelWarp: Efficient Non-Volumetic Single View Dynamic Reconstruction", Robotics: Science and Systems (RSS) 2018 [Project][Paper][Presentation]

Build Instructions

The code was originally developed with CUDA 9 and PCL 1.8 on Visual Studio 2015 and Ubuntu 16.04. Thanks to the contribution by @Algomorph, the code works with higher version of CUDA, Ubuntu 18.04 and Visual Studio 2017. Also note that, for some unknown reason, the code runs much slower on Ubuntu (seems to be problem with GPU driver that only permits Debug mode).

According to your environment, please follow the specific build instruction:

We also provide a pre-built binary for the windows platform (The CUDA -arch flag for this executable is sm_60).

Run Instructions

We use the VolumeDeform dataset to illustrate how to run the code. An example configuration file is provided here for the "boxing" sequence. First, you need to download the boxing sequence from the VolumeDeform dataset and extract it to data_root, your file structure should look like

${data_root}/frame-000000.color.png
${data_root}/frame-000000.depth.png
...

You also need to download the trained model for Global Patch Collider (gpc) from here. Let the path to the model be ${gpc_path} .

In the configuration file, please modify the data_prefix and gpc_model_path to ${data_root} and ${gpc_path}, respectively. After that, you can run the algorithm with

cd ${project_root}/build/apps/surfelwarp_app
./surfelwarp_app /path/to/config

If everything goes well, the executable would produce the reconstructed result per frame in the same folder as surfelwarp_app.

FAQ

  • What's the typical speed of surfelwarp?

    On the windows platform with a Nvidia Titan Xp GPU, the processing time is usually less than 20 [ms] per frame. To test the speed in surfelwarp_app, you need to build with Release and disable offline rendering (which takes most of the time).

  • How to use my own data?

    You might override the FetchInterface and use it with ImageProcessor. If you don't have performance requirement, you can also convert your data into the format of VolumeDeform.

  • How to deal with topology change?

    Currently, only periodic reinitialization is implemented. To use it, set this flag in config file. More advanced criterion of reinitialization would come soon.

TODO

The code is re-factored and improved from the repo of our RSS paper. There are some planned new features and some old code need to be ported into this repository. Here is a list of TODOs:

  • [x] Add sparse feature correspondence
  • [x] Implement albedo reconstruction
  • [ ] Rewrite automatic reinitialization detection for the new geometry and loss function. Currently, only periodic reinitialization is implemented
  • [ ] Port the GPU kdtree querying (although the overall speed is already relatively fast)

Contact

If you have any question or suggestion regarding this work, please send me an email.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].