製品画像の異常検知AI 3種を簡単に比較する ind_knn_ad 【PyTorch】

AI
スポンサーリンク

スポンサーリンク

はじめに

前回は 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 上でカスタムデータを学習させる方法について説明します。

コメント

タイトルとURLをコピーしました