
# Conflicts: # predict/predict.py
Pointnet++ Part segmentation
This repo is implementation for PointNet++ part segmentation model based on PyTorch and pytorch_geometric. It can achieve comparable or better performance even compared with PointCNN on Shapenet dataset.
The model has been mergered into pytorch_geometric as a point cloud segmentation example, you can try it.
Performance
Segmentation on A subset of shapenet.
Method | mcIoU | Airplane | Bag | Cap | Car | Chair | Earphone | Guitar | Knife | Lamp | Laptop | Motorbike | Mug | Pistol | Rocket | Skateboard | Table |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PointNet++ | 81.9 | 82.4 | 79.0 | 87.7 | 77.3 | 90.8 | 71.8 | 91.0 | 85.9 | 83.7 | 95.3 | 71.6 | 94.1 | 81.3 | 58.7 | 76.4 | 82.6 |
PointCNN | 84.6 | 84.11 | 86.47 | 86.04 | 80.83 | 90.62 | 79.70 | 92.32 | 88.44 | 85.31 | 96.11 | 77.20 | 95.28 | 84.21 | 64.23 | 80.00 | 82.99 |
PointNet++(this repo) | 84.68 | 85.42 | 85.92 | 88.39 | 79.73 | 91.86 | 75.37 | 92.95 | 88.56 | 85.72 | 97.00 | 72.94 | 96.88 | 84.52 | 64.38 | 79.39 | 85.91 |
mcIOU: mean per-class pIoU
Requirements
- PyTorch
- pytorch_geometric
- Open3D(optional, for visualization of segmentation result)
Quickly install pytorch_geometric and Open3D with Anaconda
$ pip install --verbose --no-cache-dir torch-scatter
$ pip install --verbose --no-cache-dir torch-sparse
$ pip install --verbose --no-cache-dir torch-cluster
$ pip install --verbose --no-cache-dir torch-spline-conv (optional)
$ pip install torch-geometric
# optional
conda install -c open3d-admin open3d
Usage
Training
python main.py
Show segmentation result
python vis/show_seg_res.py
Sample segmentation result
Links
- pointnet.pytorch by fxia22. This repo's tranining code is heavily borrowed from fxia22's repo.
- Official PointNet and PointNet++ tensorflow implementations
- PointNet++ classification example of pytorch_geometric library
Description
Languages
Python
100%