Official PyTorch implementation of our CVPR 2023 paper:
Single Image Backdoor Inversion via Robust Smoothed Classifiers
Mingjie Sun, J. Zico Kolter
Carnegie Mellon University, Bosch Center for AI
For more details, please check out our paper.
We propose SmoothInv, a backdoor inversion method that reconstruct faithful backdoors from a single test image.
Create an new conda virtual environment
conda create -n smoothinv python=3.8 -y
conda activate smoothinv
Install Pytorch>=1.8.0, torchvision>=0.9.0 following official instructions. For example:
pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html
Clone this repo and install required packages:
git clone
pip install scikit-image
Create a directory weights
in the main repo and download backdoored classifiers listed below into this directory.
model name | backdoor ASR | download path |
---|---|---|
Blind-P | 99.29% | model |
Blind-S | 79.73% | model |
Blind-G | 100.00% | model |
TrojAI | 100.00% | model |
HTBA | 54.00% | model |
Also to use SmoothInv w diffusion, download the ImageNet unconditional diffusion model from guided-diffusion into the weights
directory.
For visualization, use:
CUDA_VISIBLE_DEVICES=[GPU IDs] python main_vis.py --sigma [noise level] --backdoor_clf [trojai/htba/blind-p/blind-s/blind-g] --imagenet_dir [path to ImageNet] --eps 10 --no_diffusion
To evaluate the ASR of reversed backdoors, use:
CUDA_VISIBLE_DEVICES=[GPU IDs] python main_eval.py --sigma [noise level] --backdoor_clf [trojai/htba/blind-p/blind-s/blind-g] --imagenet_dir [path to ImageNet] --no_diffusion
Turn off --no_diffusion
if you want to use SmoothInv w diffusion.
This repository is built using the smoothadv, blind-backdoors library and diffusion-denoised-smoothing repositories.
This project is released under the MIT license. Please see the LICENSE file for more information.
If you find this repository helpful, please consider citing:
@Article{sun2023smoothinv,
author = {Sun, Mingjie and Kolter, Zico},
title = {Single Image Backdoor Inversion via Robust Smoothed Classifiers},
journal = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year = {2023},
}