GithubHelp home page GithubHelp logo

pvnieo / dpfm Goto Github PK

View Code? Open in Web Editor NEW
38.0 6.0 4.0 11.01 MB

Pytorch code for "DPFM: Deep Partial Functional Maps" - 3DV 2021 (Oral)

Home Page: https://arxiv.org/abs/2110.09994

License: GNU General Public License v3.0

Python 100.00%
python3 pytorch 3dvision shape-matching partial-shape-matching deep-learning functional-maps deep-functional-maps

dpfm's Introduction

DPFM

Paper Data

Code for "DPFM: Deep Partial Functional Maps", published at 3DV 2021 (recognized with a Best Paper Award!).

overview

Installation

This implementation runs on python >= 3.7, use pip to install dependencies:

pip3 install -r requirements.txt

Download data & preprocessing

The data should be downloaded and placed in the data folder. Each data folder should have two subfolders: shapes which contains the 3D meshes, and maps which contains the point-to-point ground truth maps that are used for training.

├── dpfm
│   ├── data
│   │   ├── my_dataset
│   │   |   ├── shapes
│   │   │   │   ├── shape1.off
│   │   |   │   ├── shape2.off
│   │   │   │   ├── ...
│   │   │   ├── maps
│   │   │   │   ├── gt_p2p1.map
│   │   │   │   ├── gt_p2p2.map
│   │   │   │   ├── ...
│   ├── diffusion_net
│   │   ├── ...
│   ├── eval_shrec_partial.py
│   ├── model.py
│   ├── ...

The data will be automatically processed when the training script is executed.

The datasets used in our paper are provided the dataset repository.

Usage

To train DPFM model on the shrec 16 partial dataset, use the training script:

python3 train_shrec_partial.py --config shrec16_cuts
# OR
python3 train_shrec_partial.py --config shrec16_holes

To evaluate a trained model, use:

python3 eval_shrec_partial.py --config shrec16_cuts --model_path path/to/saved/model --predictions_name path/to/save/perdiction/file

We provide two pre-trained models on the shrec 16 partial dataset which are available in data/saved_models.

DPFM on full non-rigid dataset

We also evaluated the performance of DPFM on a full non-rigid dataset. Specifically, we experimented with FAUST-remeshed (FR) and SCAPE-remeshed (SR) used in many previous works, such as DiffusionNet.

The results we found are provided in the table below. The syntax X on Y means that the model was trained on X and tested on Y.

Setting FR on FR SR on SR FR on SR SR on FR
GeomFMaps + DiffusionNet 2.7 3.0 3.3 3.0
DPFM 2.1 2.3 2.7 2.5

We provide two pre-trained models on the FAUST-remeshed and SCAPE-remeshed datasets which are available in data/saved_models.

Citation

@inproceedings{attaiki2021dpfm,
  doi = {10.1109/3dv53792.2021.00040},
  url = {https://doi.org/10.1109/3dv53792.2021.00040},
  year = {2021},
  month = dec,
  publisher = {{IEEE}},
  author = {Souhaib Attaiki and Gautam Pai and Maks Ovsjanikov},
  title = {{DPFM}: Deep Partial Functional Maps},
  booktitle = {2021 International Conference on 3D Vision (3DV)}
}

dpfm's People

Contributors

pvnieo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

dpfm's Issues

About code.

Hello, I am reading this paper recently, and I am very interested in the method of DPFM. I would like to know when the code can be released.

thank you

Question about Shrec'16 Dataset

Hi, Happy New Year!!!
I have a question about the use of Shrec'16 Dataset.

I download the Dataset here: https://www.dais.unive.it/~shrec2016/dataset.php
There are three contents available for download, and I downloaded the first one:
Partial datasets with ground truth correspondences (~200 shapes)
Test code to load and show ground-truth maps between shapes
The evaluation cuts (200 shapes) and holes (200 shapes) databases

I don't know if I downloaded it correctly.

When I unzip the downloaded file, I found it has three folders, "cuts", "holes", "null", and the label correspondence files is ".baryc_gt" as suffix.

In the documentation I found the following description:
Ground-truth is provided for each deformed shape as a ASCII file with baryc_gt (baryc_gt_sym for the symmetric ground-truth) extension. Each row contains the triangle index and the barycentric weight of the corresponding point of the relative shape in canonical pose.

However, in the code implementation such as "shrec_partial_dataset.py", and the implementation of the "ShrecPartialDataset" class, i found the label correspondence, and the code about read ground truth file is something about the file which is ".map" as suffix, this is different from the label file in Shrec'16 I downloaded.

My question is how do I convert files from '.baryc_gt' to '.map' ?

Thank you for your reply and help, have a nice day~~~

code

Hello, I have read your paper recently and am very interested in your work. Will the code be released before December 1st this year? This will be of great help to my work!
thanks

cp2p pre-trained model

Hello, is there any chance you can release the pre-trained models on cp2p?

There are the pre-trained models for shrec-cuts and shrec-holes, which is awesome!

Also, can you release the ground truth maps for test set of cp2p?
Your evaluation code needs them, and it would be great to have to compute the error on the test set.

Thank you,
Luca

Problem of getting dataset

Where can I get the datasets I need for training?
Can you provide the download link of the dataset?
Thx!!

How to use functional map.

Hi, I have read your paper and viewed your codes. I want to know after getting the functional map between shape A and B, how can I use the it to transform the shape A to B? Is there any possible to convert the functional map to the point-to-point correspondence? I see the C_gt is generated by using the points correspondence map from the training dataset, however, if we only have the functional map, how can I recover the points correspondence map?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.