はじめに
前回は TensorFlow で作成された MVTec-Anomaly-Detection について説明しました。
今回は、PyTorch で作成された 教師なし異常検知 SPADE, Padim, PatchCore 3種を簡単に比較できる ind_knn_ad についてデモプログラムの使用方法を説明します。
前提条件
前提条件は以下の通りです。
- python3.9
- streamlit == 0.86.0
- torch == 1.12.1+cu113
ind_knn_ad について
GitHub はこちらです。
github のページには各AIの検出性能についても記載があります。
得意 / 不得意があるので検査対象によって使い分ける必要があります。
デモプログラムの実行
ブラウザ上で簡単に AI を実行できるスクリプトが用意されています。
streamlit run streamlit_app.py
上記を実行するとブラウザが立ち上がります。

今回はこの画面上で操作していきます。
まずは左側のメニューバーの説明をします。
Choose an MVTec dataset
以下からテストデータセットを選択可能です。
- hazelnut_reduced … ナッツのデータセット
- transistor_reduced … トランジスタのデータセット
Choose a method
以下からAIアルゴリズムを選択可能です。
- SPADE … 軽量高速、異常に反応しやすい。
- PaDiM … 中程度の精度、背景の変化にも強い。
- PatchCore … 高精度、細かい異常にも強い。背景変化はイマイチ。
Choose a backbone
以下からAIのバックボーンを選択可能です。
- efficientnet_b0 … デフォルト
- tf_mobilenetv3_small_100 … 軽量モデル
テストデータセットでの実行
今回はこの設定で動かします。

Start で実行します。
結果の確認
Start を実行してしばらく経過すると右側に結果が表示されます。

AnomalyMap は、グレースケールで表示されます。白ければ白いほど異常値が高いです。
TestSampleIndex を変更して別のテスト画像を推論することも可能です。
おわりに
今回は製品画像の異常検知 AI の3種をテストできる ind_knn_ad についてデモプログラムの使用方法を説明しました。
SPADE のみ実行しましたが、是非 PaDiM と PatchCore も試してみてください。
次回は、streamlit 上でカスタムデータを学習させる方法について説明します。
コメント