Official code and model release for our NeurIPS 2022 paper Reduced Representation of Deformation Fields for Effective Non-rigid Shape Matching.
This code is primarily written in Python 3.7 using Pytorch but with additional dependencies that are not packaged using pip/conda.
-
Setup the conda environment with Pytorch, Trimesh, etc.. from
my_env.yml
. -
Install Chamfer's Distance from here.
-
Install pymesh as follows,
pip install http://imagine.enpc.fr/~langloip/data/pymesh2-0.2.1-cp37-cp37m-linux_x86_64.whl
-
Setup respective dataset, ground truth directories in local_config.py. Please follow the instructions in the comments provided.
-
For evaluation, we use
CorrespondenceEvaluator
package. To setup please do as follows,
git clone https://github.com/Sentient07/CorrespondenceEvaluator.git && cd CorrespondenceEvaluator && pip install -e .
We provide the template data including pre-computed basis function, nodes, etc in ./data/
directory. To train the model, run the following command,
python lit_train_MLS.py --exp_name test --id 1 --pe_enc --cd_w_volp --cd_w_arap
Please refer to arguments in utils/argument_parsers.py for more details.
Once trained use --only_test
and --model
arguments to restore the model and evaluate it, e.g.,
python lit_train_MLS.py --exp_name test --id 1 --pe_enc --cd_w_volp --cd_w_arap --only_test --model /path/to/checkpoint.ckpt
Pre-trained models used in our quantitative experiments can be found here: https://nuage.lix.polytechnique.fr/index.php/s/oP2zBQy7ScHRxN6
-
Pre-trained weights to reproduce.
-
Dataset used in all our experiments.
-
Pre-processing code to obtain basis function
$\Phi$ , its gradient, etc.. -
Code for shape interpolation.
If you find this code useful, please cite our paper,
@article{Sundararaman2022DeformBasis,
title={Reduced Representation of Deformation Fields for Effective Non-rigid Shape Matching},
author={Sundararaman, Ramana and Marin, Riccardo and Rodola, Emanuele and Ovsjanikov, Maks},
year={2022},
journal={Advances in Neural Information Processing Systems},
volume={35},
}