LIX-shape-analysis / GeomFmaps

51 stars 7 forks source link

Deep Geometric Maps: Robust Feature Learning for Shape Correspondence [Paper]

This is our implementation of Deep Geometric Maps, a Shape Matching Network that builds comprehensive features from point cloud data, projects them in spectral basis to compute accurate functional maps.

This code was written by Nicolas Donati, although a large part of it is taken from the code of KPConv. Indeed, we use KPConv as a feature extractor in our method.

Here are the steps to follow to run this algorithm:

Prerequisites

Clone this repository:

git clone https://github.com/LIX-shape-analysis/GeomFmaps.git
cd GeomFmaps

Setup

Training

You should be ready to train your model ! Use your new dataset class in train.py, your model will be stored in the «results/» folder. You can now run :

python train.py

Testing

Take the log name of your model inside the «results/» folder, and put it in your test.py file. Also change the dataset class to match that of your test set. You can now run :

python test.py

The test results will be stored in .npy files, containing the functional maps, and output descriptors, in the «test/» folder.

Evaluation of the results

Go to «eval_scripts/» folder. You need ground truth between the pairs of shapes you want to evaluate. As described in the paper, the error corresponds to the geodesic distance between the ground truth point and the point your model predicted on the target shape, for each point of the source shape. That requires the Geodesic Distance Matrix of the target shape, that you need to store and link to the evaluation script. You can then run (here to evaluate on faust re-meshed) :

cd eval_scripts
python eval_faust.py

Have fun

You can now get a score ! play with the KPConv architecture and see if you can get better results.

Citation

If you use our work, please cite our paper.

@article{donati2020deepGeoMaps,
  title={Deep Geometric Maps: Robust Feature Learning for Shape Correspondence},
  author={Donati, Nicolas and Sharma, Abhishek and Ovsjanikov, Maks},
  journal={CVPR},
  year={2020}
}

Contact

If you have any problem about this implementation, please feel free to contact via:

nicolas DOT donati AT polytechnique DOT edu