AtlasNet [Project Page] [Paper] [Talk]
AtlasNet: A Papier-Mâché Approach to Learning 3D Surface Generation
Thibault Groueix, Matthew Fisher, Vladimir G. Kim , Bryan C. Russell, Mathieu Aubry
In CVPR, 2018.
This implementation uses Python 3.6, Pytorch, Pymesh, Cuda 10.1.
# Copy/Paste the snippet in a terminal
git clone --recurse-submodules https://github.com/ThibaultGROUEIX/AtlasNet.git
cd AtlasNet
#Dependencies
conda create -n atlasnet python=3.6 --yes
conda activate atlasnet
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch --yes
pip install --user --requirement requirements.txt # pip dependencies
# Copy/Paste the snippet in a terminal
python auxiliary/ChamferDistancePytorch/chamfer3D/setup.py install #MIT
cd auxiliary
git clone https://github.com/ThibaultGROUEIX/metro_sources.git
cd metro_sources; python setup.py --build # build metro distance #GPL3
cd ../..
- Demo :
python train.py --demo
- Training :
python train.py --shapenet13
Monitor on http://localhost:8890/ -
Latest Refacto 12-2019
- [x] Factorize Single View Reconstruction and autoencoder in same class
- [x] Factorise Square and Sphere template in same class
- [x] Add latent vector as bias after first layer(30% speedup)
- [x] Remove last th in decoder
- [x] Make large .pth tensor with all pointclouds in cache(drop the nasty Chunk_reader)
- [x] Make-it multi-gpu
- [x] Add netvision visualization of the results
- [x] Rewrite main script object-oriented
- [x] Check that everything works in latest pytorch version
- [x] Add more layer by default and flag for the number of layers and hidden neurons
- [x] Add a flag to generate a mesh directly
- [x] Add a python setup install
- [x] Make sure GPU are used at 100%
- [x] Add f-score in Chamfer + report f-score
- [x] Get rid of shapenet_v2 data and use v1!
- [x] Fix path issues no more sys.path.append
- [x] Preprocess shapenet 55 and add it in dataloader
- [x] Make minimal dependencies
Method | Chamfer (*1) | Fscore (*2) | Metro (*3) | Total Train time (min) |
---|---|---|---|---|
Autoencoder 25 Squares | 1.35 | 82.3% | 6.82 | 731 |
Autoencoder 1 Sphere | 1.35 | 83.3% | 6.94 | 548 |
SingleView 25 Squares | 3.78 | 63.1% | 8.94 | 1422 |
SingleView 1 Sphere | 3.76 | 64.4% | 9.01 | 1297 |
- (*1) x1000. Computed between 2500 ground truth points and 2500 reconstructed points.
- (*2) The threshold is 0.001
- (*3) x100. Metro is ran on unormalized point clouds (which explains a difference with the paper's numbers)
- Learning Elementary Structures
- 3D-CODED
- Cycle Consistent Deformations
- Atlasnet code V2.2 (more linear, script like, may be easier to understand at first)
@inproceedings{groueix2018,
title={{AtlasNet: A Papier-M\^ach\'e Approach to Learning 3D Surface Generation}},
author={Groueix, Thibault and Fisher, Matthew and Kim, Vladimir G. and Russell, Bryan and Aubry, Mathieu},
booktitle={Proceedings IEEE Conf. on Computer Vision and Pattern Recognition (CVPR)},
year={2018}
}