Home

Awesome

Implementation of SOTA Deep Anomaly Detection Methods

In this repository, we provide a continuously updated collection of implementation of SOTA deep anomaly detection methods in the literature. This list was originally collected and presented in our CSUR survey paper on deep anomaly detection. This repository is created to serve as an extension to that list. You may cite the survey paper below to acknolwedge our contribution.

@article{pang2021deep,
  title={Deep learning for anomaly detection: A review},
  author={Pang, Guansong and Shen, Chunhua and Cao, Longbing and Hengel, Anton Van Den},
  journal={ACM Computing Surveys (CSUR)},
  volume={54},
  number={2},
  pages={1--38},
  year={2021},
  publisher={ACM New York, NY, USA}
}

Algorithms and Source Codes

MethodPublication VenueYearAPILinkSupervision*Data
RDAKDD2017Tensorflowhttps://git.io/JfYG5Semi-supervisedImage
AnoGANIPMI2017Tensorflowhttps://git.io/JfGgcSemi-supervisedImage
Fast AntoGANMedical Image Analysis2019Tensorflowhttps://git.io/JfZRnSemi-supervisedImage
EBGANarXiv2018Kerashttps://git.io/JfGgGSemi-supervisedImage
ALADICDM2018Kerashttps://git.io/JfZ8vSemi-supervisedImage
GANomalyACCV2018PyTorchhttps://git.io/JfGgnSemi-supervisedImage
GTNeurIPS2018Kerashttps://git.io/JfZRWSemi-supervisedImage
OC-NNarXiv2018Kerashttps://git.io/JfGgZSemi-supervisedImage
Deep SVDDICML2018Tensorflowhttps://git.io/JfZRRSemi-supervisedImage
Deep SADICLR2020PyTorchhttps://git.io/JfOkrWeakly-supervisedImage
DAGMMICLR2018PyTorchhttps://git.io/JfZR0UnsupervisedImage
ALOCCCVPR2018Tensorflowhttps://git.io/Jf4p4Semi-supervisedImage
LSACVPR2019Torchhttps://git.io/Jf4pWSemi-supervisedImage
E3OutlierNeurIPS2019PyTorchhttps://git.io/Jf4plUnsupervisedImage
OCGANCVPR2019MXNethttps://git.io/Jf4p0Semi-supervisedImage
CCDMICCAI2021PyTorchhttps://git.io/JKnEMSemi-supervisedImage
DevNetarXiv2021PyTorchhttps://git.io/DevNetWeakly-supervisedImage
IGDAAAI2022PyTorchhttps://git.io/JMj7NSemi-supervisedImage
MemAEICCV2019PyTorchhttps://git.io/JVnlzSemi-supervisedImage&Video
FFPCVPR2018Tensorflowhttps://git.io/Jf4pcSemi-supervisedVideo
MILCVPR2018Kerashttps://git.io/JfZRzWeakly-supervisedVideo
GCLNCCVPR2019PyTorchhttps://git.io/JwoHSWeakly-supervisedVideo
RTFMICCV2021PyTorchhttps://git.io/JKnE6Weakly-supervisedVideo
OCANAAAI2019Tensorflowhttps://git.io/JfYGbSemi-supervisedSequential
OmniAnomalyKDD2019Tensorflowhttps://git.io/JKnu4UnsupervisedTime series
REPENKDD2018Kerashttps://git.io/JfZRgUnsupervisedTabular
AE-1SVMECML-PKDD2018Tensorflowhttps://git.io/JfGglUnsupervisedTabular
DevNetKDD2019Kerashttps://git.io/JfZRwWeakly-supervisedTabular
RDPIJCAI2020PyTorchhttps://git.io/RDPUnsupervisedTabular
A3ECMLPKDD2020Kerashttps://git.io/JM0I1Weakly-supervisedTabular
FenceGANarXiv2019Kerashttps://git.io/Jf4pRSemi-supervisedImage&Tabular
GCN-AESDM2019PyTorchhttps://git.io/JVn43UnsupervisedGraph
CoLATNNLS2021PyTorchhttps://git.io/Jy0b3UnsupervisedGraph
GLocalKDWSDM2022PyTorchhttps://git.io/GLocalKDSemi/Un-supervisedGraph

* In the supervision column, 'semi-supervised' indicates that the specific methods are trained on exclusively normal data, 'unsupervised' indicates that they are trained on fully unlabeled data (mostly normal data), while `weakly-supervised' indicates that the methods use some form of weak supervision, e.g., coarse class labels, or partially observed anomaly class labels