Outdoor Object Detection

May 10, 2022 ยท View on GitHub

This repo contains the code and configuration files for outdoor object detection.

  • A Unified Query-based Paradigm for Point Cloud Understanding (paper)

Acknowledgements

  • This implementation heavily relies on OpenPCDet. We thank the OpenPCDet team for providing such a well-organized codebase.

Important Notes

  • All LiDAR-based models are trained with 4 3090 GPUs with 24Gb memory and are available for download. Please mind your GPU memory cost during training.

Results and Models

Note. All models below follow EQ-Paradigm and use a Q-Net to enable a free combination between backbones and heads. (*) means the improvement compared to the model with its original backbone network without Q-Net.

KITTI Dataset models

BackboneCar@R40Ped.@R40Cyc.@R40download
SECONDSparseConvNet81.72 (+0.06)53.32 (+2.20)66.58 (+3.22)model
PointRCNNSparseConvNet82.5260.8572.76model
PVRCNNSparseConvNet85.31 (+0.56)62.00 (+7.58)75.22 (+4.80)model
VoxelRCNNSparseConvNet85.3960.8574.23model
SECONDPointNet++ (MSG)82.4650.0561.96model
PointRCNNPointNet++ (MSG)84.42 (+4.17)58.09 (+3.76)72.93 (+1.38)model
PVRCNNPointNet++ (MSG)84.9454.7773.43model
VoxelRCNNPointNet++ (MSG)84.8353.8465.10model
  • NOTE. The provided models above are slightly different from those in the original EQ-Paradigm paper with fewer parameters, faster inference speed yet comparable performance. If you wish to reproduce the results mentioned in the paper, please refer to the supplementary materials to correspondingly adjust the hyper-parameters like the number of channels and neighbors in Q-Net.

Other datasets

Models on other datasets will be supported soon.

Getting Started

Data preprocessing

Please refer to OpenPCDet for data preparation before the first run.

Training

We take the SECOND with voxel-based SparseConvNet backbone as an example here.

cd /path/to/DeepVision3D/OpenPCDet && cd tools

# training configuration.
NUM_GPUS=4
CONFIG_FILE=cfgs/kitti_models/eq_paradigm/vxbased_backbone/second.yaml

# training script.
bash scripts/dist_train.sh ${NUM_GPUS} --cfg_file ${CONFIG_FILE} --accumulated_step 2

Testing

cd /path/to/DeepVision3D/OpenPCDet && cd tools

# testing configuration.
NUM_GPUS=2
CONFIG_FILE=cfgs/kitti_models/eq_paradigm/vxbased_backbone/second.yaml
CKPT=/path/to/second_vxbased_backbone.pth
BATCH_SIZE=8

# testing script.
bash scripts/dist_test.sh ${NUM_GPUS} --cfg_file ${CONFIG_FILE} --batch_size ${BATCH_SIZE} --ckpt ${CKPT}