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)
Hidden-Fold Networks (HFN): Random Recurrent Residuals Using Sparse Supermasks

Hidden-Fold Networks (HFN): Random Recurrent Residuals Using Sparse Supermasks by Ángel López García-Arias, Masanori Hashimoto, Masato Motomura, and J

Ángel López García-Arias 4 May 19, 2022
Autonomous racing with the Anki Overdrive

Anki Autonomous Racing Autonomous racing with the Anki Overdrive. Using the Overdrive-Python API (https://github.com/xerodotc/overdrive-python) develo

3 Dec 11, 2022
Official Implementation for Fast Training of Neural Lumigraph Representations using Meta Learning.

Fast Training of Neural Lumigraph Representations using Meta Learning Project Page | Paper | Data Alexander W. Bergman, Petr Kellnhofer, Gordon Wetzst

Alex 39 Oct 08, 2022
Camview - A CLI-tool used to stream CCTV online footage based on URL params

CamView A CLI-tool used to stream CCTV online footage based on URL params Get St

Finn Lancaster 54 Dec 09, 2022
Computational Methods Course at UdeA. Forked and size reduced from:

Computational Methods for Physics & Astronomy Book version at: https://restrepo.github.io/ComputationalMethods by: Sebastian Bustamante 2014/2015 Dieg

Diego Restrepo 11 Sep 10, 2022
RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation

Multipath RefineNet A MATLAB based framework for semantic image segmentation and general dense prediction tasks on images. This is the source code for

Guosheng Lin 575 Dec 06, 2022
NaturalProofs: Mathematical Theorem Proving in Natural Language

NaturalProofs: Mathematical Theorem Proving in Natural Language NaturalProofs: Mathematical Theorem Proving in Natural Language Sean Welleck, Jiacheng

Sean Welleck 83 Jan 05, 2023
A denoising autoencoder + adversarial losses and attention mechanisms for face swapping.

faceswap-GAN Adding Adversarial loss and perceptual loss (VGGface) to deepfakes'(reddit user) auto-encoder architecture. Updates Date Update 2018-08-2

3.2k Dec 30, 2022
The official code for PRIMER: Pyramid-based Masked Sentence Pre-training for Multi-document Summarization

PRIMER The official code for PRIMER: Pyramid-based Masked Sentence Pre-training for Multi-document Summarization. PRIMER is a pre-trained model for mu

AI2 114 Jan 06, 2023
Neural Cellular Automata + CLIP

🧠 Text-2-Cellular Automata Using Neural Cellular Automata + OpenAI CLIP (Work in progress) Examples Text Prompt: Cthulu is watching cthulu_is_watchin

Mainak Deb 21 Dec 19, 2022
Non-Imaging Transient Reconstruction And TEmporal Search (NITRATES)

Non-Imaging Transient Reconstruction And TEmporal Search (NITRATES) This repo contains the full NITRATES pipeline for maximum likelihood-driven discov

13 Nov 08, 2022
An open-source online reverse dictionary.

An open-source online reverse dictionary.

THUNLP 6.3k Jan 09, 2023
Revisting Open World Object Detection

Revisting Open World Object Detection Installation See INSTALL.md. Dataset Our new data division is based on COCO2017. We divide the training set into

58 Dec 23, 2022
Code for the paper "Benchmarking and Analyzing Point Cloud Classification under Corruptions"

ModelNet-C Code for the paper "Benchmarking and Analyzing Point Cloud Classification under Corruptions". For the latest updates, see: sites.google.com

Jiawei Ren 45 Dec 28, 2022
rliable is an open-source Python library for reliable evaluation, even with a handful of runs, on reinforcement learning and machine learnings benchmarks.

Open-source library for reliable evaluation on reinforcement learning and machine learning benchmarks. See NeurIPS 2021 oral for details.

Google Research 529 Jan 01, 2023
Compositional Sketch Search

Compositional Sketch Search Official repository for ICIP 2021 Paper: Compositional Sketch Search Requirements Install and activate conda environment c

Alexander Black 8 Sep 06, 2021
Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks

Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks This repository contains a TensorFlow implementation of "

Jingwei Zheng 5 Jan 08, 2023
Light-SERNet: A lightweight fully convolutional neural network for speech emotion recognition

Light-SERNet This is the Tensorflow 2.x implementation of our paper "Light-SERNet: A lightweight fully convolutional neural network for speech emotion

Arya Aftab 29 Nov 12, 2022
Rank 1st in the public leaderboard of ScanRefer (2021-03-18)

InstanceRefer InstanceRefer: Cooperative Holistic Understanding for Visual Grounding on Point Clouds through Instance Multi-level Contextual Referring

63 Dec 07, 2022
PCACE: A Statistical Approach to Ranking Neurons for CNN Interpretability

PCACE: A Statistical Approach to Ranking Neurons for CNN Interpretability PCACE is a new algorithm for ranking neurons in a CNN architecture in order

4 Jan 04, 2022