[22′ WACV] CFLOW-AD: Real-Time Unsupervised Anomaly Detection with Localization via Conditional Normalizing Flows 핵심 리뷰

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

내용 요약

Normalizing Flow를 사용하는 새로운 Anomaly Detection 방법론을 제안합니다. 2D Spatial 정보를 보존하기 위해 Positional Encoding을 추가해줍니다. mvTec, STC 데이터셋에 대한 성능을 측정합니다.

1. 들어가며

이번 글에서는 2022년 WACV에 발표된 논문인 CFLOW-AD: Real-Time Unsupervised Anomaly Detection with Localization via Conditional Normalizing Flows를 리뷰합니다. CFLOW-AD는 이전 논문인 DifferNet의 문제점을 개선한 방법입니다. Anomaly Detection에 관한 기본적인 내용은 Anomaly Detection에 관한 모든 것 글을 참고해주세요. Normalizing Flow에 대한 기본적인 내용은 Normalizing Flow와 딥러닝 글을 참고 바랍니다.

2. 기존 방법의 문제점

CFLOW 전에도 Normalizing Flow를 사용하는 DifferNet이 있었습니다. DifferNet은 최초의 Normalizing Flow를 사용한 고성능 Anomaly Detection 방법이었죠. DifferNet에는 성능을 저하하는 하나의 요소가 있었는데요. 바로 Normalizing Flow 내부 함수로 Fully Connected 함수를 사용한다는 것이었습니다. 이때문에 데이터의 2D Spatial 정보가 망가진다는 문제가 있었죠.

2. 제안 방법

CFLOW는 이러한 DifferNet의 문제점을 개선하기 위한 방법을 제안합니다.

2-1. Architecture

CFLOW의 전체 구조는 다음과 같습니다.

image 105
그림1. CFLOW Architecture

먼저 Pretrained Feature Extractor를 사용해서 Feature를 추출하는 모습을 볼 수 있습니다. 이어서 Positional Encoding을 추가해주고요. 마지막으로 Normalizing Flow를 사용하여 Decoding하는 과정으로 구성되어 있습니다. 하나씩 살펴보겠습니다.

2-2. Encoder

먼저 Feature를 추출하는 Encoder를 살펴보겠습니다. Encoder는 ImageNet Pretrained CNN을 사용합니다. 이는 DifferNet과 동일한 방법으로, 이전 논문에서 밝혔듯 이미지를 그대로 Normalizing Flow 입력으로 사용할 경우 성능이 좋지 않기 때문입니다.

2-3. Decoders For Likelihood Estimation

다음은 Decoder입니다. Decoder로는 Normalizing Flow가 사용됩니다. 이때의 포인트는 Decoder의 입력으로 들어가기 전 추가되는 Positional Encoding인데요. 기존 DifferNet의 문제점은 2D Spatial 정보가 사라진다는 문제가 있다고 했죠. 이를 해결하기 위해 CFLOW에서는 Positional Encoding을 추가해줍니다. 이 Positional Encoding은 Transformer와 마찬가지로 Sin과 Cosine 함수를 결합한 일반적인 방법을 사용합니다.

참고로 CFLOW의 C는 Conditional의 약자인데요. Positional Encoding이 추가되었다는 의미로 Conditional을 붙였다고 합니다.

2-3-1. Train

다음으로 학습을 위한 Loss는 일반적인 Normalizing Flow와 마찬가지로 z가 정규분포에 가까워지도록 학습합니다.

train-loss
그림2. CFLOW Train Loss

2-3-2. Inference

다음으로 Inference는 일반적인 Normalizing Flow와 마찬가지로 z의 확률분포를 계산하여 확률 값이 작을수록 Anomaly로 판단합니다.

anomaly-score
그림3. CFLOW Anomaly Score

3. 실험 결과

다음은 이렇게 제안한 방법의 성능을 살펴보겠습니다.

3-1. mvTec

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

mvTec-성능
그림4. CFLOW mvTec 실험 결과

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

  • Differnet : [WACV 2021] Same Same But DifferNet: Semi-Supervised Defect Detection with Normalizing Flows
  • DFR : [Neurocomputing 2021] Unsupervised anomaly segmentation via deep feature reconstruction
  • 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
  • CutPaste : [CVPR 2021] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization
  • PaDiM : [ICPR 2021] PaDiM: a Patch Distribution Modeling Framework for Anomaly Detection and Localization

먼저 기존 방법인 DifferNet보다 훨씬 좋은 성능을 보이는 모습을 볼 수 있습니다. 또한 기존 가장 강력한 방법론이었던 Pretrained Feature Matching 방식들인 PaDiM, SPADE 보다도 우수한 성능을 보여줍니다.

3-2. STC

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

STC-성능
그림5. CFLOW STC 실험 결과

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

  • CAVGA-R : [ECCV 2020] Attention Guided Anomaly Localization in Images
  • SPADE : [arxiv 2020] Sub-Image Anomaly Detection with Deep Pyramid Correspondences
  • PaDiM : [ICPR 2021] PaDiM: a Patch Distribution Modeling Framework for Anomaly Detection and Localization
Series Navigation<< [21′ WACV] Same Same But DifferNet: Semi-Supervised Defect Detection with Normalizing Flows 핵심 리뷰[22′ WACV] Fully Convolutional Cross-Scale-Flows for Image-based Defect Detection (CS-Flow) 핵심 리뷰 >>
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