Awesome
RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds
This repository contains a PyTorch implementation of RandLA-Net on Semantic KITTI.
Preparation
-
Clone this repository
-
Install some Python dependencies, such as scikit-learn. All packages can be installed with pip.
-
Install python functions. the functions and the codes are copied from the official implementation with Tensorflow.
sh compile_op.sh
- Download the Semantic KITTI dataset, and preprocess the data:
python utils/data_prepare_semantickitti.py
Note: Please change the dataset path in the 'data_prepare_semantickitti.py' with your own path.
Train a model
python main_SemanticKITTI.py
This repository implements the official version as much as possible. There are following differences:
-
We use Conv2D instead of ConvTranspose2D in the decoder part. Since the strides are [1,1] and conv kernels are [1,1], we think the Conv2D and ConvTranspose2D are the same in this condition.
-
We delate the bias in the Conv2D which is followed by a BN layer, since the bias is meaningless in the Conv2D if the Conv2D is followed by a BN layer.
-
We evaluate the network for one epoch after every 10 training epoches.
Results
We train this network for 60 epoches, and the eval results in the 8-th Sequence are as follows:
mean IoU: 52.6
IoU:
car: 93.07
bicycle: 16.70
motorcycle: 20.64
truck: 67.74
other-vehicle: 41.46
person: 48.79
bicyclist: 65.74
motorcyclist: 0.00
road: 91.44
parking: 42.21
sidewalk: 76.50
other-ground: 6.15
building: 85.55
fence: 38.86
vegetation: 84.19
trunk: 58.49
terrain: 73.63
pole: 51.63
traffic-sign: 36.05
There are some differences with the results in the paper, but we think the overall results is acceptable.
The checkpoint is in the output folder.