Outdoor Object Detection
May 10, 2022 ยท View on GitHub
This repo contains the code and configuration files for outdoor object detection.
Related Papers
- 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
| Backbone | Car@R40 | Ped.@R40 | Cyc.@R40 | download | |
|---|---|---|---|---|---|
| SECOND | SparseConvNet | 81.72 (+0.06) | 53.32 (+2.20) | 66.58 (+3.22) | model |
| PointRCNN | SparseConvNet | 82.52 | 60.85 | 72.76 | model |
| PVRCNN | SparseConvNet | 85.31 (+0.56) | 62.00 (+7.58) | 75.22 (+4.80) | model |
| VoxelRCNN | SparseConvNet | 85.39 | 60.85 | 74.23 | model |
| SECOND | PointNet++ (MSG) | 82.46 | 50.05 | 61.96 | model |
| PointRCNN | PointNet++ (MSG) | 84.42 (+4.17) | 58.09 (+3.76) | 72.93 (+1.38) | model |
| PVRCNN | PointNet++ (MSG) | 84.94 | 54.77 | 73.43 | model |
| VoxelRCNN | PointNet++ (MSG) | 84.83 | 53.84 | 65.10 | model |
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}