junxnone / aiwiki

AI Wiki
https://junxnone.github.io/aiwiki
18 stars 2 forks source link

paper AnomalyCLIP #466

Open junxnone opened 7 months ago

junxnone commented 7 months ago

AnomalyCLIP

摘要

简介

问题

现状

目的

方案

  1. 为 正常和异常类别设计了两个对象不可知的可学习 prompt template
  2. 利用图像级和像素级的损失函数来学习全局和局部的异常语义
  3. 文本提示调优和 DPAM 用于 CLIP 中 提示词和局部视觉空间的学习
  4. 使用 Vision Encoder 的多个中间层,学习更多的局部细节
  5. Glocal Context optimization:
  6. Refinement of textual space: 添加额外的可学习 token embedding 到 文本编码器
  7. Refinement of the local visual space: DPAM (Diagonally Prominent Attention Map) 用于在细粒度上优化分割图
  8. Inference 时使用相似度得分作为图像级异常分数,像素级使用合并的中间层分割(插值/平滑)
  9. Grounding-DINO-T --> Swin-T
  10. Grounding-DINO-L --> Swin-L

Image

Text Prompts

prompt_normal = ['{}', 'flawless {}', 'perfect {}', 'unblemished {}', '{} without flaw', '{} without defect', '{} without damage']
prompt_abnormal = ['damaged {}', 'broken {}', '{} with flaw', '{} with defect', '{} with damage']

训练细节

  1. Backbone: CLIP(VIT-L/14\@336px), 冻结所有参数
  2. 可学习 Prompt 的长度为 12
  3. 可学习 token embedding 为前 9 层,每层长度为 4
  4. 使用 mvtec 数据集训练,以评估其他数据集,使用 VisA 数据集训练,以评估 mvtec

结果对比

Test

Reference