Code Monkey home page Code Monkey logo

dpc's Introduction

DPC: Unsupervised Deep Point Correspondence via Cross and Self Construction (3DV 2021)

[Paper] [Introduction Video (2 minutes)] [Introduction Slides] [Full Video (10 minutes)] [Full Slides] [Poster]

This repo is the implementation of DPC. Created by Itai Lang*, Dvir Ginzburg*, Shai Avidan, and Dan Raviv from Tel Aviv University.
*Equal contribution

PWC

 

Architecture   Cross Similarity

Tested environment

  • Python 3.6
  • PyTorch 1.6
  • CUDA 10.2

Lower CUDA and PyTorch versions should work as well.

 

Contents

 

Installation

Please follow installation.sh or simply run

bash installation.sh 

 

Datasets

The method was evaluated on:

  • SURREAL

    • 230k shapes (DPC uses the first 2k).
    • Dataset website
    • This code downloads and preprocesses SURREAL automatically.
  • SHREC’19

    • 44 Human scans.
    • Dataset website
    • This code downloads and preprocesses SURREAL automatically.
  • SMAL

    • 10000 animal models (2000 models per animal, 5 animals).
    • Dataset website
    • Due to licencing concerns, you should register to SMAL and download the dataset.
    • You should follow data/generate_smal.md after downloading the dataset.
    • To ease the usage of this benchmark, the processed dataset can be downloaded from here. Please extract and put under data/datasets/smal
  • TOSCA

    • 41 Animal figures.
    • Dataset website
    • This code downloads and preprocesses TOSCA automatically.
    • To ease the usage of this benchmark, the processed dataset can be downloaded from here. Please extract and put under data/datasets/tosca

 

Training

For training run

python train_point_corr.py --dataset_name <surreal/tosca/shrec/smal>

The code is based on PyTorch-Lightning, all PL hyperparameters are supported. (limit_train/val/test_batches, check_val_every_n_epoch etc.)

 

Tensorboard support

All metrics are being logged automatically and stored in

output/shape_corr/DeepPointCorr/arch_DeepPointCorr/dataset_name_<name>/run_<num>

Run tesnroboard --logdir=<path> to see the the logs.

Example of tensorboard output:

tensorboard

 

Inference

For testing, simply add --do_train false flag, followed by --resume_from_checkpoint with the relevant checkpoint.

python train_point_corr.py --do_train false  --resume_from_checkpoint <path>

Test phase visualizes each sample, for faster inference pass --show_vis false.

We provide a trained checkpoint repreducing the results provided in the paper, to test and visualize the model run

python train_point_corr.py --show_vis --do_train false --resume_from_checkpoint data/ckpts/surreal_ckpt.ckpt

Results  

Citing & Authors

If you find this repository helpful feel free to cite our publication -

@InProceedings{lang2021dpc,
  author = {Lang, Itai and Ginzburg, Dvir and Avidan, Shai and Raviv, Dan},
  title = {{DPC: Unsupervised Deep Point Correspondence via Cross and Self Construction}},
  booktitle = {Proceedings of the International Conference on 3D Vision (3DV)},
  pages = {1442--1451},
  year = {2021}
}

Contact: Dvir Ginzburg, Itai Lang.

dpc's People

Contributors

dvirginz avatar itailang avatar

Stargazers

Tomer Stolik avatar

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.