This repository contains the source codes for the paper AtlasNet V2 - Learning Elementary Structures.

Overview

teaset

AtlasNet V2 - Learning Elementary Structures

This work was build upon Thibault Groueix's AtlasNet and 3D-CODED projects. (you might want to have a look at those)

This repository contains the source codes for the paper AtlasNet V2 - Learning Elementary Structures.

Citing this work

If you find this work useful in your research, please consider citing:

@inproceedings{deprelle2019learning,
  title={Learning elementary structures for 3D shape generation and matching},
  author={Deprelle, Theo and Groueix, Thibault and Fisher, Matthew and Kim, Vladimir and Russell, Bryan and Aubry, Mathieu},
  booktitle={Advances in Neural Information Processing Systems},
  pages={7433--7443},
  year={2019}
}

Project Page

The project page is available http://imagine.enpc.fr/~deprellt/atlasnet2/

Install

Clone the repo and install dependencies

This implementation uses Pytorch.

## Download the repository
git clone https://github.com/TheoDEPRELLE/AtlasNetV2.git
cd AtlasNetV2
## Create python env with relevant packages
conda create --name atlasnetV2 python=3.7
source activate atlasnetV2
pip install pandas visdom
conda install pytorch torchvision -c pytorch
conda install -c conda-forge matplotlib
# you're done ! Congrats :)

Training

Data

cd data; ./download_data.sh; cd ..

We used the ShapeNet dataset for 3D models.

When using the provided data make sure to respect the shapenet license.

The trained models and some corresponding results are also available online :

Build chamfer distance

The chamfer loss is based on a custom cuda code that need to be compile.

source activate pytorch-atlasnet
cd ./extension
python setup.py install

Start training

  • First launch a visdom server :
python -m visdom.server -p 8888
  • Check out all the options :
git pull; python training/train.py --help
  • Run the baseline :
git pull; python training/train.py --model AtlasNet --adjust mlp
git pull; python training/train.py --model AtlasNet --adjust linear
  • Run the Patch Deformation module with the different adjustment modules :
git pull; python training/train.py --model PatchDeformation --adjust mlp
git pull; python training/train.py --model PatchDeformation --adjust linear
  • Run the Point Translation module with the different adjustment modules:
git pull; python training/train.py --model PointTranslation --adjust mlp
git pull; python training/train.py --model PointTranslation --adjust linear

Models

The models train on the SURREAL dataset for the FAUST competition can be found here

Acknowledgement

This work was partly supported by ANR project EnHerit ANR-17-CE23-0008, Labex Bezout, and gifts from Adobe to Ecole des Ponts.

License

MIT

Comments
  • Unable to download shapenet data

    Unable to download shapenet data

    Hi,

    I am trying to download data form download.sh script. But it is giving 404 error.

    --2020-12-01 14:38:25-- https://cloud.enpc.fr/s/j2ECcKleA1IKNzk/download Resolving cloud.enpc.fr (cloud.enpc.fr)... 195.221.193.80 Connecting to cloud.enpc.fr (cloud.enpc.fr)|195.221.193.80|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2020-12-01 14:38:26 ERROR 404: Not Found.

    could you please provide an alternative link?

    opened by brjathu 11
  • Question about evaluation critetion in paper?

    Question about evaluation critetion in paper?

    image Here, it is said that the reconstruction task is evaluated by chamfer distance. But for surreal data, the ground-truth correspondences are known. Why not just compute the L2 distance for correponding points?

    opened by GostInShell 3
  • How to Generate 16384 points for Point Translation Module?

    How to Generate 16384 points for Point Translation Module?

    As discussed in https://github.com/ThibaultGROUEIX/AtlasNet/issues/42, I want to upsample the results of the point translation module. Since this module takes a fixed number of points into the network. I don't know whether training a new model taking 16384 points as input is justifiable to compare with our method.

    opened by hzxie 2
  • The question about initialization of 'rand_grid' in the ./auxiliary/model.py

    The question about initialization of 'rand_grid' in the ./auxiliary/model.py

    I have a question. In the file 'model.py', line 378,379, why the variable 'rand_grid' is initialized to uniform(0,1) before it is initialized to zero. What is the reason? Thanks!

    bug 
    opened by tommaoer 2
  • Two bugs when running train.py

    Two bugs when running train.py

    First bug is

    Traceback (most recent call last):
      File "training/train.py", line 140, in <module>
        visdom = visdom.Visdom(env=opt.training_id, port=8888)
    TypeError: __init__() got an unexpected keyword argument 'env'
    

    and I delete env=opt.training_id, then i re-run this code. And Second bug is

    Traceback (most recent call last):
      File "training/train.py", line 209, in <module>
        color =  [[125,125,125]]*(batch.size(1))
    NameError: name 'batch' is not defined
    
    opened by Yuzuki-N 0
  • unused model in PointTransLinAdj

    unused model in PointTransLinAdj

    It seems that a deformation layer is defined and not used. https://github.com/TheoDEPRELLE/AtlasNetV2/blob/master/auxiliary/model.py#L302

    Did you intend to use this model?

    opened by orenkatzir 0
  • About visualization

    About visualization

    Hi, first thanks for your inspiring work! Point cloud rendering figures in your paper are beautiful as follows. How do you draw it? Using open3d, meshlab or other programmes?

    Thanks! image

    opened by StevenZzz07 0
  • Pretrained Models

    Pretrained Models

    Hi,

    I am trying to download data from https://cloud.enpc.fr/s/c27Df7fRNXW2uG3, but i get an 404 error. Could you please provide an alternative link? Thanks

    opened by rspezialetti 0
  • The problem of test.

    The problem of test.

    Dear professor, I have read the paper of " Learning Elementary Structures",and I have some problems. I have trained this network use datasets of Shapenet, and I get files of "network.pth" and "opt.pickle". But I can't find where is the "Elementary Structures" ,so I don't know how to compute correspondence use these "Elementary Structures". So I think your readme.md document is not complete, would you like to explain this issues.I don't know what to do after I finished trained my datasets, and how to get the correspondence. Looking for your early reply. Thank you!

    opened by cainiaoshidai 0
Releases(1-beta)
Code release for Universal Domain Adaptation(CVPR 2019)

Universal Domain Adaptation Code release for Universal Domain Adaptation(CVPR 2019) Requirements python 3.6+ PyTorch 1.0 pip install -r requirements.t

THUML @ Tsinghua University 229 Dec 23, 2022
Code for "Learning Skeletal Graph Neural Networks for Hard 3D Pose Estimation" ICCV'21

Skeletal-GNN Code for "Learning Skeletal Graph Neural Networks for Hard 3D Pose Estimation" ICCV'21 Various deep learning techniques have been propose

37 Oct 23, 2022
HIVE: Evaluating the Human Interpretability of Visual Explanations

HIVE: Evaluating the Human Interpretability of Visual Explanations Project Page | Paper This repo provides the code for HIVE, a human evaluation frame

Princeton Visual AI Lab 16 Dec 13, 2022
Smart edu-autobooking - Johnson @ DMI-UNICT study room self-booking system

smart_edu-autobooking Sistema di autoprenotazione per l'aula studio [email protected]

Davide Carnemolla 17 Jun 20, 2022
A Python parser that takes the content of a text file and then reads it into variables.

Text-File-Parser A Python parser that takes the content of a text file and then reads into variables. Input.text File 1. What is your ***? 1. 18 -

Kelvin 0 Jul 26, 2021
Encoding Causal Macrovariables

Encoding Causal Macrovariables Data Natural climate data ('El Nino') Self-generated data ('Simulated') Experiments Detecting macrovariables through th

Benedikt Höltgen 3 Jul 31, 2022
PyTorch implementation of the paper: Label Noise Transition Matrix Estimation for Tasks with Lower-Quality Features

Label Noise Transition Matrix Estimation for Tasks with Lower-Quality Features Estimate the noise transition matrix with f-mutual information. This co

<a href=[email protected]"> 1 Jun 05, 2022
Source code for "Taming Visually Guided Sound Generation" (Oral at the BMVC 2021)

Taming Visually Guided Sound Generation • [Project Page] • [ArXiv] • [Poster] • • Listen for the samples on our project page. Overview We propose to t

Vladimir Iashin 226 Jan 03, 2023
YOLOX + ROS(1, 2) object detection package

YOLOX + ROS(1, 2) object detection package

Ar-Ray 158 Dec 21, 2022
Pytorch implementation of Distributed Proximal Policy Optimization: https://arxiv.org/abs/1707.02286

Pytorch-DPPO Pytorch implementation of Distributed Proximal Policy Optimization: https://arxiv.org/abs/1707.02286 Using PPO with clip loss (from https

Alexis David Jacq 163 Dec 26, 2022
Machine Learning in Asset Management (by @firmai)

Machine Learning in Asset Management If you like this type of content then visit ML Quant site below: https://www.ml-quant.com/ Part One Follow this l

Derek Snow 1.5k Jan 02, 2023
CVPRW 2021: How to calibrate your event camera

E2Calib: How to Calibrate Your Event Camera This repository contains code that implements video reconstruction from event data for calibration as desc

Robotics and Perception Group 104 Nov 16, 2022
Code of paper Interact, Embed, and EnlargE (IEEE): Boosting Modality-specific Representations for Multi-Modal Person Re-identification.

Interact, Embed, and EnlargE (IEEE): Boosting Modality-specific Representations for Multi-Modal Person Re-identification We provide the codes for repr

12 Dec 12, 2022
PyTorch implementation of Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets

Simple PyTorch Implementation of "Grokking" Implementation of Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets Usage Running

Teddy Koker 15 Sep 29, 2022
simple artificial intelligence utilities

Simple AI Project home: http://github.com/simpleai-team/simpleai This lib implements many of the artificial intelligence algorithms described on the b

921 Dec 08, 2022
Face recognize system

FRS Face_recognize_system This project contains my work that target on solving some problems of FRS: Face detection: Retinaface Face anti-spoofing: Fo

Tran Anh Tuan 4 Nov 18, 2021
A complete, self-contained example for training ImageNet at state-of-the-art speed with FFCV

ffcv ImageNet Training A minimal, single-file PyTorch ImageNet training script designed for hackability. Run train_imagenet.py to get... ...high accur

FFCV 92 Dec 31, 2022
Explainability of the Implications of Supervised and Unsupervised Face Image Quality Estimations Through Activation Map Variation Analyses in Face Recognition Models

Explainable_FIQA_WITH_AMVA Note This is the official repository of the paper: Explainability of the Implications of Supervised and Unsupervised Face I

3 May 08, 2022
ML model to classify between cats and dogs

Cats-and-dogs-classifier This is my first ML model which can classify between cats and dogs. Here the accuracy is around 75%, however , the accuracy c

Sharath V 4 Aug 20, 2021