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)
A general python framework for single object tracking in LiDAR point clouds, based on PyTorch Lightning.

Open3DSOT A general python framework for single object tracking in LiDAR point clouds, based on PyTorch Lightning. The official code release of BAT an

Kangel Zenn 172 Dec 23, 2022
Multi Agent Reinforcement Learning for ROS in 2D Simulation Environments

IROS21 information To test the code and reproduce the experiments, follow the installation steps in Installation.md. Afterwards, follow the steps in E

11 Oct 29, 2022
Hcaptcha-challenger - Gracefully face hCaptcha challenge with Yolov5(ONNX) embedded solution

hCaptcha Challenger 🚀 Gracefully face hCaptcha challenge with Yolov5(ONNX) embe

593 Jan 03, 2023
Official implementation of Deep Burst Super-Resolution

Deep-Burst-SR Official implementation of Deep Burst Super-Resolution Publication: Deep Burst Super-Resolution. Goutam Bhat, Martin Danelljan, Luc Van

Goutam Bhat 113 Dec 19, 2022
Code I use to automatically update my videos' metadata on YouTube

mCodingYouTube This repository contains the code I use to automatically update my videos' metadata on YouTube, including: titles, descriptions, tags,

James Murphy 19 Oct 07, 2022
Rotation Robust Descriptors

RoRD Rotation-Robust Descriptors and Orthographic Views for Local Feature Matching Project Page | Paper link Evaluation and Datasets MMA : Training on

Udit Singh Parihar 25 Nov 15, 2022
This is a repository of our model for weakly-supervised video dense anticipation.

Introduction This is a repository of our model for weakly-supervised video dense anticipation. More results on GTEA, Epic-Kitchens etc. will come soon

2 Apr 09, 2022
Pca-on-genotypes - Mini bioinformatics project - PCA on genotypes

Mini bioinformatics project: PCA on genotypes This repo contains the code from t

Maria Nattestad 8 Dec 04, 2022
Learning to Stylize Novel Views

Learning to Stylize Novel Views [Project] [Paper] Contact: Hsin-Ping Huang ([ema

34 Nov 27, 2022
Türkiye Canlı Mobese Görüntülerinde Profesyonel Nesne Takip Sistemi

Türkiye Mobese Görüntü Takip Türkiye Mobese görüntülerinde OPENCV ve Yolo ile takip sistemi Multiple Object Tracking System in Turkish Mobese with OPE

15 Dec 22, 2022
Lipstick ain't enough: Beyond Color-Matching for In-the-Wild Makeup Transfer (CVPR 2021)

Table of Content Introduction Datasets Getting Started Requirements Usage Example Training & Evaluation CPM: Color-Pattern Makeup Transfer CPM is a ho

VinAI Research 248 Dec 13, 2022
Unsupervised Attributed Multiplex Network Embedding (AAAI 2020)

Unsupervised Attributed Multiplex Network Embedding (DMGI) Overview Nodes in a multiplex network are connected by multiple types of relations. However

Chanyoung Park 114 Dec 06, 2022
Label Mask for Multi-label Classification

LM-MLC 一种基于完型填空的多标签分类算法 1 前言 本文主要介绍本人在全球人工智能技术创新大赛【赛道一】设计的一种基于完型填空(模板)的多标签分类算法:LM-MLC,该算法拟合能力很强能感知标签关联性,在多个数据集上测试表明该算法与主流算法无显著性差异,在该比赛数据集上的dev效果很好,但是由

52 Nov 20, 2022
Implementation of the Point Transformer layer, in Pytorch

Point Transformer - Pytorch Implementation of the Point Transformer self-attention layer, in Pytorch. The simple circuit above seemed to have allowed

Phil Wang 501 Jan 03, 2023
Spectralformer: Rethinking hyperspectral image classification with transformers

Spectralformer: Rethinking hyperspectral image classification with transformers Danfeng Hong, Zhu Han, Jing Yao, Lianru Gao, Bing Zhang, Antonio Plaza

Danfeng Hong 102 Dec 29, 2022
Benchmark for Answering Existential First Order Queries with Single Free Variable

EFO-1-QA Benchmark for First Order Query Estimation on Knowledge Graphs This repository contains an entire pipeline for the EFO-1-QA benchmark. EFO-1

HKUST-KnowComp 14 Oct 24, 2022
Official Implementation of CVPR 2022 paper: "Mimicking the Oracle: An Initial Phase Decorrelation Approach for Class Incremental Learning"

(CVPR 2022) Mimicking the Oracle: An Initial Phase Decorrelation Approach for Class Incremental Learning ArXiv This repo contains Official Implementat

Yujun Shi 24 Nov 01, 2022
Multiview 3D object detection on MultiviewC dataset through moft3d.

Multiview Orthographic Feature Transformation for 3D Object Detection Multiview 3D object detection on MultiviewC dataset through moft3d. Introduction

Jiahao Ma 20 Dec 21, 2022
the official implementation of the paper "Isometric Multi-Shape Matching" (CVPR 2021)

Isometric Multi-Shape Matching (IsoMuSh) Paper-CVF | Paper-arXiv | Video | Code Citation If you find our work useful in your research, please consider

Maolin Gao 9 Jul 17, 2022
Meta-meta-learning with evolution and plasticity

Evolve plastic networks to be able to automatically acquire novel cognitive (meta-learning) tasks

5 Jun 28, 2022