Coder Social home page Coder Social logo

parkerewen5441 / atlasnet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thibaultgroueix/atlasnet

0.0 1.0 0.0 4.86 MB

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.

Home Page: http://imagine.enpc.fr/~groueixt/atlasnet/

License: MIT License

Python 87.91% Shell 0.56% Cuda 9.77% C++ 1.76%

atlasnet's Introduction

🚀 Major upgrade 🚀 : Migration to Pytorch v1 and Python 3.7. The code is now much more generic and easy to install.

AtlasNet Using Tangent Convolution Encoder

This repository contains a modified version of the AtlasNet network (AtlasNet: A Papier-Mâché Approach to Learning 3D Surface Generation ) which uses a portion of the Tangent Convolutions (Tangent Convolutions for Dense Prediction in 3D)network as an encoder.

Citing this work

If you find this work useful in your research, please cite all papers:

@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}
        }
@article{Tat2018,
  author    = {Maxim Tatarchenko* and Jaesik Park* and Vladlen Koltun and Qian-Yi Zhou.},
  title     = {Tangent Convolutions for Dense Prediction in {3D}},
  journal   = {CVPR},
  year      = {2018},
}
@article{Zhou2018,
  author    = {Qian-Yi Zhou and Jaesik Park and Vladlen Koltun},
  title     = {{Open3D}: {A} Modern Library for {3D} Data Processing},
  journal   = {arXiv:1801.09847},
  year      = {2018},
}

Install

Clone the repo and install dependencies

This implementation uses Pytorch.

## Download the repository
git clone https://github.com/ThibaultGROUEIX/AtlasNet.git
cd AtlasNet
## Create python env with relevant packages
conda create --name pytorch-atlasnet python=3.7
source activate pytorch-atlasnet
pip install pandas visdom
# Install PyTorch as directed:
# https://pytorch.org/get-started/locally/?source=Google&medium=PaidSearch&utm_campaign=1712418477&utm_adgroup=66821158477&utm_keyword=%2Binstalling%20%2Bpytorch&utm_offering=AI&utm_Product=PYTorch&gclid=Cj0KCQjw5MLrBRClARIsAPG0WGwp-txrGdm03ajH11PmA_yzO-3KdxmFpal62fq5xajWiM6RETcL0l4aAg3NEALw_wcB
# you're done ! Congrats :)

Training

Data

cd data; ./download_data.sh; cd ..

We used the ShapeNet dataset for 3D models, and rendered views from 3D-R2N2:

When using the provided data make sure to respect the shapenet license.

The trained models and some corresponding results are also available online :

In case you need the results of ICP on PointSetGen output :

Build chamfer distance (optional)

Using the custom chamfer distance will divide memory usage by 2 and will be a bit faster. Use it if you're short on memory especially when training models for Single View reconstruction.

source activate pytorch-atlasnet
cd ./extension
python setup.py install

Start training

  • First launch a visdom server :
python -m visdom.server -p 8888
  • Launch the training. Check out all the options in ./training/train_AE_AtlasNet.py .
python ./training/train_TangConv_AtlasNet.py --env 'AE_AtlasNet' --nb_primitives 25

visdom

  • Compute some results with your trained model

    python ./inference/run_AE_AtlasNet.py

    The trained models accessible here have the following performances, slightly better than the one reported in the paper. The number reported is the chamfer distance.

Visualisation

The generated 3D models' surfaces are not oriented. As a consequence, some area will appear dark if you directly visualize the results in Meshlab. You have to incorporate your own fragment shader in Meshlab, that flip the normals in they are hit by a ray from the wrong side. An exemple is given for the Phong BRDF.

sudo mv /usr/share/meshlab/shaders/phong.frag /usr/share/meshlab/shaders/phong.frag.bak
sudo cp auxiliary/phong.frag /usr/share/meshlab/shaders/phong.frag #restart Meshlab

Dependencies

Open3D from source PyTorch

Run Precompute Script

Change config/config.json file with input/output directories to fit user. Run utils/precompute.py

Train Network

atlasnet's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.