- 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
내용 요약
CutPaste Augmentation 방법으로 Anomaly를 학습하는 CutPaste를 리뷰합니다. CutPaste는 합성한 이미지와 학습용 정상 이미지를 구분하는 Classification 모델을 학습합니다. Inference 단계에서는 Gaussian Density Estimation을 사용하여 Anomal Score를 측정합니다. mvTec 데이터셋에 대한 실험을 통해 기존 방법들보다 성능이 우수함을 보였습니다. Ablation 실험을 통해 제안 방법의 타당성을 증명합니다.
1. 들어가며
이번 글에서는 2021년 CVPR에 발표된 CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 논문을 리뷰합니다. 이 논문은 CutPaste라는 별칭으로 불리며, 이번 글에서도 CutPaste로 지칭하겠습니다. Anomaly Detection에 관한 기본적인 내용은 Anomaly Detection에 관한 모든 것 글을 참고해주세요.
본격적으로 들어가기 전, 제목의 의미를 통해 저자들이 강조하고자 한 내용을 유추해 보겠습니다. 제목에서는 크게 세 가지 포인트를 찾을 수 있습니다.
첫 번째는 Anomaly Detection 방법론이라는 것입니다.
두 번째는 Self Supervised Learning 방법을 사용하는 방법론이라는 것입니다.
세 번째는 자르고 붙이는 방법(Cut Paste)을 이용한다는 것입니다.
이를 통해 자르고 붙이는 방법을 사용한 Self Supervised Learning 기반의 Anomaly Detection 방법에 관한 내용임을 유추할 수 있습니다. 본문에서 하나씩 자세한 내용을 살펴보겠습니다.
이번 글의 순서는 다음과 같습니다.
첫 번째로 제안 방법을 자세히 살펴봅니다. 먼저 큰 그림을 정리한 뒤 Loss Function, Anomal Score 측정 방법을 살펴봅니다.
두 번째로 성능 실험 결과를 통해 제안 방법의 효과를 살펴봅니다.
세 번째로 Ablation 실험 결과를 통해 제안 방법의 타당성을 살펴봅니다.
네 번째로 Discussion 챕터에서는 제안 방법을 사용하여 생성한 Feature 분포를 살펴봅니다.
2. CutPaste 제안 방법
바로 제안 방법을 살펴보겠습니다.
이번 챕터에서는 제안 방법의 큰 그림을 먼저 정리합니다. 이후 Anomaly를 만드는 방법과 Loss Function, Anomal Score 측정 방법을 정리하겠습니다.
2-1. 큰 그림
먼저 제안 방법의 큰 그림을 살펴보겠습니다.
CutPaste의 핵심 철학은 Normal과 Anomal을 Classification 하도록 학습하자는 것입니다. 원래 Anomaly Detection의 가장 큰 전제는 학습용 Anomal 데이터가 없다는 것이죠. 그렇다면 CutPaste는 어떻게 Anomal 데이터를 학습할 수 있을까요?
바로 Normal 이미지로부터 Anomal 이미지를 만들어내는 방법을 사용합니다. 이때 Normal 이미지를 자르고(Cut) 붙이는(Paste) 방법을 사용합니다. 때문에 논문의 이름을 CutPaste라고 명명하게 되었죠. 이를 그림으로 표현하면 이렇습니다.
![[21' CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 1 그림1. 큰 그림 - Train Process](https://blog.kakaocdn.net/dn/cuiPbv/btr3kxt1Phz/c54f4EKCsfljJ7To6WJA50/img.png)
그림 위쪽은 정상 이미지를 0으로 분류하도록 학습하는 과정입니다. 정상 이미지는 학습용 데이터를 그대로 사용합니다. CutPaste의 핵심은 Anomal 이미지를 만들고 학습하는 과정인데요. 이 과정은 그림 아래쪽에서 확인할 수 있습니다. 학습용 정상 이미지를 자르고 붙이는 (CutPaste) 과정을 통해 Anomal 이미지를 만드는 모습을 볼 수 있습니다. 이렇게 만들어진 Anomal 이미지는 1로 분류하도록 학습하는 모습입니다.
이렇게 학습한 모델이 보는 Normal과 Anomal 이미지의 Feature들은 어떻게 분포할까요?
저자들의 의도는 이렇습니다.
![[21' CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 2 그림2. 큰 그림 - Trained Feature Distribution](https://blog.kakaocdn.net/dn/dISZIZ/btr3eXUmCZf/7QtlUusPOwjuNY607VVKo0/img.png)
먼저 Normal 이미지 Feature는 위 그림처럼 한 곳에 모여 분포할 것입니다. 모든 정상 이미지를 0으로 분류하도록 학습했으니까요.
그럼 Anomal 이미지 Feature는 어떻게 분포할까요? 위 그림처럼 Normal 이미지 Feature와는 구분되어 떨어져 분포할 것입니다. 왜냐하면 CutPaste 방식으로 만들어낸 Anomal 이미지를 모두 1로 분류하도록 학습했으니까요.
이러한 저자들의 가정을 바탕으로 Inference 과정을 살펴보겠습니다.
![[21' CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 3 그림3.큰 그림- Inference Process](https://blog.kakaocdn.net/dn/bDKgHB/btr3c2ozmxH/L2i0PfWpPBhHzWTGEdSgj1/img.png)
저자들은 Normal 이미지 Feature는 한 곳에 뭉쳐있고 Anomal 이미지 Feature는 구분되어 분포할 것이라 가정했죠. 즉 Normal 이미지 Feature를 Gaussian 분포로 가정합니다. 따라서 Inference 단계에서는 Gaussian Density Estimation (GDE)를 사용하여 Anomal Score를 측정합니다. Normal 이미지 Feature들이 이루는 Gaussian 분포에서 얼마나 떨어졌는지를 근거로 Anomal Score를 측정하는 것이죠. Gaussian 분포의 중심으로부터 멀리 떨어져 있을수록 Anomaly라고 판단하는 겁니다.
2-2. CutPaste Augmentation 방법
이제 CutPaste의 핵심이라 할 수 있는 Augmentation 방법을 살펴보겠습니다.
이는 쉽게 말하면 Anomal 이미지를 합성하는 방법을 의미합니다. CutPaste의 Augmentation 방법은 간단히 이렇게 정리할 수 있습니다.
- 정상 이미지 랜덤 위치의 작은 직사각형을 잘라낸다
- 잘라낸 패치를 회전하거나 픽셀값을 변화시킨다. (Jitter)
- 이렇게 만든 패치를 원래 이미지의 랜덤 위치에 다시 붙인다.
이렇게 만든 Augmentation 된 이미지는 다음과 같습니다.
![[21' CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 4 그림4.CutPaste Augmentation](https://blog.kakaocdn.net/dn/esZxK0/btr3dTLEixM/7OgGdxJKU9dPncgM10DXH1/img.png)
위 그림의 (b)는 실제 Anomal 이미지입니다.
(c)는 Cutout, (d)는 Scar라는 Augmentation 샘플 이미지입니다.
(e)는 CutPaste, (f)는 CutPaste 방법을 Scar 모양으로 적용한 샘플 이미지입니다.
각 Augmentation 방법별 특징을 잠깐 살펴볼게요.
먼저 Cutout 방법은 거친 모습을 볼 수 있습니다. 누가 봐도 한눈에 전혀 다른 특성의 Anomaly 패치를 추가한 모습이죠.
반면 Scar는 거친 Anomaly를 붙이지만 그 범위가 아주 작은 모습입니다.
CutPaste는 생성된 Anomaly 영역은 Cutout과 유사하지만 문맥에서 크게 벗어나지 않는 Anomaly가 추가된 모습이죠. 이는 애초에 본인 이미지로부터 잘라낸 패치를 사용하기 때문입니다.
마지막으로 CutPaste(Scar)는 문맥에서 벗어나지 않으면서도 아주 작은 부분에 Anomaly를 추가한 모습입니다.
2-3. Loss Function
큰 그림에서 살펴봤듯 CutPaste는 Normal과 Anomal을 구분하도록 Classification 하는 모델입니다. 따라서 Loss Function으로는 Cross Entropy Loss를 사용합니다. 수식으로는 다음과 같습니다.
![[21' CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 5 그림5.CutPaste Loss Function](https://blog.kakaocdn.net/dn/TKSvd/btr3kxHxC3z/0JkGp3NIPRsB17yewd8Up0/img.png)
2-4. Anomal Score
마찬가지로 큰 그림에서 살펴봤듯 CutPaste는 학습된 Normal 이미지 Feature는 Gaussian 분포를 이룰 것으로 가정합니다. 따라서 Gaussian Density Estimation (GDE)를 사용하여 Anomal Score를 측정합니다. 수식으로는 다음과 같습니다.
![[21' CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 6 그림6.CutPaste Anomal Score 측정 방법](https://blog.kakaocdn.net/dn/crwmNX/btr3cJvZjNn/vE12rK1AhAmOhfP1kEfkzk/img.png)
3. CutPaste 효과
다음은 mvtec 데이터셋 성능 실험 결과를 통해 CutPaste의 효과를 살펴보겠습니다.
3-1. mvTec Image Level
먼저 Image Level 성능입니다.
![[21' CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 7 img](https://blog.kakaocdn.net/dn/RrqSO/btr3prNNtq4/ZgqILMlofWZKtVkFtoM70k/img.png)
- U-Student : Knowledge Distillation 방법의 Anomaly Detection
- P-SVDD : Patch Level SVDD
- Rotation : Rotation Augmentation을 CutPaste 방식으로 학습, 평가
- Cutout : Cutout Augmentation을 CutPaste 방식으로 학습, 평가
- Scar : Scar Augmentation을 CutPaste 방식으로 학습, 평가
- CutPaste : 제안 방법
- CutPaste(Scar) : CutPaste Augmentation을 Scar 모양으로 생성하여 학습, 평가
- CutPaste(3-way) : Normal, CutPaste, CutPaste(Scar)를 구분하도록 학습한 뒤 평가
위 결과에서 몇 가지 주목해야 될 포인트가 있습니다.
첫 번째로 Cutout -> Rotation -> Scar -> CutPaste -> CutPaste(Scar) 순으로 성능이 좋아진다는 것입니다. 이를 통해 실제 Anomaly와 비슷한 Augmentation 일수록 성능 향상폭이 크다는 사실을 유추할 수 있습니다.
두 번째로 CutPaste, CutPaste(Scar)보다 CutPaste(3-way)의 성능이 좋다는 것입니다. CutPaste(3-way)는 CutPaste와 CutPaste(Scar)의 미세한 차이까지 구분해야 하는데요. 이를 통해 Anomaly를 더 정교하게 구분하도록 학습할수록 성능이 좋다는 사실을 유추할 수 있습니다.
3-2. mvTec Pixel Level
다음은 Pixel Level 성능입니다.
![[21' CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 8 그림8.mvTec Pixel Level 성능](https://blog.kakaocdn.net/dn/tuz5k/btr3fuq2zz0/X4MU3EF60pVPanEpXhjrx0/img.png)
위 결과에서 주목해야 될 포인트가 있습니다.
P-SVDD보다 CutPaste 방법의 Pixel Level 성능이 좋다는 것입니다. P-SVDD는 패치 레벨로 학습하기에 이미지 전체를 보는 CutPaste 방식보다 유리한 방법입니다. 하지만 Normal 이미지만 학습한다는 결정적인 차이가 있죠. 이를 통해 Anomal 이미지를 구분하도록 학습하는 방법이 Normal 이미지만 학습하는 방법보다 유리하다는 사실을 유추할 수 있습니다.
4. Ablations
다음은 Ablation 실험 결과를 살펴보겠습니다.
4-1. CutPaste Finetuning의 효과
먼저 ImageNet Pretrained Feature와 CutPaste Finetuning Feature의 성능 차이를 살펴보겠습니다.
![[21' CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 9 그림9.Ablation - CutPaste Finetuning 효과](https://blog.kakaocdn.net/dn/zV68e/btr3iJIeT1o/8K4JZyQslgo5ckBVf7X6mk/img.png)
위 그림은 Pretrained Feature를 사용한 성능과 CutPaste Finetuning Feature를 사용한 성능을 비교한 표입니다.
먼저 정리하고 가야 할 부분이 있습니다. CutPaste는 GDE를 사용하여 Anomal Score를 측정하죠. 따라서 Pooling 한 Pretrained Feature를 사용하는 방법은 Mahalanobis AD와 동일하다는 것입니다. 마찬가지로 Level-7 Pretrained Feature를 사용하는 방법은 PaDiM과 동일하다고 할 수 있습니다.
이러한 관점에서 위 결과를 살펴보겠습니다.
CutPaste는 Mahalanobis AD과 PaDiM에 비해 거의 모든 클래스에서 성능이 더 좋은 모습입니다. 이를 통해 CutPaste 방식으로 Finetuning 했을 때 Anomal 이미지가 더 잘 구분된다고 유추할 수 있습니다.
4-2. CutPaste Augmentation 방법에 따른 효과
다음은 다양한 Augmentation별 성능을 비교해 보겠습니다.
![[21' CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 10 그림10.Ablation - Augmentation에 따른 효과](https://blog.kakaocdn.net/dn/bew26H/btr3uDUGHR8/XomaeVh3tAOW16wRjGn7Sk/img.png)
위 그림은 다양한 Augmentation에 따른 성능을 비교한 표입니다.
종합 성능을 기준으로 Cutout -> Cutout(Mean) -> Cutout(Color) -> Confetti -> CutPaste 순으로 성능이 좋은 모습입니다. 이는 생성한 Anomaly가 문맥과 유사한 정도와 동일한 순서입니다. 이를 통해 실제 Anomaly와 비슷하게 Augmentation 할수록 성능이 좋음을 알 수 있습니다.
4-3. Binary vs Finer-Grained Classification
다음은 Binary Classification 모델과 Finer-Grained Classification 모델의 성능을 비교해 보겠습니다.
![[21' CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 11 그림11.Ablation - Finer Grained Classification 효과](https://blog.kakaocdn.net/dn/86WlI/btr3dT5VMrf/njeZYW4a7QjLvoxwf78Vpk/img.png)
- Binary : CutPaste와 CutPaste(Scar)를 합쳐서 Anomaly로 학습
- 3way : Normal / CutPaste / CutPaste(Scar)를 구분하도록 학습
결과를 보면 Binary 모델보다 3-way 모델의 성능이 더 좋은 모습을 볼 수 있습니다. 이를 통해 더 정교한 Anomaly를 구분하도록 학습할 때 성능이 더 좋음을 알 수 있습니다.
4-4. CutPaste On Synthetic Anomaly Detection
다음은 Synthetic Anomaly Detection 실험 결과를 살펴보겠습니다.
![[21' CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 12 그림12.Synthetic Anomaly Detection 성능](https://blog.kakaocdn.net/dn/XqJRV/btr3dE13Zi5/rPoMhraoquKrJlA6Mvt741/img.png)
그림 위쪽은 Synthetic Anomaly 샘플 이미지입니다.
그림 아래쪽은 합성한 Anomaly의 형태에 따른 성능을 나타낸 표입니다.
모든 형태에서 Cutout보다 CutPaste의 성능이 좋은 모습입니다. 이를 통해 Anomaly 형태와 상관없이 CutPaste 방식이 Cutout 방식보다 우수함을 알 수 있습니다.
5. Discussion
왜 CutPaste 방식으로 학습하면 Pretrained Feature를 사용할 때보다 성능이 좋아질까요? CutPaste 방식으로 합성한 Anomaly가 실제 Anomaly와 유사하기 때문일까요?
이를 확인하기 위해 실제 Normal/Anomal Feature와 제안 방식으로 합성한 Anomal Feature 분포를 확인해 보겠습니다.
![[21' CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 13 그림13.Discussion - CutPaste Feature Distribution](https://blog.kakaocdn.net/dn/cjhjEm/btr3eA589f2/gABLGmYtfQeh3rKkeZfV91/img.png)
- Normal(Blue) : 실제 Normal Feature
- Anomaly (Red) : 실제 Anomaly Feature
- Patch (Green) : CutPaste로 생성한 Anomaly
- Scar (Yellow) : CutPaste(Scar)로 생성한 Anomaly
원래의 Anomaly Detection은 파란색과 빨간색을 구분하는 문제인 거죠. 그런데 빨간색(실제 Anomaly)을 구할 수 없으니 CutPaste에서는 초록색과 노란색을 Anomaly라고 학습해 준 겁니다. 그런데 그림들을 보면 빨간색과 초록색, 노란색은 크게 일치하지 않는 모습입니다. 하지만 파란색(실제 Normal)과는 확실히 구분되어 있죠. 이를 통해 실제 Anomaly와는 달라도 Normal과 구분되는 Anomaly를 만들어 학습하면 실제 Anomaly를 구분하는 능력이 향상됨을 알 수 있습니다.
6. 결론
지금까지 CutPaste Augmentation 방법으로 합성한 Anomaly를 학습하는 Anomaly Detection 방법을 살펴봤습니다. CutPaste는 mvTec 데이터셋에서 Pretrained Feature를 사용할 때보다 성능이 향상됨을 보였습니다. CutPaste는 간단한 Augmentation 방법으로 Anomaly를 학습하여 성능을 향상했다는 의의가 있습니다. 반면 mvTec 데이터셋에 대해서만 실험을 진행했다는 한계가 있습니다.