Created by Panos Achlioptas, Olga Diamanti, Ioannis Mitliagkas, Leonidas J. Guibas.
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.
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}
}
Requirements:
- Python 2.7+ with Numpy, Scipy and Matplotlib
- Tensorflow (version 1.0+)
- TFLearn
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.
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
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.
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
This project is licensed under the terms of the MIT license (see LICENSE.md for details).