[21′ Arxiv] Student Teacher AD : Student-Teacher Feature Pyramid Matching for Unsupervised Anomaly Detection

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

내용 요약

Knowledge Distillation을 사용하는 Anomaly Detection 방법론을 살펴봅니다. Teacher 네트워크는 ImageNet으로 학습한 모델을 사용합니다. Student는 Teacher 네트워크로부터 정상 이미지에 대한 지식을 전달받아 학습합니다. 이때 다양한 Layer 지식을 모두 전달받아 다양한 특성을 학습합니다. mvTec, STC, CIFAR10 데이터셋 실험을 통해 기존 방법들보다 성능이 좋음을 보입니다.

1. 들어가며

이번 글에서는 2021년 BMVC에 발표된 Student-Teacher Feature Pyramid Matching for Anomaly Detection 논문을 리뷰합니다. 이번 글에서는 해당 논문을 Student Teacher AD라고 지칭하겠습니다. Anomaly Detection에 관한 기본적인 내용은 Anomaly Detection에 관한 모든 것 글을 참고해주세요.

본격적으로 들어가기 전, 제목의 의미를 통해 저자들이 강조하고자 한 내용을 유추해 보겠습니다. 제목에서는 크게 세 가지 포인트를 찾을 수 있습니다.
첫 번째는 Anomaly Detection 방법론이라는 것입니다.
두 번째는 Student Teacher 구조의 Knowledge Distillation 방법을 사용한다는 것입니다.
세 번째는 다양한 Layer에서 Pyramid Matching 방법을 사용한다는 것입니다. 이를 통해 다양한 Layer로 Knowled Distillation을 하는 Anomaly Detection에 관한 내용임을 유추할 수 있습니다.
본문에서 하나씩 자세한 내용을 살펴보겠습니다.

이번 글의 순서는 다음과 같습니다.
첫 번째로 이전 Knowledge Distillation 기반 Anomaly Detection 방법인 Uninformed Students의 문제점을 살펴봅니다.
두 번째로 Student Teacher AD의 제안 방법을 살펴봅니다. 먼저 큰 그림을 살펴본 뒤 학습 과정과 테스트 과정을 살펴봅니다.
세 번째로 성능 실험을 통해 Student Teacher AD 방법의 효과를 살펴봅니다.
네 번째로 Ablation 실험을 통해 Student Teacher AD 방법의 타당성을 살펴봅니다.

2. 기존 방법의 문제점

그럼 기존 방법의 문제점을 살펴보겠습니다.

이번 논문 전에도 Knowledge Distillation을 사용하는 Anomaly Detection 방법론이 존재했습니다. Uninformed Students인데요. 최초의 Knowled Distillation을 사용한 Anomaly Detection 방법이라는 의의가 있었지만 몇 가지 한계도 갖고 있었습니다.

첫 번째는 Teacher 네트워크를 만드는 방법입니다.
Uninformed Students에서는 Teacher 네트워크를 ImageNet으로 학습한 네트워크를 그대로 사용하지 않았습니다. ImageNet을 학습한 네트워크를 더 작은 네트워크에 Knowledge Distillation 하여 Teacher 네트워크를 만들었죠. 이러한 과정에서 필연적으로 정보의 손실이 발생했습니다. 왜냐하면 더 큰 네트워크의 지식을 더 작은 네트워크에 구겨 넣어야 했기 때문이죠.

두 번째는 Student 네트워크의 구성 방법입니다.

그림1.Uninformed Students의 Student 네트워크
그림1. Uninformed Students의 Student 네트워크

Uninformed Students에서는 특이하게도 다수의 Student 네트워크를 구성했습니다. 이렇게 다수의 네트워크로부터 나온 대답을 조합하여 최종 대답으로 계산했죠. 그러다 보니 학습 과정도 어려울뿐더러 계산도 복잡하다는 단점이 있었습니다.

3. 제안 방법

이러한 문제를 극복하기 위해 이번 논문에서는 새로운 방법을 제안합니다.
Knowdledge Distillation 방법을 사용한다는 점에서는 동일한데요. 기존 문제점을 극복하기 위해 몇 가지 차이를 주었습니다. 하나씩 살펴보겠습니다.

3-1. 큰 그림

먼저 큰 그림을 살펴보겠습니다.

그림2.큰 그림
그림2. 큰 그림

크게 보면 전체 구조는 Teacher 네트워크와 동일한 구조의 Student 네트워크로 이루어져 있습니다. 기존 방법은 다수의 Student 네트워크를 구성한 것이 단점이라고 했는데요. 이를 개선하여 이번 논문에서는 하나의 Teacher 네트워크와 하나의 Student 네트워크로 구성했습니다.

이번 논문의 핵심은 아주 간단합니다.
첫 번째 핵심은 전통적인 방식으로 Knowledge Distillation을 수행하는 겁니다. Knowledge Distillation 방법을 사용하여 정상 이미지를 학습하는 것이죠.
두 번째 핵심은 다양한 Scale Feature를 학습한다는 겁니다. 이 과정에서 다양한 Scale의 특성을 학습하게 됩니다.

3-2. 학습 과정

그럼 학습 과정을 자세히 살펴보겠습니다.

Teacher network는 ImageNet으로 학습한 네트워크를 그대로 사용합니다. 기존 방법과의 결정적인 차이중 하나이죠. 그리고 Student 네트워크는 Teacher 네트워크로부터의 지식을 학습할 겁니다. 정상 이미지에 대해서만 학습을 하되, 모든 layer에서의 Feature가 Teacher의 Feature와 동일하도록 학습합니다. 이때의 거리는 L2 거리를 사용합니다. 수식으로는 이렇게 표현됩니다.

img
그림3. student network loss

이때 한 이미지에 대한 한 Layer에서의 Loss는 어떻게 계산될까요?
각 픽셀 (i, j)에서 나온 모든 Loss의 평균값으로 계산합니다. 수식으로는 이렇게 표현합니다.

img
그림4. layer별 loss

그럼 한 이미지에 대한 전체 Loss는 어떻게 계산할까요?
모든 Layer Loss의 가중평균으로 계산합니다. 수식으로는 이렇게 표현합니다.

img
그림5.이미지별 loss

3-3. 테스트 과정

다음은 테스트 과정을 살펴보겠습니다.

테스트 과정에서는 각 Layer에서의 Loss가 Anomaly Score가 됩니다. 학습을 제대로 했다면 정상 이미지에서의 Losss는 아주 작을 것이기 때문이죠. 따라서 Anomaly Score는 다음과 같이 수식으로 표현할 수 있습니다.

img
그림6. 최종 anomaly score

한 이미지에 대한 최종 loss는 각 Layer Loss를 Upsampling 하여 구합니다. 이때의 Upsampling은 Bilinear Interpolation 방법을 사용합니다.

4. 효과

다음은 Student Teacher AD 방법의 실험 결과를 살펴보겠습니다.

4-1. mvTec

먼저 mvTec 데이터셋에 대한 Image Level 성능은 다음과 같습니다.

img
그림7.mvtec image level 성능

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

  • GEOM : [NIPS 2018] Deep Anomaly Detection Using Geometric Transformations
  • GANomaly : [ACCV 2018] GANomaly: Semi-Supervised Anomaly Detection via Adversarial Training
  • AE : [CVPR 2019] MVTec AD— A Comprehensive Real-World Dataset for Unsupervised Anomaly Detection
  • ITAE : [IEEE Transactions on Multimedia 2021] Attribute Restoration Framework for Anomaly Detection
  • SPADE : [arxiv 2020] Sub-Image Anomaly Detection with Deep Pyramid Correspondences

Uninformed Students의 성능은 빠져있는데요. Uninformed Students의 mvtec Image Level 성능은 85.7이었습니다. Student Teacher AD 성능이 압도적으로 좋은 성능임을 알 수 있습니다.

mvTec 데이터셋의 Pixel Level 성능은 다음과 같습니다.

img
그림8. mvtec pixel level 성능

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

  • AE : [CVPR 2019] MVTec AD— A Comprehensive Real-World Dataset for Unsupervised Anomaly Detection
  • AnoGAN : [IPMI 2017] Unsupervised Anomaly Detection with Generative Adversarial Networks to Guide Marker Discovery
  • SPADE : [arxiv 2020] Sub-Image Anomaly Detection with Deep Pyramid Correspondences

SPADE는 Feature Matching 방식이므로 직접 비교하기는 적절하지 않고요. 정상 이미지를 학습하는 방법인 SSIM-AE와 AnoGAN과 비교하는 게 적절해 보입니다. SSIM-AE, AnoGAN보다 훨씬 높은 성능을 보이는 모습입니다.

4-2. STC

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

img
그림9.STC 성능

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

  • AE : [CVPR 2019] MVTec AD— A Comprehensive Real-World Dataset for Unsupervised Anomaly Detection
  • CAVGA-R : [ECCV 2020] Attention Guided Anomaly Localization in Images
  • SPADE :  [arxiv 2020] Sub-Image Anomaly Detection with Deep Pyramid Correspondences

마찬가지로 제안 방법중 가장 좋은 성능을 보입니다.

4-3. CIFAR10

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

img
그림10. CIFAR10 성능

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

  • OCGAN : [ICCV 2019] Ocgan:One-class novelty detection using gans with constrained latent representations
  • 1-NN : [CoRR 2018] Are pre-trained cnns good feature extractors for anomaly detection in surveillance videos
  • OC-SVM : [NIPS 2000] Support vector method for novelty detection
  • AE : [CVPR 2019] MVTec AD— A Comprehensive Real-World Dataset for Unsupervised Anomaly Detection
  • VAE : [ICLR 2014] Auto-encoding variational bayes
  • STAD : [CVPR 2020] Uninformed students: Student-teacher anomaly detection with discriminative latent embeddings 

마찬가지로 제안 방법중 가장 좋은 성능을 보입니다.

5. Ablations

다음은 ablations를 살펴보겠습니다.

5-1. 어떤 layer를 사용해야 하는가?

먼저 CNN 네트워크의 layer에 따른 성능 변화를 살펴보겠습니다.

img
그림11. layer별 성능
img
그림12. layer별 visualization 결과

Figure 1을 보겠습니다.
낮은 Layer Feature를 사용했을 때에는 Anomal 포인트를 정확하게 잡아내는 모습입니다. 반면 배경 Noise에 취약한 모습을 볼 수 있습니다. 반면 높은 Layer Feature를 사용했을 때에는 큼직한 Anomaly에는 강한 모습을 볼 수 있습니다. 따라서 다양한 Layer를 전부 사용하는 게 더 유리합니다. 다양한 특성을 모두 검출할 수 있으니까요. 실제 성능도 가장 좋은 모습을 볼 수 있습니다.

5-2. Backbone network에 따른 성능

다음은 Backbone Network에 따른 성능 변화를 살펴보겠습니다.

img
그림13. backbone network에 따른 성능

보통 더 큰 Backbone 네트워크를 사용할수록 성능이 더 좋아지는데요. 특이하게도 Backbone 네트워크의 성능과 별로 상관없는 모습을 보입니다.

5-3. Pretrained Dataset에 따른 성능

다음은 Pretrained Dataset에 따른 성능을 비교해 보겠습니다.

img
그림14. pretrained dataset에 따른 성능

CIFAR10, CIFAR100, ImageNet으로 갈수록 성능이 좋아지는 모습입니다. 반면 MNIST에서는 성능이 가장 안 좋네요. 이를 통해 자연 이미지일수록, 그리고 데이터 양이 더 많을수록 더 유리하다고 결론 내릴 수 있습니다.

5-4. 학습 샘플의 개수에 따른 성능

다음은 학습 샘플의 개수에 따른 성능을 보겠습니다.

img
그림15. 학습 샘플 개수에 따른 성능

결과를 보면 전체 학습 데이터의 5%, 10% Few Shot Task에서도 제법 잘 작동하는 모습을 볼 수 있습니다.

6. 결론

Knowledge Distillation을 사용하는 Anomaly Detection 방법론을 살펴봤습니다.
ImageNet으로 학습한 Teacher 네트워크의 지식을 Student 네트워크에 Distillation해주는 구조를 사용했습니다. 이때의 지식은 정상 이미지만을 사용했죠. 특이한 점은 모든 Layer Feature를 Distillation 했다는 점입니다. 이를 통해 Student 네트워크는 다양한 정상 특성을 학습할 수 있었습니다.
다양한 실험 결과를 통해 기존 Knowledge Distillation 방법뿐만 아니라 기존 Anomaly Detection 방법들보다 성능이 좋음을 보였습니다.
이번 논문은 가장 기본적인 Knowledge Distillation 방법을 Anomaly Detection에 적용했다는 의의가 있습니다. 또한 성능도 좋고 학습과 계산이 간단하다는 장점이 있습니다.

Series Navigation<< [20′ CVPR] Uninformed Students: Student–Teacher Anomaly Detection with Discriminative Latent Embeddings[21′ CVPR] Multiresolution Knowledge Distillation for 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