30

PatchCore: 현재 SOTA 이상 탐지 알고리즘

Day 4: 이상 탐지 (비지도 학습)

학습 목표

PatchCore의 핵심 아이디어(메모리 뱅크)를 이해한다 anomalib 라이브러리의 활용법을 파악한다 PatchCore가 Autoencoder보다 우수한 이유를 설명할 수 있다

PatchCore: 제조 이상 탐지의 끝판왕


핵심 아이디어

[PatchCore 동작 원리]

학습 단계:
1. 정상 이미지들을 사전학습 CNN(ImageNet)에 통과
2. 중간 층의 패치별 특징 벡터 추출
3. 메모리 뱅크에 저장 (코어셋 서브샘플링)

추론 단계:
1. 새 이미지를 같은 CNN에 통과
2. 패치별 특징 벡터 추출
3. 메모리 뱅크에서 가장 가까운 정상 패치와의 거리 계산
4. 거리가 크면 → 이상!

직관적 설명:
"정상 패치 도감을 만들어 놓고,
 새 패치가 도감에 없으면 이상."
[PatchCore vs Autoencoder]

                    Autoencoder     PatchCore
학습 방식            신경망 학습      특징 저장 (학습 없음!)
학습 시간            30분~수시간     수 분
정확도 (MVTec)       ~85%           ~99%!
하이퍼파라미터        많음            적음
설명 가능성           히트맵          히트맵 (더 정밀)
메모리 사용           적음            메모리 뱅크 크기에 비례

MVTec 벤치마크 성능

방법Image AUROCPixel AUROC
Autoencoder83.2%89.1%
VAE79.1%87.5%
PaDiM95.3%97.5%
PatchCore99.1%98.1%

PatchCore가 압도적이다.


anomalib: 이상 탐지 라이브러리

Intel이 만든 오픈소스 라이브러리. PatchCore 포함 10+ 알고리즘을 통합 제공.

# anomalib 설치
pip install anomalib

# PatchCore 학습 (3줄!)
from anomalib.models import Patchcore
from anomalib.data import MVTec
from anomalib.engine import Engine

datamodule = MVTec(root="./data", category="bottle")
model = Patchcore()
engine = Engine()
engine.fit(model=model, datamodule=datamodule)

anomalib 지원 알고리즘

알고리즘유형성능속도
PatchCore메모리 뱅크최고중간
PaDiM분포 추정높음빠름
STFPMTeacher-Student높음빠름
FastFlowNormalizing Flow높음빠름
EfficientAD경량화높음매우 빠름

제조 추천: PatchCore (정확도 최우선) 또는 EfficientAD (속도 중시)

AI로 학습하기 — 꿀팁
PatchCore 메모리 뱅크 동작 원리 검증AI 학습 팁

PatchCore의 핵심 아이디어인 코어셋 서브샘플링과 메모리 뱅크 검색이 어떻게 작동하는지 잘못 설명되는 경우가 많아 정확한 이해가 필요하다.

PatchCore 알고리즘에 대한 다음 설명들이 맞는지 자동차 부품 표면 이상 탐지 맥락에서 검증해줘: 1) 'PatchCore는 정상 이미지의 모든 패치를 메모리 뱅크에 저장한다', 2) 'PatchCore의 코어셋 서브샘플링은 중복된 정상 패치를 제거해 메모리와 추론 속도를 최적화한다', 3) 'PatchCore는 anomalib 없이 순수 PyTorch만으로 구현하면 성능이 크게 저하된다', 4) 'PatchCore의 이상 점수는 테스트 패치와 가장 유사한 메모리 뱅크 패치 사이의 거리이므로, 점수가 높을수록 더 이상하다', 5) 'PatchCore는 새로운 불량 유형이 발생해도 재학습 없이 자동으로 탐지할 수 있다'. 각 설명의 맞음/틀림과 함께 실제 anomalib 구현 기준으로 올바른 설명을 해줘.
이 팁이 도움이 됐나요?
핵심 포인트
  • PatchCore는 정상 패치의 메모리 뱅크를 구축하여 이상을 탐지한다
  • 신경망 학습 없이 특징 저장만으로 99% AUROC 달성 (MVTec)
  • anomalib 라이브러리로 3줄 코드에 PatchCore 학습 가능
  • 제조 정밀 검사에는 PatchCore, 실시간에는 EfficientAD 추천