conda create -n sms python=3.9 # create new viertual environment
conda activate sms
conda install pytorch=1.13.0 torchvision pytorch-cuda=11.6 -c pytorch -c nvidia # install pytorch
conda install -c fvcore -c iopath -c conda-forge fvcore iopath
conda install pytorch3d -c pytorch3d # install pytorch3d
conda install pyg -c pyg # install torch_geometric
pip install -r requirements.txt # install other necessary libraries via pip
To train and test datasets used in this paper, please download the datasets from the this link and put all datasets under ../data/
├── data
├── FAUST_aligned
We thank the original dataset providers for their contributions to the shape analysis community, and that all credits should go to the original authors.
For data preprocessing, we provide preprocess.py to compute all things we need. Here is an example for FAUST_r.
python preprocess.py --data_root ../data/FAUST_aligned/ --no_normalize --n_eig 300
To train the model on a specified dataset.
python train.py --opt options/train/faust.yaml
You can visualize the training process in tensorboard.
tensorboard --logdir experiments/
To test the model on a specified dataset.
python test.py --opt options/test/faust.yaml
The qualitative and quantitative results will be saved in results folder.
To perform shape interpolation on a specified dataset.
python shape_interpolation.py
The results will be saved in results folder.
The implementation of DiffusionNet is based on the official implementation.
The framework implementation is adapted from Unsupervised Deep Multi Shape Matching.