All Projects → ajbrock → Generative And Discriminative Voxel Modeling

ajbrock / Generative And Discriminative Voxel Modeling

Licence: mit
Voxel-Based Variational Autoencoders, VAE GUI, and Convnets for Classification

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Generative And Discriminative Voxel Modeling

Autopilot Rs
A simple, cross-platform GUI automation module for Rust.
Stars: ✭ 168 (-6.15%)
Mutual labels:  gui
Flameshot
Powerful yet simple to use screenshot software 🖥️ 📸
Stars: ✭ 15,429 (+8519.55%)
Mutual labels:  gui
Xerror
fully automated pentesting tool
Stars: ✭ 173 (-3.35%)
Mutual labels:  gui
Gooi
LÖVE GUI Library
Stars: ✭ 168 (-6.15%)
Mutual labels:  gui
Amplesdk
Ample SDK - JavaScript UI Framework
Stars: ✭ 169 (-5.59%)
Mutual labels:  gui
Go Sciter
Golang bindings of Sciter: the Embeddable HTML/CSS/script engine for modern UI development
Stars: ✭ 2,280 (+1173.74%)
Mutual labels:  gui
Plutonium
An easy-to-use UI framework for Nintendo Switch homebrew
Stars: ✭ 166 (-7.26%)
Mutual labels:  gui
You Dont Need Gui
Stop relying on GUI; CLI **ROCKS**
Stars: ✭ 4,766 (+2562.57%)
Mutual labels:  gui
Cloudexplorer
Cloud Explorer
Stars: ✭ 170 (-5.03%)
Mutual labels:  gui
Goluwa
a game framework written in luajit
Stars: ✭ 173 (-3.35%)
Mutual labels:  gui
Legui
Java OpenGL GUI library. Created for using with latest LWJGL (LWJGL 3).
Stars: ✭ 167 (-6.7%)
Mutual labels:  gui
Ugui Mvvm
Unity3D uGUI mvvm databinding via the standard IXChanged interfaces used in wpf (INotifyPropertyChanged, INotifyCollectionChanged, etc)
Stars: ✭ 169 (-5.59%)
Mutual labels:  gui
Gtk Fortran
A GTK / Fortran binding
Stars: ✭ 171 (-4.47%)
Mutual labels:  gui
Qui
【此项目作者为刘典武,不是我自己的原创项目,望周知。也请大家不要骚扰刘典武。】一个用Qt开发的用来生成QSS文件的小程序,附简单Demo,主程序本身也可以看作一个很好的Demo。
Stars: ✭ 168 (-6.15%)
Mutual labels:  gui
Dottorrent Gui
An advanced GUI torrent file creator with batch functionality, powered by PyQt and dottorrent
Stars: ✭ 175 (-2.23%)
Mutual labels:  gui
Glow
mpv Config File Generator for Windows
Stars: ✭ 167 (-6.7%)
Mutual labels:  gui
Awesome Python Applications
💿 Free software that works great, and also happens to be open-source Python.
Stars: ✭ 13,275 (+7316.2%)
Mutual labels:  gui
Awtk
AWTK = Toolkit AnyWhere(为嵌入式、手机和PC打造的通用GUI系统)
Stars: ✭ 2,328 (+1200.56%)
Mutual labels:  gui
Lifeboat
Docker Compose UI: Lifeboat is an easy way to launch projects with a graphical interface
Stars: ✭ 176 (-1.68%)
Mutual labels:  gui
Visbrain
A multi-purpose GPU-accelerated open-source suite for brain data visualization
Stars: ✭ 172 (-3.91%)
Mutual labels:  gui

Generative-and-Discriminative-Voxel-Modeling

Voxel-Based Variational Autoencoders, VAE GUI, and Convnets for Classification

GUI

This repository contains code for the paper "Generative and Discriminative Voxel Modeling with Convolutional Neural Networks," and the Voxel-Based Variational Autoencoders and Voxel-Based Deep Networks for Classification videos.

Installation

To run the VAE and GUI, you will need:

If you want to plot latent space mappings, you will need matplotlib.

To train and test classifier ConvNets, you will need:

Download the repository and add the main folder to your PYTHONPATH, or uncomment and modify the sys.path.insert lines in whatever script you want to run.

Preparing the data

I've included several .tar versions of Modelnet10, which can be used to train the VAE and run the GUI. If you wish to write more .tar files (say, of Modelnet40) for use with the VAE and GUI, download the dataset and then see voxnet.

For the Discriminative model, I've included a MATLAB script in utils to convert raw Modelnet .off files into MATLAB arrays, then a python script to convert the MATLAB arrays into either .npz files or hdf5 files (for use with fuel).

The _nr.tar files contain the unaugmented Modelnet10 train and test sets, while the other tar files have 12 copies of each model, rotated evenly about the vertical axis.

Running the GUI

I've included a pre-trained model (VAE.npz) trained on Modelnet10, which can be used to run the GUI:

python Generative/GUI.py Generative/VAE.py datasets/shapenet10_test_nr.tar Generative/VAE.npz

Training the VAE

If you wish to train a model, the VAE.py file contains the model configuration, and the train_VAE.py file contains the training code, which can be run like this:

python Generative/train_VAE.py Generative/VAE.py datasets/shapenet10_train.tar Generative/shapenet10_test.tar

By default, this code will save (and overwrite!) the weights to a .npz file with the same name as the config.py file (i.e. "VAE.py -> VAE.npz"), and will output a jsonl log of the training with metrics recorded after every chunk (a chunk being a set of minibatches loaded into shared memory). The binary reconstruction accuracy is evaluated on the test set after every N epochs (defined in the config file), and evaluates both false positives and false negatives.

A good model will obtain a very low false negative rate, while most any model can get near-perfect false positives (and therefore very high overall reconstruction accuracy).

Training a Classifier

The VRN.py file contains the model configuration and definitions for any custom layer types. The model can be trained with:

python Discriminative/train.py Discriminative/VRN.py datasets/modelnet40_rot_train.npz

Note that running the train function will start from scratch and overwrite any pre-trained model weights (.npz files with the same name as their corresponding config files). Use the --resume=True option to resume training from an earlier session or from one of the provided pre-trained models.

The first time you compile these functions may take a very long time, and may exceed the maximum recursion depth allowed by python.

Testing a Classifier

You can evaluate a classifier's performance on the ModelNet40 dataset, averaging predictions over 12 rotations, with:

python Discriminative/test.py Discriminative/VRN.py datasets/modelnet40_rot_test.npz

Evaluating an Ensemble

You can produce a simple ensemble by averaging multiple models' predictions on the test sets. I provide six pre-trained models for this purpose, along with .csv files containing their outputs on ModelNet40. Use the test_ensemble.py script to produce a .csv file with the model's predictions, and use the ensemble.m MATLAB script to combine and evaluate all the results.

Acknowledgments

This code was originally based on voxnet by D. Maturana.

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