Skip to main content

Templates for anomaly detection with computer vision using anomalib library.

Project description



Sinapsis Anomalib

Module to provide anomaly detection training, inference and export with Anomalib.

🐍 Installation 🚀 Features 📚 Usage Example📙 Documentation 🔍 License

🐍 Installation

Install using your package manager of choice. We encourage the use of uv

Example with uv:

  uv pip install sinapsis-anomalib --extra-index-url https://pypi.sinapsis.tech

or with raw pip:

  pip install sinapsis-anomalib --extra-index-url https://pypi.sinapsis.tech

[!IMPORTANT] Templates in each package may require extra dependencies. For development, we recommend installing the package with all the optional dependencies:

with uv:

  uv pip install sinapsis-anomalib[all] --extra-index-url https://pypi.sinapsis.tech

or with raw pip:

  pip install sinapsis-anomalib[all] --extra-index-url https://pypi.sinapsis.tech

🚀 Features

Templates Supported

The Sinapsis Anomalib provides a powerful and flexible implementation for anomaly detection with Anomalib library.

  • AnomalibTorchInference
    Run anomaly detection inference using PyTorch models.
  • AnomalibOpenVINOInference
    Perform optimized inference using OpenVINO-accelerated models.
  • AnomalibTrain
    Train custom anomaly detection models with Anomalib.
  • AnomalibExport
    Export trained models for deployment in different formats.

[!TIP] Use CLI command sinapsis info --all-template-names to show a list with all the available Template names installed with Sinapsis Anomalib.

[!TIP] Use CLI command sinapsis info --example-template-config TEMPLATE_NAME to produce an example Agent config for the Template specified in TEMPLATE_NAME.

For example, for CflowTrain use sinapsis info --example-template-config CflowTrain to produce the following example config:

agent:
  name: my_test_agent
templates:
- template_name: InputTemplate
  class_name: InputTemplate
  attributes: {}
- template_name: CflowTrain
  class_name: CflowTrain
  template_input: InputTemplate
  attributes:
    folder_attributes:
      name: 'dataset'
      root: null
      normal_dir: 'images/normal'
      abnormal_dir: null
      normal_test_dir: null
      mask_dir: null
      normal_split_ratio: 0.2
      extensions: null
      train_batch_size: 32
      eval_batch_size: 32
      num_workers: 8
      test_split_mode:
      - from_dir
      test_split_ratio: 0.2
      val_split_mode:
      - from_test
      val_split_ratio: 0.5
      seed: null
    callbacks: null
    normalization: null
    threshold: null
    image_metrics: null
    pixel_metrics: null
    logger: null
    callback_configs: null
    logger_configs: null
    ckpt_path: null
    train_root: null
    trainer_args:
      devices: auto
      accelerator: cpu
      min_epochs: 1
      max_epochs: 5
    cflow_init:
      backbone: wide_resnet50_2
      layers:
      - layer2
      - layer3
      - layer4
      pre_trained: true
      fiber_batch_size: 64
      decoder: freia-cflow
      condition_vector: 128
      coupling_blocks: 8
      clamp_alpha: 1.9
      permute_soft: false
      lr: 0.0001
      pre_processor: true
      post_processor: true
      evaluator: true
      visualizer: true
🚫 Excluded Models

Some models that required additional configuration have been excluded and support for this will be included in future releases.

  • EfficientAd
  • VlmAd
  • Cfa
  • Dfkde
  • Fastflow
  • Supersimplenet
  • AiVad

For all other supported models, refer to the Anomalib documentation linked above.

📚 Usage Example

Below is an example configuration for **Sinapsis Anomalib** using a CFLOW model. This setup trains an anomaly detection model with configurable hyperparameters, including learning rate and epochs, and exports it in OpenVINO format for optimized inference. The pipeline includes training, model export, and predefined paths for outputs.
Example config
agent:
  name: anomalib_train_export

templates:
- template_name: InputTemplate
  class_name: InputTemplate
  attributes: {}

- template_name: CflowTrain
  class_name: CflowTrain
  attributes:
    folder_attributes_config_path: "configs/datamodule_config.yml"
    train_root: "model"
    max_epochs: 1
    cflow_init:
      lr: 0.0001

- template_name: CflowExport
  class_name: CflowExport
  attributes:
    generic_key_chkpt: "CflowTrain"
    export_type: "openvino"
    export_root: "results/model/exported"

This configuration defines an agent and a sequence of templates to train and export a model based on a certain data configuration.

[!IMPORTANT] Attributes specified under the *_init keys (e.g., cflow_init) correspond directly to the Anomalib models parameters. Ensure that values are assigned correctly according to the official Anomalib documentation, as they affect the behavior and performance of the model.

To run the config, use the CLI:

sinapsis run name_of_config.yml

📙 Documentation

Documentation for this and other sinapsis packages is available on the sinapsis website

Tutorials for different projects within sinapsis are available at sinapsis tutorials page

🔍 License

This project is licensed under the AGPLv3 license, which encourages open collaboration and sharing. For more details, please refer to the LICENSE file.

For commercial use, please refer to our official Sinapsis website for information on obtaining a commercial license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sinapsis_anomalib-0.1.13.tar.gz (30.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sinapsis_anomalib-0.1.13-py3-none-any.whl (34.4 kB view details)

Uploaded Python 3

File details

Details for the file sinapsis_anomalib-0.1.13.tar.gz.

File metadata

  • Download URL: sinapsis_anomalib-0.1.13.tar.gz
  • Upload date:
  • Size: 30.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.16

File hashes

Hashes for sinapsis_anomalib-0.1.13.tar.gz
Algorithm Hash digest
SHA256 6a458aa1cee4da3c26de151310b01cbf97f9cfc70719299c1d0a3bdcba427603
MD5 012f8d9a2fce57fe10db7328e667258c
BLAKE2b-256 9ada966b9f221271dff344fba1410d24f533eecf074ab24caf0b2778710cca9e

See more details on using hashes here.

File details

Details for the file sinapsis_anomalib-0.1.13-py3-none-any.whl.

File metadata

File hashes

Hashes for sinapsis_anomalib-0.1.13-py3-none-any.whl
Algorithm Hash digest
SHA256 a9b9ed16cbde0d78051bdb2637714bffcb0fce85c0a2b7e904dbc8d7ade19c9f
MD5 57dd15a41682a86164e622711dc0784b
BLAKE2b-256 e013ccda1bc7ab45c314894032a19a03685ead909e518d0d25f4c01ab077d9cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page