- 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
내용 요약
기존 Anomaly Detection 방법에 삽입할 수 있는 Reconstruction Block을 소개합니다. Reconstruction 기능을 구현하기 위해 Masked Convolution과 Channel Attention Module을 사용합니다.
1. 들어가며
이번 글에서는 2022년 CVPR에 발표된 논문인 Self-Supervised Predictive Convolutional Attentive Block for Anomaly Detection을 리뷰합니다. 이 논문은 SSPCAB라고 불리며 이번 글에서도 SSPCAB라고 지칭하겠습니다. Anomaly Detection에 관한 기본적인 내용은 Anomaly Detection에 관한 모든 것 글을 참고해주세요.
2. 제안 방법
바로 제안 방법을 살펴보겠습니다. SSPCAB는 한마디로 표현하면 Reconstruction Block이라고 할 수 있습니다. 기존 Reconstruction 방식의 많은 Anomaly Detection 방법론들이 있었는데요. 따라서 Anomaly Detection에서 Reconstruction 방식의 효용성은 입증되어 있는 상태죠. 이에 SSPCAB는 기존 CNN에 삽입 가능한 Reconstruction Block을 제안합니다.
이러한 Reconstruction Block을 구성하기 위한 핵심 아이디어는 크게 두가지입니다.
첫 번째는 Masked Convolution입니다. Masked Convolution은 제한된 정보만을 사용하여 연산을 수행하는데요. 이를 통해 Reconstruction과 유사한 기능을 학습하도록 유도해줍니다.
두 번째는 Channel Attention Module입니다. 이는 Masked Convolution 연산 결과 Feature의 채널별 Scale을 맞춰주는 역할과 Non Linearity를 추가해주는 역할을 합니다.
하나씩 자세히 살펴보겠습니다.
2-1. Masked Convolution
먼저 Masked Convolution입니다.
위 그림은 저자들의 제안 방법인 Masked Convolution과 Standard Convolution의 한 개 Kernel(Convolution Filter)을 비교한 그림입니다. Standard Convolution은 모든 입력에 대해 Convolution 가중치와 연산하는 모습입니다. 반면 Masked Convolution은 네 개 모서리의 부분만 가중치가 할당되어 있습니다. 그 외 흰색 부분은 Masking 처리되어 입력 정보에 대한 연산을 수행하지 않습니다. 이때 Masked Convolution의 연산 결과는 Input Feature와 동일한 사이즈로 나오도록 합니다.
2-2. Channel Attention Module
이렇게 Masked Convolution 연산 결과 나온 Feature Map은 채널별로 각각의 Convolution을 수행했기에 채널별 Scale이 맞지 않습니다. 따라서 이에 대한 Calibration이 필요합니다. 저자들은 이를 위해 Channel Attention Module을 도입합니다. Channel Attention은 기존의 SENet 등의 방법을 그대로 사용합니다.
- 𝛿 : ReLU
- 𝜎 : Sigmoid
적당한 선형 함수와 비선형 함수를 조합하여 Channel Attention Score를 내는 모습을 볼 수 있습니다. 이렇게 Channel Attention Module을 추가함으로써 두 가지 이점을 얻을 수 있습니다.
첫 번째는 Channel별 Scale을 맞출 수 있다는 것입니다.
두 번째는 Non Linearity를 추가해줄 수 있다는 것입니다.
2-3. Reconstruction Loss
Loss 함수는 위의 연산 결과 나온 Feature와 입력 Feature가 동일하도록 Reconstruction Loss를 구성해줍니다.
- X : input feature
- X^ : masked convolution + channel attention의 output feature
이 Loss 함수가 의미하는바가 무엇일까요?
위 그림과 같이 이미지의 중앙 (빨간색 M) 정보는 가려 놓고 K1 ~ K4 정보만을 사용하여 이를 reconstruction 해야 합니다. 이는 주변부의 정보만을 바탕으로 문맥을 파악하는 능력을 학습해야 한다는 의미죠.
2-4. Final Loss
SSPCAB는 기존 Convolution 연산에 추가해줄 수 있는데요. 따라서 기존 Loss에 SSPCAB Loss를 추가하여 구성해줍니다.
- LF : 기존 loss
2-5. SSPCAB의 의미
이제 생각해 봐야 하는건, 왜 SSPCAB가 기존 연산에 추가되면 효과적일까요? 기존 연산에 Reconstruction Block이 하나 추가 되었다는 건데요. 그럼 기존 Anomaly Detection에서 Reconstruction의 의미를 생각해봐야 합니다.
Anomaly Detection에서 Reconstruction 방법을 사용하는 이유는 이렇습니다. Reconstruction은 원래 정보를 복원한다는 의미 잖아요. 그런데 내가 학습할 때 봤던 정보만 잘 복원할 수 있겠죠. 처음 보는 정보는 학습한 적이 없으니 엉뚱한 방향으로 복원해 놓을 겁니다. 그런데 Anomaly Detection 문제의 특성상 모델은 정상 데이터만 학습할 거고요. 따라서 테스트 단계에서 불량 데이터가 들어오면 입력 이미지와 전혀 다른 이미지로 복원해 놓겠죠. 이 차이를 이용하겠다는 겁니다.
그럼 기존 Anomaly Detection 모델에 이러한 Reconstruction Block을 삽입하면 어떤 상황이 벌어질까요? 정상과 비정상 Feature의 분포가 더 많이 차이 나게 될 겁니다. 비정상 Feature는 Reconstruction Block이 없을때 보다 더욱 이상한 공간으로 Mapping 될 거니까요. 이러한 원리로 SSPCAB는 기존 Anomaly Detection 방법의 성능을 개선해준다고 생각할 수 있습니다.
3. 실험 결과
제안 방법의 성능을 확인해보겠습니다.
3-1. mvTec
먼저 mvTec 데이터셋에서의 성능입니다.
Baseline 모델을 DRAEM와 CutPaste로 SSPCAB 모듈을 추가하여 실험을 진행했습니다. SSPCAB를 추가했을 때 성능이 증가하는 모습을 볼 수 있습니다.
3-2. Avenue and ShanghaiTech
다음은 Aveneu와 ShanghaiTech 데이터셋에 대한 성능입니다.
대부분 모델에 SSPCAB를 추가하면 성능이 좋아지는 모습을 볼 수 있습니다.