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 を試し、ノートブックに飛び込んで、異常検出の実際の動作を見てみましょう!*
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト