Skip to content

shinke-li/pointcvar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


PointCVaR: Risk-optimized Outlier Removal for Robust 3D Point Cloud Classification

1National University of Singapore
2Nanyang Technological University
3 Institute of High Performance Computing (IHPC), A*STAR
4 Centre for Frontier AI Research (CFAR), A*STAR
                 

Overview

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.

Getting Started

All implementation code has been tested on Ubuntu 22.04 with Python version 3.9, CUDA version 11.6 and GCC version 9.4.

Environment

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

Data Preparation

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.

Model Preparation

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.

Evaluation

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:

  1. Download all necessary resources as mentioned in the following section.
  2. Run the script:
cd ./pointcvar
source infer.sh

Download

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.

License

License: MIT

This work is licensed under the MIT License.

Acknowledgement

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.

Citation

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}
}

Releases

No releases published

Packages

No packages published