ThibaultGROUEIX / Atlasnet
Licence: mit
This repository contains the source codes for the paper "AtlasNet: A Papier-Mâché Approach to Learning 3D Surface Generation ". The network is able to synthesize a mesh (point cloud + connectivity) from a low-resolution point cloud, or from an image.
Stars: ✭ 450
Programming Languages
python
139335 projects - #7 most used programming language
Projects that are alternatives of or similar to Atlasnet
3D-Engine-OpenGL-4
3D Graphics Engine For Games | C++ OpenGL 4.1
Stars: ✭ 19 (-95.78%)
Mutual labels: geometry-processing, 3d
Pymesh
Geometry Processing Library for Python
Stars: ✭ 1,135 (+152.22%)
Mutual labels: 3d, geometry-processing
3dmatch Toolbox
3DMatch - a 3D ConvNet-based local geometric descriptor for aligning 3D meshes and point clouds.
Stars: ✭ 571 (+26.89%)
Mutual labels: 3d, geometry-processing
Splatnet
SPLATNet: Sparse Lattice Networks for Point Cloud Processing (CVPR2018)
Stars: ✭ 259 (-42.44%)
Mutual labels: 3d, cvpr2018
Tfoptflow
Optical Flow Prediction with TensorFlow. Implements "PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume," by Deqing Sun et al. (CVPR 2018)
Stars: ✭ 415 (-7.78%)
Mutual labels: cvpr2018
Tin Terrain
A command-line tool for converting heightmaps in GeoTIFF format into tiled optimized meshes.
Stars: ✭ 392 (-12.89%)
Mutual labels: 3d
Directxmesh
DirectXMesh geometry processing library
Stars: ✭ 447 (-0.67%)
Mutual labels: geometry-processing
Vue Gl
Vue.js components rendering 3D WebGL graphics reactively with three.js
Stars: ✭ 434 (-3.56%)
Mutual labels: 3d
Cpp 3d Game Tutorial Series
C++ 3D Game Tutorial Series is a YouTube tutorial series, whose purpose is to help all those who want to take their first steps in the game development from scratch.
Stars: ✭ 400 (-11.11%)
Mutual labels: 3d
Pytorch Dense Correspondence
Code for "Dense Object Nets: Learning Dense Visual Object Descriptors By and For Robotic Manipulation"
Stars: ✭ 445 (-1.11%)
Mutual labels: 3d
Recent Stars 2021
🔥🔥🔥SLAM, Pose/Object tracking, Depth/Disparity/Flow Estimation, 3D-graphic, etc. related papers and code
Stars: ✭ 393 (-12.67%)
Mutual labels: 3d
Aterriblekingdom
Scripting the Timeline for games in creative ways. Includes a small RTS game build on the 'A Mighty Kingdom' assets
Stars: ✭ 428 (-4.89%)
Mutual labels: 3d
Etengine
Realtime 3D Game-Engine with a focus on space sim. Written in C++ 14
Stars: ✭ 408 (-9.33%)
Mutual labels: 3d
Cinolib
A generic programming header only C++ library for processing polygonal and polyhedral meshes
Stars: ✭ 407 (-9.56%)
Mutual labels: geometry-processing
[Project Page] [Paper] [Talk]
AtlasNetAtlasNet: 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.
🚀 New branch : AtlasNet + Shape Reconstruction by Learning Differentiable Surface Representations
Install
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
Optional : Compile Chamfer (MIT) + Metro Distance (GPL3 Licence)
# 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 ../..
Usage
-
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
Quantitative Results
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)
Related projects
- Learning Elementary Structures
- 3D-CODED
- Cycle Consistent Deformations
- Atlasnet code V2.2 (more linear, script like, may be easier to understand at first)
Citing this work
@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}
}
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].