Skip to content
forked from cvlab-yonsei/MNAD

An official implementation of "Learning Memory-guided Normality for Anomaly Detection" (CVPR 2020) in PyTorch.

Notifications You must be signed in to change notification settings

alisure-ml/MNAD

This branch is 7 commits ahead of, 1 commit behind cvlab-yonsei/MNAD:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d98be1d · Mar 29, 2023

History

34 Commits
Nov 22, 2022
Jul 16, 2020
Mar 29, 2023
Mar 29, 2023
Nov 22, 2022
Mar 13, 2022
Mar 29, 2023
Apr 1, 2021
Mar 13, 2022
Mar 29, 2023
Mar 29, 2023
Nov 22, 2022
Nov 22, 2022
Mar 29, 2023
Mar 29, 2023
Mar 13, 2022
Mar 13, 2022

Repository files navigation

PyTorch implementation of "Learning Memory-guided Normality for Anomaly Detection"

no_imageno_image

This is the implementation of the paper "Learning Memory-guided Normality for Anomaly Detection (CVPR 2020)".

For more information, checkout the project site [website] and the paper [PDF].

Dependencies

  • Python 3.6
  • PyTorch 1.1.0
  • Numpy
  • Sklearn

Datasets

These datasets are from an official github of "Future Frame Prediction for Anomaly Detection - A New Baseline (CVPR 2018)".

Download the datasets into dataset folder, like ./dataset/ped2/

Update

  • 02/04/21: We uploaded the codes based on reconstruction method, and pretrained wieghts for Ped2 reconstruction, Avenue prediction and Avenue reconstruction.

Training

  • The training and testing codes are based on prediction method
  • Now you can implemnet the codes based on both prediction and reconstruction methods.
  • The codes are basically based on the prediction method, and you can easily implement this as
git clone https://github.com/cvlab-yonsei/projects
cd projects/MNAD/code
python Train.py # for training
  • You can freely define parameters with your own settings like
python Train.py --gpus 1 --dataset_path 'your_dataset_directory' --dataset_type avenue --exp_dir 'your_log_directory'
  • For the reconstruction task, you need to newly set the parameters, e.g,, the target task, the weights of the losses and the number of the time sequence.
python Train.py --method recon --loss_compact 0.01 --loss_separate 0.01 --t_length 1 # for training

Evaluation

  • Test your own model
  • Check your dataset_type (ped2, avenue or shanghai)
python Evaluate.py --dataset_type ped2 --model_dir your_model.pth --m_items_dir your_m_items.pt
  • For the reconstruction task, you need to set the parameters as
python Evaluate.py --method recon --t_length 1 --alpha 0.7 --th 0.015 --dataset_type ped2 --model_dir your_model.pth --m_items_dir your_m_items.pt
  • Test the model with our pre-trained model and memory items
python Evaluate.py --dataset_type ped2 --model_dir pretrained_model.pth --m_items_dir m_items.pt

Pre-trained model and memory items

Bibtex

@inproceedings{park2020learning,
  title={Learning Memory-guided Normality for Anomaly Detection},
  author={Park, Hyunjong and Noh, Jongyoun and Ham, Bumsub},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={14372--14381},
  year={2020}
}

About

An official implementation of "Learning Memory-guided Normality for Anomaly Detection" (CVPR 2020) in PyTorch.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.4%
  • CSS 0.6%