Home

Awesome

DISN: Deep Implicit Surface Network for High-quality Single-view 3D Reconstruction

Please report bugs here and we will publish the bug fix and the latest updates

Please cite our paper DISN: Deep Implicit Surface Network for High-quality Single-view 3D Reconstruction (NeurIPS 2019)

@incollection{NIPS2019_8340,
title = {DISN: Deep Implicit Surface Network for High-quality Single-view 3D Reconstruction},
author = {Xu, Qiangeng and Wang, Weiyue and Ceylan, Duygu and Mech, Radomir and Neumann, Ulrich},
booktitle = {Advances in Neural Information Processing Systems 32},
editor = {H. Wallach and H. Larochelle and A. Beygelzimer and F. d\textquotesingle Alch\'{e}-Buc and E. Fox and R. Garnett},
pages = {492--502},
year = {2019},
publisher = {Curran Associates, Inc.},
url = {http://papers.nips.cc/paper/8340-disn-deep-implicit-surface-network-for-high-quality-single-view-3d-reconstruction.pdf}
}

Code contact: Qiangeng Xu* and Weiyue Wang*

<img src="./result.png" />

Installation

  pip install trimesh==2.37.20
  cd {DISN}
  mkdir checkpoint
  cd checkpoint
  wget https://www.dropbox.com/s/2ts7qc9w4opl4w4/SDF_DISN.tar?dl=0
  tar -xvzf SDF_DISN.tar?dl=0
  rm -rf SDF_DISN.tar?dl=0
  cd ..
  mkdir cam_est/checkpoint
  cd cam_est/checkpoint
  wget https://www.dropbox.com/s/hyv4lcvpfu0au9e/cam_DISN.tar?dl=0
  tar -xvzf cam_DISN.tar?dl=0
  rm -rf cam_DISN.tar?dl=0
  cd ../../
  change corresponding libary path in your system in isosurface/LIB_PATH

Demo:

  cd {DISN}
  source isosurface/LIB_PATH
  nohup python -u demo/demo.py --cam_est --log_dir checkpoint/SDF_DISN --cam_log_dir cam_est/checkpoint/cam_DISN --img_feat_twostream --sdf_res 256 &> log/create_sdf.log &

The result is demo/result.obj.

Data Preparation

To directly download the generated sdf and model, follow the instruction here To generate sdf files and the reconstructed models by yourself (Please expect the script to run for several hours), please execute the following command lines Our data preparation used this paper Vega: non-linear fem deformable object simulator. Please also cite it if you use our code to generate sdf files

mkdir log
cd {DISN}
source isosurface/LIB_PATH
nohup python -u preprocessing/create_point_sdf_grid.py --thread_num {recommend 9} --category {default 'all', but can be single category like 'chair'} &> log/create_sdf.log &

## SDF folder takes about 9.0G, marching cube obj folder takes about 245G

Camera parameters estimation network

SDF generation network:

Evaluation:

please compile models/tf_ops/ approxmatch and nn_distance and cites "A Point Set Generation Network for 3D Object Reconstruction from a Single Image"