製造ラインで「この部品、微妙に傷がついていないか?」を人間の目で1つずつ確認する——2026年になってもこの作業は多くの工場で続いている。anomalib(アノマリブ)は、この異常検知をAIで自動化するためのオープンソースライブラリだ。

下の画像が、anomalibが実際に出す「答え」だ。左からプリント基板の入力画像、正解マスク、異常ヒートマップ、AIが予測した異常領域、そして元画像への重ね合わせ。基板の一部を「ここが怪しい」と赤くマークし、どこがどれだけ異常かをピクセル単位で可視化している。コードを読む前に、まずこの出力イメージを掴んでおくと、以降の話が一気に腹落ちする。

anomalibの異常検知結果。プリント基板の入力・正解マスク・異常ヒートマップ・予測マスク・セグメンテーション重ね合わせを横並びで表示
anomalibの推論結果。入力画像から異常ヒートマップと異常領域マスクまでを自動生成する(出典: open-edge-platform/anomalib README
30秒でわかる anomalib
何ができる:正常画像だけを学習し、傷・汚れ・欠け・変形など「正常から外れたもの」を画像・動画からピクセル単位で自動検出する
何を解決:不良品サンプルが集まらない現場でも、正常データのみで異常検知AIを構築できる(教師あり分類では代替不可)
何を代替:ルールベースの画像処理検査/論文ごとの個別実装/高価な商用外観検査ソフトの一部用途/GPU前提の重い推論(OpenVINOでCPU化)
3行で動くpip install anomalibPatchcore()engine.fit()。CLI・ノーコードのAnomalib Studioも同梱

anomalibの強みは「3行のPythonで最新の異常検知AIが動く」こと。Patchcore、STFPM、PaDiMといった学術論文で発表されたアルゴリズムを、PyTorch Lightningベースの統一APIで即座に利用できる。さらにIntel OpenVINO形式にエクスポートすれば、GPUがないCPUだけの環境でも高速推論が可能になる。

この記事では、anomalibが「何ができて」「何を解決し」「何を代替するのか」を軸に、インストールから異常検知モデルの学習・推論・デプロイまでを実践的に解説する。

この記事でわかること
anomalibとは何か — 異常検知AIを統一APIでまとめたライブラリ
インストールと初回実行 — pip 1コマンド、Python 3行で動く
主要アルゴリズム — Patchcore・STFPM・PaDiMの違いと選び方
Anomalib Studio — コードなしで外観検査を組む
OpenVINOデプロイと本番運用 — CPUで高速推論、エッジからクラウドまで
自社データでの活用と精度チューニング — 製造・監視・医療の使い分け

anomalibは検査ワークフローを自動化する部品として使われることが多い。検査を人手からエージェント的な自動処理に置き換える文脈では AIエージェントフレームワーク比較2026年版 も参考になる。

anomalibとは — 異常検知AIを統一APIでまとめたライブラリ

anomalibは、Intel系の open-edge-platform チーム(旧OpenVINOチーム)が開発・メンテナンスするオープンソースの異常検知(Anomaly Detection)ライブラリだ。GitHubスター5,900以上、Apache 2.0ライセンスで商用利用可能。学術論文で発表された画像・動画向けの異常検知アルゴリズムを「すぐ使える実装」として集約し、ベンチマーク・開発・デプロイまでを一気通貫で支援する。

リポジトリ移管の注意
anomalibのリポジトリは openvinotoolkit/anomalib から open-edge-platform/anomalib へ移管された。旧URLは自動リダイレクトされるため既存のブックマークやpip installは動くが、ドキュメントや画像の実体は open-edge-platform 配下にある。本記事のリンク・画像はすべて現在の正式な配置先を参照している。

何を解決するのか — 異常検知AI特有の3つの壁

異常検知AIの開発には、通常の画像分類とは違う特有の壁がある。anomalibはその一つひとつに解を用意している。

課題 従来のアプローチ anomalibの解決策
アルゴリズム選定 論文を読んで自前実装 十数種のアルゴリズムを統一APIで提供
データ不足 異常データは少ない(正常データのみで学習したい) 正常データのみで学習できるアルゴリズムを搭載
ベンチマーク 各アルゴリズムの比較が困難 MVTecAD等で統一的にベンチマーク可能
デプロイ PyTorchモデルのまま本番投入は重い OpenVINO/ONNX形式にエクスポート可能
専門知識 画像処理・深層学習の知識が必要 CLI/Studio でノーコード利用も可能

最大の特徴は「正常データだけで学習できる」点。製造業では「不良品のデータ」を大量に集めるのが困難だ。anomalibのアルゴリズムは正常パターンを学習し、そこから外れたものを「異常」として検出する。不良品のサンプルが1枚もなくても異常検知モデルを構築できる——これが、教師あり画像分類では代替できないanomalibの核心的な価値だ。

何を代替するのか

anomalibが置き換えるのは、次のような従来手段だ。

ルールベースの画像処理検査(閾値・輪郭抽出のチューニング地獄)を、正常データからの学習に置き換える
論文の個別実装(Patchcore用リポジトリ、PaDiM用リポジトリ…)を、1つの統一APIに集約する
高価な商用外観検査ソフトの一部用途を、自社完結のOSSで代替する
GPU前提の重い推論を、OpenVINOによるCPU推論に置き換えてハード費用を下げる

リポジトリ情報

項目 内容
リポジトリ open-edge-platform/anomalib
スター 5,905(2026年7月時点)
ライセンス Apache 2.0(商用利用可)
言語 Python
依存 PyTorch 2.6+、PyTorch Lightning 2.2+、OpenVINO 2024.0+
対応環境 CPU、CUDA、ROCm、Intel XPU
最新バージョン v2.5.0

v2.5.0では新たに INP-Former(正常プロトタイプによる汎用異常検知)、GLASS(異常サンプル合成で局在化精度を上げる手法)、AnomalyVFM(Vision Foundation Modelによるゼロショット異常検知=学習画像すら不要)、CFM(クロスモーダル特徴マッピングによる3D異常検知)の4モデルが追加された。ライブラリが今も活発に更新されている証拠でもある。


インストールと初回実行 — 3行のPythonで異常検知が動く

anomalibはPyPIから入る。まず1コマンドでインストールする。

# uv(高速)または pip でインストール
uv pip install anomalib
# もしくは
pip install anomalib

ハードウェアや用途に応じて「extra」を付けると、依存が自動で最適化される。API羅列で覚える必要はなく、下表から必要なものを選ぶだけだ。

extra 指定 用途
anomalib[cpu] CPUのみ(全プラットフォーム対応・デフォルト)
anomalib[cu130] NVIDIA GPU(CUDA 13.0)
anomalib[rocm] AMD GPU(ROCm・Linux)
anomalib[xpu] Intel GPU(XPU・Linux)
anomalib[openvino] Intel CPUでの推論高速化
anomalib[full] すべてのオプション依存

複数指定も可能で、たとえば uv pip install "anomalib[openvino,cu130]" とすればOpenVINO推論とCUDA学習を両立できる。

最小コード — 学習から推論まで

インストールできたら、公式READMEどおりの手順で学習・推論が走る。MVTecAD(製造業向けベンチマーク)を使えばデータ準備すら不要で、初回実行時に自動ダウンロードされる。

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

datamodule = MVTecAD()      # ベンチマークデータ(初回に自動DL)
model = Patchcore()         # 使うアルゴリズム
engine = Engine()

engine.fit(datamodule=datamodule, model=model)              # 学習
predictions = engine.predict(datamodule=datamodule, model=model,
                             ckpt_path="path/to/model.ckpt")  # 推論

model = Patchcore() の部分を Stfpm()Padim() に差し替えるだけで、別アルゴリズムに切り替えられる。APIが統一されているため、比較実験のコストが極端に低いのがanomalibの設計思想だ。

CLIで実行(コードなし)

Pythonを書かずに、コマンドラインだけでも同じことができる。

# 学習(カテゴリ指定も可能)
anomalib train --model Patchcore --data anomalib.data.MVTecAD --data.category transistor

# 推論
anomalib predict --model anomalib.models.Patchcore \
                 --data anomalib.data.MVTecAD \
                 --ckpt_path path/to/model.ckpt
MVTecADデータセット
MVTecADは製造業向けの異常検知ベンチマーク。ボトル、ケーブル、カプセル、カーペットなど15カテゴリの正常・異常画像を含む。anomalibが初回実行時に自動ダウンロードするため、事前準備は不要。まず自分の環境で「動くこと」を確認する用途に最適。

主要アルゴリズム — Patchcore・STFPM・PaDiMの選び方

anomalibは十数種の異常検知アルゴリズムを搭載している。まずは定番3つの違いを押さえれば十分だ。

アルゴリズム 方式 精度傾向 推論速度 メモリ 向いているケース
Patchcore メモリバンク型 最高水準 精度最優先。正常データが十分にある場合
STFPM 生徒-教師蒸留型 高速 リアルタイム推論・エッジデバイス向け
PaDiM 確率分布型 高速 バランス型。最初の選択肢として無難
EfficientAd 軽量特徴型 最速 ライン速度に追従したい高速検査
AnomalyVFM ゼロショット 中〜高 学習データを用意できない・試作段階

「どれを選ぶか」は、突き詰めるとリアルタイム性の要否動かすハードの2軸でほぼ決まる。下のフローに沿えば迷わない。

graph TD A["異常検知の要件"] --> B{"リアルタイム
推論が必要?"} B -->|"はい"| C{"エッジ
デバイス?"} B -->|"いいえ"| D["Patchcore
(精度最優先)"] C -->|"はい"| E["STFPM / EfficientAd
(軽量・高速)"] C -->|"いいえ"| F["PaDiM
(バランス型)"]

学習データが1枚もないとき — ゼロショットという選択肢

v2.5.0で追加された AnomalyVFM や、anomalib[clip] で使える WinCLIP は、正常画像すら用意せずに異常を検知できる「ゼロショット」モデルだ。汎用の視覚基盤モデル(Vision Foundation Model)の知識を流用するため、「まず試したいがデータ収集はこれから」という立ち上げ段階で威力を発揮する。精度は専用学習したPatchcore等に劣るが、データがゼロでも今日から動かせる点が、従来の異常検知にはなかった代替手段だ。


Anomalib Studio — コードなしで外観検査を組む

anomalibにはWebベースのGUIツール「Anomalib Studio」が用意されている。コードを一切書かずに、ブラウザ上でデータのアップロード・学習・推論・デプロイまでを完結できる、ローコード/ノーコードのアプリケーションだ。

Anomalib StudioのUI。左に推論プレビュー、上部に推論デバイス選択(CPU)、右にhazelnutの正常画像データセットとTrain modelボタンを表示
Anomalib StudioのUI。正常画像をアップロードし、推論デバイス(CPU/GPU)を選んでワンクリックで学習できる(出典: open-edge-platform/anomalib README

Studioでできること

機能 説明
データ入力 画像フォルダのアップロード、USBカメラ・IPカメラ接続に対応
モデル選択 Patchcore/STFPM/PaDiM等をUIから選択
学習実行 「Train model」ボタンで学習開始
推論プレビュー Anomaly Mapのトグルで異常ヒートマップを表示
推論デバイス CPU/GPUをプルダウンで切り替え
産業連携出力 ROSメッセージ・MQTT等で製造ラインへ結果を送出

製造現場の技術者がPythonを知らなくても、Studioだけで外観検査システムを構築できる。USBカメラをPCに接続し、正常品を数十枚撮影して学習すれば、リアルタイムの異常検知が動き出す。ここが、コーディング必須だった従来の検査AI開発を代替する部分だ。

Anomalib Studioは Dockerコンテナ版スタンドアロン版 の2形態で配布される。開発ビルドはバックエンド(uv sync)とフロントエンド(npm install)を用意し、それぞれ起動して http://localhost:3000 にアクセスする。ソースはリポジトリの application/ 配下にあり、各READMEに手順がまとまっている。


OpenVINOデプロイと本番運用 — CPUで高速推論、エッジからクラウドまで

anomalibの大きな強みが、Intel OpenVINO 形式へのエクスポートだ。多くのモデルはOpenVINO IR(中間表現)に書き出せ、GPUがなくてもCPUだけで加速された推論が可能になる。CLIなら anomalib export、Python APIなら engine.export() でIRを生成し、推論には OpenVINOInferencer を使う。

推論構成による性能傾向

推論の速度とメモリは「どの形式で・どのハードで動かすか」で大きく変わる。下表は絶対値ではなく相対的な傾向の目安として捉えてほしい。

推論構成 相対速度 相対メモリ 位置づけ
PyTorch(GPU) 速い 学習・実験フェーズ向け
PyTorch(CPU) 遅い GPUなし環境のベースライン
OpenVINO(CPU) 速い Intel CPUで加速。本番エッジ向け
OpenVINO + INT8量子化(CPU) 最速 最小 エッジ最適化。精度への影響は要検証
数値は必ず自環境で計測すること
上表は相対的な傾向であり、実測値はモデル・画像サイズ・CPU世代・バッチサイズで大きく変動する。公式は「OpenVINOで加速できる」ことを示しているが、絶対的な推論時間を保証していない。導入前に必ず自環境でベンチマークすること。

OpenVINO化により、工場のエッジPCにGPUを搭載しなくても検査が回せる。ネットワーク接続なしでスタンドアロン稼働できる点も、外部にデータを出せない工場・防衛関連では決定的な利点になる。

本番導入の3パターン

anomalibを本番に載せる構成は、おおむね次の3つに集約される。

エッジPC型:カメラ → エッジPC(OpenVINO推論)→ 異常時アラート。USBカメラ+小型PCで完結する最短構成
バッチ処理型:1日分の検査画像をフォルダ単位で一括推論し、品質レポートを出力する構成
APIサーバー型:FastAPI等でREST APIとして提供し、複数ラインの結果をダッシュボードに集約する構成

学習からデプロイまでの全体フローは次のとおり。精度が出るまで「データ追加・アルゴリズム変更 → 再学習」を回し、合格したらエクスポートして配置する。

graph TD A["データ収集
正常画像50枚+"] --> B["モデル学習
anomalib train"] B --> C["精度評価
anomalib predict"] C --> D{"精度OK?"} D -->|"No"| E["データ追加
or アルゴリズム変更"] E --> B D -->|"Yes"| F["OpenVINO
エクスポート"] F --> G{"デプロイ先"} G --> H["エッジPC"] G --> I["バッチ処理"] G --> J["APIサーバー"]

自社データでの活用と精度チューニング — 製造・監視・医療

MVTecADで動作確認できたら、次は自社データだ。anomalibの Folder データモジュールを使えば、決まったディレクトリ構成に画像を置くだけで学習できる。異常画像フォルダは省略可能で、正常画像だけでも学習が始められる

ディレクトリ構成のルール

data/my_product/
├── train/
│   └── normal/          # 正常画像(学習用)50枚以上推奨
├── test/
│   ├── normal/          # 正常画像(テスト用)
│   └── abnormal/        # 異常画像(テスト用・オプション)
└── ground_truth/
    └── abnormal/        # 異常箇所のマスク画像(Pixel精度評価用・オプション)

データ準備のコツ

ポイント 説明
正常画像の枚数 最低50枚、理想は200〜500枚。多いほど正常パターンの網羅性が上がる
撮影条件 照明・角度・背景のバリエーションを含める。本番と同条件で撮ることが最重要
画像サイズ 統一不要(自動リサイズ)だが、元画像は高解像度を推奨
異常画像 なくても学習可能。あれば精度評価(AUROC計算)に使える
ground_truth 「どこが異常か」のPixel精度評価に必要。「異常かどうか」だけなら不要

業務シナリオからの逆引き — どのアルゴリズムで始めるか

「試したいが、どれから始めるべきか」は公式READMEでは判断しづらい。用途別に、推奨アルゴリズム・必要枚数・推論ハードの目安を整理した(検出率は一般的な傾向で、実測は自データで要確認)。

業務シナリオ 推奨アルゴリズム 学習画像枚数 推論ハード 留意点
製造ラインの外観検査(ボトル・ネジ等) Patchcore 200〜500枚 CPU+OpenVINO 照明条件を本番と揃える
プリント基板の半田不良 STFPM 1,000枚〜 GPU推奨 カラーチャネル正規化
監視カメラ映像の異常行動 動画対応モデル+前処理 100クリップ〜 GPU必須 動体検出と組合せ
医療画像の病変検出 PaDiM 数千枚〜 GPU推奨 クラス別の閾値調整必須
インフラ点検(ドローン空撮) Patchcore 300枚〜 エッジCPU 距離・スケール正規化が鍵

工場のエッジPCで動かすなら、PatchcoreをOpenVINO INT8で量子化する組み合わせが、コスト・速度・精度のバランスで最も現実的だ。

精度チューニングの勘所

anomalibはハイパーパラメータ最適化(HPO)を内蔵しており、Weights & Biases(W&B)やComet.mlと連携して最適値を自動探索できる。実行は anomalib hpo --backend WANDB --sweep_config tools/hpo/configs/wandb.yaml の形。手で調整する場合、効きが大きいのは次のパラメータだ。

パラメータ 説明 目安
backbone 特徴抽出ネットワーク 精度重視は wide_resnet50_2、軽量重視は resnet18
coreset_sampling_ratio メモリバンクのサンプリング率(Patchcore) 0.01〜0.1
num_neighbors k近傍法のk(Patchcore) 3〜15
image_size 入力画像サイズ 224 / 256 / 384

精度に最も効くのは backbone の選択。wide_resnet50_2 は精度が高い反面、推論が重い。エッジ向けに resnet18 へ落とすと推論は軽くなるが精度は下がる——このトレードオフの最適点を探すのがHPOの役割だ。実験ログはW&B・Comet.ml・TensorBoardの3ロガーに対応し、学習曲線や異常スコア分布、推論結果の可視化をリアルタイムで追える。


他ツールとの比較と、導入前に知るべき限界

「画像の異常検知」でanomalibを選ぶ理由を、他の代表的ライブラリと比較して確認する。

項目 anomalib PyOD scikit-learn
対象データ 画像・動画 テーブルデータ テーブルデータ
手法 深層学習(CNN/VFM) 統計・浅い学習 統計・浅い学習
アルゴリズム数 十数種(画像特化) 50以上(テーブル特化) Isolation Forest等
GPU対応 CUDA / ROCm / XPU 一部 なし
デプロイ OpenVINO / ONNX なし joblib
ノーコード Studio あり なし なし
ライセンス Apache 2.0 BSD-2 BSD-3

画像ベースの異常検知ならanomalib一択。 一方、数値・ログのようなテーブルデータの異常検知にはPyODやscikit-learnのIsolation Forestが適する。「何を代替するか」を取り違えないことが重要だ。

商用サービスとの使い分け

項目 anomalib クラウド型検査AI(一般論)
料金 無料(OSS) 従量課金・月額
カスタマイズ フルコントロール 限定的・ブラックボックス寄り
デプロイ先 自由(エッジ〜クラウド) ベンダー環境中心
アルゴリズム選択 十数種から選択 自動(選べないことが多い)
データ所有権 完全に自社 ベンダーへ送信
セットアップ工数 中(Python知識が要る) 低(GUI中心)

「データを外部に出せない」製造業や防衛関連では、自社完結できるanomalibが有力な選択肢になる。逆に、セットアップの手間を最小化したいだけならGUI型の商用サービスが向く。ここは正直に用途で選び分けたい。

導入前に理解すべき限界

anomalibは強力だが万能ではない。次の限界は導入前に必ず押さえておく。

限界 詳細 対処
正常の定義が曖昧 「何が正常か」が不明確だとモデルが混乱する 正常品の基準を厳密に定義してから収集
環境変化に弱い 照明・背景が変わると精度が落ちる 学習データに環境バリエーションを含める
微細な異常 ごく小さな欠陥は検出が難しい 高解像度カメラ+拡大撮影で対応
偽陽性 正常品を異常と誤判定する 閾値調整+人間レビューを併用
未知の異常パターン 学習時に想定しない異常 定期的なモデル再学習

異常検知AIは「人間の検査員を置き換える」ものではなく、「人間の見落としを補完する」ものとして導入するのが成功の鍵だ。最終判断は人間が行い、AIは「ここが怪しい」というアラートを出す役割に徹する——この設計が、実運用で最も安定する。


まとめ — anomalibで異常検知AIを始める3ステップ

  1. uv pip install anomalib でインストール
  2. 正常画像を50枚以上用意して Folder データモジュールに設定
  3. engine.fit() で学習、engine.predict() で推論

GPUがなくても、OpenVINOエクスポートでCPU推論が加速する。Anomalib Studioを使えば、コードなしでブラウザから外観検査を組める。そしてanomalib最大の価値は、不良品データが集まるのを待たずに、正常データだけで今日から始められることだ。

検査ワークフローの自動化は AIエージェントフレームワーク と組み合わせて設計でき、GitHub Actions を使えばCI/CDパイプラインに異常検知を組み込むこともできる。

参照ソース

</content> </invoke>