/pointnet2-pytorch

A clean PointNet++ segmentation model implementation. Support batch of samples with different number of points.

Primary LanguagePython

Pointnet++ Part segmentation

This repo is implementation for PointNet++ part segmentation model based on PyTorch and pytorch_geometric.

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
PointNet++(this repo) 82.5 76.1 87.8 77.5 89.89 73.7 95.3 70.5

Note,

  • mcIOU: mean per-class pIoU
  • The model uses single-scale grouping with raw points as input.
  • All experiments are trained with same default configration: npoints=2500, batchsize=8, num_epoches=30. The recorded accuracy above is the test accuracy of the final epoch.

Requirements

Usage

Training

python main.py

Show segmentation result

python vis/show_seg_res.py

Sample segmentation result

segmentation_result

Links