This repository is to implement PointNet using PyTorch DL library, which is a deep learning network architecture proposed in 2016 by Stanford researchers and is the first neural network to handle directly 3D point clouds.
- PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
- Spatial Transformer Networks
- Medium Article on PointNet
git clone https://github.com/gchoi/PointNet.git
cd PointNet
pip -install -r requirements.txt
You can download the ModelNet dataset from here.
This code has been tested only for ModelNet-10 dataset.
Or you can download all-in-one dataset from this link.
Once you've finished downloading the dataset, please set the folder structure as follows.
- PointNet root path
- Data
- ModelNet10
- ModelNet40
- Data
Of course, you can choose either one dataset of them.
This repository provide four main Python scripts:
trainer.py
which performs PointNet training.batch-data-tester.py
which performs testing for the trained PointNet model from thetest
folder.single-data-tester.py
which performs testing for a single point cloud data.sample-data-visualizer.py
which performs the 3D visualizations of the sample point cloud data.
All configurations are defined in Config/configs.yaml
.
After training has been done, you should be able to see the resultant folders:
runs
: Created by Tensorboard and can open it using the command line,$ tensorboard --logdir runs
Outputs
: Folders created followed by datetime of training started, which haveFigures
andModels
.Figures
: Figures of confusion matrix as results of testing the trained network.Models
: Trained PointNet model files which hasbest-model.pth
andepoch-{####}.pth
.
My code is released under MIT License (see LICENSE file for details).