Awesome
<h1> G-MSM: Unsupervised Multi-Shape Matching with Graph-based Affinity Priors </h1>The official implementation of the CVPR'2023 paper ([arXiv]).
Setting up the python interpreter
- We recommend installing the required python packages directly via anaconda:
conda env create --name gmsm_env -f gmsm_env.yml
conda activate gmsm_env
Data
- The repository contains sample code to train our full model on SHREC'20. Please download the high-resolution data from here and preprocess it, following the steps from the DeepShells repository.
- Save the processed shapes under
data/shrec20
, or specify the path inutils/data.py
. - Other datasets can be trained analogously, following the same preprocessing steps. In our experiments, we considered the nearly-isometric datasets FAUST remeshed, SCAPE remeshed, SURREAL, SHREC'19, the topological datasets SMAL, TOPKIDS, SHRECISO as well as the non-isometric datasets SHREC'20, SMAL, TOSCA. For each dataset, running the script
preprocess_data/preprocess_dataset.m
performs all the necessary preprocessing steps.
Run the code
Train
- To train our model, simply run
python3 main.py
- The outputs will be saved automatically in a new folder under
results/shrec20
.
Test
- To test our model, run the evaluation script
python3 eval_scripts.py
- Results will be saved under
results/shrec20_pretrained
. - The script outputs the query correspondences for all pairs in individual files, as well as the predicted shape graph and the validation losses for all pairs.
- By default, a pretrained version of our model is used to produce the query correspondences on SHREC'20.
- To evaluate different runs, specify the configuration in
eval_scripts.py
.
Citation
If you use our implementation for your own work, please cite:
@article{eisenberger2023g,
title={G-MSM: Unsupervised Multi-Shape Matching with Graph-based Affinity Priors},
author={Eisenberger, Marvin and Toker, Aysim and Leal-Taix{\'e}, Laura and Cremers, Daniel},
journal={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
year={2023}
}