paul0noah / spider-match

πŸ•·οΈ SpiderMatch: 3D Shape Matching with Global Optimality and Geometric Consistency
MIT License
76 stars 5 forks source link

πŸ•·οΈ SpiderMatch: 3D Shape Matching with Global Optimality and Geometric Consistency

Official repository for the CVPR 2024 best paper award candidate paper: SpiderMatch: 3D Shape Matching with Global Optimality and Geometric Consistency by Paul Roetzer and Florian Bernard (University of Bonn). For more information, please visit our our project page.

βš™οΈ Installation

Prerequesites

You need a working c++ compiler and cmake. Note: builds are only tested on unix machines.

Installation Step-by-Step

1) Create python environment

conda create -n spidermatch python=3.8
conda activate spidermatch
conda install pytorch cudatoolkit -c pytorch # install pytorch
git clone git@github.com:paul0noah/spider-match.git
cd spider-match
pip install -r requirements.txt # install other necessary libraries via pip

2) Install sm-3dcouple (code to create the SpiderMatch integer linear program)

git clone git@github.com:paul0noah/sm-3dcouple.git
cd sm-3dcouple
python setup.py install
cd ..

3) Retrieve a gurobi license from the official webpage

πŸ“ Dataset

Datasets are available from this link. Put all datasets under ./datasets/ such that the directory looks somehow like this Two example files for FAUST_r shapes are included in this repository.

β”œβ”€β”€ datasets
    β”œβ”€β”€ FAUST_r
    β”œβ”€β”€ 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 original authors.

πŸ§‘β€πŸ’»οΈβ€ Usage

See spidermatch_example.py for example usage.

🚧 Troubleshooting

Shapes not readable

There are some issues with the .off file format. Use e.g. meshlab to convert them to .obj for example

Some libs for sm-3dcouple not found

List of potential libs not found: libxrandr, libxinerama, libxcursor, libxi, libboost

πŸ™ Acknowledgement

The implementation of DiffusionNet is based on the official implementation. The framework implementation is adapted from Unsupervised Deep Multi Shape Matching. This repository is adapted from Unsupervised-Learning-of-Robust-Spectral-Shape-Matching.

πŸŽ“Attribution

@inproceedings{roetzer2024spidermatch,
    author     = {Paul Roetzer and Florian Bernard},
    title     = { SpiderMatch: 3D Shape Matching with Global Optimality and Geometric Consistency },
    booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
    year     = 2024
}

License πŸš€

This repo is licensed under MIT licence.