We found a huge amount of duplicate points in WADS dataset which distorts the nearest neighborhood hence affecting the performance of all the algorithms that uses kNN e.g., SOR, ROR, DSOR, DROR, 3D OutDet, SalsaNext etc. Hence, we need to remove the duplicate data points as the first step of data processing.
WADS
remove_duplicate.py
, I put it in 3D_OutDet/dataset/
folder. remove_duplicate.py
file and change the src_root
variable pointing at your sequences
folder from step 1. If you had used a different name for the folder, you need to modify the script accordingly. remove_duplicate.py
script however you like, e.g., (from PyCharm, from Terminal or from some other IDE) WADS2
folder in the same parent directory. Since the KD Tree remains the same for the same point cloud during training, there is no point in calculating the KD Tree for every epoch. Rather we will save the nearest neighbors from KD tree for training. This would occupy some space in you HDD / SSD, so keep it in mind.
generate_knn_dist_wads.py
. I put it in 3D_OutDet/dataset/utils
folder. generate_knn_dist_wads.py
and update data_dir
in the argument parser pointing at the WADS2
folder created in the previous major step. generate_knn_dist_wads.py
. It will pre-compute kNN for all the sequences. train_wads.py
. Change data_dir
and mode_save_path
accordingly. train_wads.py
eval_wads.py
. data_dir
, model_save_path
, test_output_path
accordingly.eval_wads.py
We added RandLA-Net on our WADS benchmark.
Precision | Recall | $F_1$ | mIOU | |
---|---|---|---|---|
RandLa-Net | 69.99 | 96.86 | 81.26 | 68.43 |
3D-OutDet | 96.78 | 92.76 | 94.73 | 90.00 |
A CPP / TensorRT implementation is underway for deployment in real vehicle. https://github.com/sporsho/OutDetCPP