- Anomaly Detection 설명 – 정의, 특성, 활용 방안, 연구 흐름
- [One Class Classification 방식의 Anomaly Detection]
- [18′ ICML] Deep SVDD : Deep One-Class Classification
- [20′ ICLR] DEEP SEMI-SUPERVISED ANOMALY DETECTION (Deep SAD) 핵심 리뷰
- [20′ ACCV] Patch SVDD : Patch-level SVDD for Anomaly Detection and Segmentation
- [21′ ICLR] EXPLAINABLE DEEP ONE-CLASS CLASSIFICATION (FCDD) 핵심 리뷰
- [Reconstruction 방식의 Anomaly Detection]
- [17′ IPMI] AnoGAN : Unsupervised Anomaly Detection with Generative Adversarial Networks to Guide Marker Discovery
- [18′ ACCV] GANomaly : Semi-Supervised Anomaly Detection via Adversarial Training
- [20′ ECCV] Attention Guided Anomaly Localization in Images (CAVGA) 핵심 리뷰
- [21′ ICCV] Devide and Assemble : Learning Block-wise Memory for Unsupervised Anomaly Detection 핵심 리뷰
- [21′ ICCV] Learning Unsupervised Metaformer for Anomaly detection 핵심 리뷰
- [22′ CVPR] SSPCAB : Self-Supervised Predictive Convolutional Attentive Block for Anomaly Detection 핵심 리뷰
- [Pretrained Feature Matching 방식의 Anomaly Detection]
- [20′ Arxiv] SPADE : Sub-Image Anomaly Detection with Deep Pyramid Correspondences
- [20′ ICPR] Mahalanobis AD : Modeling the Distribution of Normal Data in Pre-Trained Deep Features for Anomaly Detection
- [21′ ICPR] PaDiM : a Patch Distribution Modeling Framework for Anomaly Detection and Localization
- [22′ CVPR] PatchCore : Towards Total Recall in Industrial Anomaly Detection
- [Normalizing Flow 방식의 Anomaly Detection]
- [20′ NIPS] Why Normalizing Flows Fail to Detect Out-of-Distribution Data 핵심 리뷰
- [21′ WACV] Same Same But DifferNet: Semi-Supervised Defect Detection with Normalizing Flows 핵심 리뷰
- [22′ WACV] CFLOW-AD: Real-Time Unsupervised Anomaly Detection with Localization via Conditional Normalizing Flows 핵심 리뷰
- [22′ WACV] Fully Convolutional Cross-Scale-Flows for Image-based Defect Detection (CS-Flow) 핵심 리뷰
- [21′ arxiv] FastFlow: Unsupervised Anomaly Detection and Localization via 2D Normalizing Flows 핵심 리뷰
- [Self Supervised Learning 방식의 Anomaly Detection]
- [18′ NIPS] Deep Anomaly Detection Using Geometric Transformations (GEOM) 핵심 리뷰
- [19′ NIPS] SSL-AD : Using Self-Supervised Learning Can Improve Model Robustness and Uncertainty 핵심 리뷰
- [20′ ICLR] CLASSIFICATION-BASED ANOMALY DETECTION FOR GENERAL DATA (GEOD) 핵심 리뷰
- [20′ NIPS] CSI: Novelty Detection via Contrastive Learning on Distributionally Shifted Instances
- [21′ ICLR] SSL-OCC : Learning and evaluating representations for deep one class classification 핵심 리뷰
- [21′ ICCV] Hierarchical Transformation AD : A Hierarchical Transformation-Discriminating Generative Model for Few Shot Anomaly Detection 핵심 리뷰
- [21′ ICLR] SSD: A UNIFIED FRAMEWORK FOR SELFSUPERVISED OUTLIER DETECTION 핵심 리뷰
- [Knowledge Distillation 방식의 Anomaly Detection]
- [20′ CVPR] Uninformed Students: Student–Teacher Anomaly Detection with Discriminative Latent Embeddings
- [21′ Arxiv] Student Teacher AD : Student-Teacher Feature Pyramid Matching for Unsupervised Anomaly Detection
- [21′ CVPR] Multiresolution Knowledge Distillation for Anomaly Detection
- [22′ CVPR] Reverse Distillation AD : Anomaly Detection via Reverse Distillation from One-Class Embedding
- [Synthetic Anomaly 방식의 Anomaly Detection]
- [21′ ICCV] DRAEM : A discriminatively trained reconstruction embedding for surface anomaly detection
- [21′ CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization
내용 요약
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 방법들이 존재했습니다. 대표적으로 DifferNet과 CFlow 등이 있었죠. 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를 살펴보겠습니다.
위 그림은 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
이 부분을 수식으로 살펴보면 다음과 같습니다.
일반적인 Normalizing Flow 모델들은 위의 s, b 함수를 Fully Connected 함수를 사용합니다. 예를 들면 DifferNet 같은 모델이 있습니다. 이렇게 사용했을 때의 단점은 Feature가 Flatten 되는 과정에서 2d Spatial 정보를 잃어버린다는 것입니다. 따라서 저자들은 이 점을 보완하기 위해 2d Convolution을 사용했습니다.
3. 실험 결과
다음은 이렇게 제안한 방법의 실험 결과를 살펴보겠습니다.
3-1. mvTec
먼저 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 데이터셋에 대한 성능입니다.
3-3. CIFAR10
다음은 CIFAR10 데이터셋에 대한 성능입니다.
3-4. Feature Visualization And Generation
다음은 제안하는 방법이 어떻게 작동하는지를 확인하기 위해 feature level에서 visualization 한 모습입니다.
먼저 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와 이 둘의 조합에 따른 성능 비교를 해보겠습니다.
실험 결과를 보면 Model Capacity가 높은 CaiT, Wide-ResNet50-2 같은 경우 1×3과 3×3을 교대로 사용했을 때 성능이 더 좋았고, Model Capacity가 낮은 DeiT, ResNet18의 경우 3×3 만 사용했을 때 성능이 더 좋은 모습을 볼 수 있습니다.