Towards Zero-Shot Anomaly Detection and Reasoning with Multimodal Large Language Models
abstract
- ZSAD를 위한 벤치마크와 데이터가 필요하다.
- dataset : Anomaly-instruct-125l, benchmark : visa-d&r을 제안
- GPT4o와 같은 모델은 fine-grained(작은 객체) defect의 탐지 능력이 부족함을 조사를 통해 알게 되었다.
- 이에, Anomaly-OV를 제안하는데 이는, Look-Twice Feature Matching (LTFM) mechanism을 통해 abnormal vision token을 선택하고 강조한다.
- IAD뿐만 아니라 medical&3D AD에서도 좋은 성능을 보인다.
1. introduction
- real-world의 needs를 반영하기 위해 ZSAD를 도입함으로 연구와 실제 산업에서의 GAP을 줄임
- ZSAD는 MLLMs를 기반으로 동작함.
- 대부분의 ZSAD는 likely-hood를 이용한 AD value를 기반으로 한 비정상 데이터 분류를 사용함.
- 그러나, abnormal인 "이유"에 대해서 설명해주는 모델이 없음. 논문의 말을 인용하자면, why an image is considered anomalous and provide visual evidence.
- GPT4o는 abnormal이미지를 잘 찾고 적절히 그 이유를 설명하기는 함. 그러나 명확히 설명하지는 못함.
- 이런 문제를 해결하기 위해 새로운 AD reasoning dataset&benchmark를 도입함.
- 기존의 ZSAD는 object anaware한 방식임. 반면, anomaly-OV는 object-wareness abnormality를 학습함.
- 첨언하자면, ZSAP EX) winclip은 이미지의 forward path에서 해당 사진이 어떤 클래스인지 모르는 상태로 시작함. 그러나 anomaly ov는 forward path에서 feature를 추출하고 그 feature의 cls token을 활용하여 본격적인 AD를 시작함. 그러니 AD를 진행하는 시점에서 해당 사진이 어떤 클래스인지 알고 있는 상태.
- 사람의 시각 인지를 모델링 하기 위해 Look-twice feature matching(LTFM)을 도입함.
- 여기서 말하는 사람의 시각 인지는, 특정 물체에서 defect를 찾아낼 때 이미지를 전체적으로 보고 이상한 부분만 집중해서 보는 프로세스임.
- triad나 anomalygpt?랑 비슷한 계열인 것 같다.
2. related work
- multimodal large language models
- 오 여기서 하나 또 배워감. VLM==MLLMs는 같은거라 생각했는데 뉘양스의 차이가 있음. VLM은 CLIP과 같은 친구고, MLLMs는 triad같은 친구임. 비전 임베딩을 텍스트 임베딩의 입력으로 사용하는지 마는지 그 차이인듯.
- Unsupervised Anomaly Detection : OOD관련 다른 논문 동일한 이야기.
- Zero-Shot Anomaly Detection : unseen category detection 관련 동일한 이야기.
3. Method
3.1. Preliminary
- MLLM base-line으로 LLaVA-OneVision을 사용함. 이는 오픈소스로서 pretrained-model을 제공함.
- LLaVa-OneVision = visual encoder + projector + LLM
- CLIP은 이미지 사이즈가 정적인데, 위 모델은 동적으로 조절 가능하기에 고해상도 이미지를 사용할 수 있음.
3.2. Architecture Overview
- 고해상도 이미지는 Croped 되어 사용됨.
- 해당 이미지는 transformer layer를 거쳐 임베딩 됨.
- where i denotes the i-th level and j refers to the index ofcorresponding image in I.
- CLIP과 같은 모델은 text encoder가 존재하고 이를 기반으로 vision-text alignment가 pretrain과정에서 맞춰져 있음.
- CLIP의 기본 훈련은 사람 사진과 "사람" 이라는 텍스트의 alignment를 맞추는 과정임. 그리고 그 텍스트는 아마 사람의 손으로 작성되었을 것임. 이는 사람이 작성한 클래스 정보가 vision embedding vector에 녹아 있는 결과를 만듦.
- 따라서 prompt encoder가 존재하지 않는데, 이는 prompt 자체가 사람의 개입이 필요한 작업이기에, 최대한 사람의 개입을 없애기 위해 vision에 집중한 AD를 진행함. V^o_o로 표시된(브이 제로 제로) 첫번째 사진에 대한 임베딩 벡터가 cls 토큰으로 사용됨.
- VT selector module은 의심되는 부분들을 성택하는 역할을 함.
3.3. Look-Twice Feature Matching
- 1. 브이 제로 제로는 cls 토큰으로 생각
- 2. CLS token + positive token = 뭔지 모르지만 cls token과 같은 클래스의 normal 이미지 라는 의미를 갖는 벡터가 됨
- 3. CLS token + negative token = 뭔지 모르지만 cls token과 같은 클래스의 abnormal 이미지 라는 의미의 백터가 됨
- 4. 해당 벡터와 이미지 패치의 코사인 유사도를 통해 어떤 패치가 abnormal인지 찾아냄.
3.4. Visual Token Selector
- LTFM을 통해 anomaly mask map이 만들어졌다.
- 이를 원본 피처에 element wise하게 곱해서 mask의 weight를 반영한다.
- 이를 pooling 하면, anomaly vector가 만들어진다.
- 이를 기반으로 anomaly vector와 원폰 패치의 cross attention을 진행하면, 원본 패치에서 anomaly vector에 해당하는 벡터들이 추출되는 효과를 갖는다. (BLIP2를 기반으로 필자가 이해한 방식이해함.)
- 해당 벡터의 projection을 통해 차원을 맞춰주고 LLM에 입력으로 들어간다.
3.5. Inference and Loss
- Anomaly Prediction : VT selector의 vector map을 aggregation 한 후, MLP + sigmoid를 통해 값을 추출한다.
- Text Generation : 저 모든 토큰들이 LLM에 들어간다.
4. Dataset and Benchmark : Anomaly-Instruct-125k, VisA-D&R
4.1. Anomaly-Instruct-125k
예시를 보면 이해가 쉽다.
- LLM을 이용하여 데이터세트를 만들었다..
4.2. VisA-D&R
- VisA-D&R은 VisA 데이터셋의 10개 클래스를 활용한 산업 이상 탐지 벤치마크임. 761개 정상 및 1000개 이상 샘플로 구성됨.
- Anomaly-Instruct-125k 파이프라인을 따름. 캡션의 경우는 사람이 한 번 더 검토해서 정확성을 높임.
- 이상 탐지 성능은 yes, no로 한 단어로 말하게 만들고 Accuracy, Precision, Recall, F1-score 사용
- 이미지에 대한 상세추론 성능은 defect 설명과 원인 설명으로 나뉨. ROUGE-L, SBERT, GPT-Score로 측정.
5. Experiments
5.1. Training & Evaluation
- 1단계는 LTFM과 VT selector, projector를 훈련시킴.
- 2단계는 LLM을 훈련시킴.
5.2. Zero-Shot Anomaly Detection
5.3. Anomaly Detection & Reasoning
6. Conclusion
- Anomaly-Instruct-125k는 시각적 이상 탐지 및 추론을 위한 대규모 명령 튜닝 데이터셋이며, VisA-D&R은 이를 평가하는 벤치마크임.
- Anomaly-OV는 이상 전문가를 활용한 전문 MLLM으로, 의심스러운 visual 토큰을 선택해 LLM을 지원.
- 기존 방법 대비 전통적 ZSAD와 텍스트 기반 이상 탐지/추론에서 큰 성능 향상 달성.
개인적으로 생각하는 limitation : few-shot 성능이 떨어질 것임. Q-former 의 한계.