AD Workbench의 알고리즘은 모두 같은 결과물을 냅니다. 픽셀별 이상도 히트맵과 이미지 대표 점수이고, 판정은 score ≥ Threshold → NG입니다. 차이는 특징을 무엇으로 뽑고 이상도를 어떻게 재는가에 있습니다. 이 차이가 데이터 양, 속도, 강한 결함 유형을 가릅니다.
두 가지 학습 방식
A. 통계·특징 수집형 (1-pass) — PaDiM, PatchCore, SPADE, AnomalyDINO, WinCLIP, HoleMetric, Tiled 2종
정상 이미지를 한 번 훑으며 특징을 모으거나 평균·공분산을 계산합니다. 역전파가 없어 epoch 개념이 없고, 학습이 수 초~수 분이면 끝납니다. 대신 모은 특징을 저장하므로 모델 파일이 커질 수 있습니다.
B. 경사하강 학습형 — EfficientAD, FastFlow (20 epochs), Dinomaly2 (5,000 iterations)
신경망 가중치를 실제로 학습하므로 시간이 걸립니다. 대신 추론이 빠르고 모델 파일이 작습니다. 라인의 택트 타임이 빡빡할 때 후보가 됩니다.
11종 한눈에 보기
| 알고리즘 | 특징 추출 | 이상도 계산 | 대표 강점 |
|---|---|---|---|
| PaDiM | WideResNet50-2 | 위치별 가우시안 분포와의 마할라노비스 거리 | 위치 고정 대상, 결함 위치 선명 |
| PatchCore | WideResNet50-2 | 메모리 뱅크 k-최근접 거리 | 정밀도 최상급 (권장 기본) |
| SPADE | WideResNet50-2 | 비슷한 정상 K장과 위치별 최소 거리 | 단순, 소규모 데이터 빠른 구축 |
| WinCLIP | CLIP ViT-B-16+ | '정상/불량' 텍스트와의 유사도 | 정상 이미지가 거의 없어도 즉시 시도 |
| EfficientAD | 경량 전용망 | Teacher–Student 불일치 + 재구성 오차 | 추론 매우 빠름 |
| FastFlow | WideResNet50-2 | 정규화 흐름의 확률 밀도 | 모델 작고 추론 빠름 |
| AnomalyDINO | DINOv2 ViT | 패치 토큰 최근접 코사인 거리 | 복잡 형상, few-shot, 위치 변동 |
| Dinomaly2 | DINOv2 + 디코더 | 인코더·디코더 특징 차이 | 여러 뷰를 모델 하나로 통합 |
| HoleMetric | 고전 비전 | 정렬 후 픽셀·셀 통계 | 구멍·셀 단위 미세 형상, CPU, 학습 3초 |
| AnomalyDINO Tiled | DINOv2 ViT-B/14 | 원본 해상도 타일별 뱅크 | 고해상도 미세 결함, 이물·깨짐 |
| PatchCore Tiled | WideResNet50-2 | 타일별 coreset 뱅크 | 정상 20장 이상, 미세 표면 결함 |
기반 모델(Foundation Model)이 바꾼 것
WinCLIP과 AnomalyDINO, Dinomaly2는 1억 장이 넘는 이미지로 미리 학습된 범용 비전 모델(CLIP, DINOv2)의 특징을 그대로 씁니다. 이 모델들은 이미 "물체의 구조"를 잘 표현하도록 학습되어 있어서, 정상 이미지가 몇 장뿐이어도 정상과 이상을 구분하는 특징을 뽑아냅니다. WinCLIP은 이미지와 글을 함께 배운 CLIP을 써서, 정상 이미지가 0장이어도 "흠집 없는 부품"과 "긁힌 부품"이라는 글과의 유사도로 판단을 시도합니다(Zero-shot). 데이터를 모으기 전에 검사가 가능한지 가늠하는 용도로 유용합니다.
고해상도 미세 결함 — 타일 방식
대부분의 모델은 이미지를 512픽셀 안팎으로 줄여서 봅니다. 2048픽셀 원본을 4분의 1로 줄이면 지름 4픽셀짜리 구멍 막힘은 1픽셀이 되어 사라집니다. 타일 방식은 부품을 먼저 정렬한 뒤, 원본 해상도 그대로 518픽셀 타일(10% 겹침)로 나누어 타일마다 따로 뱅크를 만듭니다. 원본에서 구멍 하나가 4×4 패치로 보이므로 셀 단위 결함이 특징에 남습니다.
HoleMetric은 딥러닝 없이 정렬과 통계로 구멍(셀)마다 밝기·어두운 비율·편차를 재고, 어느 셀 때문에 NG인지 cell_report.csv로 설명합니다. 비정형 이상(이물, 깨짐)에 강한 AnomalyDINO Tiled와 함께 쓰는 구성을 권장합니다.
선택 가이드
| 상황 | 권장 | 이유 |
|---|---|---|
| 정상 0~10장 (타당성 검토) | WinCLIP · AnomalyDINO | Zero/Few-shot으로 즉시 시도 |
| 정상 10~50장 | AnomalyDINO · SPADE · HoleMetric · Tiled | 학습 없는 뱅크·통계 방식 |
| 정상 50~300장 | PatchCore · AnomalyDINO · PaDiM | 정밀도 최상급 |
| 정상 300장 이상 | PatchCore · Dinomaly2 | 뷰가 여럿이면 Dinomaly2 한 벌 |
| 지그로 고정, 항상 같은 자리 | PaDiM · PatchCore · HoleMetric | 위치별 기준이 정확히 맞음 |
| 대상이 이동하거나 약간 회전 | AnomalyDINO | 위치 변화에 상대적으로 강건 |
| 커넥터·사출물 등 복잡 형상 | AnomalyDINO · Dinomaly2 | 복잡한 구조 표현에 유리 |
| 구멍·핀 미세 형상 (2048px) | HoleMetric + AnomalyDINO Tiled | 원본 해상도 셀 단위 계측 |
| 인라인 택트가 빡빡함 | EfficientAD · FastFlow | 추론 빠르고 모델 가벼움 |
결국은 실험으로 정한다
위 표는 출발점일 뿐입니다. 같은 부품이라도 조명과 결함 유형에 따라 순위가 바뀝니다. AD Workbench에서는 Setup에서 후보 알고리즘을 여러 개 체크하고 Auto Run을 누르면, 같은 학습·평가 데이터로 모두 돌려 점수 분포와 히트맵을 나란히 비교할 수 있습니다. 비교 기준은 모델 평가와 현장 운영에서 다룹니다.