2Nanyang Technological University
3 Institute of High Performance Computing (IHPC), A*STAR
4 Centre for Frontier AI Research (CFAR), A*STAR
PointCVaR is a novel outlier removal method using gradient-based attribution in deep learning for robust 3D point cloud classification task. The method can effectively filter out various types of noise points in point clouds, such as natural noise, adversarial noise, and backdoor noise. This work was published in the proceedings of AAAI 2024 (oral presentation). This implementation provides a general framework for evaluating robust methods on point cloud classification.
All implementation code has been tested on Ubuntu 22.04 with Python version 3.9, CUDA version 11.6 and GCC version 9.4.
We recommend installing Conda or Miniforge creating a conda environment for running by:
conda create --name pointCVaR python=3.9
Activate the virtual environment and install the required libraries:
conda activate pointCVaR
conda install pytorch==1.13.1 torchvision==0.14.1 pytorch-cuda=11.6 -c pytorch -c nvidia
conda install pytorch-scatter -c pyg
pip install -r requirements.txt
ModelNet40 and ShapeNetPart are utilized as the experimental datasets. Please refer to pointcvar/README.md/Data Preparation for the details to prepare the Training datasets and the Testing datasets with various noises.
Serveral 3D point cloud classification architectures are implemented :PointNet and DGCNN. Please refer to pointcvar/README.md/Model Training to train the customized model for your own. TODO: more models being available.
Please refer to pointcvar/README.md/Model Evaluation for evaluation. We also provide a script that includes integrated commands for running inference on different noisy datasets with various outlier removal methods located in pointcvar/infer.sh
. To use this script:
- Download all necessary resources as mentioned in the following section.
- Run the script:
cd ./pointcvar
source infer.sh
Model Name | Reference | Model | ModelNet40 Testing Data | ShapeNetPart Testing Data |
---|---|---|---|---|
PointNet | Qi et al. | Clean / Backdoored | PointNet Data | PointNet Data |
DGCNN | Wang et al. | Clean / Backdoored | DGCNN Data | DGCNN Data |
*TODO: How to place the files.
This work is licensed under the MIT License.
Our implementation codes are largely motivated by ModelNet40-C and IF-Defense. We also thank the authors of following works for opening source their excellent codes.
- PointNet/PointNet++, DGCNN, PCT, GDANet
- Perturb/Add attack, kNN attack, Drop attack, AdvPC
- PU-Net, DUP-Net
If you find this work helpful, please kindly consider citing our papers:
@inproceedings{li2024pointcvar,
title={PointCVaR: Risk-optimized Outlier Removal for Robust 3D Point Cloud Classification},
author={Li, Xinke and Lu, Junchi and Ding, Henghui and Sun, Changsheng and Zhou, Joey Tianyi and Chee, Yeow Meng},
booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
volume={38},
year={2024}
}