Skip to content

CVPR 2024, Hybrid Functional Maps for Crease-Aware Non-Isometric Shape Matching

License

Notifications You must be signed in to change notification settings

xieyizheng/hybridfmaps

Repository files navigation

PDF ArXiv

img

Installation

Our code relies on PyTorch, along with several other common libraries. They can often be installed manually easily. However, for convenience, we provide a conda environment file for easy setup:

# 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

Dataset

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.

Data preparation

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

Train

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/

Test

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.

Pretrained models

You can find all pre-trained models in checkpoints for reproducibility.

Acknowledgement

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.

Attribution

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)},
  year={2024},
  note={Accepted for publication}
}

About

CVPR 2024, Hybrid Functional Maps for Crease-Aware Non-Isometric Shape Matching

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages