By Haoxi Ran* , Jun Liu, Chengjie Wang ( * : corresponding contact)
We tested under the environment:
- python 3.7
- pytorch 1.6.0 / 1.8.0
- cuda 10.1 / 11.1
- gcc 7.2.0
- h5py
- sharedarray
- tensorboardx
For anaconda user, initialize the conda environment repsurf-seg by:
sh init.sh
S3DIS Area-5 (Data & Logs: Google Drive)
- Performance using the same settings:
Model | mIoU | mAcc | OA | #Params | Training Time | Code | Training Log | Test Log | Checkpoint |
---|---|---|---|---|---|---|---|---|---|
Point Transformer (our settings) |
70.37 (official: 70.4) | 77.02 (official: 76.5) | 90.80 (official: 90.8) | 7.767M | 19.91h | pointtransformer.py | google drive | google drive | google drive (30 MB) |
PointNet++ SSG (our settings) | 64.05 | 71.52 | 87.92 | 0.968M | 9.08h | pointnet2_ssg.py | google drive | google drive | google drive (4 MB) |
PointNet++ SSG w/ Umbrella RepSurf (ours) | 68.86 | 76.54 | 90.22 | 0.976M | 9.18h | repsurf_umb_ssg.py | google drive | google drive | google drive (4 MB) |
Note:
- The performance (mIoU/mAcc/OA) are from the final predictions on the whole scenes of S3DIS Area-5, while the results during training is on sub-sampled scenes for fast validation.
- The training time of all above implementations is estimated on four NVIDIA RTX 3090. The time in the logs contains both training and validating time.
- To speed up the training process, we apply Sectorized FPS (in the first stage) for all above methods. It can save 30~40% training time and does not affect the performance.
- To lessen the instability from grid sampling during inference, we apply median filtering to all the above implementations. Besides, it can slightly improve the results (~0.4 mIoU).
- To (firstly install gdown by pip install gdown and) download dataset:
cd ./data/S3DIS
gdown https://drive.google.com/u/1/uc?id=1UDM-bjrtqoIR9FWoIRyqLUJGyKEs22fP
tar zxf s3dis.tar.gz && rm s3dis.tar.gz && cd -
- To train one model (Umbrella RepSurf, Point Transformer, PointNet2) for S3DIS Area-5:
sh scripts/s3dis/train_[MODEL].sh # MODEL: repsurf_umb, pointnet2, pointtransformer
- To test one model (Our Umbrella RepSurf, Point Transformer, PointNet2) for S3DIS Area-5 on whole scenes:
sh scripts/s3dis/test_[MODEL].sh # MODEL: repsurf_umb, pointnet2, pointtransformer
We thank the Point Transformer Implementation for the library pointops.
RepSurf is under the Apache-2.0 license. Please contact the primary author Haoxi Ran (ranhaoxi@gmail.com) for commercial use.