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)
Predicting Event Memorability from Contextual Visual Semantics

Predicting Event Memorability from Contextual Visual Semantics

0 Oct 06, 2021
PyTorch implementation of MoCo v3 for self-supervised ResNet and ViT.

MoCo v3 for Self-supervised ResNet and ViT Introduction This is a PyTorch implementation of MoCo v3 for self-supervised ResNet and ViT. The original M

Facebook Research 887 Jan 08, 2023
This is a project based on ConvNets used to identify whether a road is clean or dirty. We have used MobileNet as our base architecture and the weights are based on imagenet.

PROJECT TITLE: CLEAN/DIRTY ROAD DETECTION USING TRANSFER LEARNING Description: This is a project based on ConvNets used to identify whether a road is

Faizal Karim 3 Nov 06, 2022
ChainerRL is a deep reinforcement learning library built on top of Chainer.

ChainerRL and PFRL ChainerRL (this repository) is a deep reinforcement learning library that implements various state-of-the-art deep reinforcement al

Chainer 1.1k Jan 01, 2023
Semantic code search implementation using Tensorflow framework and the source code data from the CodeSearchNet project

Semantic Code Search Semantic code search implementation using Tensorflow framework and the source code data from the CodeSearchNet project. The model

Chen Wu 24 Nov 29, 2022
Official project repository for 'Normality-Calibrated Autoencoder for Unsupervised Anomaly Detection on Data Contamination'

NCAE_UAD Official project repository of 'Normality-Calibrated Autoencoder for Unsupervised Anomaly Detection on Data Contamination' Abstract In this p

Jongmin Andrew Yu 2 Feb 10, 2022
A self-supervised 3D representation learning framework named viewpoint bottleneck.

Pointly-supervised 3D Scene Parsing with Viewpoint Bottleneck Paper Created by Liyi Luo, Beiwen Tian, Hao Zhao and Guyue Zhou from Institute for AI In

63 Aug 11, 2022
Existing Literature about Machine Unlearning

Machine Unlearning Papers 2021 Brophy and Lowd. Machine Unlearning for Random Forests. In ICML 2021. Bourtoule et al. Machine Unlearning. In IEEE Symp

Jonathan Brophy 213 Jan 08, 2023
Understanding the Properties of Minimum Bayes Risk Decoding in Neural Machine Translation.

Understanding Minimum Bayes Risk Decoding This repo provides code and documentation for the following paper: Müller and Sennrich (2021): Understanding

ZurichNLP 13 May 01, 2022
Deep Learning GPU Training System

DIGITS DIGITS (the Deep Learning GPU Training System) is a webapp for training deep learning models. The currently supported frameworks are: Caffe, To

NVIDIA Corporation 4.1k Jan 03, 2023
Fast Neural Style for Image Style Transform by Pytorch

FastNeuralStyle by Pytorch Fast Neural Style for Image Style Transform by Pytorch This is famous Fast Neural Style of Paper Perceptual Losses for Real

Bengxy 81 Sep 03, 2022
A set of tools to pre-calibrate and calibrate (multi-focus) plenoptic cameras (e.g., a Raytrix R12) based on the libpleno.

COMPOTE: Calibration Of Multi-focus PlenOpTic camEra. COMPOTE is a set of tools to pre-calibrate and calibrate (multifocus) plenoptic cameras (e.g., a

ComSEE - Computers that SEE 4 May 10, 2022
The code of Zero-shot learning for low-light image enhancement based on dual iteration

Zero-shot-dual-iter-LLE The code of Zero-shot learning for low-light image enhancement based on dual iteration. You can get the real night image tests

1 Mar 18, 2022
🐤 Nix-TTS: An Incredibly Lightweight End-to-End Text-to-Speech Model via Non End-to-End Distillation

🐤 Nix-TTS An Incredibly Lightweight End-to-End Text-to-Speech Model via Non End-to-End Distillation Rendi Chevi, Radityo Eko Prasojo, Alham Fikri Aji

Rendi Chevi 156 Jan 09, 2023
MetaShift: A Dataset of Datasets for Evaluating Contextual Distribution Shifts and Training Conflicts (ICLR 2022)

MetaShift: A Dataset of Datasets for Evaluating Distribution Shifts and Training Conflicts This repo provides the PyTorch source code of our paper: Me

88 Jan 04, 2023
Unofficial implementation of PatchCore anomaly detection

PatchCore anomaly detection Unofficial implementation of PatchCore(new SOTA) anomaly detection model Original Paper : Towards Total Recall in Industri

Changwoo Ha 268 Dec 22, 2022
Implementation of "Learning Multi-Granular Hypergraphs for Video-Based Person Re-Identification"

hypergraph_reid Implementation of "Learning Multi-Granular Hypergraphs for Video-Based Person Re-Identification" If you find this help your research,

62 Dec 21, 2022
Research code for CVPR 2021 paper "End-to-End Human Pose and Mesh Reconstruction with Transformers"

MeshTransformer ✨ This is our research code of End-to-End Human Pose and Mesh Reconstruction with Transformers. MEsh TRansfOrmer is a simple yet effec

Microsoft 473 Dec 31, 2022
The implementation of CVPR2021 paper Temporal Query Networks for Fine-grained Video Understanding, by Chuhan Zhang, Ankush Gupta and Andrew Zisserman.

Temporal Query Networks for Fine-grained Video Understanding 📋 This repository contains the implementation of CVPR2021 paper Temporal_Query_Networks

55 Dec 21, 2022
The description of FMFCC-A (audio track of FMFCC) dataset and Challenge resluts.

FMFCC-A This project is the description of FMFCC-A (audio track of FMFCC) dataset and Challenge resluts. The FMFCC-A dataset is shared through BaiduCl

18 Dec 24, 2022