논문 보러가기
https://paperswithcode.com/paper/towards-total-recall-in-industrial-anomaly
1. Summary
PatchCore는 MVtec 이라는 산업 분야의 이상탐지 데이터셋에서 SOTA 를 기록한 논문입니다.
PatchCore는 pre-trained 모델을 사용해 학습과정 없이, 정상 데이터로만 feature를 추출해 anomaly detection을 수행하는 모델입니다.
더불어 PatchCore는 PaDiM과 SPADE의 단점을 보완하고 이 둘의 장점을 취한 모델입니다.
PatchCore 논문 저자들은 해당 논문이 등장하기 전 SOTA였던 PaDiM과 SPADE에 대해 아쉬움을 나타내면서 PaDiM과 SPADE 의 장점을 살려 PatchCore를 제안하게 됩니다.
PaDiM은 Patch Level로 feature를 구분하고 Mahalanobis 거리를 이용해 scoring을 함으로써 성능을 높였습니다.
SPADE는 pixel level 에서 k-NN 방식으로 scoring 하여 anomaly detection을 수행합니다.
이 두가지 기본 알고리즘을 발전시키게 되는데,
1) PaDiM의 Patch Level 에서 feature를 구분했던 방식
2) SPADE의 k-NN 방식으로 scoring 했던 방식
을 접목시킵니다.
즉, Patch Level에서 feature를 구분한 뒤 k-NN 방식으로 scoring 을 하여 이상감지를 수행하는 것입니다.
2. 본문
PatchCore의 저자들은 세 가지 핵심 방식을 제안합니다.
1) Local Patch Features
2) Coreset Subsampling
3) Detection and Localization
2-1. Local Patch Features
먼저 PatchCore는 Mid-Level feature를 Local Patch Features로 사용합니다.
Low-Level features 와 High-Level features는 사용하지 않습니다.
ResNet 모델을 기준으로 했을 때, layer 2와 layer 3의 features 만 사용하는 것입니다.
Mid-Level features만을 사용하는 이유는 다음과 같습니다.
(1) High-Level features는 공간적 정보(Localized Nominal Information)의 손실이 크다
(2) Image Classification Task에 대한 Bias 가 많이 존재한다
Mid-Level 에서 추출한 features는 Patch-Level 로 나눠서 살펴보게 됩니다.
각 Patch에는 Adaptive Average Pooling을 적용해 주변 정보를 포함시킵니다.
이 과정을 통해 얻어진 Patch Features를 scoring에 사용합니다.
2-2. Coreset Subsampling
2-1 단계에서 얻은 Patch Features를 모두 사용하게 되면 너무 무거워질 수 있으니, 핵심(Coreset)만 추출해 분석에 사용하는 것을 Coreset Subsampling 이라 합니다.
특정 Patch Features 가 Coreset 임을 판단하는 기준으로 Greedy Search 알고리즘을 사용합니다.
이 방식은 Random Subsampling 에 비해 정상 features 가 고르게 선택된다고 합니다.
2-3. Detection and Localization
2-2 단계를 거쳐서 추출된 Coreset Patch 의 features를 기준으로 테스트 이미지의 Anomaly Scoring 을 하는 단계가 Detection and Localization 입니다.
테스트 이미지에 Local Patch Features를 추출해 각 Patch Features를 Coreset Features와 비교합니다.
비교 방법은 거리 계산으로 진행하며, 유클리디언 거리로 비교를 진행합니다.
k-NN 을 수행해 이 중 가장 가까운 거리를 Anomaly Score로 간주합니다.
예를 들어, 한 개의 테스트 이미지에 패치가 10개라면 , 10개의 Anomaly Score가 생성됩니다.
10개의 패치 중 하나의 패치라도 불량이면 비정상 이미지로 분류되기 때문에, 10개의 Anomaly Score 중 가장 높은 Anomaly Score 가 해당 테스트 이미지의 최종 점수가 됩니다.
k-NN 방식으로
3. 실험 결과
PatchCore는 MV tec 데이터 셋의 Image Level AUROC 에서 99.1, Pixel Level AUROC 에서 98.1 을 기록하며 SOTA 기록을 보유하게 되었습니다.