Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.1%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: lzes
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Size: 45.9 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Codeowners

README.md

**A library for benchmarking, developing and deploying deep learning anomaly detection algorithms** --- [Key Features](#key-features) • [Getting Started](#getting-started) • [Docs](https://anomalib.readthedocs.io/en/latest/) • [License](https://github.com/openvinotoolkit/anomalib/blob/main/LICENSE) [![python](https://img.shields.io/badge/python-3.7%2B-green)]() [![pytorch](https://img.shields.io/badge/pytorch-1.8.1%2B-orange)]() [![openvino](https://img.shields.io/badge/openvino-2022.3.0-purple)]() [![comet](https://custom-icon-badges.herokuapp.com/badge/comet__ml-3.31.7-orange?logo=logo_comet_ml)](https://www.comet.com/site/products/ml-experiment-tracking/?utm_source=anomalib&utm_medium=referral) [![black](https://img.shields.io/badge/code%20style-black-000000.svg)]() [![Pre-Merge Checks](https://github.com/openvinotoolkit/anomalib/actions/workflows/pre_merge.yml/badge.svg)](https://github.com/openvinotoolkit/anomalib/actions/workflows/pre_merge.yml) [![codecov](https://codecov.io/gh/openvinotoolkit/anomalib/branch/main/graph/badge.svg?token=Z6A07N1BZK)](https://codecov.io/gh/openvinotoolkit/anomalib) [![Documentation Status](https://readthedocs.org/projects/anomalib/badge/?version=latest)](https://anomalib.readthedocs.io/en/latest/?badge=latest) [![Downloads](https://static.pepy.tech/personalized-badge/anomalib?period=total&units=international_system&left_color=grey&right_color=green&left_text=PyPI%20Downloads)](https://pepy.tech/project/anomalib)

🌟 Upcoming Release: Anomalib v1 🌟

We're excited to announce that Anomalib v1 is on the horizon! This major release packs new features, enhancements, and performance improvements.

Get a sneak peek of Anomalib v1:

  • ⚙️ Installation: Until it is released, you can install it via:

bash git command git clone -b v1 git@github.com:openvinotoolkit/anomalib.git cd anomalib pip install -e .

  • 📘 Documentation: Discover the latest additions and enhancements here.
  • 🧪 Early Testing: Help us refine the final release by testing pre-release features and report issues here.
  • 👩‍💻 Contribute: Your input is invaluable - Help us make anomalib v1.x even better. Read more about the contribution guidelines here

Introduction

Anomalib is a deep learning library that aims to collect state-of-the-art anomaly detection algorithms for benchmarking on both public and private datasets. Anomalib provides several ready-to-use implementations of anomaly detection algorithms described in the recent literature, as well as a set of tools that facilitate the development and implementation of custom models. The library has a strong focus on image-based anomaly detection, where the goal of the algorithm is to identify anomalous images, or anomalous pixel regions within images in a dataset. Anomalib is constantly updated with new algorithms and training/inference extensions, so keep checking!

Sample Image

Key features

  • The largest public collection of ready-to-use deep learning anomaly detection algorithms and benchmark datasets.
  • PyTorch Lightning based model implementations to reduce boilerplate code and limit the implementation efforts to the bare essentials.
  • All models can be exported to OpenVINO Intermediate Representation (IR) for accelerated inference on intel hardware.
  • A set of inference tools for quick and easy deployment of the standard or custom anomaly detection models.

Getting Started

Following is a guide on how to get started with anomalib. For more details, look at the Documentation.

Jupyter Notebooks

For getting started with a Jupyter Notebook, please refer to the Notebooks folder of this repository. Additionally, you can refer to a few created by the community:

PyPI Install

You can get started with anomalib by just using pip.

bash pip install anomalib

Local Install

It is highly recommended to use virtual environment when installing anomalib. For instance, with anaconda, anomalib could be installed as,

bash yes | conda create -n anomalib_env python=3.10 conda activate anomalib_env git clone https://github.com/openvinotoolkit/anomalib.git cd anomalib pip install -e .

Training

By default python tools/train.py runs PADIM model on leather category from the MVTec AD (CC BY-NC-SA 4.0) dataset.

bash python tools/train.py # Train PADIM on MVTec AD leather

Training a model on a specific dataset and category requires further configuration. Each model has its own configuration file, config.yaml , which contains data, model and training configurable parameters. To train a specific model on a specific dataset and category, the config file is to be provided:

bash python tools/train.py --config <path/to/model/config.yaml>

For example, to train PADIM you can use

bash python tools/train.py --config src/anomalib/models/padim/config.yaml

Alternatively, a model name could also be provided as an argument, where the scripts automatically finds the corresponding config file.

bash python tools/train.py --model padim

where the currently available models are:

Feature extraction & (pre-trained) backbones

The pre-trained backbones come from PyTorch Image Models (timm), which are wrapped by FeatureExtractor.

For more information, please check our documentation or the section about feature extraction in "Getting Started with PyTorch Image Models (timm): A Practitioner’s Guide".

Tips:

  • Papers With Code has an interface to easily browse models available in timm: https://paperswithcode.com/lib/timm

  • You can also find them with the function timm.list_models("resnet*", pretrained=True)

The backbone can be set in the config file, two examples below.

yaml model: name: cflow backbone: wide_resnet50_2 pre_trained: true

Custom Dataset

It is also possible to train on a custom folder dataset. To do so, data section in config.yaml is to be modified as follows:

Configuration for Custom Dataset ```yaml dataset: name: format: folder path: normal_dir: normal # name of the folder containing normal images. abnormal_dir: abnormal # name of the folder containing abnormal images. normal_test_dir: null # name of the folder containing normal test images. task: segmentation # classification or segmentation mask: #optional extensions: null # .ext or [.ext1, .ext2, ...] split_ratio: 0.2 # ratio of the normal images that will be used to create a test split image_size: 256 train_batch_size: 32 test_batch_size: 32 num_workers: 8 normalization: imagenet # data distribution to which the images will be normalized: [none, imagenet] test_split_mode: from_dir # options: [from_dir, synthetic] val_split_mode: same_as_test # options: [same_as_test, from_test, sythetic] val_split_ratio: 0.5 # fraction of train/test images held out for validation (usage depends on val_split_mode) transform_config: train: null val: null create_validation_set: true tiling: apply: false tile_size: null stride: null remove_border_count: 0 use_random_tiling: False random_tile_count: 16 ```

By placing the above configuration to the dataset section of the config.yaml file, the model will be trained on the custom dataset.

Inference

Anomalib includes multiple inferencing scripts, including Torch, Lightning, Gradio, and OpenVINO inferencers to perform inference using the trained/exported model. In this section, we will go over how to use these scripts to perform inference.

PyTorch Inference ```bash # To get help about the arguments, run: python tools/inference/torch_inference.py --help # Example Torch inference command: python tools/inference/torch_inference.py \ --weights results/padim/mvtec/bottle/run/weights/torch/model.pt \ --input datasets/MVTec/bottle/test/broken_large/000.png \ --output results/padim/mvtec/bottle/images ```
Lightning Inference ```bash # To get help about the arguments, run: python tools/inference/lightning_inference.py --help # Example Lightning inference command: python tools/inference/lightning_inference.py \ --config src/anomalib/models/padim/config.yaml \ --weights results/padim/mvtec/bottle/run/weights/model.ckpt \ --input datasets/MVTec/bottle/test/broken_large/000.png \ --output results/padim/mvtec/bottle/images ```
OpenVINO Inference To run the OpenVINO inference, you need to first export the PyTorch model to an OpenVINO model. ensure that `export_mode` is set to `"openvino"` in the respective model `config.yaml`. ```yaml # Example config.yaml for OpenVINO optimization: export_mode: "openvino" # options: openvino, onnx ``` ```bash # To get help about the arguments, run: python tools/inference/openvino_inference.py --help # Example OpenVINO inference command: python tools/inference/openvino_inference.py \ --weights results/padim/mvtec/bottle/run/openvino/model.bin \ --metadata results/padim/mvtec/bottle/run/openvino/metadata.json \ --input datasets/MVTec/bottle/test/broken_large/000.png \ --output results/padim/mvtec/bottle/images ``` > Ensure that you provide path to `metadata.json` if you want the normalization to be applied correctly.
Gradio Inference You can also use Gradio Inference to interact with the trained models using a UI. Refer to our [guide](https://anomalib.readthedocs.io/en/latest/tutorials/inference.html#gradio-inference) for more details. ```bash # To get help about the arguments, run: python tools/inference/gradio_inference.py --help # Example Gradio inference command: python tools/inference/gradio_inference.py \ --weights results/padim/mvtec/bottle/run/weights/model.ckpt \ --metadata results/padim/mvtec/bottle/run/openvino/metadata.json \ # Optional --share # Optional to share the UI ```

Hyperparameter Optimization

To run hyperparameter optimization, use the following command:

bash python tools/hpo/sweep.py \ --model padim --model_config ./path_to_config.yaml \ --sweep_config tools/hpo/sweep.yaml

For more details refer the HPO Documentation

Benchmarking

To gather benchmarking data such as throughput across categories, use the following command:

bash python tools/benchmarking/benchmark.py \ --config <relative/absolute path>/<paramfile>.yaml

Refer to the Benchmarking Documentation for more details.

Experiment Management

Anomalib is integrated with various libraries for experiment tracking such as Comet, tensorboard, and wandb through pytorch lighting loggers.

Below is an example of how to enable logging for hyper-parameters, metrics, model graphs, and predictions on images in the test data-set

```yaml visualization: log_images: True # log images to the available loggers (if any) mode: full # options: ["full", "simple"]

logging: logger: [comet, tensorboard, wandb] log_graph: True ```

For more information, refer to the Logging Documentation

Note: Set your API Key for Comet.ml via comet_ml.init() in interactive python or simply run export COMET_API_KEY=<Your API Key>

Community Projects

1. Web-based Pipeline for Training and Inference

This project showcases an end-to-end training and inference pipeline build on top of Anomalib. It provides a web-based UI for uploading MVTec style datasets and training them on the available Anomalib models. It also has sections for calling inference on individual images as well as listing all the images with their predictions in the database.

You can view the project on Github For more details see the Discussion forum

Datasets

anomalib supports MVTec AD (CC BY-NC-SA 4.0) and BeanTech (CC-BY-SA) for benchmarking and folder for custom dataset training/inference.

MVTec AD Dataset

MVTec AD dataset is one of the main benchmarks for anomaly detection, and is released under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0).

Note: These metrics are collected with image size of 256 and seed 42. This common setting is used to make model comparisons fair.

Image-Level AUC

| Model | | Avg | Carpet | Grid | Leather | Tile | Wood | Bottle | Cable | Capsule | Hazelnut | Metal Nut | Pill | Screw | Toothbrush | Transistor | Zipper | | --------------- | -------------- | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :------: | :-------: | :-------: | :-------: | :--------: | :--------: | :-------: | | EfficientAd | PDN-S | 0.982 | 0.982 | 1.000 | 0.997 | 1.000 | 0.986 | 1.000 | 0.952 | 0.950 | 0.952 | 0.979 | 0.987 | 0.960 | 0.997 | 0.999 | 0.994 | | EfficientAd | PDN-M | 0.975 | 0.972 | 0.998 | 1.000 | 0.999 | 0.984 | 0.991 | 0.945 | 0.957 | 0.948 | 0.989 | 0.926 | 0.975 | 1.000 | 0.965 | 0.971 | | PatchCore | Wide ResNet-50 | 0.980 | 0.984 | 0.959 | 1.000 | 1.000 | 0.989 | 1.000 | 0.990 | 0.982 | 1.000 | 0.994 | 0.924 | 0.960 | 0.933 | 1.000 | 0.982 | | PatchCore | ResNet-18 | 0.973 | 0.970 | 0.947 | 1.000 | 0.997 | 0.997 | 1.000 | 0.986 | 0.965 | 1.000 | 0.991 | 0.916 | 0.943 | 0.931 | 0.996 | 0.953 | | CFlow | Wide ResNet-50 | 0.962 | 0.986 | 0.962 | 1.000 | 0.999 | 0.993 | 1.0 | 0.893 | 0.945 | 1.0 | 0.995 | 0.924 | 0.908 | 0.897 | 0.943 | 0.984 | | CFA | Wide ResNet-50 | 0.956 | 0.978 | 0.961 | 0.990 | 0.999 | 0.994 | 0.998 | 0.979 | 0.872 | 1.000 | 0.995 | 0.946 | 0.703 | 1.000 | 0.957 | 0.967 | | CFA | ResNet-18 | 0.930 | 0.953 | 0.947 | 0.999 | 1.000 | 1.000 | 0.991 | 0.947 | 0.858 | 0.995 | 0.932 | 0.887 | 0.625 | 0.994 | 0.895 | 0.919 | | PaDiM | Wide ResNet-50 | 0.950 | 0.995 | 0.942 | 1.000 | 0.974 | 0.993 | 0.999 | 0.878 | 0.927 | 0.964 | 0.989 | 0.939 | 0.845 | 0.942 | 0.976 | 0.882 | | PaDiM | ResNet-18 | 0.891 | 0.945 | 0.857 | 0.982 | 0.950 | 0.976 | 0.994 | 0.844 | 0.901 | 0.750 | 0.961 | 0.863 | 0.759 | 0.889 | 0.920 | 0.780 | | DFM | Wide ResNet-50 | 0.943 | 0.855 | 0.784 | 0.997 | 0.995 | 0.975 | 0.999 | 0.969 | 0.924 | 0.978 | 0.939 | 0.962 | 0.873 | 0.969 | 0.971 | 0.961 | | DFM | ResNet-18 | 0.936 | 0.817 | 0.736 | 0.993 | 0.966 | 0.977 | 1.000 | 0.956 | 0.944 | 0.994 | 0.922 | 0.961 | 0.89 | 0.969 | 0.939 | 0.969 | | STFPM | Wide ResNet-50 | 0.876 | 0.957 | 0.977 | 0.981 | 0.976 | 0.939 | 0.987 | 0.878 | 0.732 | 0.995 | 0.973 | 0.652 | 0.825 | 0.500 | 0.875 | 0.899 | | STFPM | ResNet-18 | 0.893 | 0.954 | 0.982 | 0.989 | 0.949 | 0.961 | 0.979 | 0.838 | 0.759 | 0.999 | 0.956 | 0.705 | 0.835 | 0.997 | 0.853 | 0.645 | | DFKDE | Wide ResNet-50 | 0.774 | 0.708 | 0.422 | 0.905 | 0.959 | 0.903 | 0.936 | 0.746 | 0.853 | 0.736 | 0.687 | 0.749 | 0.574 | 0.697 | 0.843 | 0.892 | | DFKDE | ResNet-18 | 0.762 | 0.646 | 0.577 | 0.669 | 0.965 | 0.863 | 0.951 | 0.751 | 0.698 | 0.806 | 0.729 | 0.607 | 0.694 | 0.767 | 0.839 | 0.866 | | GANomaly | | 0.421 | 0.203 | 0.404 | 0.413 | 0.408 | 0.744 | 0.251 | 0.457 | 0.682 | 0.537 | 0.270 | 0.472 | 0.231 | 0.372 | 0.440 | 0.434 |

Pixel-Level AUC

| Model | | Avg | Carpet | Grid | Leather | Tile | Wood | Bottle | Cable | Capsule | Hazelnut | Metal Nut | Pill | Screw | Toothbrush | Transistor | Zipper | | ----------- | ------------------ | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :--------: | :--------: | :-------: | | CFA | Wide ResNet-50 | 0.983 | 0.980 | 0.954 | 0.989 | 0.985 | 0.974 | 0.989 | 0.988 | 0.989 | 0.985 | 0.992 | 0.988 | 0.979 | 0.991 | 0.977 | 0.990 | | CFA | ResNet-18 | 0.979 | 0.970 | 0.973 | 0.992 | 0.978 | 0.964 | 0.986 | 0.984 | 0.987 | 0.987 | 0.981 | 0.981 | 0.973 | 0.990 | 0.964 | 0.978 | | PatchCore | Wide ResNet-50 | 0.980 | 0.988 | 0.968 | 0.991 | 0.961 | 0.934 | 0.984 | 0.988 | 0.988 | 0.987 | 0.989 | 0.980 | 0.989 | 0.988 | 0.981 | 0.983 | | PatchCore | ResNet-18 | 0.976 | 0.986 | 0.955 | 0.990 | 0.943 | 0.933 | 0.981 | 0.984 | 0.986 | 0.986 | 0.986 | 0.974 | 0.991 | 0.988 | 0.974 | 0.983 | | CFlow | Wide ResNet-50 | 0.971 | 0.986 | 0.968 | 0.993 | 0.968 | 0.924 | 0.981 | 0.955 | 0.988 | 0.990 | 0.982 | 0.983 | 0.979 | 0.985 | 0.897 | 0.980 | | PaDiM | Wide ResNet-50 | 0.979 | 0.991 | 0.970 | 0.993 | 0.955 | 0.957 | 0.985 | 0.970 | 0.988 | 0.985 | 0.982 | 0.966 | 0.988 | 0.991 | 0.976 | 0.986 | | PaDiM | ResNet-18 | 0.968 | 0.984 | 0.918 | 0.994 | 0.934 | 0.947 | 0.983 | 0.965 | 0.984 | 0.978 | 0.970 | 0.957 | 0.978 | 0.988 | 0.968 | 0.979 | | EfficientAd | PDN-S | 0.960 | 0.963 | 0.937 | 0.976 | 0.907 | 0.868 | 0.983 | 0.983 | 0.980 | 0.976 | 0.978 | 0.986 | 0.985 | 0.962 | 0.956 | 0.961 | | EfficientAd | PDN-M | 0.957 | 0.948 | 0.937 | 0.976 | 0.906 | 0.867 | 0.976 | 0.986 | 0.957 | 0.977 | 0.984 | 0.978 | 0.986 | 0.964 | 0.947 | 0.960 | | STFPM | Wide ResNet-50 | 0.903 | 0.987 | 0.989 | 0.980 | 0.966 | 0.956 | 0.966 | 0.913 | 0.956 | 0.974 | 0.961 | 0.946 | 0.988 | 0.178 | 0.807 | 0.980 | | STFPM | ResNet-18 | 0.951 | 0.986 | 0.988 | 0.991 | 0.946 | 0.949 | 0.971 | 0.898 | 0.962 | 0.981 | 0.942 | 0.878 | 0.983 | 0.983 | 0.838 | 0.972 |

Image F1 Score

| Model | | Avg | Carpet | Grid | Leather | Tile | Wood | Bottle | Cable | Capsule | Hazelnut | Metal Nut | Pill | Screw | Toothbrush | Transistor | Zipper | | ------------- | ------------------ | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | :--------: | :--------: | :-------: | | PatchCore | Wide ResNet-50 | 0.976 | 0.971 | 0.974 | 1.000 | 1.000 | 0.967 | 1.000 | 0.968 | 0.982 | 1.000 | 0.984 | 0.940 | 0.943 | 0.938 | 1.000 | 0.979 | | PatchCore | ResNet-18 | 0.970 | 0.949 | 0.946 | 1.000 | 0.98 | 0.992 | 1.000 | 0.978 | 0.969 | 1.000 | 0.989 | 0.940 | 0.932 | 0.935 | 0.974 | 0.967 | | EfficientAd | PDN-S | 0.970 | 0.966 | 1.000 | 0.995 | 1.000 | 0.975 | 1.000 | 0.907 | 0.956 | 0.897 | 0.978 | 0.982 | 0.944 | 0.984 | 0.988 | 0.983 | | EfficientAd | PDN-M | 0.966 | 0.977 | 0.991 | 1.000 | 0.994 | 0.967 | 0.984 | 0.922 | 0.969 | 0.884 | 0.984 | 0.952 | 0.955 | 1.000 | 0.929 | 0.979 | | CFA | Wide ResNet-50 | 0.962 | 0.961 | 0.957 | 0.995 | 0.994 | 0.983 | 0.984 | 0.962 | 0.946 | 1.000 | 0.984 | 0.952 | 0.855 | 1.000 | 0.907 | 0.975 | | CFA | ResNet-18 | 0.946 | 0.956 | 0.946 | 0.973 | 1.000 | 1.000 | 0.983 | 0.907 | 0.938 | 0.996 | 0.958 | 0.920 | 0.858 | 0.984 | 0.795 | 0.949 | | CFlow | Wide ResNet-50 | 0.944 | 0.972 | 0.932 | 1.000 | 0.988 | 0.967 | 1.000 | 0.832 | 0.939 | 1.000 | 0.979 | 0.924 | 0.971 | 0.870 | 0.818 | 0.967 | | PaDiM | Wide ResNet-50 | 0.951 | 0.989 | 0.930 | 1.000 | 0.960 | 0.983 | 0.992 | 0.856 | 0.982 | 0.937 | 0.978 | 0.946 | 0.895 | 0.952 | 0.914 | 0.947 | | PaDiM | ResNet-18 | 0.916 | 0.930 | 0.893 | 0.984 | 0.934 | 0.952 | 0.976 | 0.858 | 0.960 | 0.836 | 0.974 | 0.932 | 0.879 | 0.923 | 0.796 | 0.915 | | DFM | Wide ResNet-50 | 0.950 | 0.915 | 0.870 | 0.995 | 0.988 | 0.960 | 0.992 | 0.939 | 0.965 | 0.971 | 0.942 | 0.956 | 0.906 | 0.966 | 0.914 | 0.971 | | DFM | ResNet-18 | 0.943 | 0.895 | 0.871 | 0.978 | 0.958 | 0.900 | 1.000 | 0.935 | 0.965 | 0.966 | 0.942 | 0.956 | 0.914 | 0.966 | 0.868 | 0.964 | | STFPM | Wide ResNet-50 | 0.926 | 0.973 | 0.973 | 0.974 | 0.965 | 0.929 | 0.976 | 0.853 | 0.920 | 0.972 | 0.974 | 0.922 | 0.884 | 0.833 | 0.815 | 0.931 | | STFPM | ResNet-18 | 0.932 | 0.961 | 0.982 | 0.989 | 0.930 | 0.951 | 0.984 | 0.819 | 0.918 | 0.993 | 0.973 | 0.918 | 0.887 | 0.984 | 0.790 | 0.908 | | DFKDE | Wide ResNet-50 | 0.875 | 0.907 | 0.844 | 0.905 | 0.945 | 0.914 | 0.946 | 0.790 | 0.914 | 0.817 | 0.894 | 0.922 | 0.855 | 0.845 | 0.722 | 0.910 | | DFKDE | ResNet-18 | 0.872 | 0.864 | 0.844 | 0.854 | 0.960 | 0.898 | 0.942 | 0.793 | 0.908 | 0.827 | 0.894 | 0.916 | 0.859 | 0.853 | 0.756 | 0.916 | | GANomaly | | 0.834 | 0.864 | 0.844 | 0.852 | 0.836 | 0.863 | 0.863 | 0.760 | 0.905 | 0.777 | 0.894 | 0.916 | 0.853 | 0.833 | 0.571 | 0.881 |

Reference

If you use this library and love it, use this to cite it 🤗

tex @misc{anomalib, title={Anomalib: A Deep Learning Library for Anomaly Detection}, author={Samet Akcay and Dick Ameln and Ashwin Vaidya and Barath Lakshmanan and Nilesh Ahuja and Utku Genc}, year={2022}, eprint={2202.08341}, archivePrefix={arXiv}, primaryClass={cs.CV} }

Contributing

For those who would like to contribute to the library, see CONTRIBUTING.md for details.

Thank you to all of the people who have already made a contribution - we appreciate your support!

Owner

  • Login: lzes
  • Kind: user

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: "Anomalib: A Deep Learning Library for Anomaly Detection"
message: "If you use this library and love it, cite the software and the paper \U0001F917"
authors:
  - given-names: Samet
    family-names: Akcay
    email: samet.akcay@intel.com
    affiliation: Intel
  - given-names: Dick
    family-names: Ameln
    email: dick.ameln@intel.com
    affiliation: Intel
  - given-names: Ashwin
    family-names: Vaidya
    email: ashwin.vaidya@intel.com
    affiliation: Intel
  - given-names: Barath
    family-names: Lakshmanan
    email: barath.lakshmanan@intel.com
    affiliation: Intel
  - given-names: Nilesh
    family-names: Ahuja
    email: nilesh.ahuja@intel.com
    affiliation: Intel
  - given-names: Utku
    family-names: Genc
    email: utku.genc@intel.com
    affiliation: Intel
version: 0.2.6
doi: https://doi.org/10.48550/arXiv.2202.08341
date-released: 2022-02-18
references:
  - type: article
    authors:
      - given-names: Samet
        family-names: Akcay
        email: samet.akcay@intel.com
        affiliation: Intel
      - given-names: Dick
        family-names: Ameln
        email: dick.ameln@intel.com
        affiliation: Intel
      - given-names: Ashwin
        family-names: Vaidya
        email: ashwin.vaidya@intel.com
        affiliation: Intel
      - given-names: Barath
        family-names: Lakshmanan
        email: barath.lakshmanan@intel.com
        affiliation: Intel
      - given-names: Nilesh
        family-names: Ahuja
        email: nilesh.ahuja@intel.com
        affiliation: Intel
      - given-names: Utku
        family-names: Genc
        email: utku.genc@intel.com
        affiliation: Intel
    title: "Anomalib: A Deep Learning Library for Anomaly Detection"
    year: 2022
    journal: ArXiv
    doi: https://doi.org/10.48550/arXiv.2202.08341
    url: https://arxiv.org/abs/2202.08341

abstract: >-
  This paper introduces anomalib, a novel library for
  unsupervised anomaly detection and localization.
  With reproducibility and modularity in mind, this
  open-source library provides algorithms from the
  literature and a set of tools to design custom
  anomaly detection algorithms via a plug-and-play
  approach. Anomalib comprises state-of-the-art
  anomaly detection algorithms that achieve top
  performance on the benchmarks and that can be used
  off-the-shelf. In addition, the library provides
  components to design custom algorithms that could
  be tailored towards specific needs. Additional
  tools, including experiment trackers, visualizers,
  and hyper-parameter optimizers, make it simple to
  design and implement anomaly detection models. The
  library also supports OpenVINO model optimization
  and quantization for real-time deployment. Overall,
  anomalib is an extensive library for the design,
  implementation, and deployment of unsupervised
  anomaly detection models from data to the edge.
keywords:
  - Unsupervised Anomaly detection
  - Unsupervised Anomaly localization
license: Apache-2.0

GitHub Events

Total
Last Year

Dependencies

.github/workflows/code_scan.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
.github/workflows/docs.yml actions
  • actions/checkout v3 composite
  • actions/configure-pages v2 composite
  • actions/deploy-pages v1 composite
  • actions/setup-python v4 composite
  • actions/upload-pages-artifact v1 composite
.github/workflows/labeler.yml actions
  • actions/labeler v4 composite
.github/workflows/nightly.yml actions
  • actions/checkout v2 composite
  • actions/upload-artifact v2 composite
.github/workflows/pre_merge.yml actions
  • actions/checkout v2 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/upload_coverage.yml actions
  • actions/download-artifact v3 composite
.ci/Dockerfile docker
  • base latest build
  • nvidia/cuda 11.4.3-devel-ubuntu20.04 build
pyproject.toml pypi
requirements/base.txt pypi
  • albumentations >=1.1.0
  • av >=10.0.0
  • einops >=0.3.2
  • freia >=0.2
  • imgaug ==0.4.0
  • jsonargparse >=4.3
  • kornia >=0.6.6,<0.6.10
  • matplotlib >=3.4.3
  • omegaconf >=2.1.1
  • opencv-python >=4.5.3.56
  • pandas >=1.1.0
  • pytorch-lightning >=1.7.0,<1.10.0
  • setuptools >=41.0.0
  • timm >=0.5.4,<=0.6.13
  • torchmetrics ==0.10.3
requirements/dev.txt pypi
  • coverage * development
  • pre-commit * development
  • pytest * development
  • pytest-cov * development
  • pytest-order * development
  • pytest-sugar * development
  • pytest-xdist * development
  • tox * development
requirements/docs.txt pypi
  • furo ==2022.9.29
  • ipykernel *
  • myst-parser *
  • nbsphinx >=0.8.9
  • pandoc *
  • sphinx >=4.1.2
  • sphinx-autoapi *
  • sphinxemoji ==0.1.8
requirements/loggers.txt pypi
  • GitPython *
  • comet-ml >=3.31.7
  • gradio >=2.9.4,<4
  • ipykernel *
  • tensorboard *
  • wandb ==0.12.17
requirements/notebooks.txt pypi
  • gitpython *
  • ipykernel *
  • ipywidgets *
  • notebook *
requirements/openvino.txt pypi
  • defusedxml ==0.7.1
  • networkx *
  • nncf >=2.1.0
  • onnx >=1.10.1
  • openvino-dev >=2022.3.0
  • requests >=2.26.0
setup.py pypi