ペーパー集中読書: 産業異常検出における完全なリコールに向けて

産業異常検出

Patchcore是截至2022年在AD数据集上表现最好的缺陷检测模型

  • この記事では、原則を簡単に理解できますが、トップの会議論文を分析するには多くの時間がかかります. 親指を立ててください~

バックグラウンド:

産業用画像の異常検知において、最大の問題はコールドスタートの問題です。

  • まず、トレーニング セットはすべて正常な画像であり、モデルは正常な画像の特徴を簡単にキャプチャできますが、異常な欠陥のサンプルをキャプチャすることは困難です (そのようなサンプルはまれであり、入手が困難です)。

  • 第二に、分布のドリフト。正常画像と異常画像では分布が異なるモデルは、正常画像のデータ分布を学習し、異常画像のデータ分布は正常画像とは異なる分布を学習します。

AD データセットの偏差:
ここに画像の説明を挿入


AD データセットを紹介します。

ここに画像の説明を挿入



ここに画像の説明を挿入



解決してみてください:

  1. 分類の考え方に基づいて欠陥を検出することは困難です。なぜなら、エラーが発生する場所は、傷のように小さく、部品が直接消えるほど大きく、検出するのが容易ではないからです。

ここに画像の説明を挿入

  1. 最近では、事前トレーニング済みのモデルをサンプリングすることは良い方法ですが、ImageNet でトレーニングされた分類モデルがターゲットの分布に適合しないことは避けられません。
  2. 要点: 機能のマッチング。さまざまなサイズの深い特徴表現が、トレーニング セットとテスト セットで抽出されます。しかし、ImageNet の高レベルの抽象的な特徴のマッチングは限られています

この記事で採用されている方法は、密度ベースの異常検出方法である


GAP: Global Average です。

異常スコアを定義します

つまり、正常なデータを学習させて正常な画像の特徴を捉え、異常なデータが入ってきたら正常なデータとの差が出て、全体の差で異常かどうかを判断するということです。


実際、この記事は巨人の肩にも立っています。

スペード:


ここに画像の説明を挿入

私に言わないで:


ここに画像の説明を挿入

この記事では、次の 3 つの方法を提案します。

  1. テスト時には、通常のデータから抽出される情報を最大化します
  2. ImageNet でのクラス バイアスの削減
  3. 高い推論速度を維持する


全体的なプロセス:


ここに画像の説明を挿入

ローカル パッチ機能 ローカル パッチ機能


ここに画像の説明を挿入

patchcore は ImageNet の事前トレーニング済みモデルを使用します

fi代表网络 ; i i i はサンプルを表し、jjj はネットワーク レベルを表します

局所特徴抽出


ResNet-50 / WideResNet-50 は特徴抽出に使用され、4 つの残差ブロックで構成されます。

一般的に言えば、ResNet の最終層で抽出された特徴が取得されますが、2 つの問題があります。

  1. あまりにも多くの情報を失いました
  2. 深い抽象的な特徴は、現在の分類タスクから大きく外れています。コールド スタートに起因する問題のため、欠陥のある特徴が少なく、推測が困難です。


解決:

  1. ストレージ ブロックの作成: メモリ バンク、ストア パッチ機能 (ブロック機能として理解できます)
  2. Resnet の最後の層から機能を取得する代わりに、途中から取得します

中間機能とは:


ここに画像の説明を挿入

  1. 空間解像度と有用な機能を失わないために、ローカル ネイバー アグリゲーションの方法を使用して受容野を増やし、次に結合された機能


    h は高さ、w は幅、c はチャネル、および patchsize はブロック サイズです。

ここに画像の説明を挿入

  • 位置 (h, w) の特徴処理:

最初に理解するために絵を入れてください:

特徴抽出:
ここに画像の説明を挿入
すべてをスキャン:


ここに画像の説明を挿入

  • 次に、次のレイヤーを抽出し、マージしてローカル パッチを形成します。


    ここに画像の説明を挿入
  • 複数のローカル パッチをマージします。


    ここに画像の説明を挿入
  1. 近隣の特徴セットを抽出する
    ここに画像の説明を挿入
  2. 近隣の特徴セットをマージして単一の特徴マップを形成する

ここに画像の説明を挿入

  1. ローカル機能セット

ここに画像の説明を挿入

  1. 最後に、データ セット全体をトラバースし、ユニオンを取得して、特徴ストレージ ブロックを取得します。

ここに画像の説明を挿入



コアセットのサブサンプリング


貪欲な戦略に基づくサブサンプリング法:
ここに画像の説明を挿入


プロセスの説明:

  1. M は必要な機能セットです. 機能セット全体が大きすぎてはなりません (メモリに格納されます). 可能な限り、コアセットはほとんどのデータ機能を表すことができます.
  2. ResNet によって抽出された特徴を取得するためにすべての画像を走査することは、まだ多すぎるため、最適化する必要があります。
  3. l はハイパーパラメータであるセットコアセットの機能サブセットの数です
  4. キー: 1 の要件を満たすことを選択した場合は? つまり、毎回コアセットを選択します ( MC M_CMC)、M で最も近くて最も遠い点を見つけて (貪欲な戦略)、それを抽出します。
  5. 最も近いものと最も遠いものを説明します。最も近い範囲で最も遠い点を見つけます。つまり、ローカルで最も遠い点を見つけます。つまり、最適解です。それ以外の場合は、計算集約型 NP 困難問題の検索

ここに画像の説明を挿入


ここに画像の説明を挿入


ここに画像の説明を挿入

  • この波は素晴らしく、決定的です!

凡例の波でランダム サンプリングを比較します。
ここに画像の説明を挿入

  • 兄弟、電話を切って!


検出とローカリゼーション

テストセットのデータが入ります

ここに画像の説明を挿入

  • パッチ機能の考え方に従って、コアセットに 1 つずつアクセスして異常スコアを見つけて比較し、異常かどうかを確認します。

最近傍

すべてのクエリは、最も近い隣人を見つけるために入ってきます。これは、コケティッシュな操作のもう 1 つの波です。

  • ドメイン内の近隣の数が 3 であると仮定すると、
    ここに画像の説明を挿入
    式は次のようになります:

    最小値と最大値の別の波について説明してください:
  1. 各クエリが入ってきたら、まず最も近いフィールドの重心を見つけます (青いマーク、非データ ポイント)
    ここに画像の説明を挿入
  2. クエリに最も近い重心を見つけたら、フィールドをロックします

ここに画像の説明を挿入

  1. 次に、フィールド内の最も遠いデータ ポイントを計算し、その距離を使用して異常スコアを計算し、異常かどうかを判断して結果を取得します

ここに画像の説明を挿入

効果

ここに画像の説明を挿入

  • これまでで最高の異常検出モデル!
    ここに画像の説明を挿入

ハイパーパラメータ調整

ここに画像の説明を挿入


彼らは全員 DL のハゲで、上位の会議論文を分析してブログを書くのは時間がかかります。

おすすめ

転載: blog.csdn.net/RandyHan/article/details/127681935