画像の異常検知AI ライブラリ ind_knn_ad のデモをカスタムデータでテストする

AI
スポンサーリンク

スポンサーリンク

はじめに

前回は ind_knn_ad のデモプログラムを動かす方法について説明しました。

今回は、ブラウザ上でカスタムデータを学習させる方法について説明します。

前提条件

前提条件は以下の通りです。

  • python3.9
  • streamlit == 0.86.0
  • torch == 1.12.1+cu113

ind_knn_ad の github はこちらです。

使用するデータセット

いつも通り、こちらのデータセットを使用します。Class1, Class1_def を使用します。

カスタムデータで学習させる

以下を実行してブラウザアプリを起動します。

streamlit run streamlit_app.py

Custom dataset にチェックを入れると、以下のような表示になります。

上段に Class1 の 7, 8, 9.png、下段に Class1_def の 125.png を指定して実行します。
選定理由は、背景が似ているからです。

125.png は以下の画像になります。

左上あたりにぼやけた指紋のようなものがあります。これを検出できるかテストします。

SPADE, efficientnet_b0 で学習させてみます。

streamlit 上での実行の注意点として、学習させる画像の枚数が 3枚 までという制限があります。

SPADE -efficientnet_b0-

左上あたりの異常を少し検出できています。

PaDiM -efficientnet_b0-

SPADE より検出できています。異常箇所に対して位置ズレが小さいです。

PatchCore -efficientnet_b0-

ヒートマップがかなり滑らかになっています。

異常部分がしっかりと検出できているのが分かります。

PaDiM -tf_mobilenetv3_small_100-

検出失敗です。SPADE も同様に検出失敗となりました。

PatchCore -tf_mobilenetv3_small_100-

検出成功です。

異常箇所の面積が大きければ、軽量な tf_mobilenetv3_small_100 を使用するのもありです。

おわりに

短いですが今回はここまでとします。

デモプログラムでは、数枚の学習しかできませんが、誰でも簡単に学習とその結果を確認することができます。

次回からは、デモプログラムを使用せずにカスタムデータセットで学習させる方法について説明します。

コメント

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