/operatornet

Primary LanguageJupyter Notebook

OperatorNet: Recovering 3D Shapes From Difference Operators

This is our implementation of OperatorNet, a network that reconstructs shapes from shape difference operators.

OperatorNet

This code was written by Ruqi Huang and Marie-Julie Rakotosaona.

Prerequisites

  • CUDA and CuDNN (changing the code to run on CPU should require few changes)
  • Python 2.7
  • Tensorflow

Setup

Install required python packages, if they are not already installed:

pip install numpy
pip install plyfile

Clone this repository:

git clone https://github.com/mrakotosaon/operatornet.git
cd operatornet

Shape difference operators

To generate demo shape difference matrices: run demo_compute_shape_diff.m with Matlab.

Models

Download pretrained models:

cd models
python download_models.py

Data

A demo dataset can be found here: https://nuage.lix.polytechnique.fr/index.php/s/BqiX5rcWszkKT9N

It contains shape differences and labels as Matlab matrices. This dataset is a simplified version of the one used in the paper.

Download pretrained models:

cd Data
python download_demo_data.py

Training

To train OperatorNet with the default settings and demo data:

python train.py

Test

To test OperatorNet with the default settings and demo shapes:

python test.py

From generated demo shapes, run reconstruction, interpolation or analogy (see code).

Produced shapes are saved in a results directory. Please create this directory if it does not exist.

Citation

If you use our work, please cite our paper.

@article{huang2019operatornet,
  title={OperatorNet: Recovering 3D Shapes From Difference Operators},
  author={Huang, Ruqi and Rakotosaona, Marie-Julie and Achlioptas, Panos and Guibas, Leonidas and Ovsjanikov, Maks},
  journal={ICCV},
  year={2019}
}

Contact

If you have any problem about this implementation, please feel free to contact via:

rqhuang88 AT gmail DOT com or mrakotosaon AT gmail DOT com