|
1 | 1 | # PointNet.pytorch |
2 | | -This repo is implementation for PointNet(https://arxiv.org/abs/1612.00593) in pytorch. The model is in `pointnet.py`. |
| 2 | +This repo is implementation for PointNet(https://arxiv.org/abs/1612.00593) in pytorch. The model is in `pointnet/model.py`. |
3 | 3 |
|
| 4 | +It is tested with pytorch-1.0. |
4 | 5 |
|
5 | 6 | # Download data and running |
6 | 7 |
|
7 | 8 | ``` |
| 9 | +git clone https://github.com/fxia22/pointnet.pytorch |
| 10 | +cd pointnet.pytorch |
| 11 | +pip install -e . |
| 12 | +``` |
| 13 | + |
| 14 | +Download and build visualization tool |
| 15 | +``` |
| 16 | +cd script |
8 | 17 | bash build.sh #build C++ code for visualization |
9 | 18 | bash download.sh #download dataset |
10 | | -python train_classification.py #train 3D model classification |
11 | | -python python train_segmentation.py # train 3D model segmentaion |
| 19 | +``` |
12 | 20 |
|
13 | | -python show_seg.py --model seg/seg_model_20.pth # show segmentation results |
| 21 | +Training |
14 | 22 | ``` |
| 23 | +cd utils |
| 24 | +python train_classification.py --dataset <dataset path> --nepoch=<number epochs> --dataset_type <modelnet40 | shapenet> |
| 25 | +python train_segmentation.py --dataset <dataset path> --nepoch=<number epochs> |
| 26 | +``` |
| 27 | + |
| 28 | +Use `--feature_transform` to use feature transform. |
15 | 29 |
|
16 | 30 | # Performance |
17 | | -Without heavy tuning, PointNet can achieve 80-90% performance in classification and segmentaion on this [dataset](http://web.stanford.edu/~ericyi/project_page/part_annotation/index.html). |
| 31 | + |
| 32 | +## Classification performance |
| 33 | + |
| 34 | +On ModelNet40: |
| 35 | + |
| 36 | +| | Overall Acc | |
| 37 | +| :---: | :---: | |
| 38 | +| Original implementation | 89.2 | |
| 39 | +| this implementation(w/o feature transform) | 86.4 | |
| 40 | +| this implementation(w/ feature transform) | 86.8 | |
| 41 | + |
| 42 | +On [A subset of shapenet](http://web.stanford.edu/~ericyi/project_page/part_annotation/index.html) |
| 43 | + |
| 44 | +| | Overall Acc | |
| 45 | +| :---: | :---: | |
| 46 | +| Original implementation | N/A | |
| 47 | +| this implementation(w/o feature transform) | 98.1 | |
| 48 | +| this implementation(w/ feature transform) | 96.8 | |
| 49 | + |
| 50 | +## Segmentation performance |
| 51 | + |
| 52 | +Segmentation on [A subset of shapenet](http://web.stanford.edu/~ericyi/project_page/part_annotation/index.html). |
| 53 | + |
| 54 | +| Class(mIOU) | Airplane | Bag| Cap|Car|Chair|Earphone|Guitar|Knife|Lamp|Laptop|Motorbike|Mug|Pistol|Rocket|Skateboard|Table |
| 55 | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | |
| 56 | +| Original implementation | 83.4 | 78.7 | 82.5| 74.9 |89.6| 73.0| 91.5| 85.9| 80.8| 95.3| 65.2| 93.0| 81.2| 57.9| 72.8| 80.6| |
| 57 | +| this implementation(w/o feature transform) | 73.5 | 71.3 | 64.3 | 61.1 | 87.2 | 69.5 | 86.1|81.6| 77.4|92.7|41.3|86.5|78.2|41.2|61.0|81.1| |
| 58 | + |
| 59 | +Note that this implementation trains each class separately, so classes with fewer data will have slightly lower performance than reference implementation. |
18 | 60 |
|
19 | 61 | Sample segmentation result: |
20 | 62 |  |
21 | 63 |
|
22 | | - |
23 | 64 | # Links |
24 | 65 |
|
25 | 66 | - [Project Page](http://stanford.edu/~rqi/pointnet/) |
|
0 commit comments