Skip to content

WUSTL-CSPL/SlowLiDAR

Repository files navigation

SlowLiDAR: Increasing the Latency of LiDAR-Based Detection Using Adversarial Examples

Install

KITTI datasets

Please download the following data: point cloud, images, calibration files, labels, and re-organize the datasets as follows:

kitti
    |- training
        |- calib 
        |- image_2 
        |- label_2 
        |- velodyne 
    |- validation
        |- calib 
        |- image_2 
        |- velodyne 
    |- train.txt
    |- val.txt

Your can also download our organized KITTI dataset from here.

Also, please change the KITTI_PATH in datagen.py to the above kitti folder.

Software Specification

Cuda Version: 11.7

Python Version: 3.9.7

Python Environments: please see environment.yml. You can install all of them by the following command:

conda env create -f environment.yml

Hardware Specification

Please see hardware_spec.txt.

PIXOR Model

Please follow the guidelines in PIXOR Implementation to install all the dependencies. You can skip this step if you use the above conda command to install the environments.

Changes

Compared with original PIXOR implementations, we have make the following changes:

  • We have re-implemented the pre-processing pipelines in Python, transitioning from the original C++ implementation. Detailed descriptions of this process are available in our paper.

  • We have changed the 'nms_top' parameters in this repository, increasing the proposal cap from the previously hard-coded limit of 64 to 5000 to comprehensively assess the effects of our attacks. More discussions on the impact of this parameter are in the ablation study of our paper.

Run attack

To run perturbation-based attack:

python run_attack.py --attack_type perturb --point_idx 10 --iter_num 2000 --attack_lr 0.01  --save_path ./results/

To run addition-based attack:

python run_attack.py --attack_type add --point_idx 10 --iter_num 2000 --attack_lr 0.01  --save_path ./results/

Evaluation

To evaluate the running time of the original sample and adversarial sample, we prepared one script to run the inference and print out the time. Also, we have prepared two of our pre-trained samples.

To evaluate the original point cloud:

python gpu_time_benchmark.py --eval_type ori --point_idx 10

To evaluate the perturbation adversarial example:

python gpu_time_benchmark.py --eval_type adv --path ./adv_examples/final_perb.pt

To evaluate the addition adversarial example:

python gpu_time_benchmark.py --eval_type adv --path ./adv_examples/final_add.pt

Citation

If you find our work useful, please cite:

@InProceedings{Liu_2023_CVPR,
    author    = {Liu, Han and Wu, Yuhao and Yu, Zhiyuan and Vorobeychik, Yevgeniy and Zhang, Ning},
    title     = {SlowLiDAR: Increasing the Latency of LiDAR-Based Detection Using Adversarial Examples},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2023},
    pages     = {5146-5155}
}

Acknowledements

Thanks for the open souce code https://github.com/philip-huang/PIXOR

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages