【論文5分まとめ】FastFlow
概要
画像データに対する画像レベル・ピクセルレベルの異常検出手法であるFastFlowを提案。Normalization Flowを用いて、affine coupling layerの
書誌情報
- Yu, Jiawei, et al. "FastFlow: Unsupervised Anomaly Detection and Localization via 2D Normalizing Flows." arXiv preprint arXiv:2111.07677 (2021).
- https://arxiv.org/abs/2111.07677
ポイント
Normalization Flowを用いた画像の異常検出手法としてCFlow-ADのような手法がある。何らかの特徴抽出器によって得られた特徴量を入力とし、多次元標準ガウス分布に従う潜在変数を出力とするような、全単射関数をNormalization Flowによって表現できるように学習する。
CFlow-ADが特徴マップをフラットにしつつ、位置情報をPositional Encodingによって付与するという条件付きFlowモデルを採用していた一方で、FastFlowでは特徴マップの変形を一切行わずに、Flowモデル内で使用するcoupling layerの
下図のように、大まかな構成は非常にシンプル。
Feature Extractor
入力画像から特徴マップを抽出するFeature Extractorは、ConvNet系でもViT系でもいいが、ConvNet系の場合は特徴ピラミッドを抽出し、ViT系では1スケールの特徴マップだけ抽出する。下の表は、モデルごとの入力画像のサイズや得られる特徴マップのサイズを表している。Feature Extractorは何らかの事前学習済みのものを使用し、FastFlowの訓練時にはフリーズさせる。
FastFlowモジュール
特徴マップは(ピラミッドの場合は、各スケールごとに用意された)FastFlowモジュールに入力される。FastFlowモジュールは可逆な構造になっており、特徴マップの解像度とチャネル数を維持したまま潜在変数へとマップされる。FastFlowモジュールを構成する3x3 flowと1x1Flowは、交互に適用され、3x3 flowと1x1 flowの内部では、2次元Conv層が使われるため2次元の特徴マップはその形状を保持したまま処理される。
下図の上側は、ある入力画像からFeature Extractorによって得られた特徴マップ(のあるチャネル)とFastFlowによって得られた出力の確率マップを表す。確率マップに簡単な摂動を加え、FastFlowを逆方向にして戻された特徴マップ(のあるチャネル)を見てみると、(他の部分はそのままだが)摂動を加えた部分に大きな違いが生じており、双方向の変換ができていることが確認できる。
潜在変数マップは、bilinear補間によって入力画像サイズまで拡大される。潜在変数は多次元標準正規分布に従うため、確率密度を簡単に計算でき、ここから異常度が計算できる。特徴ピラミッドが入力の場合は、複数のスケールで得られた結果を平均して最終的な確率マップを得る
計算時間と精度の比較
同じNormalization Flow系のCFlow-ADと比較すると、FastFlowはPositional Encodingによる条件付きFlowモデルのような複雑さはないため、高速に推論できる。特に、ViT系のFeature Extractorを使用することで、CFlowよりも高い精度を実現している。一方で、ConvNet系のモデルでは、大域的な特徴を掴みづらいということが指摘されている。
Discussion