[21′ CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization

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

내용 요약

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라고 명명하게 되었죠. 이를 그림으로 표현하면 이렇습니다.

그림1. 큰 그림 - Train Process
그림1. 큰 그림 – Train Process

그림 위쪽은 정상 이미지를 0으로 분류하도록 학습하는 과정입니다. 정상 이미지는 학습용 데이터를 그대로 사용합니다. CutPaste의 핵심은 Anomal 이미지를 만들고 학습하는 과정인데요. 이 과정은 그림 아래쪽에서 확인할 수 있습니다. 학습용 정상 이미지를 자르고 붙이는 (CutPaste) 과정을 통해 Anomal 이미지를 만드는 모습을 볼 수 있습니다. 이렇게 만들어진 Anomal 이미지는 1로 분류하도록 학습하는 모습입니다.

이렇게 학습한 모델이 보는 Normal과 Anomal 이미지의 Feature들은 어떻게 분포할까요?
저자들의 의도는 이렇습니다.

그림2. 큰 그림 - Trained Feature Distribution
그림2. 큰 그림 – Trained Feature Distribution

먼저 Normal 이미지 Feature는 위 그림처럼 한 곳에 모여 분포할 것입니다. 모든 정상 이미지를 0으로 분류하도록 학습했으니까요.
그럼 Anomal 이미지 Feature는 어떻게 분포할까요? 위 그림처럼 Normal 이미지 Feature와는 구분되어 떨어져 분포할 것입니다. 왜냐하면 CutPaste 방식으로 만들어낸 Anomal 이미지를 모두 1로 분류하도록 학습했으니까요.

이러한 저자들의 가정을 바탕으로 Inference 과정을 살펴보겠습니다.

그림3.큰 그림- Inference Process
그림3. 큰 그림- Inference Process

저자들은 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 방법은 간단히 이렇게 정리할 수 있습니다.

  1. 정상 이미지 랜덤 위치의 작은 직사각형을 잘라낸다
  2. 잘라낸 패치를 회전하거나 픽셀값을 변화시킨다. (Jitter)
  3. 이렇게 만든 패치를 원래 이미지의 랜덤 위치에 다시 붙인다.

이렇게 만든 Augmentation 된 이미지는 다음과 같습니다.

그림4.CutPaste Augmentation
그림4. CutPaste Augmentation

위 그림의 (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를 사용합니다. 수식으로는 다음과 같습니다.

그림5.CutPaste Loss Function
그림5.Loss Function

2-4. Anomal Score

마찬가지로 큰 그림에서 살펴봤듯 CutPaste는 학습된 Normal 이미지 Feature는 Gaussian 분포를 이룰 것으로 가정합니다. 따라서 Gaussian Density Estimation (GDE)를 사용하여 Anomal Score를 측정합니다. 수식으로는 다음과 같습니다.

그림6.CutPaste Anomal Score 측정 방법
그림6.Anomal Score 측정 방법

3. CutPaste 효과

다음은 mvtec 데이터셋 성능 실험 결과를 통해 CutPaste의 효과를 살펴보겠습니다.

3-1. mvTec Image Level

먼저 Image Level 성능입니다.

img
  • 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 성능입니다.

그림8.mvTec Pixel Level 성능
그림8.mvTec Pixel Level 성능

위 결과에서 주목해야 될 포인트가 있습니다.
P-SVDD보다 CutPaste 방법의 Pixel Level 성능이 좋다는 것입니다. P-SVDD는 패치 레벨로 학습하기에 이미지 전체를 보는 CutPaste 방식보다 유리한 방법입니다. 하지만 Normal 이미지만 학습한다는 결정적인 차이가 있죠. 이를 통해 Anomal 이미지를 구분하도록 학습하는 방법이 Normal 이미지만 학습하는 방법보다 유리하다는 사실을 유추할 수 있습니다.

4. Ablations

다음은 Ablation 실험 결과를 살펴보겠습니다.

4-1.  CutPaste Finetuning의 효과

먼저 ImageNet Pretrained Feature와 CutPaste Finetuning Feature의 성능 차이를 살펴보겠습니다.

그림9.Ablation - CutPaste Finetuning 효과
그림9.Ablation – CutPaste Finetuning 효과

위 그림은 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별 성능을 비교해 보겠습니다.

그림10.Ablation - Augmentation에 따른 효과
그림10.Ablation – Augmentation에 따른 효과

위 그림은 다양한 Augmentation에 따른 성능을 비교한 표입니다.
종합 성능을 기준으로 Cutout -> Cutout(Mean) -> Cutout(Color) -> Confetti -> CutPaste 순으로 성능이 좋은 모습입니다. 이는 생성한 Anomaly가 문맥과 유사한 정도와 동일한 순서입니다. 이를 통해 실제 Anomaly와 비슷하게 Augmentation 할수록 성능이 좋음을 알 수 있습니다.

4-3. Binary vs Finer-Grained Classification

다음은 Binary Classification 모델과 Finer-Grained Classification 모델의 성능을 비교해 보겠습니다.

그림11.Ablation - Finer Grained Classification 효과
그림11.Ablation – Finer Grained Classification 효과
  • Binary : CutPaste와 CutPaste(Scar)를 합쳐서 Anomaly로 학습
  • 3way : Normal / CutPaste / CutPaste(Scar)를 구분하도록 학습

결과를 보면 Binary 모델보다 3-way 모델의 성능이 더 좋은 모습을 볼 수 있습니다. 이를 통해 더 정교한 Anomaly를 구분하도록 학습할 때 성능이 더 좋음을 알 수 있습니다.

4-4. CutPaste On Synthetic Anomaly Detection

다음은 Synthetic Anomaly Detection 실험 결과를 살펴보겠습니다.

그림12.Synthetic Anomaly Detection 성능
그림12.Synthetic Anomaly Detection 성능

그림 위쪽은 Synthetic Anomaly 샘플 이미지입니다.
그림 아래쪽은 합성한 Anomaly의 형태에 따른 성능을 나타낸 표입니다.

모든 형태에서 Cutout보다 CutPaste의 성능이 좋은 모습입니다. 이를 통해 Anomaly 형태와 상관없이 CutPaste 방식이 Cutout 방식보다 우수함을 알 수 있습니다.

5. Discussion

왜 CutPaste 방식으로 학습하면 Pretrained Feature를 사용할 때보다 성능이 좋아질까요? CutPaste 방식으로 합성한 Anomaly가 실제 Anomaly와 유사하기 때문일까요?
이를 확인하기 위해 실제 Normal/Anomal Feature와 제안 방식으로 합성한 Anomal Feature 분포를 확인해 보겠습니다.

그림13.Discussion - CutPaste Feature Distribution
그림13.Discussion – Feature Distribution
  • 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 데이터셋에 대해서만 실험을 진행했다는 한계가 있습니다.

Series Navigation<< [21′ ICCV] DRAEM : A discriminatively trained reconstruction embedding for surface 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