Awesome
<div align="center"> <h1>Azimuth Normalization </h1> <span><font size="5", > AziNorm: Exploiting the Radial Symmetry of Point Cloud <br> for Azimuth-Normalized 3D Perception [CVPR 2022] </font></span> <br> by <br> <a href="https://scholar.google.com/citations?user=PIeNN2gAAAAJ&hl=en&oi=ao">Shaoyu Chen</a>, <a href="https://xinggangw.info/">Xinggang Wang</a><sup><span>†</span></sup>, <a href="https://scholar.google.com/citations?user=PH8rJHYAAAAJ&hl=en&oi=ao">Tianheng Cheng</a>, <a href="https://github.com/mulinmeng">Wenqiang Zhang</a>, <a href="https://scholar.google.com/citations?user=pCY-bikAAAAJ&hl=zh-CN">Qian Zhang</a>, <a href="https://scholar.google.com/citations?user=IyyEKyIAAAAJ&hl=zh-CN">Chang Huang</a>, <a href="http://eic.hust.edu.cn/professor/liuwenyu/"> Wenyu Liu</a> </br> (<span>†</span>: corresponding author) <div>Paper: <a href="https://arxiv.org/abs/2203.13090">[arXiv version] </a><a href="https://openaccess.thecvf.com/content/CVPR2022/papers/Chen_AziNorm_Exploiting_the_Radial_Symmetry_of_Point_Cloud_for_Azimuth-Normalized_CVPR_2022_paper.pdf"> [CVPR version]</a></div> </div>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.).
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},
}