This repository contains the implementation of RandLA-Net (CVPR 2020 Oral) in PyTorch.
- We only support SemanticKITTI dataset now. (Welcome everyone to develop together and raise PR)
- Our model is almost as good as the original implementation. (Validation set : Our 52.9% mIoU vs original 53.1%)
- We place our pretrain-model in
pretrain_model/checkpoint.tar
directory.
Results on Validation Set (seq 08)
- Compare with original implementation
Model | mIoU |
---|---|
Original Tensorflow | 0.531 |
Our Pytorch Implementation | 0.529 |
- Per class mIoU
mIoU | car | bicycle | motorcycle | truck | other-vehicle | person | bicyclist | motorcyclist | road | parking | sidewalk | other-ground | building | fence | vegetation | trunk | terrain | pole | traffic-sign |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
52.9 | 0.919 | 0.122 | 0.290 | 0.660 | 0.444 | 0.515 | 0.676 | 0.000 | 0.912 | 0.421 | 0.759 | 0.001 | 0.878 | 0.354 | 0.844 | 0.595 | 0.741 | 0.517 | 0.414 |
-
Click this webpage and use conda to install pytorch>=1.4 (Be aware of the cuda version when installation)
-
Install python packages
pip install -r requirements.txt
- Compile C++ Wrappers
bash compile_op.sh
Download the Semantic KITTI dataset, and preprocess the data:
python data_prepare_semantickitti.py
Note:
- Please change the dataset path in the
data_prepare_semantickitti.py
with your own path. - Data preprocessing code will convert the label to 0-19 index
- Training
python3 train_SemanticKITTI.py <args>
- Testing
python3 test_SemanticKITTI.py <args>
Note: if the flag --index_to_label
is set, output predictions will be ".label" files (label figure) which can be visualized; Otherwise, they will be ".npy" (0-19 index) files which is used to evaluated afterward.
- Visualization
python3 visualize_SemanticKITTI.py <args>
- Evaluation
- Example Evaluation code
python3 evaluate_SemanticKITTI.py --dataset /tmp2/tsunghan/PCL_Seg_data/sequences_0.06/ \
--predictions runs/supervised/predictions/ --sequences 8
- Original Tensorflow implementation link
- Our network & config codes are modified from RandLA-Net PyTorch
- Our evaluation & visualization codes are modified from SemanticKITTI API