작성자: 15기 박지우
Anomaly Detection이란 말 그대로 이상하고 예상치 못한 패턴을 찾는 것이다. 보통 이 task는 visual industrial inspection에서 많이 사용되고 현재는 의료분야에서도 대두되고 있는 task 중에 하나이다.
이 PaDim 논문에서는 industrial inspection에 집중하여 논문을 구성하였다. MVTec AD 데이터셋에서 SOTA를 달성하였던 모델이 padim이었지만 현재는 다른 모델에 내어준 상태이라고 합니다
Padim은 Patch Distribution Modeling의 약자입니다.
이상탐지를 진행할 때 픽셀에 대해 anomaly score를 부여하고 이에 대한 anomaly map을 형성합니다.
그래서 이것을 가지고 anomaly localization을 해석하여 이상 여부를 판단하고 어느 부분이 이상 상태인지까지 알 수 있습니다.
<PaDim>
- one class learning
첫 번째로 이미지의 이상 여부를 판단하고 두 번째로 이상이 있다고 판단한 위치를 이미지 상에서 찾아낼 수 있다
- process
1) extraction embedding
이를 수행하기 위해서 pretrained CNN을 사용한다.
2) normal learning
각각의 patch position은 multivariate Gaussian Distribution을 사용한다.
3) anomaly map caculation
pretrain CNN에서 서로 다른 sementic levels 사이의 correlation을 고려하여서 계산을 합니다.
이 단계는 pretrained CNN으로 이상탐지에 관련된 특징을 뽑아내는 단계이다.
이 논문에서 Resnet, EfficientNet을 pretrained CNN으로 사용하였다.
이미지를 학습할 때, 정상 이미지에서 각각 patch를 pretrained CNN activation map에서 공간적으로 대응되는 것은 activation vector이다. 이는 서로 다른 layers에서 결합(concat) 이 되는데 이 과정에서 서로 다른 semantic level과 resolution들에서 나온 정보를 전달하는 embedding vector를 얻을 수 있다.
정리해보면 Embedding extraction은 이미지를 patch로 나누고 다시 결합하여 pretrained CNN으로 특징을 뽑아내는 과정이라고 생각하면 된다.
정상 이미지의 특성을 학습하기 위해서 n개의 정상 학습 이미지로부터 patch embedding vector 집합을 계산한다
patch embedding vector는 다변량 가우시안 분포 N에 의해 생성되었다는 가정하에 sample mean과 sample covariance를 추정한다 (i, j = 이미지의 위치를 나타내는 것)
이 논문에서는 patch가 이상상태인지 여부를 판단하고자 anomaly score를 만들었다.
계산 사용 방식은 Mahalanobis Distance
cf) Mahalanobis Distnace(마할라노비스 거리)
: 데이터 샘플의 무게중심을 찾아 특정 데이터 포인트가 무게 중심을 찾아서 특정 데이터 포인트가 무게 중심에 가까울수록 분포에 속할 확률이 높고, 무게중심에서 벗어날수록 분포에 속할 확률이 낮다는 점을 이용해서 데이터 포인트가 특정
분포에 속할 확률을 추정하는 방식
Padim에서 M은 테스트 이미지의 patch embedding x와 학습된 distribution N(sample mean, sample covariance) 사이의 거리로 해석될 수 있다.
동일한 좌표값에서 학습된 sample mean과 sample variance를 통해 테스트 이미지의 위치에 대해 계산하게 되면
해당 테스트 이미지의 좌표가 정상분포와 비교했을 때 얼마나 차이가 있는지를 추정할 수 있다
즉, anomaly map에서 값이 높다는 것은 해당 좌표가 anomalous area 라는 것을 나타낸다
-> 전체 이미지의 anomaly score는 anomaly map의 최대값이 되는 결과가 나온다
이 모델의 단점으로 여러 layer를 concat 한 다음에 픽셀 별로 mahalanobis distance를 측정하는 방식이기 때문에
dimension이 상당히 깊고, 계산 시간이 오래 걸리는 단점이 있다.
그래서 논문연구에서 random sampling과 PCA 기법을 사용했습니다.
Random sampling 같은 경우는 448차원에서 100차원, 200차원으로 축소를 했다고 합니다.
layer 1+2+3: 각 layer별 score의 단순합
layer1/ layer2/ layer3
Result) Layer 1+2+3 >> layer1 / layer2 / layer3
Layer 1+2+3 PaDIM-R18의 결과 비교 : 단순히 합치는 것보다 concat 한 뒤 distance 측정하는 방식이 성능이 더 좋게 나오는 것을 볼 수 있다
: feature extraction 모델로 clip과 vit을 사용해서 어떤 효과를 불러오는 지 테스트를 해보고자 한다
기존 연구는 cnn 모델을 사용했는데 어떠한 차이점을 가져올 수 있을까?
댓글 영역