Skip to content
dev
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 

README.md

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 here

Source Code

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

Requirements

torch==1.0.0
scipy==1.0.0
numpy==1.14.2
matplotlib==2.2.2
plyfile==0.5
tqdm==4.26

(optional)Python bindings for libigl is used for geometry processing. It's not required for reproducing the experiment, but if you would like to recompute Laplacian, Dirac etc, it would be convenient to install through pip install git+https://github.com/jiangzhongshi/libigl@cluster-pyigl#egg=pyigl

Data

Spatio Tempro Prediction https://drive.google.com/file/d/1tpqN7vrbuwwDsJEuBbLFoY3o3Zwe2K8i/view?usp=sharing

Mesh MNIST https://drive.google.com/file/d/1TPuVgQK-vPqLnetgHnHpfPyAYGKuUzRv/view?usp=sharing

FAUST correspondence https://drive.google.com/file/d/1bLPL7eBt1IRPUiQYdDXpB_-uNOxj-9Uj/view?usp=sharing

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}
}

About

Source code for CVPR 2018 Oral paper "Surface Networks"

Topics

Resources

Releases

No releases published

Packages

No packages published