Home

Awesome

ICCV2023 - Anomaly Detection under Distribution Shift

Official PyTorch implementation of the ICCV'23 paper “Anomaly Detection under Distribution Shift”

Environment

Create suitable conda environment:

conda env create -f environment.yml

Dataset

1. Download dataset:

-MNIST_grey: https://www.kaggle.com/datasets/jidhumohan/mnist-png <br> -MNIST_M: https://www.kaggle.com/datasets/aquibiqbal/mnistm <br> -PACS: https://www.kaggle.com/datasets/nickfratto/pacs-dataset <br> -MVTEC: https://www.mvtec.com/company/research/datasets/mvtec-ad <br> -CIFAR-10: https://www.kaggle.com/datasets/swaroopkml/cifar10-pngs-in-folders <br>

2. Generate corrupted test set for MVTEC and CIFAR-10

To generate currupted data for MVTEC:

python generate_corrupted_mvtec.py

To generate currupted data for CIFAR-10:

python generate_corrupted_cifar10.py

DINL (for training phase)

To train the model, please run the corresponding file train_namedataset_DINL.py <br> For example, to train DINL for PACS:

python train_PACS_DINL.py

ATTA (for inference phase)

Note: change the path to the normal image for each dataset if needed. <br> To run the inference, please run the corresponding file inference_namedataset_ATTA.py <br> For example, to use ATTA for PACS:

python inference_PACS_ATTA.py

Citation

The paper is available at ICCV'23 proceedings or arXiv.

Please cite this paper if it helps your research:

@InProceedings{Cao_2023_ICCV,
    author    = {Cao, Tri and Zhu, Jiawen and Pang, Guansong},
    title     = {Anomaly Detection Under Distribution Shift},
    booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
    month     = {October},
    year      = {2023},
    pages     = {6511-6523}
}