AD Workbench のアルゴリズムは、いずれも同じ結果物を出力します。ピクセルごとの異常度ヒートマップと画像の代表スコアで、判定は score ≥ Threshold → NG です。違いは、何で特徴を抽出し、異常度をどう測るかにあります。この違いが、必要なデータ量、速度、得意な欠陥の種類を左右します。
2つの学習方式
A. 統計・特徴収集型 (1-pass) — PaDiM、PatchCore、SPADE、AnomalyDINO、WinCLIP、HoleMetric、Tiled 2種
正常画像を一度走査して特徴を集めたり、平均・共分散を計算したりします。逆伝播がないため epoch の概念がなく、学習は数秒〜数分で終わります。一方、集めた特徴を保存するため、モデルファイルが大きくなることがあります。
B. 勾配降下学習型 — EfficientAD、FastFlow (20 epochs)、Dinomaly2 (5,000 iterations)
ニューラルネットワークの重みを実際に学習するため、時間がかかります。その代わり推論が速く、モデルファイルが小さくなります。ラインのタクトタイムが厳しい場合の候補になります。
11種の一覧
| アルゴリズム | 特徴抽出 | 異常度の計算 | 主な強み |
|---|---|---|---|
| PaDiM | WideResNet50-2 | 位置ごとのガウス分布とのマハラノビス距離 | 位置固定の対象、欠陥位置が鮮明 |
| PatchCore | WideResNet50-2 | メモリバンクとの k 近傍距離 | 最高水準の精度(推奨の標準) |
| SPADE | WideResNet50-2 | 類似した正常K枚との位置ごとの最小距離 | シンプル、小規模データで素早く構築 |
| WinCLIP | CLIP ViT-B-16+ | 「正常/不良」のテキストとの類似度 | 正常画像がほぼなくてもすぐ試せる |
| EfficientAD | 軽量の専用ネットワーク | Teacher–Student の不一致 + 再構成誤差 | 推論が非常に高速 |
| FastFlow | WideResNet50-2 | Normalizing Flow による確率密度 | モデルが小さく推論が高速 |
| AnomalyDINO | DINOv2 ViT | パッチトークンの最近傍コサイン距離 | 複雑形状、few-shot、位置変動 |
| Dinomaly2 | DINOv2 + デコーダ | エンコーダとデコーダの特徴の差 | 複数ビューを1つのモデルに統合 |
| HoleMetric | 従来型ビジョン | 位置合わせ後のピクセル・セル統計 | 穴・セル単位の微細形状、CPU、学習3秒 |
| AnomalyDINO Tiled | DINOv2 ViT-B/14 | 原寸解像度のタイルごとのバンク | 高解像度の微細欠陥、異物・欠け |
| PatchCore Tiled | WideResNet50-2 | タイルごとの coreset バンク | 正常20枚以上、微細な表面欠陥 |
基盤モデル(Foundation Model)がもたらした変化
WinCLIP、AnomalyDINO、Dinomaly2 は、1億枚を超える画像で事前学習された汎用ビジョンモデル(CLIP、DINOv2)の特徴をそのまま利用します。これらのモデルは「物体の構造」をよく表現するよう学習済みのため、正常画像が数枚しかなくても、正常と異常を区別できる特徴を抽出します。WinCLIP は画像と文章を一緒に学習した CLIP を使うので、正常画像が0枚でも、「傷のない部品」と「傷のある部品」という文章との類似度で判定を試みます(Zero-shot)。データを集める前に検査が可能かどうかを見極める用途に役立ちます。
高解像度の微細欠陥 — タイル方式
多くのモデルは、画像を512ピクセル前後に縮小して処理します。2048ピクセルの原画像を4分の1に縮小すると、直径4ピクセルの穴の詰まりは1ピクセルになって消えてしまいます。タイル方式では、まず部品を位置合わせしたうえで、原寸解像度のまま518ピクセルのタイル(10%オーバーラップ)に分割し、タイルごとに別々のバンクを作ります。原寸では穴ひとつが4×4パッチとして見えるため、セル単位の欠陥が特徴に残ります。
HoleMetric はディープラーニングを使わず、位置合わせと統計によって穴(セル)ごとの明るさ・暗部の比率・ばらつきを計測し、どのセルが原因でNGになったかを cell_report.csv で説明します。不定形の異常(異物、欠け)に強い AnomalyDINO Tiled と併用する構成を推奨します。
選定ガイド
| 状況 | 推奨 | 理由 |
|---|---|---|
| 正常0〜10枚(実現性の検討) | WinCLIP · AnomalyDINO | Zero/Few-shot ですぐ試せる |
| 正常10〜50枚 | AnomalyDINO · SPADE · HoleMetric · Tiled | 学習を伴わないバンク・統計方式 |
| 正常50〜300枚 | PatchCore · AnomalyDINO · PaDiM | 最高水準の精度 |
| 正常300枚以上 | PatchCore · Dinomaly2 | ビューが複数なら Dinomaly2 ひとつで対応 |
| 治具で固定、常に同じ位置 | PaDiM · PatchCore · HoleMetric | 位置ごとの基準が正確に合う |
| 対象が移動する、または少し回転する | AnomalyDINO | 位置変化に比較的強い |
| コネクタ・射出成形品などの複雑形状 | AnomalyDINO · Dinomaly2 | 複雑な構造の表現に有利 |
| 穴・ピンの微細形状(2048px) | HoleMetric + AnomalyDINO Tiled | 原寸解像度でセル単位の計測 |
| インラインのタクトが厳しい | EfficientAD · FastFlow | 推論が速くモデルが軽い |
最終的には実験で決める
上の表はあくまで出発点です。同じ部品でも、照明や欠陥の種類によって順位が入れ替わります。AD Workbench では、Setup で候補のアルゴリズムを複数チェックして Auto Run を実行すると、同じ学習・評価データですべて実行され、スコア分布とヒートマップを並べて比較できます。比較の基準はモデル評価と現場運用で扱います。