Skip to content
antonemanuel edited this page Aug 20, 2021 · 1 revision

anodet

A set of functions and classes for performing anomaly detection in images using features from pretrained neural networks.

The package includes functions and classes for extracting, modifying and comparing features. It also includes unofficial implementations of PaDiM and PatchCore.

Some code has been borrowed and/or inspired by other repositories, see code reference below.

See wiki for documentation.

Installation

Clone the repository

git clone https://github.com/OpenAOI/anodet.git

Install the package

cd anodet
python -m pip install -r requirements.txt
python -m pip install .

Usage example

# Prepare a dataloader and fit a model to the data
dataloader = DataLoader(...)
padim = anodet.Padim() 
padim.fit(dataloader)

# Prepare some test images and make predictions
batch = ...
image_scores, score_map = padim.predict(batch) 

See notebooks for in depth examples.

Development setup

Install

Install the package in editable mode

python -m pip install --editable [PATH TO REPOSITORY]

Tests

Install packages for testing

python -m pip install pytest pytest-mypy pytest-flake8

Run tests

cd [PATH TO REPOSITORY]
pytest --mypy --flake8

For configuration of pytest, mypy and flake8 edit setup.cfg.

Creating docs

Install pydoc-markdown

python -m pip install pydoc-markdown

Clone docs repository

git clone https://github.com/OpenAOI/anodet.wiki.git

Run script

cd anodet.wiki
python generate_docs.py --source-path=[PATH TO REPOSITORY] --package-name="anodet" --save-path=.

Code Reference

Some parts used in patch_core.py : https://github.com/hcw-00/PatchCore_anomaly_detection

Code in directory sampling_methods : https://github.com/google/active-learning

concatenate_two_layers function in feature_extraction.py : https://github.com/xiahaifeng1995/PaDiM-Anomaly-Detection-Localization-master

pytorch_cov function in utils.py : https://github.com/pytorch/pytorch/issues/19037

Clone this wiki locally