製造ラインで「この部品、微妙に傷がついていないか?」を人間の目で1つずつ確認する——2026年になってもこの作業は多くの工場で続いている。anomalib(アノマリブ)は、この異常検知をAIで自動化するためのオープンソースライブラリだ。
下の画像が、anomalibが実際に出す「答え」だ。左からプリント基板の入力画像、正解マスク、異常ヒートマップ、AIが予測した異常領域、そして元画像への重ね合わせ。基板の一部を「ここが怪しい」と赤くマークし、どこがどれだけ異常かをピクセル単位で可視化している。コードを読む前に、まずこの出力イメージを掴んでおくと、以降の話が一気に腹落ちする。

何ができる:正常画像だけを学習し、傷・汚れ・欠け・変形など「正常から外れたもの」を画像・動画からピクセル単位で自動検出する
何を解決:不良品サンプルが集まらない現場でも、正常データのみで異常検知AIを構築できる(教師あり分類では代替不可)
何を代替:ルールベースの画像処理検査/論文ごとの個別実装/高価な商用外観検査ソフトの一部用途/GPU前提の重い推論(OpenVINOでCPU化)
3行で動く:
pip install anomalib → Patchcore() → 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は製造業向けの異常検知ベンチマーク。ボトル、ケーブル、カプセル、カーペットなど15カテゴリの正常・異常画像を含む。anomalibが初回実行時に自動ダウンロードするため、事前準備は不要。まず自分の環境で「動くこと」を確認する用途に最適。
主要アルゴリズム — Patchcore・STFPM・PaDiMの選び方
anomalibは十数種の異常検知アルゴリズムを搭載している。まずは定番3つの違いを押さえれば十分だ。
| アルゴリズム | 方式 | 精度傾向 | 推論速度 | メモリ | 向いているケース |
|---|---|---|---|---|---|
| Patchcore | メモリバンク型 | 最高水準 | 中 | 大 | 精度最優先。正常データが十分にある場合 |
| STFPM | 生徒-教師蒸留型 | 高 | 高速 | 小 | リアルタイム推論・エッジデバイス向け |
| PaDiM | 確率分布型 | 高 | 高速 | 中 | バランス型。最初の選択肢として無難 |
| EfficientAd | 軽量特徴型 | 高 | 最速 | 小 | ライン速度に追従したい高速検査 |
| AnomalyVFM | ゼロショット | 中〜高 | 中 | 中 | 学習データを用意できない・試作段階 |
「どれを選ぶか」は、突き詰めるとリアルタイム性の要否と動かすハードの2軸でほぼ決まる。下のフローに沿えば迷わない。
推論が必要?"} 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」が用意されている。コードを一切書かずに、ブラウザ上でデータのアップロード・学習・推論・デプロイまでを完結できる、ローコード/ノーコードのアプリケーションだ。

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として提供し、複数ラインの結果をダッシュボードに集約する構成
学習からデプロイまでの全体フローは次のとおり。精度が出るまで「データ追加・アルゴリズム変更 → 再学習」を回し、合格したらエクスポートして配置する。
正常画像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ステップ
uv pip install anomalibでインストール- 正常画像を50枚以上用意して
Folderデータモジュールに設定 engine.fit()で学習、engine.predict()で推論
GPUがなくても、OpenVINOエクスポートでCPU推論が加速する。Anomalib Studioを使えば、コードなしでブラウザから外観検査を組める。そしてanomalib最大の価値は、不良品データが集まるのを待たずに、正常データだけで今日から始められることだ。
検査ワークフローの自動化は AIエージェントフレームワーク と組み合わせて設計でき、GitHub Actions を使えばCI/CDパイプラインに異常検知を組み込むこともできる。
参照ソース
- open-edge-platform/anomalib — GitHub
- Anomalib Documentation
- Defect Detection with Anomalib and OpenVINO — Intel
- Anomaly Detection with FiftyOne and Anomalib — Voxel51
</content> </invoke>