Memorizing Normality to Detect Anomaly: Memory-augmented Deep Autoencoder (MemAE) for Unsupervised Anomaly Detection
Dong Gong, Lingqiao Liu, Vuong Le, Budhaditya Saha, Moussa Reda Mansour, Svetha Venkatesh, Anton van den Hengel.
In IEEE International Conference on Computer Vision (ICCV), 2019.
[Paper][Project]
- Python 3.6
- PyTorch 0.4.1 (tested with 0.4.1)
- torchvision 0.2.1 (tested with 0.2.1)
- (optional) Tensorflow 1.3.0 (only for logging with tensorboard)
- MATLAB (for data preparation)
- Install this repository and the required packages.
- Download pretrained models from [MODELS]. Move them into
./models
. - Prepare dataset.
- Download dataset.
- Move the dataset into
./dataset
. - The dataset folder should be organized in specific stuctures to fit the
dataloader
as the followings. This can be obtained by running the corresponding script in./matlab_script
.
- Run
.sh
files orpython script_testing.py
.
- Prepare data (as in the above 'Testing' section).
- Run
train_video_MemAE.sh
file orpython script_training.py
. Before running the script, please set up the paths (for data, model, and results), hyperparameters, and other options defined in./options/training_options.py
.
If you use this code for your research, please cite our paper.
@inproceedings{gong2019memorizing,
title={Memorizing Normality to Detect Anomaly: Memory-augmented Deep Autoencoder for Unsupervised Anomaly Detection},
author={Gong, Dong and Liu, Lingqiao and Le, Vuong and Saha, Budhaditya and Mansour, Moussa Reda and Venkatesh, Svetha and Hengel, Anton van den},
booktitle={IEEE International Conference on Computer Vision (ICCV)},
year={2019}
}