異常検出 - 欠陥検出 - 紙集中読み取り PaDiM

概要

1クラス学習の設定で画像の異常を同時に検出してローカライズするために、新しいパッチ分布モデリングフレームワークPaDiMを提案します。PaDiM は、パッチの埋め込みに事前トレーニング済みの畳み込みニューラル ネットワーク (CNN) を利用し、正規クラスの確率的表現に多変量ガウス分布を利用します。また、CNN の異なるセマンティック レベル間の相関関係を利用して、異常をより適切にローカライズします。PaDiM は、MVTec AD および STC データセットでの異常検出とローカリゼーションにおいて、現在の最先端の方法よりも優れています。現実世界の視覚的な産業検査に一致させるために、評価プロトコルを拡張して、整列されていないデータセットでの異常ローカリゼーション アルゴリズムのパフォーマンスを評価します。PaDiM の最先端のパフォーマンスと複雑さの低さは、多くの産業用アプリケーションに適しています。

序章

人間は、同種の自然画像のセットで異種または予期しないパターンを検出できます。このタスクは異常検出として知られており、視覚的な産業検査を含む多数の用途があります。ただし、異常は生産ラインでは非常にまれなイベントであり、手動で検出するのは面倒です。したがって、異常検出の自動化は、オペレーターの注意力の低下を回避し、オペレーターの作業を容易にすることで、継続的な品質管理を可能にします。このホワイトペーパーでは、主に異常検出、特に産業検査のコンテキストにおける異常の位置特定に焦点を当てています。コンピューター ビジョンにおける異常検出とは、画像に異常スコアを与えることです。異常の位置特定はより複雑なタスクであり、異常値を各ピクセルまたはピクセルの各パッチに割り当てて異常マップを出力します。したがって、異常の位置特定により、より正確で解釈可能な結果が得られます。当社の方法による MVTec Anomaly Detection (MVTec AD) データセットの画像における異常位置特定の異常マップの例を図 1 に示します。

図 1 MVTec AD の画像サンプル。左の列: トランジスタ、カプセル、および木材クラスの通常の画像。中央の列: 同じカテゴリの画像で、グラウンド トゥルースの異常が黄色で強調表示されています。右の列: PaDiM モデルによって取得された異常ヒートマップ。黄色の領域は検出された異常を表し、青色の領域は正常な領域を表します。

異常検出は、正常なクラスと異常なクラスの間のバイナリ分類です。ただし、異常の例が不足していることが多く、異常には予期しないパターンがある可能性があるため、完全な監督下でこのタスクのモデルをトレーニングすることは不可能です。したがって、異常検出モデルは通常、1 クラスの学習設定で推定されます。つまり、トレーニング データセットには正常なクラスの画像のみが含まれます。テスト時に、通常のトレーニング データセットと異なるサンプルは異常サンプルとして分類されます。

最近、クラス学習環境で異常のローカリゼーションと検出タスクを組み合わせるいくつかの方法が提案されています。ただし、ディープ ニューラル ネットワークのトレーニングが必要なため、面倒な場合もあれば、テスト時にトレーニング データセット全体に対して k 最近傍 (K-NN) アルゴリズムを使用することもあります。KNN アルゴリズムの線形の複雑さは、トレーニング データセットが大きくなるにつれて、時間と空間の複雑さが増します。これら 2 つのスケーラビリティの問題は、産業環境での異常位置特定アルゴリズムの展開を妨げる可能性があります。

上記の問題に対処するために、PaDiM というパッチ配布モデリング用の新しい異常検出および位置特定方法を提案します。次の 2 つのプロパティを使用して抽出を埋め込むために、事前にトレーニングされた畳み込みニューラル ネットワーク (CNN) を利用します。

  1. 各パッチの位置は、多変量ガウス分布によって記述されます。
  2. PaDiM は、事前訓練された CNN の異なるセマンティック レベル間の相関を考慮します

この新しい効果的なアプローチにより、PaDiM は、MVTec AD での既存の最先端の異常位置特定および検出方法よりも優れています。さらに、テスト時の時間と空間の複雑さが低く、産業用アプリケーションのデータセットのトレーニング サイズの影響を受けません。また、評価プロトコルを拡張して、より現実的な条件下、つまり整列していないデータセットでモデルのパフォーマンスを評価します。

関連作業

異常検出とローカリゼーションの方法は、再構成に基づく方法と類似性に基づく方法の埋め込みに分けることができます。

再構築ベースの方法

再構成ベースの方法は、異常の検出と位置特定に広く使用されています。オートエンコーダー、変分オートエンコーダー、敵対的生成ネットワークなどのニューラル ネットワーク アーキテクチャをトレーニングして、通常のトレーニング イメージのみを再構築します。したがって、再構成が不十分なため、異常な画像が見つかる可能性があります。画像レベルでは、再構成エラーを異常スコアとして使用するのが最も簡単な方法ですが、潜在空間、中間活性化、または弁別子から外れ値の画像をより適切に識別することができます。異常を特定するために、再構成ベースの方法では、ピクセルレベルの再構成エラーを異常スコアまたは構造的類似性として組み込むことができます。あるいは、異常マップは、潜在空間から生成された視覚的注意マップであってもよい。再構成ベースの方法は非常に直感的で解釈可能ですが、AE は異常な画像に対して良好な再構成結果を生成する場合があるため、そのパフォーマンスは制限されます。

類似性ベースの手法の埋め込み

類似性ベースの埋め込み方法では、ディープ ニューラル ネットワークを使用して、異常検出用の画像全体を表す意味のあるベクトル、または異常の位置特定用の画像パッチを抽出します。それにもかかわらず、異常検出のみを実行する類似性ベースの埋め込み方法は有望な結果をもたらしますが、異常画像のどの部分が高い異常スコアの原因であるかを知ることは不可能であるため、解釈可能性に欠けることがよくあります。この場合、異常スコアは、テスト画像の埋め込みベクトルとトレーニング データセットの正規性を表す参照ベクトルとの間の距離です。法線参照は、法線イメージ埋め込み、ガウス分布パラメーター、または法線埋め込みベクトルのセット全体を含む nsphere の中心にすることができます。最後のオプションは SPADE で、これは異常のローカリゼーションに最適な結果を報告します。ただし、テスト時には、通常の一連の埋め込みベクトルに対して K-NN アルゴリズムが実行されるため、推論の複雑さはデータセットのトレーニング サイズに比例して増加します。これは、この方法の産業応用を妨げる可能性があります。

パッチ配布モデリング

埋め込み抽出

事前トレーニング済みの CNN は、異常検出に関連する特徴を出力できます。したがって、事前トレーニング済みの CNN を使用してパッチ埋め込みベクトルを生成することを選択し、面倒なニューラル ネットワークの最適化を回避します。図 2 に示すように、PaDiM にパッチを埋め込むプロセスは、SPADE の場合と似ています。トレーニング フェーズ中、通常のイメージの各パッチは、事前トレーニング済みの CNN アクティベーション マップ内の空間的に対応するアクティベーション ベクトルに関連付けられます。

次に、異なるレイヤーからの活性化ベクトルを連結して、異なるセマンティック レベルと解像度から情報を運ぶ埋め込みベクトルを取得し、きめ細かなグローバル コンテキストをエンコードします。アクティベーション マップの解像度は入力イメージよりも低いため、多くのピクセルが同じ埋め込みを持ち、元のイメージ解像度ではオーバーラップしないピクセルのブロックを形成します。したがって、入力画像は( i , j ) ∈ [ 1 , W ] × [ 1 , H ] (i,j)∈[1,W]×[1,H] に分割できます。(,j )ε[ 1 ,W ]×[ 1 ,H ]位置のグリッド。ここで、WxH は、埋め込みを生成するために使用される最大のアクティベーション マップの解像度です。最後に、このグリッド (i,j) 内の各パッチ位置(,j )上記のように計算された埋め込みベクトル xijx_{ij}バツij関連する。

ここに画像の説明を挿入

生成されたパッチ埋め込みベクトルには冗長な情報が含まれている可能性があるため、サイズを縮小する可能性を実験的に調査します (セクション V-A)。いくつかの次元をランダムに選択することは、従来の主成分分析 (PCA) アルゴリズムよりも効率的であることに注意してください。この単純なランダムな次元削減により、モデルの複雑さ、トレーニングとテストの時間が大幅に削減され、最先端のパフォーマンスが維持されます。最後に、テスト画像のパッチ埋め込みベクトルを使用して、次のサブセクションで説明する正常クラスのパラメーターを使用して異常マップを出力します。

正常性の学習

位置を学習するには( i , j ) (i, j)(,j ) 、まず( i , j ) (i, j)の N 個の通常のトレーニング画像から計算します。(,j ) , X ij = xijk , k ∈ [ 1 , N ] X_{ij}= {x^k_{ij}, k∈[1,N]} におけるパッチ埋め込みベクトルのセットバツij=バツijkkε[ 1 ,N ]、図 2 に示すように。コレクションによって運ばれる情報を要約するために、多変量ガウス分布N ( µ ij , Σ ij ) N(µ_{ij}, Σ_{ij}) をN ( mijSij) X ij X_{ij}を生成しますバツij、ここで、μ ij μ_{ij}メートルijは標本平均、∑ ij ∑_{ij}ijμ ij = 1 N ∑ k N xijk Σ ij = 1 N − 1 ∑ k N ( xijk − μ ij ) ( xijk − μ ij ) T + ε I \mu_{ij}=\frac {
1}{N} \sum_{k}^{N} x_{ij}^{k} \\ \Sigma_{ij}=\frac{1}{N-1} \sum_{k}^{N}\ left(x_{ij}^{k}-\mu_{ij}\right)\left(x_{ij}^{k}-\mu_{ij}\right)^{T} +εIメートルij=N1kNバツijkSij=N11kN( ×ijkメートルij)( ×ijkメートルij)T+ε I
ここで、正則化項ε I εIε I はサンプル共分散行列を作りますΣ ij ΣijΣ ijはフルランクで可逆です。最後に、可能性のある各パッチ位置は、ガウス パラメーター マトリックスを介して、図 2 に示すように多変量ガウス分布に関連付けられます。

私たちのパッチ埋め込みベクトルは、さまざまなセマンティック レベルから情報を運びます。したがって、各推定多変量ガウス分布N ( µ ij , Σ ij ) N(µ_{ij}, Σ_{ij})N ( mijSij)もさまざまなレベルの情報をキャプチャし、Σ ij ΣijΣ ij にはレベル間の相関が含まれます。事前トレーニングされた CNN の異なるセマンティック レベル間の関係をモデル化すると、異常のローカリゼーションのパフォーマンスが向上することを実験的に示します (セクション V-A)。

推論: 異常マップの計算

「異常検出のための事前トレーニング済みの深い特徴における正規データの分布のモデル化」および「分布外サンプルと敵対的攻撃を検出するための単純な統合フレームワーク」に触発されて、マハラノビス距離 M ( xij ) M ( xij )M ( x ij )はテスト画像の位置( i , j ) (i, j)(,j )異常スコアにパッチを適用します。M ( xij ) M(x_{ij})M ( ×ij) xij x_{ij}の埋め込みとして解釈できます。バツijテストパッチと学習分布N ( µ ij , Σ ij ) N(µ_{ij}, Σ_{ij})N ( mijSij)、ここでM ( xij ) M(x_{ij})M ( ×ij)は次のように計算されます。

M ( xij ) = ( xij − μ ij ) T Σ ij − 1 ( xij − μ ij ) (7) \mathcal{M}\left(x_{ij}\right)=\sqrt{\left(x_{ij }-\mu_{ij}\right)^{T} \Sigma_{ij}^{-1}\left(x_{ij}-\mu_{ij}\right)} \\ \tag{7}M( ×ij)=( ×ijメートルij)TSij 1( ×ijメートルij) ( 7 )

したがって、異常グラフを構成するマハラノビス距離行列は次のように計算できます。
M = ( M ( xij ) ) 1 < i < W , 1 < j < HM=(M(x_{ij}))_{1<i< W ,1<j<H}M=( M ( xij) )1 < i < W , 1 < j < H

画像全体の最終的な異常スコアは、異常マップ M の最大値です。

最後に、パッチの異常スコアを取得するために多数の距離値を計算して並べ替える必要がないため、テスト時に、この方法は K-NN ベースの方法のスケーラビリティの問題に悩まされることはありません。

実験

データセットと指標

データセット

最初に、MVTec AD でモデルを評価します。MVTec AD は、1 クラスの学習設定で産業用品質管理のための異常ローカリゼーション アルゴリズムをテストするように設計されています。約 240 枚の画像を含む 15 のクラスが含まれています。元の画像の解像度は 700x700 から 1024x1024 の間です。10 個のオブジェクトと 5 つのテクスチャ クラスがあります。図 1 のトランジスタ クラスとカプセル クラスで示されているように、オブジェクトは常にデータセット内で同じように中央に配置されます。元のデータセットに加えて、より現実的なコンテキストで異常位置特定モデルのパフォーマンスを評価するために、RdMVTec AD と呼ばれる MVTec AD の修正バージョンを作成し、ランダムなローテーション (-10 + 10) とランダムなトリミング ( 256 x256 224x224 から) トレーニングおよびテスト セット用。この MVTec AD の修正版は、品質管理のための異常ローカライゼーションの実際の使用例をより適切に説明しています。この場合、関心のあるオブジェクトが常に画像の中心に配置され、整列されているわけではありません。

さらに評価するために、静的カメラによるビデオ監視をシミュレートする上海工科大学 (STC) データセット [8] で PaDiM もテストします。274515 のトレーニング フレームと 42883 のテスト フレームが含まれ、13 のシーンに分割されています。元の画像の解像度は 856x480 です。トレーニング ビデオは通常のシーケンスで構成されていますが、テスト ビデオには、歩行者エリアの車両や人々の戦闘などの異常が含まれています。

指標

ローカリゼーションのパフォーマンスを評価するために、2 つのしきい値に依存しないメトリックを計算します。受信者動作特性曲線 (AUROC) の下の領域を使用します。ここで、真の陽性率は、異常として正しく分類されたピクセルの割合です。AUROC は大きな異常に偏っているため、地域ごとのオーバーラップ スコア (PRO スコア) も使用します。これは、連結成分ごとに、正しく分類されたピクセルの割合の平均曲線を 0 ~ 0.3 の偽陽性率の関数としてプロットすることで構成されます。PRO スコアは、この曲線の正規化された積分です。PRO スコアが高いということは、大小両方の異常が適切に局所化されていることを意味します。

実験装置

PaDiM は、ResNet18 (R18)、Wide ResNet-50-2 (WR50)、EfficientNet-B5 など、すべて ImageNet で事前にトレーニングされたさまざまなバックボーンでトレーニングされます。バックボーンが ResNet の場合、最初の 3 つのレイヤーからパッチ埋め込みベクトルが抽出され、ローカリゼーション タスクに十分な解像度を維持しながら、異なるセマンティック レベルからの情報が結合されます。この考えに従い、EfficientNet-B5 を使用する場合、レイヤー 7 (レベル 2)、レイヤー 20 (レベル 4)、およびレイヤー 26 (レベル 5) からパッチ埋め込みベクトルを抽出します。また、ランダムな次元削減 (RD) も適用します (セクション III-A およびセクション VA を参照)。モデル名は、バックボーンと使用されている次元削減方法 (存在する場合) を示しています。たとえば、PaDiM-R18-RD100 は ResNet18 バックボーンを持つ PaDiM モデルであり、パッチ埋め込みベクトルにランダムに選択された 100 次元を使用します。デフォルトでは、 ε = 0.01 ε=0.01を使用しますe=式 1 で0.01 。

元の出版物で説明されているモデル SPADE を、Wide ResNet-50-2 (WR50) をバックボーンとして複製しました。Spade と PaDim については、 と同じ前処理を使用します。画像のサイズを MVTec AD から 256x256 に変更し、中央を 224x224 にトリミングしました。STC からの画像の場合、256x256 のサイズ変更のみを使用します。双三次補間を使用して画像とローカリゼーション マップのサイズを変更し、図のようにパラメーター σ=4 を使用して外れ値マップにガウス フィルターを適用します。

また、ResNet18 をエンコーダーとして使用し、8x8 の畳み込み潜在変数を使用して、独自の VAE を再構成ベースのベースラインとして実装します。各 MVTec AD クラスで、ランダムな回転 (-2◦、+2◦)、292x292 へのサイズ変更、282x282 へのランダム クロッピング、最後に 256x256 への中央クロッピングというデータ拡張操作でトレーニングされます。トレーニングは、1 0 − 4 10^{−4}の初期学習率で ADAM オプティマイザーを使用して 100 エポックにわたって実行されます。1 0 32 画像のバッチサイズで4 。ローカリゼーションに使用される異常マップは、再構成に使用されるピクセル単位の L2 エラーに対応します。

おすすめ

転載: blog.csdn.net/weixin_45755332/article/details/128532057