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)
Soft actor-critic is a deep reinforcement learning framework for training maximum entropy policies in continuous domains.

This repository is no longer maintained. Please use our new Softlearning package instead. Soft Actor-Critic Soft actor-critic is a deep reinforcement

Tuomas Haarnoja 752 Jan 07, 2023
Open-World Entity Segmentation

Open-World Entity Segmentation Project Website Lu Qi*, Jason Kuen*, Yi Wang, Jiuxiang Gu, Hengshuang Zhao, Zhe Lin, Philip Torr, Jiaya Jia This projec

DV Lab 410 Jan 03, 2023
CoTr: Efficiently Bridging CNN and Transformer for 3D Medical Image Segmentation

CoTr: Efficient 3D Medical Image Segmentation by bridging CNN and Transformer This is the official pytorch implementation of the CoTr: Paper: CoTr: Ef

218 Dec 25, 2022
This is the offical website for paper ''Category-consistent deep network learning for accurate vehicle logo recognition''

The Pytorch Implementation of Category-consistent deep network learning for accurate vehicle logo recognition This is the offical website for paper ''

Wanglong Lu 28 Oct 29, 2022
Benchmark tools for Compressive LiDAR-to-map registration

Benchmark tools for Compressive LiDAR-to-map registration This repo contains the released version of code and datasets used for our IROS 2021 paper: "

Allie 9 Nov 24, 2022
Official PyTorch implementation of the paper Image-Based CLIP-Guided Essence Transfer.

TargetCLIP- official pytorch implementation of the paper Image-Based CLIP-Guided Essence Transfer This repository finds a global direction in StyleGAN

Hila Chefer 221 Dec 13, 2022
DilatedNet in Keras for image segmentation

Keras implementation of DilatedNet for semantic segmentation A native Keras implementation of semantic segmentation according to Multi-Scale Context A

303 Mar 15, 2022
Convnet transfer - Code for paper How transferable are features in deep neural networks?

How transferable are features in deep neural networks? This repository contains source code necessary to reproduce the results presented in the follow

Jason Yosinski 143 Sep 13, 2022
This is a repository for a semantic segmentation inference API using the OpenVINO toolkit

BMW-IntelOpenVINO-Segmentation-Inference-API This is a repository for a semantic segmentation inference API using the OpenVINO toolkit. It's supported

BMW TechOffice MUNICH 34 Nov 24, 2022
A toolkit for developing and comparing reinforcement learning algorithms.

Status: Maintenance (expect bug fixes and minor updates) OpenAI Gym OpenAI Gym is a toolkit for developing and comparing reinforcement learning algori

OpenAI 29.6k Jan 08, 2023
The reference baseline of final exam for XMU machine learning course

Mini-NICO Baseline The baseline is a reference method for the final exam of machine learning course. Requirements Installation we use /python3.7 /torc

JoaquinChou 3 Dec 29, 2021
Joint parameterization and fitting of stroke clusters

StrokeStrip: Joint Parameterization and Fitting of Stroke Clusters Dave Pagurek van Mossel1, Chenxi Liu1, Nicholas Vining1,2, Mikhail Bessmeltsev3, Al

Dave Pagurek 44 Dec 01, 2022
Simple node deletion tool for onnx.

snd4onnx Simple node deletion tool for onnx. I only test very miscellaneous and limited patterns as a hobby. There are probably a large number of bugs

Katsuya Hyodo 6 May 15, 2022
Cascaded Pyramid Network (CPN) based on Keras (Tensorflow backend)

ML2 Takehome Project Reimplementing the paper: Cascaded Pyramid Network for Multi-Person Pose Estimation Dataset The model uses the COCO dataset which

Vo Van Tu 1 Nov 22, 2021
Your interactive network visualizing dashboard

Your interactive network visualizing dashboard Documentation: Here What is Jaal Jaal is a python based interactive network visualizing tool built usin

Mohit 177 Jan 04, 2023
Styled text-to-drawing synthesis method. Featured at the 2021 NeurIPS Workshop on Machine Learning for Creativity and Design

Styled text-to-drawing synthesis method. Featured at the 2021 NeurIPS Workshop on Machine Learning for Creativity and Design

Peter Schaldenbrand 247 Dec 23, 2022
Torch-based tool for quantizing high-dimensional vectors using additive codebooks

Trainable multi-codebook quantization This repository implements a utility for use with PyTorch, and ideally GPUs, for training an efficient quantizer

Daniel Povey 41 Jan 07, 2023
MIMO-UNet - Official Pytorch Implementation

MIMO-UNet - Official Pytorch Implementation This repository provides the official PyTorch implementation of the following paper: Rethinking Coarse-to-

Sungjin Cho 248 Jan 02, 2023
Jupyter Dock is a set of Jupyter Notebooks for performing molecular docking protocols interactively, as well as visualizing, converting file formats and analyzing the results.

Molecular Docking integrated in Jupyter Notebooks Description | Citation | Installation | Examples | Limitations | License Table of content Descriptio

Angel J. Ruiz Moreno 173 Dec 25, 2022
Pytorch implementation for "Density-aware Chamfer Distance as a Comprehensive Metric for Point Cloud Completion" (NeurIPS 2021)

Density-aware Chamfer Distance This repository contains the official PyTorch implementation of our paper: Density-aware Chamfer Distance as a Comprehe

Tong WU 93 Dec 15, 2022