[21′ arxiv] FastFlow: Unsupervised Anomaly Detection and Localization via 2D Normalizing Flows 핵심 리뷰

This entry is part 24 of 40 in the series Anomaly Detection

내용 요약

2d Convolution을 사용하는 Normalizing Flow 방식의 새로운 Anomaly Detection 방법론을 제안합니다. mvTec, BTAD, CIFAR10에 대한 성능을 측정합니다.

1. 들어가며

이번 글에서는 2021년 발표된 FastFlow: Unsupervised Anomaly Detection and Localization via 2D Normalizing Flows 논문을 리뷰합니다. Anomaly Detection에 관한 기본적인 내용은 Anomaly Detection에 관한 모든 것 글을 참고해주세요. Normalizing Flow에 대한 기본적인 내용은 Normalizing Flow와 딥러닝 글을 참고 바랍니다.

2. 기존 방법의 문제점

FastFlow 전에도 Normalizing Flow 방식의 Anomaly Detection 방법들이 존재했습니다. 대표적으로 DifferNetCFlow 등이 있었죠. DifferNet 같은 경우 Normalizing Flow 내부 함수로 Fully Connected 함수를 사용했는데요. 때문에 2d Spatial 정보가 망가진다는 문제가 있었죠. CFlow는 이를 해결하기 위해 Positional Encoding을 도입했습니다. 하지만 이러한 2d Spatial 정보를 잘 보존하며 연산하는 방법으로는 2d Convolution이 더 유용한데요. FastFlow에서는 때문에 2d Convolution 연산을 적용한 Normalizing Flow 방법을 제안합니다.

2. 제안 방법

FastFlow의 제안 방법을 하나씩 살펴보겠습니다.

2-1. Architecture

먼저 Architecture를 살펴보겠습니다.

image 109
그림1. FastFlow Architecture

위 그림은 FastFlow의 Architecture를 표현한 그림입니다.

먼저 그림 a를 보겠습니다. FastFlow의 동작 구성을 알 수 있는데요. 2단계로 구성된 모습입니다. 먼저 1단계에서는 Pretrained Feature Extractor를 사용하여 입력 이미지의 Feature를 추출해줍니다. 이는 이전 논문에서 밝혔듯 이미지를 입력으로 그대로 사용하는것 보다 Feature를 사용하는게 더 유용하기 때문이죠. 이렇게 추출한 Feature를 이제 Normalizing Flow에 입력으로 넣어 Normal Density를 학습합니다.

다음으로 그림 b를 보겠습니다. 그림 b는 FastFlow Normalizing Flow 내부 구조를 표현하고 있습니다. 이때의 핵심은 Conv2d 연산입니다. 기존 Normalizing Flow에서 Fully Connected 연산으로 구성되었던 부분을 2d Convolution으로 바꿔준 모습을 볼 수 있습니다.

2-2. 2D Flow Model

이 부분을 수식으로 살펴보면 다음과 같습니다.

2d-flow-model
그림2. FastFlow Normalizing Flow

일반적인 Normalizing Flow 모델들은 위의 s, b 함수를 Fully Connected 함수를 사용합니다. 예를 들면 DifferNet 같은 모델이 있습니다. 이렇게 사용했을 때의 단점은 Feature가 Flatten 되는 과정에서 2d Spatial 정보를 잃어버린다는 것입니다. 따라서 저자들은 이 점을 보완하기 위해 2d Convolution을 사용했습니다.

3. 실험 결과

다음은 이렇게 제안한 방법의 실험 결과를 살펴보겠습니다.

3-1. mvTec

먼저 mvTec 데이터셋에 대한 성능입니다.

mvTec-성능
그림3. mvTec 실험 결과

비교 방법론들은 다음과 같습니다.

  • Patch SVDD : [ACCV 2020] Patch svdd: Patch-level svdd for anomaly detection and segmentation. In: Proceedings of the Asian Conference on Computer Vision 
  • SPADE : [arxiv 2020] Sub-Image Anomaly Detection with Deep Pyramid Correspondences
  • DifferNet : [WACV 2021] Same Same But DifferNet: Semi-Supervised Defect Detection with Normalizing Flows
  • PaDiM : [ICPR 2021] PaDiM: a Patch Distribution Modeling Framework for Anomaly Detection and Localization
  • CutPaste : [CVPR 2021] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization
  • PatchCore : [arxiv 2021] Towards Total Recall in Industrial Anomaly Detection
  • CFlow : [arxiv 2021] CFLOW-AD: Real-Time Unsupervised Anomaly Detection with Localization via Conditional Normalizing Flows

3-2. BTAD

다음은 BTAD 데이터셋에 대한 성능입니다.

BTAD-성능
그림4. BTAD 실험 결과

3-3. CIFAR10

다음은 CIFAR10 데이터셋에 대한 성능입니다.

CIFAR10-성능
그림5. CIFAR10 실험 결과

3-4. Feature Visualization And Generation

다음은 제안하는 방법이 어떻게 작동하는지를 확인하기 위해 feature level에서 visualization 한 모습입니다.

feature-visualization-and-generation
그림6. FastFlow에서 Anomaly 생성 과정

먼저 Feature를 추출한 뒤 Fast Flow를 거치게 되면 z Space의 확률분포 값이 나오게 됩니다. 그리고 인위적인 Anomaly를 삽입 후 다시 Fast Flow Inverse 과정을 거치면 Feature Level에서도 Anomaly Point가 명확하게 구분되는 모습을 볼 수 있습니다.

4. Ablations

다음은 Ablations를 살펴보겠습니다.

4-1. Convolution Kernel에 따른 성능

2d Flow Model에서 2d Convolution은 3×3, 1×1이 사용되었습니다. Backbone Network와 이 둘의 조합에 따른 성능 비교를 해보겠습니다.

convolution에-따른-성능
그림7. Backbone과 Convolution 조합에 따른 성능

실험 결과를 보면 Model Capacity가 높은 CaiT, Wide-ResNet50-2 같은 경우 1×3과 3×3을 교대로 사용했을 때 성능이 더 좋았고, Model Capacity가 낮은 DeiT, ResNet18의 경우 3×3 만 사용했을 때 성능이 더 좋은 모습을 볼 수 있습니다.

Series Navigation<< [22′ WACV] Fully Convolutional Cross-Scale-Flows for Image-based Defect Detection (CS-Flow) 핵심 리뷰[Self Supervised Learning 방식의 Anomaly Detection] >>
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top