Skip to content
DUP-Net: Denoiser and Upsampler Network for 3D Adversarial Point Clouds Defense
Python C++ Shell Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

DUP-Net: Denoiser and Upsampler Network for 3D Adversarial Point Clouds Defense

Created by Hang Zhou, Kejiang Chen, Weiming Zhang, Han Fang, Wenbo Zhou, Nenghai Yu.


This work is published on ICCV, 2019.

Neural networks are vulnerable to adversarial examples, which poses a threat to their application in security sensitive systems. We propose a Denoiser and UPsampler Network (DUP-Net) structure as defenses for 3D adversarial point cloud classification, where the two modules reconstruct surface smoothness by dropping or adding points. In this paper, statistical outlier removal (SOR) and a data-driven upsampling network are considered as denoiser and upsampler respectively. Compared with baseline defenses, DUP-Net has three advantages. First, with DUP-Net as a defense, the target model is more robust to white-box adversarial attacks. Second, the statistical outlier removal provides added robustness since it is a non-differentiable denoising operation. Third, the upsampler network can be trained on a small dataset and defends well against adversarial attacks generated from other point cloud datasets. We conduct various experiments to validate that DUP-Net is very effective as defense in practice. Our best defense eliminates 83.8% of C&W and l2 loss based attack (point shifting), 50.0% of C&W and Hausdorff distance loss based attack (point adding) and 9.0% of saliency map based attack (point dropping) under 200 dropped points on PointNet.


If you find our work useful in your research, please consider citing:

   title={DUP-Net: Denoiser and Upsampler Network for 3D Adversarial Point Clouds Defense},
   author={Zhou, Hang and Chen, Kejiang and Zhang, Weiming and Fang, Han and Zhou, Wenbo and Yu, Nenghai},
   booktitle={Proceedings of the IEEE International Conference on Computer Vision},


Install TensorFlow. The code has been tested with Python 3.6, TensorFlow 1.12.0, CUDA 9.0 and cuDNN 7 on Ubuntu 16.04.


Compile sh files in directory "tf_ops/" before usage.

To process a point cloud by DUP-Net:

# Statistical outlier removal (SOR)
python --removal 'sor' \
                 --batch_size 4 \
                 --test_path 'data/lsgan_bro1_nogan2' \
                 --filtered_dir 'data/modelnet40_filtered/filtered_test'

# DUP-Net
python --num_point 2048 \
                   --up_ratio 2 \
                   --test_path 'data/modelnet40_filtered' \
                   --upsampled_dir 'data/modelnet40_upsampled/upsampled_test'

To classify the processed point cloud:

python --num_classes 40 \
                                         --model_path 'log/modelnet40_pointnet/model.ckpt' \
                                         --test_path 'data/modelnet40_upsampled'


You can’t perform that action at this time.