Giter Site home page Giter Site logo

pointnet-autoencoder's Introduction

pointnet-autoencoder

prediction example

Here we present code to build an autoencoder for point clouds, with PointNet encoder and various kinds of decoders. We train and test our autoencoder on the ShapeNetPart dataset. This is a side project I played with recently -- you are welcomed to modify it for your own projects or research. Let me know if you discover something interesting!

LICENSE

This repository is under the MIT license. See the LICENSE file for detail.

Installation

We need TensorFlow (version>=1.4).

For point cloud reconstruction loss function, we need to compile two custum TF operators under tf_ops/nn_distance (Chamfer's distance) and tf_ops/approxmatch (earth mover's distance). Check the tf_compile_*.sh script under these two folders, modify the TensorFlow and CUDA path accordingly before you run the shell script to compile the operators. Check this PAPER for an introduction for these two point cloud losses.

For a visualization helper, go to utils/ and run sh compile_render_balls_so.sh -- run python show3d_balls.py to test if you have successfully compiled it.

Download Data

ShapeNetPart dataset is available HERE (635MB). Simply download the zip file and move the shapenetcore_partanno_segmentation_benchmark_v0 folder to data.

To visualize the dataset, run (type q to go to the next shape, see show3d_balls.py for more detailed hot keys):

python part_dataset.py

Train an Autoencoder

To train the most basic autoencoder (fully connected layer decoder with Chamfer's distance loss) on chair models with aligned poses, simply run the following command:

python train.py --model model --log_dir log_chair_norotation --num_point 2048 --category Chair --no_rotation

You can check more options for training by:

python train.py -h

Visualize Reconstruction on Test Set

To test and visualize results of the trained autoencoder above, simply run:

python test.py --model model --model_path log_chair_norotation/model.ckpt --category Chair

You can check more options for testing by:

python test.py -h

pointnet-autoencoder's People

Contributors

charlesq34 avatar

Watchers

 avatar  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.