Skip to content
/ AziNorm Public

AziNorm: Exploiting the Radial Symmetry of Point Cloud for Azimuth-Normalized 3D Perception, CVPR 2022.

License

Notifications You must be signed in to change notification settings

hustvl/AziNorm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Azimuth Normalization

AziNorm: Exploiting the Radial Symmetry of Point Cloud
for Azimuth-Normalized 3D Perception [CVPR 2022]

by
Shaoyu Chen, Xinggang Wang, Tianheng Cheng, Wenqiang Zhang, Qian Zhang, Chang Huang, Wenyu Liu
(: corresponding author)

Highlight

  • Gain. The most promising characteristics of AziNorm are 1) improving data efficiency (requiring much less data to train the network) and 2) improving performance upper bound.

  • Application. Azinorm is of great practical value, especially for offline appications that require higher performance upper bound and are less insensitive to latency, e.g., 3D Data Auto Labeling and HD map construction.

  • High extensibility. AziNorm is compatible with various perception tasks (detection, segmentation, etc.) and various sensors that possess the same radial symmetry (LiDAR, RADAR, surround-view cameras, etc.).

framework

Introduction

Studying the inherent symmetry of data is of great importance in machine learning. Point cloud, the most important data format for 3D environmental perception, is naturally endowed with strong radial symmetry. In this work, we exploit this radial symmetry via a divide-and-conquer strategy to boost 3D perception performance and ease optimization. We propose Azimuth Normalization (AziNorm), which normalizes the point clouds along the radial direction and eliminates the variability brought by the difference of azimuth. AziNorm can be flexibly incorporated into most LiDAR-based perception methods. To validate its effectiveness and generalization ability, we apply AziNorm in both object detection and semantic segmentation. For detection, we integrate AziNorm into two representative detection methods, the one-stage SECOND detector and the state-of-the-art two-stage PV-RCNN detector. Experiments on Waymo Open Dataset demonstrate that AziNorm improves SECOND and PV-RCNN by 7.03 mAPH and 3.01 mAPH respectively. For segmentation, we integrate AziNorm into KPConv. On SemanticKitti dataset, AziNorm improves KPConv by 1.6/1.1 mIoU on val/test set. Besides, AziNorm remarkably improves data efficiency and accelerates convergence, reducing the requirement of data amounts or training epochs by an order of magnitude. SECOND w/ AziNorm can significantly outperform fully trained vanilla SECOND, even trained with only 10% data or 10% epochs.

Usage

The code is fully based on OpenPCDet-v0.3.0 toolbox. Please refer to INSTALLATION.md and GETTING_STARTED.md of OpenPCDet-v0.3.0 for the instructions of data/environment preparation.

Test and evaluate the pretrained models

  • Test with a pretrained model:
python test.py --cfg_file ${CONFIG_FILE} --batch_size ${BATCH_SIZE} --ckpt ${CKPT}
  • To test all the saved checkpoints of a specific training setting and draw the performance curve on the Tensorboard, add the --eval_all argument:
python test.py --cfg_file ${CONFIG_FILE} --batch_size ${BATCH_SIZE} --eval_all
  • To test with multiple GPUs:
sh scripts/dist_test.sh ${NUM_GPUS} \
    --cfg_file ${CONFIG_FILE} --batch_size ${BATCH_SIZE}

# or

sh scripts/slurm_test_mgpu.sh ${PARTITION} ${NUM_GPUS} \ 
    --cfg_file ${CONFIG_FILE} --batch_size ${BATCH_SIZE}

Train a model

  • Train with multiple GPUs or multiple machines:
sh scripts/dist_train.sh ${NUM_GPUS} --cfg_file ${CONFIG_FILE}

# or 

sh scripts/slurm_train.sh ${PARTITION} ${JOB_NAME} ${NUM_GPUS} --cfg_file ${CONFIG_FILE}
  • Train with a single GPU:
python train.py --cfg_file ${CONFIG_FILE}
Model Training Data Epoch Veh_L1 Veh_L2 Ped_L1 Ped_L2 Cyc_L1 Cyc_L2 Download
SECOND 16k (10%) 5 58.50/57.59 51.35/50.53 47.68/25.56 40.56/21.74 39.44/25.76 38.10/24.89 ckpt
AziNorm-based SECOND 16k (10%) 5 63.85/63.17 55.60/55.00 58.17/44.70 49.95/38.35 57.95/54.99 56.01/53.15 ckpt
SECOND 32k (20%) 5 62.95/62.21 54.71/54.06 51.79/37.61 44.69/32.40 44.27/39.87 42.78/38.53 ckpt
AziNorm-based SECOND 32k (20%) 5 67.24/66.62 58.79/58.24 62.20/50.77 53.80/43.85 60.86/59.62 58.70/57.50 ckpt
SECOND 160k (100%) 5 68.29/67.67 59.71/59.16 58.80/48.41 51.32/42.17 52.82/51.64 51.11/49.96 ckpt
AziNorm-based SECOND 160k (100%) 5 70.01/69.47 62.22/61.72 65.76/54.89 57.15/47.62 64.05/62.79 61.72/60.51 ckpt

Citing AziNorm

If you find AziNorm is useful in your research or applications, please consider giving us a star 🌟 and citing AziNorm by the following BibTeX entry.

@InProceedings{Chen_2022_CVPR,
    author    = {Chen, Shaoyu and Wang, Xinggang and Cheng, Tianheng and Zhang, Wenqiang and Zhang, Qian and Huang, Chang and Liu, Wenyu},
    title     = {AziNorm: Exploiting the Radial Symmetry of Point Cloud for Azimuth-Normalized 3D Perception},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    year      = {2022},
}

About

AziNorm: Exploiting the Radial Symmetry of Point Cloud for Azimuth-Normalized 3D Perception, CVPR 2022.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published