《AnomalyCLIP》用于工业、医学等领域的zero-shot异常检测

1 论文情况

        2023.11.03于arxiv上发布(AnomalyCLIP),gituhub网址已给出https://github.com/zqhang/AnomalyCLIP,2024.03.19已开源。

        以往的异常检测算法无法解决未知域数据集缺乏的问题,本文通过设计了通用可学习的文本提示,摆脱了人工设计,大幅提高了在各个领域异常检测的迁移能力。

2 Task Setting

        本文主要涉及到了两个任务:ZSAD(Zero-shot anomaly detection)和Prompt learning。这两个任务设定在异常检测领域都有广泛的应用。

2.1 ZSAD(Zero-shot anomaly detection)

        零样本的异常检测主要依赖于模型强大的泛化能力,借此来处理未知域的各种已知/未知的异常情况。

        · 最近有一个极具创新性的工作WinCLIP,它尝试利用CLIP用于ZSAD,人工设计了大量的text prompts并对图像进行多次前向传播,以此进行异常分割;

        · 为了解决上述方法繁琐的人工设计问题,VAND引入了可学习的线性投影技术来增强局部视觉语义信息的理解。

        ×但是上述两种方法的textual prompt embeddings的泛化能力都不强

        √而AnomalyCLIP分别为异常和正常设计了通用可学习的text prompt,大大提高了泛化性能

2.2 Prompt learning

        相比于整个网络的全参数训练,Prompt learning旨在训练学习一种合适的prompt,对最终模型的效果有较大影响,而且参与训练的参数量也相对较少,使得整个任务的完成更加高效。

        · CoOP便引入了可学习的文本提示用于少样本的分类任务;

        · DenseCLIP也尝试使用Prompt learning进行稠密图像的预测任务。

        ×但是以上两种方法中,物体种类的语义信息对最终模型的效果有较大影响

        √而AnomalyCLIP设计泛化能力更好的text prompt,不再关注异常所在的主体,仅关注异常之下潜在的模式

3 Preliminary

        AnomalyCLIP是基于CLIP的基础上进行优化的,下面将简单介绍一下CLIP的模型架构。

        CLIP主要由Text Encoder和Image Encoder两个部件组成,其中Text Encoder由N个Transformer的Encoder组成,主要是将输入的字符串传换成向量最后到token embeddings。而Image Encoder采用的就是Visual Transformer(ViT),将图片映射到了Visual space。训练的时候主要将文本和视觉的token进行对齐,而在推理的过程中找到对齐最好的texual token embedding即为最终的分类结果,CLIP主要是将图片的全局信息和物体种类的语义信息进行对齐,在视觉局部信息的获取上相对较弱。

4 AnomalyCLIP

        首先我们先大致看一下模型的大致结构:

​         AnomalyCLIP在CLIP的基础上主要进行了四个改动:

        1.为正常和异常信息分别设计了一种通用可学习的与物体种类无关的text prompt;

        2.为了能学习到泛化能力更好的Prompt,本文设计了全局和局部上下文优化模块;

        3.加入了texual prompt tuning和diagonally prominent attention map (DPAM)以此修缮CLIP的文本和视觉空间;

        4.将视觉encoder的多个中间层和文本embedding对齐,以此获得局部视觉信息。
        接下来让我逐一分析一下各个模块的原理。

4.1 Object-Agnostic Text Prompt Design

        首先我们会回顾一下CLIP最初使用的text prompt是A photo of a [cls]×但这种prompt仅仅包含了图像中物体的种类信息。

        另外后面有学者提出如下的prompt方式A photo of a [cls] with scratches,即在原始的prompt后面加入对于异常的描述,×但对于各个领域的异常并非所有均可命名,而且在探索过程中会出现不少新的缺陷。

        针对以上两个问题,作者认为对于各个域的异常信息,其潜在的异常模式都是相似的,与物体的种类无关,另外,由于原始的CLIP仅仅对齐了物体种类文本和图片,并没有对局部内容的异常/正常信息进行对齐,所以设计了可学习的word embeddings来描述异常/正常信息,具体格式如下:

 $g_{n}=[V_{1}][V_{2}]...[V_{E}][object]$

$g_{a}=[W_{1}][W_{2}]...[W_{E}][damaged][object]$

        其中[V]_{i}[W]_{i},i\epsilon [1,E]分别表示正常和异常text prompt模板中随机初始化并可学习的word embedding。

4.2 Learning Generic Abnormality and Normality Prompts

        4.1设计了正常和异常text prompt template之后,便要开始学习合适的[V]_{i}[W]_{i},i\epsilon [1,E]

4.2.1 Glocal context optimization

        首先介绍的是全局和局部上下文优化,如下图所示,红框内是全局优化模块,绿框内是局部优化模块。

        · Global context optimization主要将textual embedding和全局视觉信息进行对齐,即从图像的角度分析该图是否damaged,其中全局损失用来衡量文本和视觉embedding之间的余弦相似度;

        · Local context optimization主要从vision encoder的m个中间层中学习细粒度的局部异常区域,每个中间层的视觉embedding都与文本embedding有对齐,最终叠加所有中间层的结果得到最终的异常分割图。局部损失中用到了Focal和Dice两个损失函数,由于异常检测领域,正常和异常样本的数量是不太相同的,为了解决样本分布不均与的问题,这里引入了Focal loss,另外Dice loss用于计算两个样本的相似度,这里用来衡量局部分割的效果。

4.2.2 Refinement of the textual space

        要获得表征能力好的text embedding,这不仅取决于text prompt的设计,还受文本空间的影响。

        在Text Encoder里面,本文为前9层每层加入了四个随机初始化的可学习的token,不断向上迭代以此修缮原始的texual space,为了精确校正,每个Transformer层的输出将不会直接作为下一层的输入。

 4.2.3 Refinement of the local visual space

        原始的CLIP用来对齐全局视觉信息和物体种类语义,但这样不能很好地捕捉局部视觉信息,所以本文使用了diagonally prominent attention map (DPAM)来精细化局部视觉空间。在训练过程中Vision Encoder的参数完全冻结,等待训练完毕后,更换Transformer里面的注意力机制。

         如下图所示,最上方一行蓝色的注意力图显示,对比原始的Q-K注意力,替换成Q-Q/K-K/V-V注意力之后,对角化更加明显,第二行和第三行分别可视化了CLIP和AnomalyCLIP在使用不同注意力之后对异常信息的捕捉能力,可以直观地看到,在更换注意力机制之后,模型的异常分割能力显著变强了。

5 Experiments 

5.1 Dataset and Main Result

        作者在17个公开数据集上验证了AnomalyCLIP的泛化能力,其中包含工业和医学领域的图像。工业领域的数据集有MVTec AD, VisA, MPDD, BTAD, SDD, DAGM, and DTD-Synthetic。医学领域的数据集有skin cancer detection dataset ISBI, colon polyp detection datasets CVC-ClinicDB, CVC-ColonDB, Kvasir (Jha et al., 2020), Endo, thyroid nodule detection dataset TN3k , brain tumor detection datasets HeadCT, BrainMRI, Br35H 和 COVID19 detection dataset COVID-19。拿来比较的SOTA方法有CLIP, CLIP-AC, WinCLIP, VAND 和 CoOp。

        对于MVTec数据集上的效果验证,作者使用的是其他工业图像数据集作为辅助数据进行训练,而对于其他16个数据集上的验证,模型所采用的辅助训练数据集均是MVTec,相关实验数据如下:

        对于工业图像上的效果,AnomalyCLIP已经完全超过了其他几个SOTA方法。

        可以看到当使用工业图像作为辅助数据集进行训练后,在医学图像上推理的时候,AnomalyCLIP显示出了良好的泛化能力,这也进一步验证了作者提出的一个结论,无论是工业领域还是医学领域,物体上的异常潜在的信息都是相似的。

        当然,相比于跨域的实现,作者开展了使用医学图像作为辅助训练数据的相关实验,相应数据如下:

        可以发现,相比于跨域的使用,当训练集和测试集的先验知识一致时,效果更佳,但是跨域的使用效果也差不了多少,体现出了AnomalyCLIP强大的泛化能力,下图为AnomalyCLIP在多个数据集上分割效果的可视化。

​5.2 Ablation Study

        作者针对文中提出的各个模块开展了相应的消融实验。

5.2.1 Object-agnostic vs. object-aware prompt learning

        为了探究text prompt中是否需要物体的种类语义,作者对比了两个prompt的效果,下图为使用与物体无关的文本提示相比使用与物体有关的文本提示,对模型带来的增益情况,可以直观地看到显然使用与物体无关的文本提示对模型最终的泛化能力更佳,这间接地表明,物体种类地语义信息可能会影响异常/正常信息的学习。

5.2.2 DPAM/Prompt/Token/Visual

        作者分别探究了AnomalyCLIP中提到的四个模块的作用,下图中的T1-T4分别代表DPAM(4.2.3),object-agnostic text prompts(4.1), adding learnable tokens in text encoders(4.2.2), 和 multi-layer visual encoder features(4.2.3)。

5.2.3  Glocal context optimization

        另外论文中探究了Global和Local 上下文优化模块的作用,根据实验数据可以发现,这俩模块可以很好地提高模型对全局和局部视觉信息的感知。

5.2.4  DPAM(V-V/Q-Q/K-K)

        在更换Transformer的注意力机制时,作者比较了三种(V-V/Q-Q/K-K)新的注意力机制的效果,结果如下图所示,三种的效果差异不大,但V-V注意力的效果对比其他两种略胜一筹。

6 总结

        在本文中,作者解决了一个具有挑战性零样本异常检测任务,其中目标数据集并未用于训练,文中提出了AnomalyCLIP来提高CLIP对ZSAD的弱泛化性能,引入了与物体种类无关的用于学习异常/正常信息的通用文本提示,以便在不同前景对象的图像数据集上实现广义 ZSAD。此外,为了将全局和局部异常语义合并到 AnomalyCLIP 中,作者设计了一个联合全局和局部上下文优化来学习更好的与物体种类无关的文本提示。17个公共数据集上的大量实验结果表明AnomalyCLIP具有较好的ZSAD性能。

  • 37
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值