논문읽기

ANOMALYCLIP: OBJECT-AGNOSTIC PROMPT LEARN-ING FOR ZERO-SHOT ANOMALY DETECTION

언시 2025. 4. 12. 14:16

3줄 요약

1. CLIP의 CLS token이 anomal vs normal로 align 되어있지 않다.

2. CLIP은 classification 기반의 prompt로 학습 되었기에, AD prompt에서는 성능을 내지 못한다.

3. object agnostic prompt learning을 통해 위 문제를 해결한다.

abstract

- ZSAD를 위해 vlm, clip등을 사용하려 할 때 cls token으로 anomaly feature를 추출하려 시도하면 이미지 test-alignment가 깨짐, 왜? -> 기본적으로 CLIP을 예로 들자면 CLIP은 classification을 전제로 만들어짐, cls 토큰이 anomaly vs normal 이렇게 맞춰져 있지 않음.

- 또한 domain shift로 인한 성능 저하가 존재하는데 AD은 one-class detection이다.(detect는 여러개지만, 하나의 클래스에 여러개의 defect가 존재한다.) 하지만 CLIP은 multi-class 기반으로 만들어졌다.

-> object agnostic text prompt를 통해서 위 문제를 해결한다.

fig1. 기존 prompt learning은 global feature랑 prompt embedding의 alignment에 집중.

introduction

- 기존에 존재하는 prompt learning은 global feature랑 prompt의 alignment를 맞추는 방향에 집중한다. fig1 참조.

Anomaly clip : object-agnostic-prompt-learning

- 이로 인해 localization 성능이 떨어진다. 직관적으로 미세한, 작은 defect의 탐지 성능이 떨어진다고 해석해도 무방하다 생각한다.

- 또한 상당한 predifne manual prompt에 의존하는 것 또한 문제인데, winclip의 예시에서도 엄청난 manual prompt가 존재한다.

-> object augnostic prompt embedding을 통해 matual prompt의 의존성을 없앤다.

NOMALYCLIP: OBJECT-AGNOSTIC PROMPT LEARNING

   object agnostic text prompt design

   - 기존의 "A photo of [cls]" prompt는 object sementic informtion을 전제로 만듦.

   - 하지만 저 프롬프트에는 normal or anomal의 정보를 담고있지 않다.

   - "A photo of [sufix : broken] [cls]" 이렇게 하면 anomal vs normal의 정보를 담을 수 있다. -> 그.러.나 predefine manual prompt에 크게 의존한다.

   - 또한 이렇게 사용해도 기존 클립은 multi-class-classification 기반이기에 alignment가 틀어짐.

   - 또한 이렇게 manual prompt의 문제가 있는데, 세상에 존재하는 수많은 defect를 전부 정의하지 않으면, manual prompt에 존재하지 않는 defect는 오히려 찾지 못할 수 있다.

-> A photo of [bottle] 이렇게 하지 말고 A photo of [object]와 같이 object agnostic prompt design을 사용하자.

   learning generic abnormality and normality prompt

      glocal context optimization

      - learnable prompt를 학습 시키는데, 기존 연구에서는 global feature과의 alignment에 집중한 반면, local feature & global feature alignment를 만족시키게 학습하자.

      - global feature alignment : cls token과 prompt의 alignment(cls token이 global한 anomaly value를 가지고 있게 만드는 방법은 refinement of local visual space에서 설명)

      - local feature alignment : clip의 intermidiate feature와 prompt embedding의 alignment

      refinement of the textual space

      - 위 사진을 참고.

      - 핵심은 learnable prompt ventor를 사용한다는 것이다.

      - 텍스트 인코더에 forward path에 learnable prompt를 concat한다.

      - 예를 들어 (10,768)벡터에 learnable vector (2,768)을 concat -> (12, 768) -> forward path

      - 다음 레이어에서는 12,768에서 이전에 붙인 learnable vector를 제거하고 다시 새로운 벡터를 붙인다.

-> 그냥 한 번만 learnable vector를 붙이지 왜 계속 붙였다 제거했다 반복? -> 기존 clip의 text space를 보존하기 위해서.

-> 어쩌피 해당 learnable vector는 인코더를 돌면서 기존의 10,768 벡터에 조금씩 반영되고 back propa 과정에서 학습에 관여한다.

-> 해당 벡터를 제거하지 않고 계속 사용하면, 급격한 인코더 출력 변화로 인해 text space가 뒤틀린다.

refinement of local visual space그림

      refinement of local visual space

      - 결론은 V-V attention을 사용하자. vvattention은 경량화 및 local feature embedding 성능이 좋다. fig3. 참조

      - 왜 vv attention이 local feature embdding 성능이 좋냐고 물어보면 나는 아래와 같이 대답할거다.

      1. 실험을 해보니 좋더라.

      2. Q,K,V는 각각의 linear layer를 독립적으로 사용하는데, 이는 각 피처를 추상화시킨다 생각한다. 따라서 VV attention은 하나의 layer만 사용하기에 이전 feature의 불필요한 추상화를 제거한다.

experiment

   experiment setup

   - MVtec부터 medical 까지 총 17개를 사용함.

   implementation detail

   - VIT-L/14@336px

   main result

      ZSAD performance on diverse medical dataset

     

      can we obtain better ZSAD performance if fine tuned using medical image data?

      - 세밀한 segmentation이 필요한 곳에서 winclip을 압도함.

      object-agnostic vs object-aware prompt learning