open-edge-platform/anomalib

An anomaly detection library comprising state-of-the-art algorithms and features such as experiment management, hyper-parameter optimization, and edge inference.

📚 Anomalib とは何ですか?

Anomalib は、視覚的異常検出(画像や動画における欠陥や分布外のオブジェクトの検出)のためのオープンソース Python ライブラリです。以下の機能を提供します:

  • モジュール式 API とコマンドラインインターフェース(CLI)による学習、推論、ベンチマーク実行。
  • PyTorch Lightning を基盤に構築された、多くの研究論文(PatchCore、PaDiM、STFPM など)の実装済みモデル。
  • OpenVINO へのエクスポートパイプラインにより、Intel CPU/GPU 上で高速に実行可能なモデルを生成可能。
  • 実験の追跡(W&B、Comet、TensorBoard)や、非プログラマー向けの低コード Web UI である Anomalib Studio といったオプション機能。

主に画像ベースの異常検出に焦点を当てていますが、Tabular ヘルパーによりテーブルデータもサポートしています。


🚀 クイックスタート

インストール

  • 標準 – pip install anomalib(または uv pip install anomalib)。
  • ハードウェア固有の拡張 – [cu126]、[cu130]、[rocm]、[xpu] などを追加して、適切な PyTorch ビルドを取得。
  • オプション機能 – [openvino]、[clip]、[vlm]、[loggers]、[notebooks]、または [full](すべて)。
  • ソースから – リポジトリをクローンし、uv sync --extra <backend> または pip install -e "[dev,<backend>]" を使用。

クイック学習(Python API)

from anomalib.data import MVTecAD
from anomalib.models import Patchcore
from anomalib.engine import Engine

dm = MVTecAD()
model = Patchcore()
engine = Engine()
engine.fit(datamodule=dm, model=model)

クイック学習(CLI)

anomalib train --model Patchcore --data anomalib.data.MVTecAD

推論

  • API – engine.predict(datamodule=dm, model=model, ckpt_path='…')
  • CLI – anomalib predict --model Patchcore --data MVTecAD --ckpt_path model.ckpt
  • Torch、Lightning、Gradio UI、OpenVINO 加速推論をサポート。

🛠️ 主な機能

機能 重要性
モジュール式 API と CLI モデル、データセット、設定を変更してもコードの再記述が不要。
多数のモデル収集 一つの場所で多くの公開された異常検出手法にアクセス可能。
Lightning ベース 学習ループ、チェックポイント、ミックスドプレシジョン、マルチGPUを最小限のコードで処理。
OpenVINO エクスポート PyTorch チェックポイントを Intel 最適化 IR に変換し、低遅延エッジデプロイを実現。
推論ツール バッチ予測、Gradio デモ、ROS/MQTT 統合用の準備済みスクリプト。
Anomalib Studio 事前リリースのノーコード Web アプリ(Docker またはスタンドアロン)で、UI からモデルの学習とデプロイが可能。
実験ログ Lightning ロガー経由で W&B、Comet、TensorBoard などに接続可能。
ハードウェア対応拡張 CPU、CUDA、ROCm、Intel XPU ベンダに応じて必要なものだけをインストール。

📊 ベンチマークと評価

1 つのコマンドでフルベンチマークを実行:

anomalib benchmark --config tools/experimental/benchmarking/sample.yaml

このコマンドは、標準データセット(例:MVTec-AD)上で選択されたモデルを評価し、AUROC、ピクセルレベル AUC、推論速度などのメトリクスを出力します。


🤖 Anomalib Studio(低コード UI)

  • Web ベース – FastAPI バックエンドと React フロントエンドを搭載。
  • USB/IP カメラ、画像フォルダ、ストリームに接続可能。
  • 工業パイプライン向けに ROS メッセージ、MQTT などに出力可能。
  • Docker イメージまたはスタンドアロン UI として配布。
  • まだ 事前リリース であり、API の変更が予想されます。

📚 ドキュメントとコミュニティ

  • 完全なドキュメント: https://anomalib.readthedocs.io
  • 例のノートブックは examples/notebooks にあります。
  • サポートはディスカッションフォーラムと GitHub Issues で。
  • CONTRIBUTING.md に記載のガイドに従って貢献してください。

🎓 どんな人に向いている?

  • 視覚的異常検出の論文で再現可能なベースラインが必要な 研究者。
  • エッジデバイス(Intel CPU/GPU、NVIDIA GPU、AMD ROCm)で欠陥検出パイプラインを構築する 産業エンジニア。
  • 低レベルの学習ループを書かずに、さまざまな異常検出アーキテクチャを実験したい データサイエンティスト。

📦 速見リファレンス

  • Python バージョン: 3.10+
  • コア依存: PyTorch 2.6+、Lightning 2.2+、OpenVINO 2024.0(オプション)
  • ライセンス: Apache-2.0(LICENSE を参照)
  • 最新リリース: v2.6.2(Tabular.from_file のセキュリティ強化)。

  • リポジトリを探索して CLI を試し、ノートブックに飛び込んで、異常検出の実際の動作を見てみましょう!*

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト