1 Star 1 Fork 0

jiajiewu / surfelwarp

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
BSD-3-Clause

SurfelWarp

SurfelWarp is a dynamic reconstruction system similar to DynamicFusion. Compared to other dynamic reconstruction methods, 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:

  • Add sparse feature correspondence
  • 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 an email to weigao@mit.edu

Copyright (c) 2018, Wei Gao All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the {organization} nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

SurfelWarp: Efficient Non-Volumetric Dynamic Reconstruction 展开 收起
BSD-3-Clause
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/jiajiewu/surfelwarp.git
git@gitee.com:jiajiewu/surfelwarp.git
jiajiewu
surfelwarp
surfelwarp
master

搜索帮助