이 리뷰는 오직 학습과 참고 목적으로 작성되었으며, 해당 논문을 통해 얻은 통찰력과 지식을 공유하고자 하는 의도에서 작성된 것입니다. 본 리뷰를 통해 수익을 창출하는 것이 아니라, 제 학습과 연구를 위한 공부의 일환으로 작성되었음을 미리 알려드립니다.
오늘은 산업 이미지 이상치 탐지의 트렌드와 실제 사용되는 모습을 파악하고 싶어서 다음 논문과 세미나 영상을 통해 정리하여 보았다.
https://arxiv.org/abs/2301.11514
Deep Industrial Image Anomaly Detection: A Survey
The recent rapid development of deep learning has laid a milestone in industrial Image Anomaly Detection (IAD). In this paper, we provide a comprehensive review of deep learning-based image anomaly detection techniques, from the perspectives of neural netw
arxiv.org
참고 세미나 : https://www.youtube.com/watch?v=TY-Wbs8pxLQ
일반적인 이상치 탐지 정의 [ Anomaly Detection? ]
- 현실에서 이상 데이터를 충분히 확보하기 어렵기 때문에, 정상 데이터만을 이용하여 분포를 학습한다.
- 학습된 모델에 테스트 이미지를 넣어 학습한 분포와 테스트 이미지의 분포가 일정 수준 차이가 나는 경우 이상치로 판별하는 태스크이다.

- 이미지 이상치 탐지 태스크의 분류
학습 시 사용하는 데이터에 따라 크게 세 가지 갈래로 나뉜다.
- 지도 학습(Supervised): 학습 시 레이블링된 정상 및 비정상 데이터를 모두 사용하는 경우이다.
- 분류(Classification) 태스크와 매우 유사하다.
- 비정상 데이터의 개수가 현저히 낮아 클래스 불균형(Class Imbalance) 문제가 발생한다.
- 원 클래스(One-Class) 이상치 탐지: 비정상 데이터의 개수가 적으므로, 확실하게 레이블링된 정상 데이터만을 이용하여 분포를 학습한다.
- 우리가 흔히 알고 있는 이미지 이상치 탐지방식이다.
- 수집된 데이터가 모두 정상이라는 보장이 없어 현실성이 떨어진다는 한계점이 있다.
- 비지도 학습(Unsupervised) 이상치 탐지: 현재 가지고 있는 학습 데이터가 대부분 정상일 것이라는 가정하에 학습을 진행한다.
- 데이터 속에 비정상 데이터가 일부 섞여 있을 수도 있지만, 현실과 그나마 유사한 상황이라고 할 수 있다.

비지도 학습(Unsupervised) 이상치 탐지
- 비지도 학습 이상치 탐지 방법론의 종류
밀도 기반(Density-Based) 방법론
- Density-Based: 정상적인 데이터의 분포를 통해 데이터 탐지
- 이미지넷으로 학습된 모델을 사용

- 밀도 기반 방법론의 특징
- 정상 데이터 분포를 통해 비정상 데이터를 탐지하는 방식이다.
- 사전 학습된 모델에 추가적인 학습이 필요 없다는 것이 특징이다.
- 동작 방식:
- 사전 학습된 CNN 모델(주로 이미지넷으로 사전 학습된 CNN)에 학습용 이미지들을 넣어 특징 맵(Feature Map)을 추출하고 저장한다.
- 테스트 이미지도 동일하게 사전 학습된 모델을 통과시켜 특징 맵을 추출한다.
- 저장해 둔 특징 맵들과 테스트 이미지의 특징 맵을 비교하여 이상치 점수(Anomaly Score)를 측정한다.
PatchCore
https://velog.io/@ljwljy51/PatchCore-Paper-Review
PatchCore 논문 리뷰
.
velog.io
패치코어는 2022년 ICLR에 게재된 논문이다. 패치코어는 스페이드와 패딥의 한계점을 개선하기 위해 나온 연구이므로, 이 두 선행 연구를 먼저 알아본다.
공통적인 동작 방식 ( SPADE & PaDiM )
- 소개되는 모든 모델은 사전 학습된 모델을 통해 학습 이미지의 특징 맵을 추출한다.
- 이 특징 맵을 패치 단위로 쪼개서 저장소에 저장하는 과정을 거친다.
- 특징 맵을 어떻게 활용하고 이상치 점수를 어떻게 측정하느냐에 따라 방법론이 달라진다.
스페이드(SPADE)


- 전략: 사전 학습된 CNN의 각 레이어에서 나온 모든 특징 맵을 사용한다.
- CNN을 거쳐 나온 각 레이어의 특징 맵 크기를 맞춰 Concatenation한 후 저장소에 저장한다.
- 모든 레이어의 특성을 사용하여 다양한 정보를 활용함으로써 이상 데이터를 더 잘 잡아낼 수 있다고 주장한다.

- 이상치 점수 측정:
- 테스트 이미지를 사전 학습된 모델에 통과시켜 특징 맵을 추출하고 패치 단위로 쪼갠다.
- 저장소에 있는 모든 패치 단위 특징 맵들과 K-최근접 이웃(KNN) 기반 거리를 측정하여 패치별 점수를 산출한다.
패딥(PaDiM)

- 전략: 스페이드와 동일하게 학습 데이터의 특징 맵을 추출하여 저장소에 저장하고, 테스트 이미지의 특징 맵을 추출한다.
- 차이점은 특징 맵을 패치 단위로 쪼갤 때 각 위치 정보도 함께 저장한다는 것이다.
- 같은 위치에 있던 패치들끼리 마할라노비스 거리(Mahalanobis Distance)를 측정한다.
- 모든 특징 맵들끼리 비교하는 스페이드 방식보다 계산 비용(Computation Cost)을 줄일 수 있다는 장점이 있다.
- 이상치 점수 측정: 각 패치별로 구해진 이상치 점수 중 가장 거리가 먼 결과를 이상치 점수로 사용한다.
스페이드와 패딥의 문제점

- 두 방법론 모두 사전 학습된 모델로 정상 이미지에서 특징 맵을 추출하고, 이후 테스트 이미지의 특징 맵을 추출하여 둘 사이의 거리를 계산하는 방식으로 이상치 점수를 측정한다.
- 스페이드의 문제점: 사전 학습된 모델로부터 추출된 특징을 그대로 사용한다는 것이다.
- 추출된 패치는 독립적인 정보를 가지고 있는 것이 아니라 주변에 영향을 받고 있을 가능성이 높다.
- 논문에서는 이를 "스페이드의 특징을 사용하는 방식은 로컬(Locally)하지 않다"고 표현한다.
- 패딥의 문제점: 로컬하지 않다는 문제점에 더해, 동일 위치의 패치 특징들끼리만 비교한다.
- 특징 맵의 정렬(Alignment)이 맞지 않는 경우 치명적일 수 있다는 문제점을 가지고 있다.

PatchCore
그래서 패치 코어는 Locally하게 잘 정의된 패치 특징(Patch Feature)을 만들고 Coreset Subsampling 방식을 사용하여 계산 시간을 줄이는 것을 목표로 함
1. Average Pooling 사용

2. 모든 레벨의 레이어를 비교하지 말고 mid level 특징만 비교
위 계층(Low-Level) 특징은 정보량이 부족하고, 상위 계층(High-Level) 특징은 이미지의 공간적인 정보가 많이 사라진다고 주
+ 이미지넷 데이터셋으로 사전 학습된 모델을 통해 특징 맵을 추출하기 때문에 이미지넷분류 태스크에 특화된 정보만 남을 우려가 있기 때문이다.
코어셋 서브샘플링(Coreset Subsampling)
군집 내에서 대표되는 특징들만을 사용

- 학습 데이터에서 추출한 특징 맵들이 저장된 저장소를 2차원 공간에 점으로 표현한다.
- 어느 한 지점에서 시작하여 자신과 가장 멀리 있는 패치 포인트에 해당하는 점을 순차적으로 선택한다.
- 이렇게 선택된 빨간색 점들이 각 군집의 대표( 코어셋)로 사용
이상치 점수 측정
- 대표 특징들이 정해진 상황에서 테스트 이미지로부터 추출한 패치 특징(파란색 점)이 들어왔다고 가정한다.
- 패치코어는 KNN 거리 기반 이상치 점수를 사용하며, K=3으로 설정한다. 서치를 진행할 때에는 대표(빨강)를 기준으로
- 해당 군집에 해당하는 특징 포인트들 중 가장 가까운 세 개의 포인트와의 거리 중 가장 긴 거리를 이상치 점수로 사용한다.

- 데이터셋 및 평가 지표: MVTec 데이터셋에 대해 이미지 AUROC, 픽셀 AUROC, AUPRO 세 가지 평가 지표로 측정
https://velog.io/@zxxzx1515/AUROC-AUC-ROC-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0
AUROC, AUC-ROC 이해하기
Confusion Matrix를 이용하면 Accuracy, Precision, Recall 등 다양한 Metric을 쉽게 계산할 수 있다. 다만 이들은 모두 Threshold에 영향을 받는다는 단점이 있다.이러한 단점을 해결한 AUROC, AUC-ROC가 등장한다.
velog.io

- 코어셋 비율: 패치코어옆의 N%는 코어셋을 몇 개까지 사용할 것인지를 의미하며, 1%는 전체 특징 중 1%만을 코어셋으로 사용하겠다는 의미이다.
- 성능: 코어셋을 1%만 사용하더라도 기존 방법론 대비 최신 기술(SOTA)에 가까운 성능을 보여준다
Few-shot
비지도 학습의 한계점
- 비지도 학습 이상치 탐지는 학습 시 데이터가 대부분 정상으로 이루어져 있다고 가정한다.
- 이 경우 학습 데이터에 비정상 데이터가 포함될 가능성이 높아 제대로 된 학습이 이루어지지 않을 수 있다.
매우 적은 수의 정상 데이터만을 활용하는 방법으로, 현실 상황에서 적은 양의 확실한 정상 데이터를 구하는 것이 비교적 쉽기 때문에 현실성이 있으면서 확실한 방법이라고 할 수 있다.
FastReco
실제 산업 환경에서는 대량의 정상 레이블링 데이터를 수집하기 매우 어렵다. 따라서 적은 수의 정상 데이터만을 활용하여 빠르게 이상을 탐지할 수 있는 방법이 필요하다.
이러한 문제들을 퓨샷, 훈련 불필요(Training-Free), 분포 정규화기반 회귀(Distribution Normalization-based Regression)라는 새로운 정규화 항을 도입하여 해결하고자 하였다.
- 기존 산업 이상치 탐지 기법의 문제점

재구성 기반 방법론:
- 오토인코더와 같은 생성 모델을 활용하여 정상 데이터의 분포를 학습한다.
- 하지만 복잡한 학습 과정과 대량의 정상 데이터를 요구한다는 문제점을 가지고 있다.
특징 기반 방법론:
- 사전 학습된 네트워크에서 추출한 특징을 이용하고 정상 메모리 뱅크를 만들어 활용한다.
- 앞서 살펴본 패치코어또한 특징 기반 방법론 중 하나이다.
- 하지만 특징을 검색하는 과정에 계산 비용이 높고 복잡성이 높다는 단점이 있다.
FastReco mathod

크게 특징 1) 추출및 코어셋선택 과정, 2) 분포 정규화기반 회귀, 3) 재구성 기반 이상 탐지로 이루어져 있다.
- 특징 추출 및 코어셋 선택 과정
- 동작 방식: 앞선 패치코어방법론과 매우 유사하게 동작한다.
- K개의 정상 이미지에서 특징을 추출하고, 해당 특징을 이용하여 각 군집을 대표할 수 있는 코어셋을 만든다.
- 패치코어와는 다르게 K개의 아주 소량의 정상 이미지만을 활용하므로 시간과 비용을 줄일 수 있다.
- 코어셋을 사용한다는 것만으로도 비용을 줄일 수 있다.
- 사전 학습 모델: 특징 추출시 레지넷 50(ResNet 50)을 사용했으며, 패치코어와 같이 중간 계층의 특징 맵들을 추출하여 사용한다.
- 코어셋 구축 방법: 추출된 특징 맵들을 2차원 행렬로 재구성했을 때, 각 군집을 대표할 수 있는 특징들을 찾기 위해 그리디(Greedy)한 방식으로 시작 지점으로부터 가장 먼 거리에 있는 특징들을 순차적으로 찾아 나가는 방식을 활용한다.
- 동작 방식: 앞선 패치코어방법론과 매우 유사하게 동작한다.

분포 정규화 기반 회귀(Distribution Normalization-based Regression)
코어셋구축 후, 정상 코어셋특징을 이용하여 주어진 쿼리 이미지에서 추출한 쿼리 특징과 가장 유사한 특징을 찾는 과정이다.

재구성 기반 이상 탐지
- 최적의 변환 행렬을 찾은 후, 이를 사용하여 정상 샘플을 기반으로 쿼리 이미지의 정상 버전을 재구성한다.
- 이렇게 재구성된 정상 버전 쿼리와 원본 쿼리를 비교하여 이상 영역을 탐지하는 과정으로 패스트 리콘의 동작 방식이 끝난다
정리하자면 FastReco는 K개의 정상 이미지(아주 적은 수) 로도 코어셋을 만들고, 그 코어셋을 통해 분포 추정을 하며 재구성 기반 이상 탐지를 수행한다.

- 도메인별로 작은 성능 차이 존재

Zero-shot


다양한 도메인에 걸쳐 있는 이상치들을 어떻게 잘 일반화시켜서 다른 도메인의 이상치를 탐지할 것인가가 매우 중요하다.
학습용 이미지와 테스트용 이미지가 서로 다른 도메인이지만, 이상치의 패턴들이 일부 유사한 면을 확인할 수 있다. 특히 가죽에 튀어나온 부분은 사람의 피부 조직의 이상치와 매우 유사한 패턴을 띠고 있는 것을 확인할 수 있다.
AnomalyCLIP
2024년 ICLR에 게재된 논문
[논문 리뷰] Anomalyclip: Object-agnostic prompt learning for zero-shot anomaly detection
본 Paper Review는 고려대학교 스마트생산시스템 연구실 2024년 하계 논문 세미나 활동입니다.
velog.io
아노말리 클립은 CLIP을 활용하는 방법론이므로, CLIP이 무엇인지 알아야 한다.
Clip이 무엇인가?

https://taeyuplab.tistory.com/16
[논문 리뷰] CLIP: Learning Transferable Visual Models From Natural Lanugage Supervision
이 글에서는 2021년 1월 5일 발표된 논문인 Learning Transferable Visual Models From Natural Language Supervision에 대해 살펴볼 예정이다. 본 논문은 ChatGPT를 비롯한 GPT 모델 시리즈를 발표한 OpenAI로부터 발표되었
taeyuplab.tistory.com
CLIP은 거대 비전-언어 모델(Large Vision-Language Model)로, 대량의 데이터셋으로 사전 학습되어 강력한 일반화 성능을 보인다.
- 동작 방식:
- 사진에 대한 설명 텍스트가 텍스트 인코더를 거쳐 임베딩 값을 추출한다.
- 이미지 또한 이미지 인코더를 거쳐 이미지에 대한 임베딩 값을 추출한다.
- 이렇게 추출된 텍스트 임베딩과 이미지 임베딩 사이의 코사인 유사도(Cosine Similarity)를 계산하여, 올바른 쌍에 대해서는 유사도가 올라가고 잘못된 쌍에 대해서는 유사도가 내려가게끔 학습한다
AnomalyCLIP에서는?
- 객체 불가지론적(Object-Agnostic) 프롬프트 제안
- 아노말리 클립은 텍스트 프롬프트 부분을 이상치 탐지태스크에 맞게끔 객체 불가지론적 프롬프트를 새로 제안하였다.
기존 CLIP의 텍스트 프롬프트
- CLIP에서 사용하는 텍스트 프롬프트는 "a photo of [어떤 클래스]"로 구성되어 있다.
- 이를 이상치 탐지태스크에 맞게 변형하면 "a photo of cap with scratches"와 같이 특정 이상치 유형을 명시해야 한다.

객체 불가지론적 프롬프트의 필요성
- 현실적으로 세상에는 수많은 종류의 이상치들이 존재하므로, 이러한 이상치들에 대한 프롬프트를 일일이 다 적어주는 것은 불가능에 가깝다.
- 따라서 정상에 대한 프롬프트와 이상치에 대한 프롬프트를 단순히 '손상된(damaged)'이라는 단어가 들어간 프롬프트와 그렇지 않은 프롬프트로 구별할 수 있게끔 구성하는 과정을 거친다.
프롬프트 개선 방안
- "a photo of"라는 문구조차 사용하지 않고, 학습이 가능한 워드 임베딩으로 대체함으로써 이상치 탐지태스크에 더욱 적합한 프롬프트를 구축하였다.
- 아노말리 클립의 저자들은 여기서 그치지 않고, 객체와 완전히 비의존적인 프롬프트를 만들기 위해 클래스의 이름조차 '객체(object)'로 대체하여 프롬프트를 구축하였다.
- 클래스의 이름이 들어가게 되면 오히려 제로샷 태스크에 적합하지 않은 프롬프트를 사용하는 것이 되어 모델의 성능이 떨어진다는 문제가 발생하였다고 한다.
- 기존 CLIP: "a photo of [class]"
- AnomalyCLIP: 객체 불가지론적(object-agnostic) 프롬프트 → "normal object", "damaged object" 처럼 객체 이름을 빼버림.
- 이유: 객체 이름이 들어가면 새로운 도메인에서는 성능이 떨어짐 → 제로샷 일반화에 불리.

- 전역(Global) + 지역(Local) 정보 활용
- 전역 손실(Global Loss): 이미지 전체 단위에서 정상/이상 프롬프트와 임베딩 유사도 계산.
- 지역 손실(Local Loss): 이미지를 patch 단위로 쪼개서 이상 영역을 탐지 (세그멘테이션 맵).
- 지역 손실 계산 시 Focal Loss + Dice Loss 사용 → 작은 이상 영역도 잘 잡아냄.
- 추가 개선
- 프롬프트 미세 조정: 일부 토큰을 학습 가능하게 바꿔 성능 강화.
- D-FAM 레이어: 지역 정보 보존 강화 (QQ, KK, BV self-attention).
결과

- MVTec 산업용 데이터셋에서 학습 → 의료 데이터셋에 적용 (완전히 다른 도메인).

- 기존 제로샷/ few-shot 방법보다 성능이 훨씬 높음.
- 정성적 결과(시각화)에서도 이상 영역을 잘 잡아냄.
이번 글에서는 산업 이상치 탐지 분야에서 주목받고 있는 Few-Shot(FastReco) 과 Zero-Shot(AnomalyCLIP) 기반 방법론을 중심으로 최신 트렌드를 살펴보았다. 앞으로도 데이터 제약과 도메인 한계를 극복하려는 다양한 시도가 이어질 것이며, 실제 산업 현장에서의 활용 가능성도 더욱 넓어질 것으로 기대된다.
'Computer Vision > Computer Vision' 카테고리의 다른 글
| [Segmentation] Semantic Segmentation 알아보기 FCN, U-Net (0) | 2025.09.24 |
|---|---|
| [Object Detection] YOLO모델의 발전 과정 정리해보기 V1~12 (0) | 2025.01.13 |
| [Object Detection] 1-Stage vs. 2-Stage Object Detection 아키텍처 비교 (0) | 2024.12.27 |