본문 바로가기
anomaly detection

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

by sungwool 2021. 10. 11.

PaDiM


 

1. 요약

   

   이 논문에서는 pre-trained backbone network에서 정의되는 patch들의 distribution을 modeling하여 anomaly detection을 수행하는 기법을 제안한다. 이 patch들은 SPADE와 같이 backbone network에서 얻은 feature map들을 concatenate하여 얻는다. 이때, modeling되는 distribution은 mean μ와 covariance matrix Σ로 정의되는 normal distribution N(μ,Σ)이다. 

μij{μ|i=1,,H,j=1,,W},μRd×h×w

 

Σij=1N1k=1N(xijkμij)(xijkμij)T+ϵI

Σij{Σ|i=1,,H,j=1,,W},ΣRd×d×h×w

 

  PaDiM에서도 SPADE와 마찬가지로 얻어진 normal sample들의 feature와 test sample 간의 거리를 측정하고자 한다. 이미 normal sample들의 feature는 normal distribution 형태로 저장한 상태이므로, mahalanobis distance를 사용해 anomaly score를 정의한다. 

M(xij)=(xijμij)TΣij1(xijμij)

 

 

  요약해보면 PaDiM은 pre-trained된 backbone network에서 feature map들을 모아 Gaussian paramter인 μigΣij를 찾는다. 이 parameter들은 각 pixel location에 대해서 저장된다. Image-level의 anomaly score는 가장 큰 값을 갖는 Mahalanobis distance가 된다. Pixel-level의 anomaly score는 입력 sample의 spatial resolution만큼 bilinear interpolation된 다음, σ=4인 Gaussian filtering을 수행한다. 

Entire detection scheme of PaDiM

검출 방법을 살펴보면 아무래도 MVTec AD에 포함된 sample들이 alignment되어 있다는 특징에 많이 의존했다고 생각이 든다. 이러한 이유 때문인지 PaDiM에서는 sample들을 무작위로 rotation시킨 후에 anomaly detection을 수행하는 추가 실험을 제시한다. PaDiM의 정량적인 성능은 아래 표에서 확인할 수 있다. 

 

Image-level AUROC score
Pixel-level AUROC and AUPRO score

 

 

Non-aligned dataset random rotated (-10, 10), AUROC and AUPRO

2. 마무리 

  주어진 dataset의 특징을 잘 활용해 문제를 비교적 간단하게 해결해낸 기법이라고 생각된다. 하지만 공분산 행렬을 계산하는 과정에서 부담스러울 정도의 memory cost를 요구하기 때문에 concatenate된 feature map의 channel축에서 random sampling을 수행한다. 예를 들면, WRN50-2의 경우 256+512+1024550으로 channel의 수를 줄여준다. 공개된 소스코드를 사용해 실험 결과를 살펴보면, random seed에 따라 성능이 크게 변화하는 것을 확인할 수 있다. 그리고 PaDiM이 갖는 가장 큰 차별점은 공분산 행렬을 사용한다는 것이다. Mahalanobis distance로 정의되는 수식을 살펴보면 분산 값(불확실성?)이 큰 location일수록 거리에 penalty를 받는다. 이러한 PaDiM의 특성이 불확실성이 높은 특정 location에서 robust하게 anomaly score를 측정해내어 일부 class에서 비약적인 성능 향상을 이루는데 도움을 준 것이라고 생각된다. 

 

댓글