Skip to content
Auto-encoding & Generating 3D Point-Clouds.
Branch: master
Clone or download
Latest commit e982763 Aug 15, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc/images no message Dec 6, 2017
external mdb Dec 23, 2017
notebooks minor removal Aug 15, 2018
src updating with GAN-training notebooks Aug 14, 2018
.gitignore mdb Dec 23, 2017
.gitmodules mdb Dec 23, 2017
LICENSE.md mdb Nov 27, 2017
README.md README Aug 15, 2018
__init__.py mdb Nov 27, 2017
download_data.sh adding evaluation metrics Mar 18, 2018

README.md

Learning Representations and Generative Models For 3D Point Clouds

Created by Panos Achlioptas, Olga Diamanti, Ioannis Mitliagkas, Leonidas J. Guibas.

representative

Introduction

This work is based on our arXiv tech report. We proposed a novel deep net architecture for auto-encoding point clouds. The learned representations were amenable to semantic part editting, shape analogies, linear classification and shape interpolations.

Citation

If you find our work useful in your research, please consider citing:

@article{achlioptas2017latent_pc,
  title={Learning Representations and Generative Models For 3D Point Clouds},
  author={Achlioptas, Panos and Diamanti, Olga and Mitliagkas, Ioannis and Guibas, Leonidas J},
  journal={arXiv preprint arXiv:1707.02392},
  year={2017}
}

Dependencies

Requirements:

Our code has been tested with Python 2.7, TensorFlow 1.3.0, TFLearn 0.3.2, CUDA 8.0 and cuDNN 6.0 on Ubuntu 14.04.

Installation

Download the source code from the git repository:

git clone https://github.com/optas/latent_3d_points

To be able to train your own model you need first to compile the EMD/Chamfer losses. In latent_3d_points/external/structural_losses we have included the cuda implementations of Fan et. al.

cd latent_3d_points/external

with your editor modify the first three lines of the makefile to point to 
your nvcc, cudalib and tensorflow library.

make

Data Set

We provide ~57K point-clouds, each sampled from a mesh model of ShapeNetCore with (area) uniform sampling. To download them (1.4GB):

cd latent_3d_points/
./download_data.sh

The point-clouds will be stored in latent_3d_points/data/shape_net_core_uniform_samples_2048

Use the function snc_category_to_synth_id, defined in src/in_out/, to map a class name such as "chair" to its synthetic_id: "03001627". Point-clouds of models of the same class are stored under a commonly named folder.

Usage

To train a point-cloud AE look at:

latent_3d_points/notebooks/train_single_class_ae.ipynb

To train a latent-GAN based on a pre-trained AE look at:

latent_3d_points/notebooks/train_latent_gan.ipynb

To train a raw-GAN:

latent_3d_points/notebooks/train_raw_gan.ipynb    

To use the evaluation metrics (MMD, Coverage, JSD) between two point-cloud sets look at:

latent_3d_points/notebooks/compute_evaluation_metrics.ipynb

License

This project is licensed under the terms of the MIT license (see LICENSE.md for details).

You can’t perform that action at this time.