일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- AI
- OpenAI
- 메타
- 코딩
- 생성형 AI
- 일론 머스크
- 3d 재구성
- 트랜스포머
- 확산 모델
- 생성형AI
- 오픈AI
- 우분투
- 강화 학습
- 시간적 일관성
- Stable Diffusion
- PYTHON
- 인공지능
- OpenCV
- 오픈소스
- 실시간 렌더링
- 딥러닝
- LLM
- 오블완
- LORA
- AI 기술
- tts
- 티스토리챌린지
- 휴머노이드 로봇
- ubuntu
- 다국어 지원
- Today
- Total
AI 탐구노트
CPR : 고속 이상 탐지를 위한 계층적 패치 검색 기법 본문
산업 자동화 및 품질 검사는 이상 탐지(Anomaly Detection, AD) 기술의 발전과 밀접한 관계가 있습니다. 특히, 제조업에서 불량 검출은 높은 정확도와 실시간 처리가 동시에 요구되는 핵심 문제입니다. 기존의 이상 탐지 기법들은 정확도를 향상하는 데 집중하였으나, 실시간 처리가 어려운 경우가 많았습니다.
최근 패치 기반 이상 탐지 방법인 PatchCore가 단순한 구조에도 불구하고 높은 성능을 보여 주목 받았습니다. 하지만 이러한 방법들은 불량 패치를 찾기 위해 전체 이미지 데이터베이스를 검색하는 비효율적인 방식이 많아 속도가 제한된다는 단점이 있었습니다.
Cascade Patch Retrieval (CPR)은 새로운 이상 탐지 프레임워크로, "목표 설정 후 탐색 (Target before Shooting)" 개념을 도입하여 먼저 참조 이미지를 선택한 후 국소적인 패치 매칭을 수행하는 방식으로 동작하며, 이를 통해 정확도를 유지하면서도 1ms 이하의 빠른 탐지가 가능해졌습니다.
CPR (Cascade Patch Retrieval)
1) 기존 방식의 문제점
기존 이상 탐지 방법들은 크게 세 가지로 나뉩니다.
- 일반적인 패치 매칭 방법
- 각 테스트 패치를 전체 데이터베이스에서 가장 유사한 패치를 찾는 방식
- 단순하지만 비효율적이며, 이상 패치가 정상 패치와 잘못 매칭될 가능성이 높음
- 이미지 정렬 후 매칭 (Align & Match)
- 이미지를 정렬한 후, 해당 위치에서 패치를 비교하는 방법
- 정렬이 실패하면 오히려 정확도가 낮아질 수 있음
- PatchCore 및 변형 모델들
- PatchCore는 단순한 NN(Nearest Neighbor) 검색으로 좋은 성능을 보였으나, 속도 문제 존재
- 일부 모델들은 추가적인 이미지 정렬을 도입했으나, 일반화 성능이 낮거나 속도가 저하됨
2) CPR의 핵심 개념
목표 설정 후 탐색 (Target before Shooting)
CPR은 문구 그대로 '사격 전에 목표를 먼저 정하고 쏘는 것'과 같습니다. 기존의 방식이 무작정 모든 곳을 탐색하는데 반해 CPR은 목표를 설정한 후에 탐색하는 방식을 취한다는 것이죠.
비유로 과수원에서 썩은 사과를 찾는 일을 들어 보겠습니다. 사과 하나하나를 전수 조사하면 엄청 오래 걸리게 될 겁니다. CPR 방식은 '먼저 비슷한 종류만 골라낸 후 그 안에서 썩은 부분을 자세히 조사'하는 방식과 유사합니다.
3) CPR의 접근 방식
CPR은 기존 패치 매칭 방식을 개선하여 '계층적 패치 검색 (Cascade Patch Retrieval, CPR)' 방식을 도입했습니다.
- 1단계: 전역 검색 (Global Retrieval) - '어디를 비교할 것인가?'를 결정
- 검사할 이미지와 비슷한 정상 이미지를 먼저 선택
- 전체 데이터베이스를 탐색하지 않고, 선택된 일부 이미지에서만 국소적인 패치 검색을 수행
- 2단계: 국소 검색 (Local Retrieval) - '세부적인 비교' 수행
- 선택된 참조 이미지 안에서 특정 위치의 패치(조각)만 검색하여 이상 점수 계산
- 불필요한 패치 비교를 줄여 속도와 정확도를 동시에 개선
- 3단계: 이상 점수 계산 및 배경 필터링
- 배경과 구별해 최종적으로 불량 가능성 높은 부분을 강조. 이상 점수를 보정하여 탐지 성능을 향상
이 방식은 전체 이미지를 대상으로 탐색하는 기존 NN 방식보다 빠르고, 정렬 과정에서 오류가 발생할 가능성이 있는 Align & Match 방식보다 안정적입니다.
위의 그림은 기존 방식과 CPR 방식의 차이점을 설명하고 있습니다. 일반 NN 검색은 너무 많은 비교가 필요하고 이미지 정렬 후 같은 위치만 패치할 경우 정렬 실패 시 정확도가 떨어지게 되죠.
위의 그림은 CPR이 어떻게 동작하는지 전체 구조를 보여줍니다. 비슷한 이미지를 찾고 세부 비교 후 배경을 걸러내는 과정인데, 각각의 동작 설명은 다음과 같습니다.
- DenseNet201 (특징추출기) : 이미지 특징 추출
- Global Retrieval Branch (전역검색) : 히스토그램 기반으로 비슷한 이미지 먼저 검색
- Local Retrieval Branch (국소검색) : 패치 단위로 이상 점수 계산
- Foreground (전경추정) : 배경 제거해서 오탐 줄임
3) CPR에 적용된 세부 기술
전역 검색 (Global Retrieval)
- 히스토그램 기반의 전역 유사도 매칭 기법 적용
- Kullback-Leibler (KL) Divergence를 활용해 테스트 이미지와 가장 유사한 정상 이미지를 탐색
국소 검색 (Local Retrieval)
- 각 테스트 패치와 유사한 패치를 전역 검색에서 선택한 참조 이미지 내에서만 탐색
- 패치 간 거리 계산을 위해 대비 손실(Contrastive Loss) 기반의 메트릭 학습 적용
이상 점수 계산 및 필터링
- 배경에서 발생하는 오탐을 줄이기 위해 전경/배경 예측(Foreground Estimation) 모듈 추가
- 이미지의 주요 객체 부분에서만 이상 점수를 계산하여 신뢰도 향상
4) CPR의 제약사항
- 데이터셋에 따라 최적의 전역 검색 전략이 달라질 수 있음
- 국소 검색 과정에서 매칭 패치가 부족할 경우 성능 저하 가능
- 전경/배경 필터링이 불가능한 텍스처 데이터셋에서는 적용이 제한적
Cascade Patch Retrieval (CPR) 방식은 기존 이상 탐지 방법의 한계를 극복하며, 높은 정확도와 실시간 처리를 동시에 만족하는 새로운 접근 방식입니다.
CPR의 주요 성과
- MVTec AD 데이터셋에서 최고의 이상 탐지 성능 기록
- 기존 방법 대비 최대 10배 빠른 속도 (최대 1016 FPS, 1ms 이하)
- 기존의 NN 방식보다 강건한 패치 매칭 성능 확보
향후 연구에서는 추가적인 강화 학습 및 최적화 기법을 도입하여 더 높은 성능과 안정성을 확보하는 것이 가능할 것으로 보입니다.
참고자료
- 논문) Target before Shooting: Accurate Anomaly Detection and Localization under One Millisecond via Cascade Patch Retrieval" (링크)
- 코드) CPR github repository (링크)
Q&A
Q. CPR 방식이 기존 PatchCore 대비 어떤 점에서 우수한가요?
PatchCore는 단순한 NN 검색 기반의 패치 매칭 방식으로, 속도가 느리고 이상 패치가 잘못 매칭될 가능성이 큽니다. CPR은 전역 검색 단계를 추가하여 효율적인 패치 매칭을 수행하고, 국소 검색을 최적화하여 정확도를 향상시켰습니다.
Q. CPR의 속도는 어느 정도인가요?
CPR의 기본 모델은 113 FPS로 매우 빠르며, 경량화 버전인 CPR-Faster는 1016 FPS까지 도달하여 1ms 이하의 탐지가 가능합니다.
Q. CPR의 단점은 무엇인가요?
CPR은 전경/배경 필터링을 활용하지만, 모든 데이터셋에 적합하지는 않습니다. 특히 배경이 없는 텍스처 기반 데이터에서는 필터링을 활용하기 어려울 수 있습니다.
'AI 기술' 카테고리의 다른 글
SmolDocling: 초소형 비전-언어 모델을 활용한 문서 변환 기술 (1) | 2025.03.19 |
---|---|
Inductive Moment Matching: 빠르고 안정적인 생성 모델 학습 기법 (0) | 2025.03.18 |
MIDI: 단일 이미지에서 3D 장면 생성을 위한 다중 인스턴스 확산 모델 (1) | 2025.03.15 |
Audio Flamingo 2: 언어/비언어 소리를 함께 이해하는 오디오-언어 모델 (0) | 2025.03.13 |
Diffusion Self-Distillation(DSD) : 확산모델 활용한 제로샷 맞춤형 이미지 생성 (0) | 2025.03.11 |