Maximilian Weiherer, Bernhard Egger
Friedrich-Alexander-Universität Erlangen-Nürnberg
Official implementation of the paper "Matérn Kernels for Tunable Implicit Surface Reconstruction", ICLR'25.
This repository essentially implements Neural Kernel Fields (NKFs) proposed by Francis Williams et al. but, as opposed to NKF, uses the family of Matérn kernels instead of the first-order arc-cosine kernel (a.k.a. Neural Splines kernel). Please see our paper for more details and why it may be a good idea to use Matérn kernels over the arc-cosine kernel.
Abstract: We propose to use the family of Matérn kernels for tunable implicit surface reconstruction, building upon the recent success of kernel methods for 3D reconstruction of oriented point clouds. As we show, both, from a theoretical and practical perspective, Matérn kernels have some appealing properties which make them particularly well suited for surface reconstruction---outperforming state-of-the-art methods based on the arc-cosine kernel while being significantly easier to implement, faster to compute, and scaleable. Being stationary, we demonstrate that the Matérn kernels' spectrum can be tuned in the same fashion as Fourier feature mappings help coordinate-based MLPs to overcome spectral bias. Moreover, we theoretically analyze Matérn kernel's connection to SIREN networks as well as its relation to previously employed arc-cosine kernels. Finally, based on recently introduced Neural Kernel Fields, we present data-dependent Matérn kernels and conclude that especially the Laplace kernel (being part of the Matérn family) is extremely competitive, performing almost on par with state-of-the-art methods in the noise-free case while having a more than five times shorter training time.
Setup
We're using Python 3.9, PyTorch 2.0.1, and CUDA 11.7. To install all dependencies within a conda environment, simply run:
conda env create -f environment.yaml
conda activate learnable-matern
This may take a while.
For training, you'd also need a wandb account. To log in to your account, simply type wandb login and follow the instructions.
Training
We only support training on ShapeNet as of now.
If you want to train a model from scratch, you first need to download the pre-processed data available here, taken from Occupancy Networks.
After downloading and extracting the data, put the ShapeNet folder under ../data/shapenet.
You may also choose a custom location; however, in this case, you'll have to update the dataset_root variable in the respective config file.
To start training NKF with a Matérn kernel of smoothness
