Our code relies on PyTorch, along with several other common libraries. We recommend to use our provided conda environment file for compatibility:
# create new virtual environment
conda env create --name hybridfmaps -f environment.yml
conda activate hybridfmaps
In addition, this code uses python bindings for an implementation of the Discrete Shell Energy.
Please follow the installation instructions from: Thin shell energy
For training and testing datasets used in this paper, please refer to the ULRSSM repository from Dongliang Cao et al. Please follow the instructions there to download the necessary datasets and place them under ../data/
:
├── data
├── FAUST_r
├── FAUST_a
├── SCAPE_r
├── SCAPE_a
├── SHREC19_r
├── TOPKIDS
├── SMAL_r
├── DT4D_r
We thank the original dataset providers for their contributions to the shape analysis community, and that all credits should go to the the respective authors and contributors.
For data preprocessing, we provide preprocess.py to compute all things we need. Here is an example for SMAL_r.
python preprocess.py --data_root ../data/SMAL_r/ --no_normalize --n_eig 200
To train a specific model on a specified dataset.
python train.py --opt options/hybrid_ulrssm/train/smal.yaml
You can visualize the training process in tensorboard or via wandb.
tensorboard --logdir experiments/
To test a specific model on a specified dataset.
python test.py --opt options/hybrid_ulrssm/test/smal.yaml
The qualitative and quantitative results will be saved in results folder.
You can find all pre-trained models in checkpoints for reproducibility.
The framework implementation is adapted from Unsupervised Learning of Robust Spectral Shape Matching.
The implementation of Elastic Basis is adapted from An Elastic Basis for Spectral Shape Correspondence.
The implementation of DiffusionNet is based on the official implementation.
The GeomFmaps implementation follows GeomFmaps-pytorch: A minimalist pytorch implementation of: "Deep Geometric Functional Maps: Robust Feature Learning for Shape Correspondence".
We additionally include adaptation for ZoomOut: Spectral Upsampling for Efficient Shape Correspondence
We thank the original authors for their contributions to this code base.
Please cite our paper when using the code. You can use the following bibtex
@inproceedings{bastianxie2024hybrid,
title={Hybrid Functional Maps for Crease-Aware Non-Isometric Shape Matching},
author={Bastian, Lennart and Xie, Yizheng and Navab, Nassir and L{\"a}hner, Zorah},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
pages={3313--3323},
month={June},
year={2024}
}