LoginSignup
225
213

【速報】次世代の外観検査!?プロンプトを駆使した異常検知

Last updated at Posted at 2023-05-24

先日、革新的な画像の異常検知(SAA)が出てきました。

本稿では、操作手順 & 触ってみた感想をご報告します。

特長

本題に入る前に、どこら辺が革新的なのかざっくり説明します。
※ SAAの詳細は論文をご参照ください。

  • 学習データは不要
    • 通常、学習(正常)データを数百枚用意しますが、この手法では正常データを必要としません。
  • ドメイン知識を導入できる
    • 予め、異常の傾向をプロンプトに入れることにより、異常の特徴をモデルに教えることができます。

二点目が特に大きく、今までの異常検知では、積極的に異常の傾向を取り込むことができませんでしたが、この手法では、この点を改良しています。

操作手順

使ってみる

まず、公式リポジトリに行って、Open in Colabをクリックします。
image.png

あとは、すべてのセルを実行を押すだけです。
image.png

無事、異常部分を検出できました。
image.png

ちなみに、プロンプトは
image.png
defectsでした。このプロンプトだけで、異常を検出できるのは凄い!

難しい画像に変える

折角なので、難しい画像に変えてみます。
image.png
image.png

これらのwood_demo.pngcable_demo.pngに変えます。

以下の画像がターゲットです。
image.png

このままcodeを実行すると
image.png
うまくいきません。

チューニングする

ここからチューニングしていきます。まず、プロンプト
image.png
defectsthe black hole on the cableに変えます。

image.png
だいぶ改善しましたが、まだ過検知(False positive)があります。

続いて、bounding_boxの閾値box_thresholdでフィルターをかけます。
image.png
0.150.28に変えます。すると
image.png

ほぼ完璧なセグメンテーションができました。

使ってみた感想

  • とりあえず重い
    • 巨大モデル&大きい画素数を使っているので、推論に時間がかかる → 軽いモデル&画素数を下げれば改善するかも?
      • それでも、推論時間がネックで、SAA単独では使えないかもしれない。 → PaDiMを一次フィルター、SAAを二次フィルターにすれば、精度&推論時間をカバーし合えるかも
  • チューニングできる
    • 異常の大きさやプロンプトを調整できるので、色々カスタムできそう。逆にいうと、チューニングが大変かも。ただ、異常の特徴を予め入力できるので、従来手法では検出できなかった異常を検出できる可能性がある
  • SAAがゲームチェンジャーになるかも
    • SPADEGussian-AD(マハラノビスAD法)が、画像の異常検知界隈を一変させたように、SAAが一つの時代を作る可能性がある。つまり、SAAは今後のスタンダードになる可能性がある。
  • まだまだ整備中(2023年5月24日現在)
    • issueによると、本気のSAA+は実装していないらしいので、真の実力は出ていない模様
    • SAA+は近日中に公開予定
225
213
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
225
213