Skip to content

πŸͺ© DiscoMatch: Fast Discrete Optimisation for Geometrically Consistent 3D Shape Matching

License

Notifications You must be signed in to change notification settings

paul0noah/disco-match

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸͺ© DiscoMatch: Fast Discrete Optimisation for Geometrically Consistent 3D Shape Matching

Official repository of the ECCV 2024 paper DiscoMatch: Fast Discrete Optimisation for Geometrically Consistent 3D Shape Matching by Paul Roetzer*, Ahmed Abbas*, Dongliang Cao, Florian Bernard and Paul Swoboda. For more information, please visit our our project page.

*: Authors contributed equally.

βš™οΈ 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 disco-match python=3.8 # create new virtual environment
conda activate disco-match
conda install pytorch cudatoolkit -c pytorch # install pytorch
git clone [email protected]:paul0noah/disco-match.git
cd disco-match
pip install -r requirements.txt # install other necessary libraries via pip
  1. Install sm-comb (code to create the windheuser problem, also includes sm-comb solver)
git clone [email protected]:paul0noah/sm-comb.git
cd sm-comb
python setup.py install
cd ..
  1. Install disco match solver
git clone [email protected]:LPMP/BDD.git
cd BDD
git checkout f377a82736435bc4988e2c41e5c8029c168e9505
python setup.py install
cd ..

πŸ“ 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 discomatch_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

torch.cuda_isavailable() == False

OMP not found (when installing BDD)

  • (on macOS) install OpenMP with Homebrew brew install libomp β†’ gives you e.g. /opt/homebrew/Cellar/libomp/
  • add the following to BDD/setup.py after the indicated line:
    if _cuda_flag == "ON":
        cmake_args.append('-DWITH_CUDA=ON')
    ### ADDED LINES:
    cmake_args.append('-DOpenMP_CXX_FLAGS="-Xclang -fopenmp -I /path/to/libomp/include/"')
    cmake_args.append('-DOpenMP_C_FLAGS="-Xclang -fopenmp -I /path/to/libomp/include/"')
    cmake_args.append('-DOpenMP_CXX_LIB_NAMES=libomp')
    cmake_args.append('-DOpenMP_C_LIB_NAMES=libomp')
    cmake_args.append('-DOpenMP_libomp_LIBRARY=/path/to/libomp/lib/libomp.dylib')
    cmake_args.append('-DCMAKE_SHARED_LINKER_FLAGS="-L /path/to/libomp/lib -lomp -Wl,-rpath, /opt/homebrew/Cellar/libomp/17.0.6/lib"')
    ### END OF ADDED LINES
    where /path/to/libomp/ should be replaced with e.g. /opt/homebrew/Cellar/libomp/17.0.6/
  • clear the build directory and run installation again (i.e. python setup.py install)

Some libs for sm-3dcouple not found

  • opengl not found: sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev

  • if libxrandr or libxinerama or other libs not found install them via

sudo apt-get install libxrandr-dev
sudo apt-get install libxinerama-dev

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

πŸ™ 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{roetzerabbas2024discomatch,
    author     = {Paul Roetzer and Ahmed Abbas and Dongliang Cao and Florian Bernard and Paul Swoboda},
    title     = { DiscoMatch: Fast Discrete Optimisation for Geometrically Consistent 3D Shape Matching },
    booktitle = {In Proceedings of the European conference on computer vision (ECCV)},
    year     = 2024
}

License πŸš€

This repo is licensed under MIT licence.

About

πŸͺ© DiscoMatch: Fast Discrete Optimisation for Geometrically Consistent 3D Shape Matching

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages