Improving Corruption Robustness: Desensitizing the Neural Network to 3D Point Cloud through Adversarial Training
This work is under submission to "Pattern Recognition".
Install necessary packages using:
bash install.sh
Install PyGeM
cd PyGen
python setup.py install
cd ..
Download ModelNet40, ModelNet40-C, and PointCloud-C datasets and put them in the Data directory:
DenAT/
└── data/
├── ModelNet40Ply2048
├── modelnet40_c
└── pointcloud_c
Generate the shapely value corresponding to modelNet:
bash ./script/gen_shapely.py
Or you can also download it directly from this link. You need to put the file in the specified directory:
DenAT/
└── data/
└── shaply_ModelNet40Ply2048
└── PointNet2Encoder_ST
├──train
└──test
Train PointNet++ model using ST method:
bash ./script/trainST.py
Train PointNet++ model using DesenAT method:
bash ./script/train.py
Testing in ModelNet40-C
bash ./script/test_modelnetC.py
Testing in PointCloud-C
bash ./script/test_pointcloudC.py
This repository is built on reusing codes of OpenPoints and PointNeXt. We integrated APES and PointMetaBase into the code. We also have integrated methods for handling corrupted point clouds into our code, thanks to the excellent work of ModelNet-C and PointCloud-C.