Home

Awesome

Surface Networks

Ilya Kostrikov, Zhongshi Jiang, Daniele Panozzo, Denis Zorin, Joan Bruna

IEEE Conference on Computer Vision and Pattern Recognition CVPR 2018 (Oral)

Abstract

We study data-driven representations for three-dimensional triangle meshes, which are one of the prevalent objects used to represent 3D geometry. Recent works have developed models that exploit the intrinsic geometry of manifolds and graphs, namely the Graph Neural Networks (GNNs) and its spectral variants, which learn from the local metric tensor via the Laplacian operator.

Despite offering excellent sample complexity and built-in invariances, intrinsic geometry alone is invariant to isometric deformations, making it unsuitable for many applications. To overcome this limitation, we propose several upgrades to GNNs to leverage extrinsic differential geometry properties of three-dimensional surfaces, increasing its modeling power. In particular, we propose to exploit the Dirac operator, whose spectrum detects principal curvature directions --- this is in stark contrast with the classical Laplace operator, which directly measures mean curvature. We coin the resulting models Surface Networks (SN).

We prove that these models define shape representations that are stable to deformation and to discretization, and we demonstrate the efficiency and versatility of SNs on two challenging tasks: temporal prediction of mesh deformations under non-linear dynamics and generative models using a variational autoencoder framework with encoders/decoders given by SNs.

Full Text

To appear in the proceedings of CVPR 2018, the preprint pdf is on ArXiv

Source Code

Source code is hosted on this GitHub repository. Instructions can be read from the argparse options.

Requirements

torch==0.3.1.post2
scipy==1.0.0
cupy==2.2.0
numpy==1.14.2
matplotlib==2.2.2
plyfile==0.5
progressbar2==3.36.0
scikit_learn==0.19.1
git+https://github.com/jiangzhongshi/pynvrtc@master#egg=pynvrtc
git+https://github.com/jiangzhongshi/libigl@cluster-pyigl#egg=pyigl #optional

Python bindings for libigl is used for geometry processing, computing Laplacian, Dirac etc. If you are reproducing the experiments only, this is not necessary.

Data

Note

License

Source code MPL2 licensed (FAQ).

Please cite our paper if it helps.

@inproceedings{kostrikov2018surface,
  title={Surface Networks},
  author={Kostrikov, Ilya and Jiang, Zhongshi and Panozzo, Daniele and Zorin, Denis and Burna Joan},
  booktitle={2018 {IEEE} Conference on Computer Vision and Pattern Recognition, {CVPR} 2018},
  year={2018}
}