안녕하세요.

 

오늘은 Anomaly Detection and Segmentation(Localization)에서 MVTec AD dataset 기준 얼마 전까지 SOTA였던 모델인 PaDiM을 소개해볼까 합니다.

 

원래는 SOTA였지만, 현재는 PatchCore라는 모델이 SOTA를 찍으면서 현재는 성능 기준 2위인 모델입니다.(2021/07/11 기준)

 

논문의 주소는 다음과 같습니다.

 

 

https://arxiv.org/abs/2011.08785

 

PaDiM: a Patch Distribution Modeling Framework for Anomaly Detection and Localization

We present a new framework for Patch Distribution Modeling, PaDiM, to concurrently detect and localize anomalies in images in a one-class learning setting. PaDiM makes use of a pretrained convolutional neural network (CNN) for patch embedding, and of multi

arxiv.org

 

그럼 시작해보겠습니다.

 

 

 

Abstract

 

 

저자들은 본 논문에서 one-class learning setting일 때 이미지 내에서 anomaly를 검출하면서 동시에 위치를 찾아내고자 Patch Distribution Modeling을 위한 새로운 framework를 제시합니다.

 

PaDiM은 patch embedding을 위해서 pretrained convolutional neural network를 사용하고, normal class의 확률적 representation을 얻고자 multivariate Gaussian distribution을 활용합니다.

 

이는 anomaly의 위치를 더 잘 찾기 위해 CNN의 다양한 semantic level 사이의 correlation 또한 사용할 수 있게 해 줍니다.

 

PaDiM은 MVTec AD와 STC dataset에 대해서 anomaly detection과 localization 모두 현재 SOTA보다 더 나은 성능을 나타냅니다.

 

실제 산업 현장에서 이루어지는 inspection과 유사한 환경을 만들기 위해, 저자들은 anomaly localization algorithm의 성능을 평가하는 evaluation protocol을 non-aligned data로 확장하는 결과도 보여줍니다.

 

 

 

1. Introduction

 

사람은 동질의 자연스러운 이미지의 집합에서 이질적이거나 예상하지 못한 패턴을 검출할 수 있는데, 이러한 task는 anomaly detection 혹은 novelty detection이라고 알려져 있습니다.

 

하지만 제조 공정에서 anomaly는 매우 드물게 발생하며, 이를 수동으로 검출하는 것은 힘든 일입니다.

 

그러므로, anomaly detection automation은 사람 작업자의 작업을 촉진함으로써 지속적인 품질 관리를 가능하게 해 줍니다.

 

본 논문에서 저자들은 주로 산업 검사 상황에서의 anomaly detection과 anomaly localization에 초점을 둡니다.

 

 

Computer vision에서, anomaly detection은 이미지에 anomaly score를 매기는 것으로 이루어져 있습니다.

 

Anomaly localization은 각 픽셀이나, 혹은 픽셀들의 각 패치에 anomaly score를 assign 해서 anomaly map을 산출하는 더욱 복잡한 task입니다.

 

따라서, anomaly localization은 더욱 정확하고 해석 가능한 결과를 만들어내게 됩니다.

 

저자들의 방법론을 통해 만들어진 anomaly map의 MVTec Anomaly Detection (MVTec AD) dataset에서의 예시는 Figure 1에서 확인할 수 있습니다.

 

Figure 1

 

 

Anomaly detection은 normal class와 anomalous class 사이의 binary classification입니다.

 

하지만, anomalous examples가 자주 부족하고, 더욱이 anomalies는 예기치 않은 패턴을 가질 수 있기 때문에 anomaly detection을 위한 모델을 full supervision으로 학습시킬 수 없습니다. (supervised learning이 불가능하다 정도로 이해하시면 됩니다. 상대적으로 anomaly image를 구하기 어렵기 때문이죠.)

 

그러므로, anomaly detection model들은 one-class learning setting에서 추정됩니다.

 

즉, 학습하는 동안 anomalous examples는 사용할 수 없으며 training dataset은 오직 normal class에서 나온 이미지만 포함합니다.

 

Test time일 때, normal training dataset과는 다른 examples이 anomalous로 분류됩니다.

 

 

최근에, one-class learning setting에서 anomaly localization과 detection task를 결합하기 위해 여러 방법론들이 제안되어 왔습니다.

 

하지만, 이러한 방법론들은 다루기 힘든 deep neural network training을 필요로 하거나, test time에서 전체 training dataset에 대해 K-nearest-neighbor (KNN) algorithm을 사용합니다.

 

KNN algorithm의 시간 복잡도와 공간 복잡도는 training dataset의 크기가 증가함에 따라 증가하게 됩니다.

 

이러한 두 확장성 문제(1. 다루기 힘든 DNN 학습을 필요로 함, 2. KNN algorithm의 사용)는 산업 현장에서 anomaly localization algorithm을 사용되는 것을 어렵게 만듭니다.

 

 

앞에서 언급된 문제들을 완화하고자, 저자들은 PaDiM이라고 부르는 새로운 anomaly detection and localization approach를 제안합니다.

 

이는 pretrained convolutional neural network (CNN)을 embedding extraction에 사용하고, 다음 두 가지 특성을 가집니다.

 

  • 각 patch position은 multivariate Gaussian distribution으로 표현됩니다.
  • PaDiM은 pretrained CNN의 다른 semantic level 간의 correlation을 고려합니다.

 

이러한 새롭고 효율적인 접근법을 이용해, PaDiM은 MVTec AD와 ShanghaiTech Campus (STC) dataset에 대해서 anomaly localization과 detection의 현재 SOTA method보다 더 좋은 성능을 냅니다.

 

게다가, test time에서 PaDiM은 낮은 시간 복잡도와 공간 복잡도를 가지며 training dataset size와 독립적입니다.

 

저자들은 또한 non-aligned dataset과 같은 보다 현실적인 조건에서의 model performance를 평가하기 위해 evaluation protocol을 확장하였습니다.

 

 

 

2. Related work

 

 

Anomaly detection과 localization methods는 reconstruction-based나 embedding similarity-based methods로 분류될 수 있습니다.

 

 

2.1 Reconstruction-based methods

 

 

Reconstruction-based methods는 anomaly detection과 localization에서 널리 사용되는데요.

 

Autoencoder (AE)와 같은 Neural network architectures, variational autoencoders (VAE), 혹은 generative adversarial networks (GAN)는 오직 normal training image만 복원하도록 학습됩니다.

 

그러므로, anomalous image는 잘 복원되지 않기 때문에 검출될 수 있습니다.

 

Image level에서, 가장 간단한 접근법은 reconstructed error를 anomaly score로 사용하는 것이나, latent space나 intermediate activation, 혹은 discriminator로부터 얻을 수 있는 추가적인 정보는 anomalous image를 더 잘 파악하는데 도움을 줄 수 있습니다.

 

Anomalies의 위치를 파악하기 위해서, reconstruction-based methods는 pixel-wise reconstruction error나 structural similarity를 anomaly score로 사용할 수 있습니다.

 

비록 reconstruction-based methods가 매우 직관적으로 해석 가능하지만, AE가 때때로 anomalous image에 대해서도 좋은 reconstruction results를 만들어낼 수 있다는 사실에 의해 이들의 성능은 제한적입니다.

 

 

 

2.2 Embedding similarity-based methods

 

 

Embedding similarity-based methods는 anomaly detection을 위한 전체 이미지나 anomaly localization을 위한 이미지 패치를 묘사하는 meaningful vector를 추출하는 deep neural network를 사용하게 됩니다.

 

Anomaly detection만을 수행하는 embedding similarity-based methods는 유망한 결과를 내고 있으나 anomalous image의 어떤 부분이 높은 anomaly score에 대해 기여하고 있는지를 아는 것이 불가능하므로 해석 가능성이 부족한 경우들이 있습니다.

 

이러한 경우에 anomaly score는 training dataset으로부터 얻어지는 reference vector와 test image의 embedding vector 사이의 distance가 됩니다.

 

Normal reference는 normal image로부터의 embeddings, Gaussian distribution의 parameters, 혹은 normal embedding vector의 전체 집합을 포함하는 n-sphere의 중심이 될 수 있습니다.

 

마지막 option은 anomaly localization에서 가장 좋은 성능을 낸 SPADE에서 사용되었습니다.

 

하지만, 이는 test time에서 normal embedding vector의 집합에 K-NN algorithm을 실행하게 되며 이는 training dataset size에 따라 선형적으로 inference 복잡도를 증가하게 만듭니다. 

 

이는 해당 방법을 산업 현장에서 사용하기 어렵게 만듭니다.

 

 

저자들의 방법론인 PaDiM은 앞에서 언급된 접근법들과 유사하게 anomaly localization을 위한 patch embedding을 만들어냅니다.

 

하지만, PaDiM에서 normal class는 pretrained CNN model의 semantic level 간 correlation을 모델링하는 일련의 Gaussian distribution을 통해 묘사됩니다.

 

이전 연구에서 영감을 받아, 저자들은 ResNet, Wide-ResNet, EfficientNet과 같은 pretrained networks를 선택하였습니다.

 

PaDiM은 현재 SOTA method보다 더 좋은 성능을 내며, 시간 복잡도는 낮고 예측 단계에서 training dataset size와 독립적입니다.

 

 

3. Patch Distribution Modeling

 

 

3.1 Embedding extraction

 

 

Pretrained CNN은 anomaly detection을 위해 관련 있는 특징들을 뽑아낼 수 있습니다.

 

그러므로, 저자들은 patch embedding vector를 만들기 위해서 오직 pretrained CNN을 사용함으로써 다루기 힘든 neural network optimization을 회피하는 것을 선택하였습니다.

 

PaDiM에서의 patch embedding process는 SPADE에서와 유사하며, Figure 2에서 확인할 수 있습니다.

 

 

Figure 2

 

학습 phase 동안에, normal image의 각 patch는 pretrained CNN activation map에서 공간적으로 대응되는 activation vector와 연관됩니다. (예를 들어서, 원래 이미지는 224x224이고 위 그림에서 Pre-trained CNN의 맨 왼쪽 파란색 activation vector는 ResNet18 기준으로 56x56가 되는데요. 이는 원래 이미지의 4x4 만큼의 Patch가 activation vector에서 1x1이 된다고 생각할 수 있습니다.)

 

Fine-grained and global context를 encoding 하기 위해서, 다른 semantic level과 resolution으로부터의 정보를 가지고 있는 embedding vector를 얻고자 다른 layers로부터의 activation vector는 concatenated 됩니다.(위 Figure 2에서 파란색 embedding과 녹색 embedding, 노란색 embedding을 모두 합친다는 의미라고 이해해주시면 됩니다.)

 

Activation maps가 input image보다 더 낮은 resoltuion을 가지기 때문에 많은 pixel들은 동일한 embeddings를 가지게 되며, original image resolution에서 어떠한 overlap도 없는 pixel patch를 형성하게 됩니다. (앞에서 설명드린 224x224가 56x56이 되는 것을 생각해보시면 별도로 overlap 되는 것 없이 작업이 된다는 것을 이해하실 수 있을 것이라고 생각합니다.)

 

그러므로, input image는 $(i, j) \in [1, W] \times [1, H]$의 grid로 분할될 수 있으며, $W \times H$는 embeddings를 만들어낼 때 사용된 가장 큰 activation map의 resolution을 나타냅니다.

 

마지막으로, 이러한 grid에서의 각 patch position $(i, j)$는 위에서 묘사된 것처럼 계산된 embedding vector $x_{ij}$와 관련이 있습니다.

 

 

생성된 patch embedding vector가 중복된 정보를 가질 수 있기 때문에, 저자들은 이들의 사이즈를 줄이기 위한 가능성을 실험적으로 연구했는데요.

 

저자들은 고전적인 PCA를 통해 임의로 몇몇 차원만을 선택하는 것이 더욱 효율적이라는 것을 알게 되었습니다.

 

이러한 단순한 random dimensionality reduction은 SOTA performance를 유지하면서도 training and testing time 둘 다에서의 model의 복잡도를 상당히 감소시키게 됩니다.

 

마지막으로, test image에서의 patch embedding vector는 다음 subsection에서 설명하는 대로 normal class의 학습된 parametric representation을 가지고 anomaly map을 만들어내는 데 사용됩니다.

 

 

3.2 Learning of the normality

 

 

위치 $(i, j)$에서의 normal image 특성을 학습하기 위해, 저자들은 첫 번째로 N개의 normal training image로부터 $(i, j)$에서의 patch embedding vector의 집합 $X_{ij} = \left\{x^k_{ij}, k \in [1, N]\right\}$를 계산합니다.

 

이 집합으로부터 얻어지는 정보를 요약하기 위해, 저자들은 $X_{ij}$가 multivariate Gaussian distribution $\mathcal{N}(\mu_{ij}, \Sigma_{ij})$에 의해서 생성되었다는 가정을 만들었으며, $\mu_{ij}$는 $X_{ij}$의 sample mean이고, sample covariance $\Sigma_{ij}$는 다음과 같이 추정됩니다.

 

 

Regularization term인 $\epsilon I$는 sample covariance matrix $\Sigma_{ij}$가 full rank이고 invertible 하게 만들어줍니다.

 

마지막으로, 각각의 가능한 patch position은 Gaussian parameter의 matrix에 의해서 Figure 2에서 나타나듯이 multivariate Gaussian distribution과 관련됩니다.

 

 

저자들의 patch embedding vector는 다른 semantic level로부터의 information을 포함하고 있습니다.

(이미 알려져 있는 것처럼, CNN의 각 layer는 각자 다른 수준의 특징을 잡아내게 됩니다. 해당 모델에서는 3개의 layer에서 embedding vector를 뽑아내므로, 각 embedding vector는 각자 다른 수준의 특징을 잡아낸다고 볼 수 있습니다.)

 

그러므로, 추정된 multivariate Gaussian distribution $\mathcal{N}(\mu_{ij}, \Sigma_{ij})$ 각각은 다른 level로부터의 information을 포착하고 있으며 $\Sigma_{ij}$는 inter-level correlation을 포함하게 됩니다.

 

저자들은 pretrained CNN의 다른 semantic level 사이의 관계를 모델링하는 것이 anomaly localization performance를 증가시키는데 도움이 준다는 사실을 실험적으로 보였습니다.

 

 

3.3 Inference: computation of the anomaly map

 

 

다른 논문들에서 영감을 받아, 저자들은 test image의 $(i, j)$에 있는 patch에 대해서 anomaly score를 만들어내고자 Mahalanobis distance $\mathcal{M}(x_{ij})$를 사용하였습니다.

 

$\mathcal{M}(x_{ij})$는 test patch embedding $x_{ij}$와 학습된 distribution $\mathcal{N}(\mu_{ij}, \Sigma_{ij})$간 거리로 해석될 수 있으며, $\mathcal{M}(x_{ij})$는 다음과 같이 계산됩니다.

 

 

따라서, Mahalanobis distance의 matrix인 $\mathcal{M} = (\mathcal{M}(x_{ij}))_{1<i<W, 1<j<H}$는 계산되는 anomaly map을 형성하게 됩니다.

(동일한 좌표 $(i, j)$에 대해서, 학습된 평균과 공분산을 통해 각 test image의 $(i, j)$위치에 대해 계산하게 되면 해당 test image의 각 좌표 $(i, j)$가 normal distribution과 비교했을 때 얼마나 차이가 많이 나는지를 계산할 수 있게 됩니다.)

 

 

이 map에서 높은 점수는 anomalous areas를 나타내게 됩니다.

 

전체 이미지의 최종 anomaly score는 anomaly map $\mathcal{M}$의 maximum 값이 됩니다.

 

마지막으로, test를 진행할 때, 저자들의 방법론은 patch의 anomaly score를 얻기 위해서 많은 양의 distance value를 계산하고 정렬할 필요가 없으므로 K-NN 기반의 방법론의 확장성 이슈를 가지고 있지 않습니다.

 

 

 

4. Experiments

 

4.1 Datasets and metrics

 

 

저자들은 첫 번째로 모델을 one-class learning setting에서 industrial quality control을 위한 anomaly localization algorithm을 테스트하기 위해 설계된 MVTec AD dataset에 평가하였습니다.

 

이는 대략 240개의 이미지로 구성된 15개의 클래스를 포함하며, 이미지의 resolution은 700x700부터 1024x1024로 다양하게 존재합니다.

 

여기에는 10 object class와 5 texture class가 있습니다.

 

Objects는 항상 well-centered이며, Transistor와 Capsule 클래스를 묘사한 Figure 1에서 볼 수 있듯이 dataset 전반에 걸쳐 동일한 방식으로 정렬되어 있습니다.

 

원래 dataset에 추가해서, 더 현실적인 상황에서의 anomaly localization model의 성능을 평가하고자, 저자들은 MVTec AD의 modified version인 Rd-MVTec AD라는 것을 만들었습니다.

 

이는 train과 test dataset 모두 (-10, +10)의 random rotation을 적용하였고, 256x256에서 224x224로 random crop을 진행하였습니다.

 

MVTec AD의 수정된 버전은 이미지 내에서 관심 있는 사물이 항상 중심에 있지 않고 정렬되어 있지 않은 상황에서의 quality control의 anomaly localization의 케이스를 더욱 잘 묘사할 것입니다.

 

 

Localization performance를 평가하기 위해, 저자들은 두 가지 threshold와 독립적인 metrics를 사용하였습니다.

 

저자들은 Area Under the Receiver Operating Characteristic curve (AUROC)를 사용하였는데, 여기서 true positive rate는 이상이 이상으로 올바르게 분류된 pixel의 비율을 나타냅니다.

 

AUROC가 large anomalies에 편향되기 때문에, 저자들은 per-region-overlap score (PRO-score) 또한 사용하였습니다.

 

(논문에는 PRO score에 대한 정보가 없어서, 다른 논문에서 발췌하여 추가합니다.)

 

 

(출처: Image Anomaly Detection Using Normal Data Only by Latent Space Resampling)

 

(Ground truth map과 비교했을 때 predicted segmentation map이 얼마나 많이 맞췄는지를 나타내는 것 같습니다. )

 

 

추가적인 평가를 위해서 PaDiM을 영상 데이터셋인 Shanghai Tech Campus (STC) Dataset에도 테스트를 진행했습니다.

 

이는 13개의 장면으로 나눠진 274,515 training frame과 42,883 test frame으로 구성되어 있고, 이미지 resolution은 856x480로 구성됩니다.

 

Training video는 normal sequence로만 구성되어 있고, test video에는 사람이 싸우거나 보행자 지역에서 vehicle이 등장하는 anomaly가 포함되어 있습니다.

 

 

4.2 Experimental setups

 

 

저자들은 PaDiM을 ResNet18(R18), Wide ResNet-50-2 (WR50), EfficientNet-B5의 다른 backbone을 사용하여 학습시켰으며, 모두 ImageNet에 pretrained 되었습니다. 

 

다른 논문처럼, patch embedding vector는 ResNet backbone인 경우에 localization task를 위해 충분히 큰 resolution을 유지하면서 다른 semantic level로부터의 정보를 결합하고자 첫 번째 3개의 layer로부터 추출하였습니다.

 

이러한 아이디어를 유지하면서, EfficientNet-B5를 사용한 경우에 patch embedding vector를 layers 7(level 2), 20 (level 4), 26 (level 5)로부터 추출하였습니다.

 

저자들은 또한 random dimensionality reduction (Rd)을 적용하였습니다.

 

그리고 Equation 1에서 사용된 $\epsilon$에는 0.01의 값을 사용하였습니다.

 

 

MVTec AD에 있는 이미지들은 256x256로 resize 한 후, 224x224로 center crop을 진행하였습니다.

 

저자들은 localization map을 bicubic interpolation을 사용해서 만들어냈으며, anomaly map에 대해서 parameter $\sigma = 4$를 적용하는 Gaussian filter를 사용하였습니다.

 

 

5. Results

 

 

5.1 Ablative studies

 

 

첫 번째로, 저자들은 PaDiM에서의 semantic levels 간의 correlation을 모델링하는 것의 영향을 평가하였고, dimensionality reduction을 통해 본 논문에서 제안하는 방법론을 더욱 단순화시킬 가능성을 연구하였습니다.

 

 

Inter-layer correlation.

 

 

Gaussian modeling과 Mahalanobis distance의 결합은 이미 image level에서의 anomaly detection과 adversarial attack을 탐지하기 위한 이전 연구들에서 사용되어 왔습니다.

 

하지만, 이러한 방법론들은 PaDiM에서 한 것처럼 다른 CNN의 semantic levels 간의 correlation을 모델링하지는 않았습니다.

 

Table I에서, 저자들은 ResNet18 backbone을 사용하는 PaDiM의 MVTec AD에서의 anomaly localization performance를 보여주는데, 첫 번째 3개의 layer (Layer 1, Layer 2, Layer 3) 중에서 하나만 사용했을 때와 이러한 세 개의 model의 output을 가지고 첫 번째 3개의 layer를 고려하지만 이들 간 correlation은 고려하지 않는 ensemble method를 형성하고자 더했을 때의 결과를 보여줍니다.

 

Table I

 

Table I의 마지막 행은 ResNet18의 처음 3개의 layer와 이들 간 correlation을 고려하는 하나의 Gaussian distribution에 의해 각 patch location이 묘사되는 PaDiM을 나타냅니다.

 

단일 Layer만 사용하는 결과 중에서는, Layer 3을 사용하는 것이 3개의 레이어 중에서 AUROC 기준으로 가장 좋은 결과를 만들어낸다는 사실을 확인할 수 있습니다.

 

이는 정상성을 더 잘 묘사하는데 도움을 줄 수 있는 높은 수준의 semantic level information을 Layer 3이 포함하고 있다는 사실 때문으로 보입니다.

 

 

Output을 단순히 더한 model인 Layer 1+2+3와는 다르게, 저자들이 제안하는 PaDiM-R18은 semantic level 간 correlation을 고려하게 되는데요. 

 

그 결과로, 이는 Layer 1+2+3에 비해서 더 좋은 결과를 나타내는 것을 확인할 수 있습니다.

 

이는 semantic level 간 correlation을 모델링하는 것의 적절성을 보여줍니다.

 

 

Dimensionality reduction

 

 

PaDiM-R18은 448차원의 patch embedding의 집합에서 multivariate Gaussian distribution을 추정하게 됩니다.

 

Embedding vector size를 감소시키는 것은 모델의 공간 복잡도와 계산 복잡도를 줄일 수 있기 때문에, 저자들은 두 가지의 다른 dimensionality reduction method를 연구하였습니다.

 

첫 번째로는 Principal Component Analysis (PCA) algorithm을 사용해서 vector size를 100차원이나 200차원으로 줄이는 것이고, 두 번째는 학습하는 동안에 임의로 선택된 feature를 가지고 random feature selection을 진행하는 것입니다.

 

이 경우에, 저자들은 10개의 다른 모델을 학습시키고, 평균 점수를 취하는 방식으로 실험을 진행하였습니다.

 

 

 

 

Table II를 살펴보면, 같은 수의 차원에 대해서 random dimensionality reduction (Rd) 방식이 PCA에 비해서 모든 클래스에 대해 더 좋은 성능을 내는 것을 확인할 수 있었습니다.

 

이는 PCA가 anomalous class로부터 normal class를 분류하는데 도움이 되지 않을 수 있는 가장 높은 분산을 가지는 dimension을 선택한다는 사실로 설명될 수 있습니다.

 

그리고 임의로 embedding vector size를 100차원으로 줄였을 때도 anomaly localization performance에는 매우 작은 영향을 준다는 사실을 확인할 수 있습니다.

 

이렇게 간단하면서도 효율적인 dimensionality reduction method는 PaDiM의 시간 복잡도와 공간 복잡도를 상당히 줄여줄 수 있습니다.

 

 

5.2 Comparison with the state-of-the-art

 

 

 

 

anomaly localization 기준으로는, PaDiM-WR50-Rd550가 가장 좋은 성능을 내는 것을 확인할 수 있습니다.

 

 

 

anomaly detection 기준으로는, PaDiM EfficientNet-B5가 가장 좋은 성능을 내는 것을 확인할 수 있습니다.

 

 

5.3 Anomaly localization on a non-aligned dataset

 

 

 

 

 

앞에서 소개한 non-aligned Rd-MVTec AD dataset에 대해서도 역시 PaDiM-WR50-Rd550가 anomaly localization 기준으로 가장 우수한 성능을 나타낸다는 사실을 확인할 수 있습니다.

 

 

 

5.4 Scalability gain

 

 

Time complexity

 

 

anomaly localization inference time을 비교했을 때, VAE가 가장 낮지만 PaDiM-R18-Rd100은 비슷한 시간이 걸림에도 불구하고 VAE보다 훨씬 더 좋은 성능을 낸다라는 사실을 확인할 수 있습니다.

 

 

Memory complexity

 

 

MVTec AD와 같은 작은 dataset에 대해서는 SPADE가 더 작은 memory를 요구하지만, STC와 같은 큰 데이터셋에 대해서는 SPADE가 훨씬 더 많은 공간 복잡도를 가짐을 확인할 수 있습니다. 따라서, 더 큰 데이터셋에 대해서는 PaDiM이 훨씬 더 적은 공간 복잡도를 가짐을 확인할 수 있습니다.

 

 

 

6. Conclusion

 

 

저자들은 본 논문에서 one-class learning setting에서 distribution modeling에 기반해 anomaly detection과 localization을 수행하는 framework인 PaDiM을 제시합니다.

 

이는 MVTec AD와 STC dataset에 대해서 SOTA performance를 달성하였습니다.

 

추가로, 저자들은 evaluation protocol을 non-aligned data으로 확장하여, PaDiM이 더욱 현실적인 데이터에 강건할 수 있음을 보였습니다.

 

PaDiM은 낮은 메모리와 시간 복잡도를 가지며, 산업 현장과 같은 다양한 application에서 사용하기에 적합합니다.

 

 

 

여기까지 PaDiM 논문에 대한 paper review를 진행해보았습니다.

 

기존에는 신경망을 별도로 학습했어야 하지만, PaDiM 방법론은 pretrained CNN을 사용하므로 별도로 신경망을 학습할 필요가 없다는 장점을 가지고 있습니다.

 

또한 normal data에 대해서 Gaussian parameter만 가지고 있으면 이를 통해 distance 계산만 하면 되기 때문에 빠르게 test가 가능하며, 이는 기존에 K-NN algorithm을 필요로 하는 방법론에 비해서 training dataset이 커졌을 때 더욱 시간 복잡도의 큰 감소 효과를 볼 수 있습니다.

 

이전에 리뷰했었던 Patch SVDD의 경우에 제가 가지고 있는 training dataset이 3천 장이 넘는 상황이라 이를 절반만 이용하여서 실험을 진행하는데도 불구하고 test를 진행하는데 엄청난 시간이 걸린다는 문제점이 있었습니다.

 

해당 PaDiM을 사용한다면 훨씬 더 빠른 시간 내에 test가 가능하겠네요!

 

다음 포스팅에서는 PaDiM에 대한 code review를 진행해보도록 하겠습니다.

 

감사합니다.

 

 

안녕하세요.

 

 

굉장히 오랜만에 리뷰 글을 쓰는 것 같은데요.

 

 

어쩌다 보니 많은 일정들과 업무들이 몰려버리는 바람에, 2주 정도는 리뷰에 손댈 틈 없이 지냈습니다 ㅠㅠ

 

 

다음 주에도 일이 많긴 하지만, 대략 정리가 모두 끝난 상태여서 주말에 남는 시간을 이용해 리뷰를 진행하려고 합니다.

 

 

이전에는 꽤 유명한 모델들을 위주로 리뷰를 했었다면, 이번에는 제가 메인으로 연구를 진행하고 있는 분야인 이미지에서의 이상 탐지 모델을 다뤄보려고 합니다.

 

 

논문의 주소는 다음과 같습니다.

 

 

https://arxiv.org/abs/2006.16067

 

Patch SVDD: Patch-level SVDD for Anomaly Detection and Segmentation

In this paper, we address the problem of image anomaly detection and segmentation. Anomaly detection involves making a binary decision as to whether an input image contains an anomaly, and anomaly segmentation aims to locate the anomaly on the pixel level.

arxiv.org

 

논문에서 제시하는 모델에 대한 설명은 Section 3에 나오므로, 모델 부분만 살펴보실 분들은 Section 3로 가주시면 되겠습니다.

 

 

그럼 시작해보겠습니다.

 

 

Abstract

 

 

이번 논문에서, 저자들은 image anomaly detection 및 segmentation 문제를 다룹니다.

 

Anomaly detection은 input image가 이상을 포함하고 있는지 아닌지를 결정하는 문제이고, anomaly segmentation은 pixel level에서 anomaly가 어디에 위치해 있는지 파악하는 것을 목표로 합니다.

 

Support vector data description (SVDD)는 anomaly detection을 위해서 오랫동안 사용되어온 알고리즘인데요, 본 논문에서 저자들은 이 알고리즘을 self-supervised learning을 사용하는 patch 기반의 딥러닝 방법론으로 확장하게 됩니다.

 

이러한 확장을 통해서 MVtec AD dataset에서 AUROC 기준으로 기존 SOTA method 대비 anomaly detection은 9.8%, anomaly segmentation은 7.0%의 성능 향상을 확인할 수 있었습니다.

 

 

 

1. Introduction

 

 

Anomaly detection은 input이 anomaly를 포함하고 있는지 아닌지를 결정하는 문제입니다.

 

이상을 탐지하는 것은 제조업이나 금융 산업에서 많이 마주할 수 있는 중요하고도 오래된 문제라고 할 수 있습니다.

(제조업에서는 제품을 생산하게 되면 생산된 제품이 양품인지 불량품인지를 판단해야 한다는 관점에서 이상 탐지가 필요하고, 금융 산업에서는 부정 거래 탐지 같은 것들이 되겠습니다. 예를 들어서, 한 달에 50만 원씩 쓰던 어떤 사용자가 갑자기 1000만 원짜리 제품을 구매하면 카드사에서 연락이 오게 됩니다. 일반적인 거래 패턴과는 다른 거래이기 때문에, anomaly로 탐지가 되는 것이죠.)

 

Anomaly detection은 보통 one-class classification으로 표현이 되는데, 이는 학습 도중에 분포를 모델링하는 데 있어서 비정상 샘플에 대한 접근이 불가능하거나 혹은 매우 불충분하기 때문입니다.

 

이미지 데이터에 대해서 생각해보면, 검출된 anomaly는 이미지 내 어떤 구역에 위치하게 되고 anomaly segmentation은 pixel level에서 anomaly의 위치를 찾아내는 문제입니다. 

 

본 논문에서는 image anomaly detection과 anomaly segmentation 문제를 다룹니다.

 

 

One-class support vector machine (OC-SVM)과 support vector data description (SVDD)는 one-class classification에 사용되는 고전적인 알고리즘인데요. 

 

OC-SVM은 kernel function이 주어졌을 때 원점으로부터 margin을 최대로 하는 hyperplane을 찾게 됩니다.

 

이와 유사하게, SVDD는 kernel space에서 데이터를 둘러싸는 hypersphere를 찾게 됩니다.

 

추후에, Ruff et al.은 SVDD를 딥러닝을 통해서 구현한 Deep SVDD를 제안하였고 이는 kernel function을 별도로 정해줘야 하는 기존의 방법론과는 달리 neural network를 통해서 kernel function을 대체하였습니다.

 

 

본 논문에서 저자들은 Deep SVDD를 patch-wise detection method로 확장하는 Patch SVDD를 제안합니다.

 

Patch SVDD는 상대적으로 높은 patch의 클래스 내 변동에도 강건하고, self-supervised learning에 의해서 더욱 강건해지게 됩니다.

 

Fig. 1은 제안된 방법론을 사용하여 anomaly의 위치를 파악하는 예시를 보여주고 있습니다.

 

 

 

 

 

 

2. Background

 

2.1 Anomaly detection and segmentation

 

 

Problem formulation

 

 

Anomaly detection은 input이 anomaly인지 아닌지를 결정하는 문제입니다. 

 

Anomaly의 정의는 작은 결함에서부터 out-of-distribution image까지를 포함하게 되는데요.

(out-of-distribution image라고 한다면, 고양이 이미지만 가득한 dataset에 개 이미지만 있다고 생각해주시면 쉬울 것 같습니다.)

 

저자들은 전자에 해당하는 image 내에서의 결함을 찾는 것에 초점을 두고 있습니다.

 

일반적인 detection method는 input의 abnormality를 측정하는 scoring function $A_\theta$를 학습하는 과정을 포함하게 되는데요. 

 

Test를 진행할 때는, 학습된 scoring function을 사용하여 높은 $A_\theta(x)$를 가진 input이 anomaly로 결정되게 됩니다.

 

scoring function에 대한 사실상 표준적인 지표는 Eq. 1로 표현되는 area under the receiver operating characteristic curve (AUROC)입니다.

 

Eq. 1

 

따라서, 좋은 scoring function은 normal data에 낮은 anomaly score를 매기고, abnormal data에 높은 anomaly score를 매길 수 있어야 합니다.

 

Anomaly segmentation도 유사하게 표현될 수 있는데, 각 pixel에 대한 anomaly score를 만들고(즉, anomaly map) 각 pixel에 대한 AUROC를 측정하는 것입니다.

 

 

Autoencoder-based methods

 

 

초기의 anomaly detection에 대한 deep learning approach는 autoencoder를 사용하는 것이었습니다.

 

이러한 autoencoder는 normal training data에만 학습되고, abnormal image에 대해서는 정확한 복원을 할 수 없게 됩니다.

 

따라서, input과 복원된 결과와의 차이가 abnormality를 나타내게 됩니다.

 

이후에 structural similarity indices, adversarial training, negative mining, iterative projection 등을 활용하는 연구들이 진행되었습니다.

 

과거 연구들 중 일부는 autoencoder의 학습된 latent feature를 anomaly detection에 활용하기도 했는데요.

 

Akcay et al. 은 latent feature의 reconstruction loss를 anomaly score로 정의하였고, Yarlagadda et al. 은 latent feature를 활용해 OC-SVM을 학습시키기도 했습니다.

 

더 최근에는, reconstruction loss보다도 restoration loss나 attention map과 같은 다른 요소들을 활용한 방법론들이 제안되었습니다.

 

 

Classifier-based methods

 

 

Golan et al의 연구 이후에, discriminative approach가 anomaly detection에 제안되어 왔습니다.

 

이러한 방법론들은 비정상 input image에 대해서 classifier가 confidence를 잃게 되는 현상을 사용하였습니다.

(예를 들어서, 어떤 classifier가 개, 고양이, 곰을 분류한다고 했을 때 개나 고양이, 곰의 이미지가 들어가게 되면 80%나 90% 이상으로 매우 높게 예측을 하게 됩니다. 하지만, 갑자기 새 이미지를 주고 예측을 하게 만들면 어쨌든 개, 고양이, 곰 중 하나로 예측을 하긴 하겠지만 80%나 90%처럼 높게 예측하지 않고 40%나 50%처럼 낮은 확률로 어떠한 class로 예측하게 됩니다.)

 

Unlabeled dataset이 주어졌을 때, classifier는 가상의 label을 예측하고자 학습하게 됩니다.

 

예를 들어서, Golan et al에서는 image를 random flip, rotate, translate 시킨 다음, classifier가 수행된 transformation의 유형을 예측하도록 만들게 됩니다.

 

만약 classifier가 confident 하고 correct 한 prediction을 만들 수 없다면, input image를 abnormal로 예측하게 됩니다.

 

Wang et al. 은 이러한 접근법이 training data 또한 anomaly를 일부 포함하는 unsupervised 상황에도 확장될 수 있음을 증명하였습니다.

 

Bergman et al.은 open-set classification method를 채택하여 non-image data를 포함시키고자 해당 방법론을 일반화시켰습니다. 

 

 

SVDD-based methods

 

 

SVDD는 고전적인 one-class classification 알고리즘입니다.

 

이는 모든 normal training data를 predefined kernel space로 mapping 시키고, kernel space에 존재하는 모든 데이터를 감싸는 가장 작은 hypersphere를 찾게 됩니다.

 

anomaly는 학습된 hypersphere 바깥쪽에 위치할 것으로 예상할 수 있습니다.

 

kernel function이 kernel space를 결정하므로, 학습 과정에서는 hypersphere의 반지름과 중심을 주로 결정하게 됩니다.

 

Ruff et al. 은 이러한 접근법을 deep neural network를 활용하여 향상시켰습니다.

 

이들은 kernel function을 대체하고자 neural network를 채택하였고 hypersphere의 반지름을 가지고 학습시켰습니다.

 

이러한 변형을 통해 encoder는 data-dependent transformation을 학습할 수 있게 되었고, high-dimensional and structured data에서 detection 성능을 향상시키게 되었습니다.

 

Trivial solution(즉, encoder가 상수를 내뱉는 상황)을 피하고자, network에서 bias term은 제거합니다.

 

 

 

2.2 Self-supervised representation learning

 

 

이미지에서 representation을 학습하는 것은 computer vision에서 중요한 문제이며, image의 representation을 annotation 없이 학습할 수 있는 여러 방법론들이 제안되어 왔는데요.

 

여러 연구분야 중 하나는  synthetic learning signal을 제공하기 위한 self-labeled task인 pretext task를 가지고 학습하는 encoder를 training 시키는 것입니다.

 

network가 pretext task를 잘 풀도록 학습된다면, network는 의미 있는 feature를 추출할 수 있을 것이라고 기대할 수 있겠죠.

 

pretext task로는 relative patch location을 예측하는 것, jigsaw puzzle를 푸는 것, colorizing images, counting objects, prediction rotations 등이 있습니다. (뒤에서 보시면 아시겠지만, 해당 논문은 relative patch location을 예측하는 것을 이용하여 self-supervised representation learning을 수행하게 됩니다.)

 

 

 

3. Methods

 

 

해당 Section에서는 본격적으로 본 논문에서 제시하는 방법론에 대해서 설명합니다.

 

 

3.1 Patch-wise Deep SVDD

 

 

Deep SVDD는 전체 training data를 feature space에서 작은 hypersphere 안으로 들어오도록 mapping 시키는 encoder를 학습하게 되는데요.

 

Encoder인 $f_\theta$는 feature와 hypersphere의 중심과의 Euclidean distance를 최소화하는 방향으로 학습이 됩니다.

 

따라서, loss function은 다음과 같습니다.

 

Eq. 2

 

$x$는 input image를 나타내고요.

 

Test를 진행할 때는 input의 representation과 center 사이의 거리가 anomaly score가 됩니다.

(앞에서 언급했었지만, 데이터를 가장 작은 hypersphere 안으로 들어가게끔 학습하므로, input의 representation이 hypersphere의 중심과 거리가 크다는 것은 hypersphere의 바깥쪽에 위치한다는 것임을 알 수 있겠죠.)

 

center $c$는 Eq. 3의 방법을 통해서 학습 이전에 계산됩니다. $N$는 training data의 수를 나타내고요.

 

Eq. 3

 

따라서, 학습을 통해서 feature들을 하나의 중심 주변으로 밀게 됩니다.

 

 

본 논문에서 저자들은 Deep SVDD를 patch 단위로 확장시키게 됩니다. Encoder는 Fig. 2에서 보이는 것처럼 이미지 전체를 encoding 하는 게 아니라, patch를 encoding 하도록 변경합니다.

 

Fig. 2

 

이에 따라서, inspection이 각 patch에 대해서 수행되게 됩니다. 

 

Patch-wise inspection은 여러 가지 장점을 가지고 있는데, 첫 번째로 inspection이 각 position에 대해 수행할 수 있으므로 해당 방법론을 사용했을 때 defect의 위치를 찾을 수 있게 되며,  두 번째로, 이러한 작업이 전반적으로 detection 성능을 향상시키게 됩니다.

 

 

Deep SVDD를 patch-wise inspection으로 확장하는 것은 직관적인데요.

 

Patch encoder $f_\theta$는 $L_{SVDD}$를 사용해서 학습되고, 이미지였던 $x$는 patch인 $p$로 대체됩니다.

 

Anomaly score는 이에 따라서 정의될 수 있고, Fig. 3에서 예시를 확인할 수 있습니다.

 

Fig. 3

 

기존의 SVDD loss를 사용하게 되면 높은 복잡도를 가지는 image에 대해서는 detection performance가 좋지 않은 것을 확인할 수 있습니다.

 

이는 patch가 높은 클래스 내 variation을 가지고 있기 때문인데요. 즉, 몇몇 패치들은 background에 대응되지만 다른 패치들은 object를 포함하고 있기 때문입니다.

 

그 결과로, 유사하지 않은 patch들의 모든 feature들을 하나의 center로 mapping 하게 되고, uni-modal cluster를 만들게 되어 representation과 content 간 connection을 약화시키게 됩니다.

 

그러므로 하나의 중심인 $c$를 사용하는 것은 적절하지 않다는 것을 알 수 있습니다.

 

그렇지만, center의 적절한 수를 결정하고 patch들을 각 center에 할당하는 것은 다루기가 힘든 문제입니다.

 

 

 

위의 문제를 우회하고자, 저자들은 center를 명시적으로 정의하고 patch를 할당하는 작업을 수행하지 않습니다.

 

그 대신에, 의미론적으로 유사한 patch들이 저절로 모이도록 encoder를 학습시키게 됩니다.

 

의미론적으로 유사한 패치는 공간적으로 인접한 patch를 sampling 해서 얻을 수 있으며, encoder는 다음 loss function을 사용하여 feature 간 distance를 최소화하도록 학습됩니다.

 

 

$p_i'$는 $p_i$와 인접한 patch를 나타냅니다.

 

추가적으로, representation이 patch의 semantics를 포착하도록 강제하기 위해, self-supervised learning도 수행합니다.

 

 

 

3.2 Self-supervised learning

 

 

Doersch et al. 은 Fig. 4에 나타난 것처럼 두 patch의 상대적 위치를 예측하기 위해 encoder와 classifier를 학습시켰습니다.

 

 

Encoder & classifier pair가 잘 학습되면 encoder는 location prediction에 사용되는 유용한 feature를 추출할 수 있게 됩니다.

 

이러한 특성은 특정 task에만 국한되는 것이 아니며, 이전 연구들은 self-supervised encoder가 다음 task를 위한 강력한 feature extractor 임을 언급하였습니다.

 

 

 

임의로 샘플링된 patch $p_1$에 대해서, Doersch et al. 은 3x3 grid 내 있는 8개의 이웃 patch 중 하나인 patch $p_2$를 샘플링하였습니다.

 

true relative position을 $y \in {0, ..., 7}$이라 하면, classifier $C_\phi$는 $y = C_\phi(f_\theta(p_1), f_\theta(p_2))$를 예측하도록 학습됩니다.

 

patch의 크기는 encoder의 receptive field와 동일합니다.

 

Classifier가 shortcuts을 활용하는 것을 방지하고자(예를 들어, color aberration), 저자들은 patch의 RGB channel을 임의로 perturb 하였습니다. 

 

 

논문에서는 별도로 shortcuts이 무엇인지 언급되지 않았으나, 인용한 논문을 찾아보니 다음과 같은 내용을 찾을 수 있었습니다.

 

Shortcuts have been described as “trivial solutions” to the pretext task that must be avoided to “ensure that the task forces the network to extract the desired information” 

 

In other words, shortcuts are easily learnable features that are predictive of the pretext label, and allow the network to stop learning once found.

 

위 내용에 따르면, Shortcuts은 소위 trivial solution(자명한 해)이며 이를 찾으면 network가 학습을 멈추게 만든다고 합니다. 

 

즉, RGB channel을 별도로 perturb 하는 것은 어떻게 보면 useful feature를 찾아낼 수 있도록 하는 역할을 하는 것 같습니다.

 

 

Doersch et al. 의 접근법을 따라서, 다음과 같은 loss term을 추가하여 self-supervised learning signal을 추가합니다.

 

 

그 결과로, encoder는 Eq. 6에서 볼 수 있듯이 scaling hyperparameter $\lambda$를 이용한 두 loss의 combination을 사용해 학습이 이루어지게 됩니다.

 

최적화는 SGD와 Adam optimizer를 이용해 이루어집니다.

 

Eq. 6

 

 

3.3 Hierarchical encoding

 

 

anomaly의 크기가 다양하기 때문에, 다양한 receptive field를 가지는 여러 개의 encoders를 사용하는 것은 크기의 변화에 대응할 수 있도록 도움을 줄 수 있습니다.

 

Section 4.2에서 다룰 실험 결과는 encoder에서 hierarchical structure를 사용하는 것이 anomaly detection 성능에도 도움을 준다는 것을 나타냅니다.

 

따라서, 저자들은 작은 encoder를 포함하는 hierarchical encoder를 사용하였습니다.

 

hierarchical encoder는 다음과 같이 정의될 수 있습니다.

 

 

Fig. 5에서 볼 수 있듯이 input patch $p$는 2 x 2 grid로 분할되고 이들의 feature는 $p$의 feature를 구성하기 위해 합쳐지게 됩니다.

 

receptive field size $K$를 가진 각 encoder는 patch size $K$의 self-supervised task를 이용해 학습이 이루어지게 됩니다.

 

실험이 진행되는 동안, large encoder와 small encoder의 receptive field는 각각 64, 32로 정해집니다.

 

 

 

3.4 Generating anomaly maps

 

 

Encoders를 학습한 후에, encoder로부터 얻게 되는 representation은 anomaly를 탐지할 때 사용됩니다.

 

첫 번째로, 모든 normal train patch의 representation {$f_\theta(p_{normal}) | p_{normal}$}은 계산되고 저장됩니다.

 

Query image $x$가 주어졌을 때, $x$에서 stride $S$를 이용해서 얻어지는 모든 patch $p$에 대해 feature space에서 가장 가까운 normal patch까지의 L2 distance는 anomaly score로 정의됩니다. (Eq. 8)

 

 

nearest neighbor search의 computational cost를 완화시키고자, 저자들은 approximate algorithm은 NGT를 채택해 사용하였습니다.

 

그 결과로, MVTec AD의 이미지 한 개에 대한 inspection은 대략 0.48초 정도 걸리게 됩니다.

 

Patch-wise로 계산된 anomaly score는 pixel로 분배가 되는데요.

 

그 결과로, 각 pixel들은 자신이 속한 모든 patch의 average anomaly score를 받게 되며 그 결과로 얻게 되는 anomaly map을 $\mathcal{M}$으로 표기합니다.

 

Section 3.3에서 논의한 multiple encoder는 multiple feature space를 구성하게 되며, 이에 따라 multiple anomaly map을 만들어냅니다.

 

저자들은 multiple anomaly map을 element-wise multiplication을 사용해 최종 anomaly map $\mathcal{M}_{multi}$를 얻게 되며 이는 anomaly segmentation 문제에 대한 answer가 됩니다.

 

 

$\mathcal{M}_{multi}$와 $\mathcal{M}_{big}$은 각각 $f_{small}$과 $f_{big}$을 사용해서 만들어지는 anomaly map입니다.

 

$\mathcal{M}_{multi}$에서 높은 anomaly score를 가지는 pixel이 defect을 포함하고 있다고 판단됩니다.

 

 

anomaly detection 문제를 해결하는 것은 간단한데요. 

 

Eq. 10으로 표현된 것처럼, 이미지 내에서 가장 높은 anomaly score를 가지는 pixel이 해당 이미지의 anomaly score가 됩니다.

 

Eq. 10

 

 

Fig. 6은 제안된 방법론의 전체적인 흐름을 나타내고, pseudo-code는 Appendix A1에서 제공되고 있습니다.

 

Fig. 6

 

Appendix A1(train)

 

 

Appendix A1(test)

 

논문에는 해당 Pseudo-code가 제시되어 있는데, 실제 코드 구현과는 다른 내용이 있어 실제로 해당 논문을 사용하실 것이라면 반드시 코드 내용을 살펴보셔야 할 것 같습니다.

 

다음 포스팅인 code review에서는 실제 공개된 코드를 기반으로 위에 제시된 Pseudo-code를 수정해볼 예정입니다.

 

 

4. Results and Discussion

 

 

제안된 방법론의 유효성을 검증하고자, 저자들은 MVTec AD dataset에 이를 적용하였습니다.

 

MVTec dataset은 15개 class의 산업 이미지로 구성되어 있고, 각 class는 object 혹은 texture로 분류됩니다.

 

10개의 object class는 규칙적으로 배치된 object를 포함하고 있으며, 반면에 texture class는 반복적인 패턴을 포함하고 있습니다.

 

 

4.1 Anomaly detection and segmentation results

 

 

Fig. 7은 제안된 방법론을 사용하여 만들어진 anomaly map을 보여주고 있으며, defect의 크기에 상관없이 적절하게 찾아내는 것을 나타냅니다.

 

Fig. 7

 

Table 1은 AUROC 기준으로 SOTA baseline과 비교했을 때 MVTec AD dataset에서의 detection and segmentation 성능을 보여줍니다.

 

 

Patch SVDD는 autoencoder-based 방법론과 classifier-based 방법론을 포함하는 powerful baseline에 비해서 SOTA 성능을 내고 있으며, Deep SVDD에 비해 55.6% 향상을 보여주고 있습니다.

 

 

4.2 Detailed analysis

 

 

t-SNE visualization

 

 

Fig. 8은 여러 train image의 학습된 feature의 t-SNE visualization을 보여줍니다.

 

 

Fig. 8(b)에 보이는 points에 위치한 patch는 Fig. 8(a)과 Fig. 8(c)에 있는 동일한 색과 동일한 크기를 가지는 point에 mapping 됩니다.

 

Fig. 8(a)에서, 유사한 색과 사이즈를 가진 points는 feature space에서 cluster를 형성하고 있습니다.

 

cable class에 있는 이미지들이 규칙적으로 배치되어 있으므로, 다른 이미지에서 나왔더라도 같은 위치에서 나온 patch는 유사한 content를 가지고 있습니다.

 

유사하게, 규칙적으로 배치된 object classes의 경우, t-SNE visualization에서 유사한 색과 크기를 가진 points는 semantically similar라고 생각될 수 있습니다.

 

대조적으로, Fig. 8(c)에 나타난 leather class의 feature는 반대 경향을 보입니다.

 

이는 texture class에 있는 patches들이 이미지 내에서의 위치와는 상관없이 유사하기 때문입니다.

 

즉, texture image에 대해서는 patch의 위치가 이들의 semantics와는 전혀 관련이 없습니다.

 

 

Effect of self-supervised learning

 

 

Patch SVDD는 $\mathcal{L}_{SVDD'}$와 $\mathcal{L}_{SSL}$이라는 두 개의 loss를 사용해서 encoder를 학습시키는데요.

 

제안된 loss term의 역할을 비교하기 위해서, 저자들은 ablation study를 수행했습니다.

 

Table 2는 $\mathcal{L}_{SVDD}$를 $\mathcal{L}_{SVDD'}$로 변경한 것과 $\mathcal{L}_{SSL}$을 도입한 것이 anomaly detection과 segmentation 성능을 향상시킨다는 것을 제안하고 있습니다.

 

 

Fig. 9는 제안된 loss term의 효과가 classes마다 다르다는 것을 보여줍니다.

 

 

특히, texture classes (예를 들어, tile이나 wood)는 loss의 선택에 덜 민감하지만, cable과 transistor를 포함하는 object classes는 $\mathcal{L}_{SSL}$을 사용하는 것이 큰 도움이 되었음을 나타냅니다.

 

 

이러한 관측의 이유를 알아보기 위해, 저자들은 $\mathcal{L}_{SVDD}$, $\mathcal{L}_{SVDD'}$, $\mathcal{L}_{SVDD'} + \mathcal{L}_{SSL}$을 이용해 학습된 encoder를 통해 얻은 object class의 feature에 대해서 t-SNE visualization을 수행하였습니다. (Fig. 10)

 

 

학습이 $\mathcal{L}_{SVDD}$ (Fig. 10(a))나 $\mathcal{L}_{SVDD'}$ (Fig. 10(b))를 이용해서 이루어졌을 때, feature는 uni-modal cluster를 형성하는 것을 확인할 수 있습니다.

 

대조적으로, $\mathcal{L}_{SSL}$은 color나 size와 같은 semantics를 기반으로  Fig. 10(c)에서 보이는 것과 같이 multi-modal feature cluster를 만들어내는 것을 확인할 수 있습니다.

 

이러한 feature의 multi-modal property는 특히 patch 간에 높은 클래스 내 variation을 가지는 object classes에 도움이 됩니다.

 

다른 semantics를 가진 patch들의 feature는 분리되며, 이러한 feature를 사용하는 anomaly inspection는 더욱 정교하고 정확해지게 됩니다.

 

 

Hierarchical encoding

 

 

Section 3.3에서 hierarchical encoder의 사용을 제안하였는데요.

 

Fig. 12는 multiple encoder로부터 나온 multi-scale result를 aggregate 하는 것이 inspection performance를 향상시킨다는 것을 보여줍니다.

 

추가적으로, non-hierarchical encoder를 사용한 ablation study는 hierarchical structure 자체가 성능을 향상시킴을 보여줍니다.

 

 

Hyperparameters

 

 

Eq. 6에서 볼 수 있듯이, hyperparameter $\lambda$는 $\mathcal{L}_{SVDD'}$와 $\mathcal{L}_{SSL}$ 사이의 균형을 맞추는 역할을 하게 됩니다.

 

큰 $\lambda$는 feature의 gathering을 강조하고, 작은 $\lambda$는 informativeness를 촉진시키게 됩니다.

 

놀랍게도, 가장 유리한 $\lambda$는 class에 따라 다릅니다.

 

object class에서의 anomaly는 작은 $\lambda$ 하에서도 잘 탐지되지만, texture class의 경우는 큰 $\lambda$ 하에서 잘 탐지되게 됩니다.

 

Fig. 14는 이러한 차이의 예시를 보여줍니다. 즉, cable class (object)는 $\lambda$가 감소함에 따라 detection performance가 향상되지만, 반면에 wood class (texture)는 반대의 경향을 보여주고 있습니다.

 

 

 

5. Conclusion

 

 

본 논문에서, 저자들은 image anomaly detection과 segmentation을 위한 방법론인 Patch SVDD를 제안하고 있습니다.

 

Deep SVDD와는 다르게, 이미지를 patch level에서 점검하며 defect의 위치를 확인할 수 있습니다.

 

게다가, 추가적인 self-supervised learning은 detection performance를 향상해줍니다.

 

그 결과로, 제안된 방법론은 MVTec AD dataset에서 SOTA performance를 달성하였습니다.

 

 

 

 

여기까지 Patch SVDD 논문 리뷰를 마무리하려고 합니다.

 

논문 내용 중 일부는 제가 생략한 부분도 있어, 관심이 있으시다면 본 논문을 참고하시면 되겠습니다.

 

단순히 이미지를 통째로 feature space에 mapping 하는 것이 아닌, patch 단위로 mapping 하므로 조금 더 localized defect을 잘 찾을 수 있다는 것이 큰 특징이라고 볼 수 있을 것 같습니다.

 

제가 현재 연구하고 있는 부분도 큰 이미지에서 굉장히 작은 크기의 결함 부위를 탐지하는 것을 진행하고 있는데, 이러한 연구에 있어서 굉장히 괜찮은 방법론이라고 생각되어 리뷰를 진행하게 되었습니다.

 

다음 포스팅에서는 해당 논문의 code review를 진행할 예정입니다.

 

이전에는 논문에서 제시하는 모델 하나를 리뷰했었기 때문에 모델 architecture를 위주로 code review를 진행했지만, 해당 논문의 경우 architecture보다는 어떤 방법론으로 anomaly detection을 수행하게 되는지를 봐야 하기 때문에 기존과는 조금 다른 방향으로 code review를 진행하게 될 것 같습니다.

 

그럼 다음 포스팅에서 뵙겠습니다.

 

감사합니다.

 

 

 

 

+ Recent posts