Home

Awesome

PointNet.pytorch

This repo is implementation for PointNet(https://arxiv.org/abs/1612.00593) in pytorch. The model is in pointnet/model.py.

It is tested with pytorch-1.0.

Download data and running

git clone https://github.com/fxia22/pointnet.pytorch
cd pointnet.pytorch
pip install -e .

Download and build visualization tool

cd scripts
bash build.sh #build C++ code for visualization
bash download.sh #download dataset

Training

cd utils
python train_classification.py --dataset <dataset path> --nepoch=<number epochs> --dataset_type <modelnet40 | shapenet>
python train_segmentation.py --dataset <dataset path> --nepoch=<number epochs> 

Use --feature_transform to use feature transform.

Performance

Classification performance

On ModelNet40:

Overall Acc
Original implementation89.2
this implementation(w/o feature transform)86.4
this implementation(w/ feature transform)87.0

On A subset of shapenet

Overall Acc
Original implementationN/A
this implementation(w/o feature transform)98.1
this implementation(w/ feature transform)97.7

Segmentation performance

Segmentation on A subset of shapenet.

Class(mIOU)AirplaneBagCapCarChairEarphoneGuitarKnifeLampLaptopMotorbikeMugPistolRocketSkateboardTable
Original implementation83.478.782.574.989.673.091.585.980.895.365.293.081.257.972.880.6
this implementation(w/o feature transform)73.571.364.361.187.269.586.181.677.492.741.386.578.241.261.081.1
this implementation(w/ feature transform)87.681.0

Note that this implementation trains each class separately, so classes with fewer data will have slightly lower performance than reference implementation.

Sample segmentation result: seg

Links