CLIP遇上扩散模型 | 零样本异常检测新突破,性能碾压WinCLIP 8倍速!

大模型机器学习算法

点击下方卡片,关注「集智书童」公众号

精简阅读版本

本文主要解决了什么问题

异常检测的复杂性 :由于异常定义模糊、异常类型多样(如局部与全局缺陷)以及训练数据稀缺,异常检测是一个具有挑战性的任务。

传统方法的局限性 :现有方法在捕捉细粒度局部特征时存在困难(如CLIP),或者需要复杂的滑动窗口机制(如WinCLIP),导致效率低下。

零样本与少样本设置下的适应能力 :实际应用中往往缺乏足够的异常样本,因此需要能够在有限正常图像下快速适应新环境的方法。


本文的核心创新是什么

首次将扩散模型用于异常检测中的特征提取 :提出使用扩散模型的交叉注意力图和去噪器特征图直接构建异常图,无需生成图像。

判别模型与生成模型的协同融合 :结合CLIP(擅长全局语义理解)和扩散模型(擅长局部细节建模),形成互补,提升异常检测性能。

无训练的通用方法 :适用于零样本和少样本场景下的异常分类与分割任务,无需微调或额外监督。

高效的异常检测机制 :相比基于多尺度窗口滑动的WinCLIP,作者方法仅需少量前向传播即可完成细粒度异常检测,显著提升推理效率。


结果相较于以前的方法有哪些提升

性能优势

  • • 在MVTec-AD和VisA数据集上,CLIPFUSION在零样本和少样本设置下的异常分类与分割任务中始终优于Baseline方法。
  • • 在零样本设置中,显著提升了异常分割性能,突出了扩散模型对局部细节的有效建模能力。
  • • 在少样本设置中,通过引入参考图像特征比较,进一步增强了模型的判别能力。

鲁棒性增强

  • • 多模型集成减轻了单一模型的变异性,实验结果的标准差较小,表明方法具有良好的稳定性。

效率提升

  • • 推理速度比WinCLIP快6-8倍,避免了数百次前向传播带来的计算负担。

泛化能力

  • • 在全统一范式(one-for-all)下,CLIPFUSION在单样本设置中表现优于当前SOTA方法IIPAD。

局限性总结

基础模型未进行特定任务微调

  • • 虽然无需训练提升了部署效率,但也限制了模型对特定领域异常的适应能力。未来可探索针对特定用例的轻量级微调策略。

依赖预训练模型的质量

  • • 模型性能高度依赖于CLIP和Stable Diffusion等基础模型的表达能力,在某些特定类型的异常上可能仍存在识别盲区。

少样本设置中特征库的构建方式受限

  • • 当参考图像数量极少(如1-shot)时,特征库的代表性可能不足,影响对比效果。

时间步长和模块选择对性能有影响

  • • 实验发现不同解码器块和时间步长对最终性能有显著影响,需经验性选择,增加了使用门槛。

深入阅读版本

导读

异常检测是一个复杂的问题,因为异常的定义存在模糊性,异常类型的多样性(例如局部和全局缺陷),以及训练数据的稀缺性。因此,它需要一个能够捕捉Low-Level和High-Level特征的全面模型,即使数据有限。为了解决这个问题,作者提出了CLIPFUSION方法,该方法利用了判别性基础模型和生成性基础模型。具体来说,基于CLIP的判别性模型擅长捕捉全局特征,而基于扩散的生成性模型有效捕捉局部细节,形成了一种协同和互补的方法。值得注意的是,作者引入了一种利用交叉注意力图和从扩散模型中提取的特征图的方法,专门用于异常检测。在基准数据集(MVTec-AD,VisA)上的实验结果表明,CLIPFUSION始终优于 Baseline 方法,在异常分割和分类方面均取得了出色的性能。作者相信,作者的方法强调了多模态和多模型融合在应对异常检测的多方面挑战中的有效性,为实际应用提供了一种可扩展的解决方案。

1 引言

异常检测是一个重要的问题,广泛应用于工业[2, 60]和医学[47, 35]等多个领域。在本文中,作者处理异常分类和分割问题。1在异常分类(或分割)中,每张图像(或每个像素)被分类为正常或异常。

在实际应用中,异常图像的数量较少,而异常类型的潜在多样性很高,这使得获取具有代表性的样本变得具有挑战性。此外,开发能够在有限正常图像的情况下快速适应新环境(例如新的工艺或产品)的方法已成为一个关键的研究课题[44, 48, 60, 23]。为了解决这个问题,作者专注于零样本或少样本正常图像设置下的相关问题。

大规模预训练基础模型,例如GPT[4]和DALL-E[38,39]的近期出现,为解决此类挑战开辟了新的前景。基础模型的可泛化性和可扩展性使其在处理零样本和少样本任务(如异常检测)方面特别有效。在本文中,作者提出了一种结合判别性基础模型和生成性基础模型互补优势的新方法。

异常检测是一个多方面的问题,基于不同的视角已经发展出多种方法。首先,异常检测具有单类分类的方面。这促使社区发展出从正常图像中学习正常性的方法,并将偏离正常性的内容判断为异常。在这里,许多方法使用视觉基础模型[10, 11, 43]从正常图像中提取正常特征。其次,异常检测具有两类分类的方面。社区采用了视觉语言基础模型,如CLIP[37],来将 Query 图像与正常和异常文本 Prompt [25, 29]进行比较。第三,异常检测也具有语义分割的方面。许多异常特征是细粒度的,出现在纹理或边缘中。WinCLIP(基于窗口的CLIP)试图通过在多个尺度上滑动窗口来解决这个问题。然而,众所周知,CLIP在学习细粒度特征方面存在局限性[51, 26],这种方法可能是次优的。此外,由于多尺度窗口的穷举滑动,它需要数百次前向传递。

picture.image

图片

图1:作者模型CLIPFUSION的定性结果。它比WinCLIP更有效地捕捉细粒度异常。

作者主张异常检测的多方面特性使得仅使用判别模型来处理它具有挑战性。因此,作者的目标是通过对融合一个判别视觉语言模型(VLM)和一个生成文本到图像(T2I)模型来创造协同效应。这是两种根本上不同的方法来对齐图像和文本。判别模型,如CLIP,直接在同一空间中对齐嵌入,而生成模型,如扩散模型,通过联合执行一个共同任务来间接对齐它们。扩散模型以更灵活的方式学习图像和文本之间的关系,使它们能够更详细地捕捉语义关系。因此,为了有效的异常检测,利用基于CLIP模型提取的High-Level信息和基于扩散模型提取的Low-Level信息是至关重要的。

作者提出了CLIPFUSION

扩散方法,这是一种结合多模态(语言和视觉)与多模型(CLIP和扩散)方法优势的新方法。在零样本场景中,CLIPFUSION通过整合基于CLIP模型的图像-文本对齐和基于扩散模型的交叉注意力图[7, 55, 33],有效识别异常。在少样本场景中,它通过额外利用CLIP图像编码器和扩散去噪器的特征图,进一步提升性能,从而在 Query 图像和参考图像之间进行更全面的比较。图1展示了定性结果,展示了模型捕捉细粒度异常的能力。CLIPFUSION体现了一个综合框架,该框架协同互补的基础模型,并有可能超越异常检测,推进其他识别任务。

作者工作的贡献总结如下:

• 作者提出了一种将扩散模型作为特征提取器用于异常检测的新方法。据作者所知,这是首个利用交叉注意力和扩散去噪器的特征图直接构建异常图的方法,尽管使用了扩散模型,但该过程依然高效。

• 作者提出了一种新的异常检测方法,该方法联合利用了CLIP和扩散模型,超越了以往的单方面方法。作者展示了结合判别模型和生成模型特征所产生的互补效应。由于扩散模型弥补了CLIP在捕捉细粒度局部细节方面的局限性,作者的方法消除了对滑动窗口等复杂且耗时的技术的需求。

• 作者的算法在异常检测基准测试中始终优于现有方法。与大多数先前工作不同,作者的算法具有通用性:它可以在零样本和少样本设置下处理分割和分类任务。

• 作者的算法是无训练的,这使得它具有鲁棒性和易于应用。相比之下,基于训练的方法对何时停止训练的选择很敏感,在少样本设置中由于缺乏验证集,这具有挑战性。

2 相关工作

用于异常检测的视觉(语言)模型 在使用视觉(语言)模型进行异常检测的工作中,特征是从在判别性任务(例如分类或对比学习)上预训练的模型的中间层中提取的。通过将 Query 图像的特征与参考图像的特征进行比较来进行异常检测。一些工作在少样本情况下使用基于ResNet的模型,这些模型在ImageNet上预训练。在SPADE [10]中,采用

近邻算法来识别与 Query 图像最接近的

个参考图像,这些图像随后被用作异常检测的基础。在PaDiM [11]中,从参考图像中提取的特征被建模为高斯分布, Query 图像的特征与这些分布进行比较。在PatchCore [43]中,使用参考图像的特征构建了一个记忆库, Query 图像的特征直接与这个记忆库进行比较。WinCLIP [25]应用局部窗口并通过谐波聚合来组合结果。PromptAD [29]通过对比训练学习 Prompt Token 。

另一条研究路线假设可以访问额外的数据并利用这些数据。某些方法需要包含正常和异常图像的辅助数据集,例如在MVTec-AD数据集上训练并在VisA数据集上进行推理[22, 59, 52, 32, 5, 58, 16]。AnomalyGPT[17]依赖于包含大量正常样本的辅助数据集。在实践中,获取具有匹配特征的数据是具有挑战性的,这些方法在应用于分布偏移的数据集时往往难以部署。一些方法还依赖于真实分割 Mask ,这在现实场景中难以获得[22, 5, 58]。MuSc[30]通过详尽比较所有测试图像的特征来利用测试集,这只有在整个测试集可用且异常比例较低时才可行。

用于判别任务的扩散模型

最近,人们越来越关注将扩散模型应用于判别任务[15]。在DDPM-Seg[1]中,使用从去噪器中间层提取的激活来构建特征图,并将其用于语义分割。VPD[56]进一步结合交叉注意力图进行语义分割和深度估计。这些方法需要对下游任务进行微调。另一方面,DiffusionClassifier[27]通过确定哪种文本条件最能预测噪声来实现零样本分类。P2PCAC[20]和USCSD[19]通过图像编辑和语义对应任务揭示,交叉注意力图包含了丰富的空间布局信息。

3 预备知识

CLIP [37] 由一个图像编码器

和一个文本编码器

组成。这些编码器将图像和文本映射到同一个嵌入空间。该模型被训练以匹配具有高相似度的正确图像-文本对,同时为不正确的对分配低相似度。这个过程使用以下对比损失 [8] 进行优化:

其中

是候选文本 Prompt 的集合,

是温度超参数,

是余弦相似度度量。

扩散模型 [21] 是一种生成模型,通过逆转渐进式加噪过程来生成数据。在前向过程中,高斯噪声在多个步骤中逐步添加到干净数据上,将其转化为纯噪声。反向过程通过神经网络学习,逐步去噪数据以恢复原始信号。当提供文本 Prompt 时,它作为指导,使得生成的图像与文本中的意义或描述相匹配。它们还可以用于对图像的特定区域进行修复。在每一步中,未触及的区域通过用原始图像的相应部分替换它来保留,确保只有指定的区域被生成,并与图像的其他部分无缝融合 [40]。更多详情请参见附录A。

picture.image

图片

图2:CLIPFUSION的整体框架。基于CLIP的模型和基于扩散的模型处理 Query 图像和参考图像以生成异常图。最终的异常图是通过融合两个模型的视觉和语言组件的输出获得的。

4 方法

最终模型CLIPFUSION是作者基于CLIP的简单模型和作者的互补扩散模型融合的结果。为了方便起见,作者将基于CLIP的模型称为PatchCLIP(基于块的CLIP),将基于扩散的模型称为MapDiff(基于图的扩散)。作者首先描述每个模型的特点以及可以从它们中提取哪些资源以供后续使用。

PatchCLIP CLIP通过将图像分割成多个块来处理图像,并输出块嵌入和类 Token Embedding 。虽然类 Token Embedding 被训练以与文本嵌入对齐,但作者观察到块嵌入也是有益的,因此作者利用了两者。鉴于细粒度细节由基于扩散的模型处理,PatchCLIP提供了一个简单而有效的空间先验,避免了WinCLIP中繁琐的多尺度窗口滑动。

此外,作者利用了从CLIP图像编码器中提取的特征。为此,作者使用了在CLIP手术[31, 29]中提出的VV-attention机制。该机制被引入以补充CLIP的QK-attention机制,后者专门用于全局特征提取。它通过使携带关于块本身信息的值(因此得名VV-attention)之间能够直接交互,从而促进局部特征提取。

MapDiff 作者从扩散去噪器中提取并利用交叉注意力图和特征图。为此,作者使用了一个修复 Pipeline ,该 Pipeline 以干净图像为输入,而不是以随机噪声开始的生成 Pipeline 。在修复 Pipeline 中,提供一个 Mask 来指定将要添加噪声的区域。在这里,作者使用了应用空 Mask 的技巧。这防止了噪声的添加,去噪器将原始图像感知为噪声,使作者能够控制时间步长,以便在所需 Level 提取特征。

通过将清晰图像通过去噪器一次,作者从其中间层提取出特征图。较大的时间步长使去噪器将图像解释为高度噪声,从而捕获High-Level模式信息,而较小的时间步长则强调更精细的细节。

4.1 异常分割

用于分割的最终异常分数图

是通过融合PatchCLIP和MapDiff的分数图获得的。在零样本设置中,仅使用语言引导的分数图

。在少样本设置中,额外加入了视觉引导的分数图

。最终异常分数图的计算方法如下:

其中

是模型之间的权重。在零样本设置中,

4.1.1 零样本学习

在零样本设置中,给定一个 Query 图像,作者利用多模态基础模型学习到的图像与文本之间的关系来创建异常分数图。

CLIP语言引导分数图

Query 图像输入到CLIP图像编码器(例如ViT),将其分割成块,进行处理,并输出块嵌入。另一方面,正常和异常文本 Prompt 输入到CLIP文本编码器,并输出正常和异常文本嵌入。然后,计算所有块中每个块嵌入与异常文本嵌入对齐的程度(公式1),并将其组织成一张图。通过插值将其上采样到原始图像大小,以获得

差异语言引导分数图

Query 图像与一个空 Mask 、一个时间步长和一个文本 Prompt 一起被传递到扩散修复 Pipeline 中。文本 Prompt 包括一个目标词和一个状态词,例如:

“一个[物体]处于[状态]的照片。”

其中 [object] 指代图像中的实体(例如,“瓶子”),而 [state] 描述了该实体的可能异常状态(例如,“裂缝”)。[state] Token 在通过去噪器(例如,U-Net)时与图像交互,生成交叉注意力图。图中特定位置的高值表明该位置对 [state] Token (即异常状态)的反应更为强烈。因此,作者可以将此交叉注意力图用作异常评分图(图3)。此外,作者还计算了

picture.image

图片

图3:从扩散去噪器中提取的交叉注意力图示例

使用各种可能的异常条件(例如,“裂缝”、“孔洞”、“残留”、“损坏”)生成的交叉注意力图的平均值,以获得

这可以解释如下。在异常分割中,给定图像

,作者关注的是第

个像素是异常的概率

。这个概率可以通过在文本 Prompt

下进行条件化来表示:

其中

表示描述异常情况的文本 Prompt 集合。假设文本 Prompt

是均匀的,并将

解释为对应位置的交叉注意力图强度,则有:

4.1.2 少样本学习

在少样本设置中,使用正常参考图像。对于

-样本情况,使用

张图像来构建特征记忆库,然后将其与 Query 图像的特征进行比较。

基于视觉的CLIP分数图

参考图像通过CLIP的图像编码器提取参考特征并存储在内存库中。Low-Level语义信息的特征从中间编码器块中提取,而High-Level语义信息的特征则来自较后的编码器块。

picture.image

图片

表1: 异常分割的定量结果。

从编码器块

中提取的参考特征集表示为

。对于给定的编码器块

,从 Query 图像中提取的特征图表示为

。然后,通过将特征

与参考特征

进行比较来计算

,具体如下:

其中

是块集

。也就是说,根据相似性计算得分,并在所有参考特征

中选取最小的得分作为块

的异常得分。最后,对

取平均值作为最终异常得分。

差异引导分数图

参考图像通过扩散去噪器提取特征,这些特征存储在内存库中。去噪器由三个部分组成:编码器(下采样模块)、 Bottleneck (中间模块)和解码器(上采样模块)。在编码器中,压缩过程中信息通过 Shortcut 传递给解码器。 Bottleneck 是最压缩的阶段,其中大部分的详细信息丢失,因此不适合特征提取。因此,作者从解码器中提取特征。具体来说,作者关注中间和后期的解码器模块,因为它们提供了最丰富的语义特征 [1, 56]。

当时间步

给定时,从解码器块

中提取的参考特征集表示为

。从 Query 图像在时间步

和解码器块

中提取的特征图表示为

。然后,

的计算方法如下:

其中

是组合集

4.2 异常分类

分类的最终异常分数

是通过融合四个分数获得的:

picture.image

图片

表2: 异常分类的定量结果。

在零样本设置中,仅使用语言引导的分数。具体来说,CLIP语言引导分数

定义为 Query 图像的类别 Token Embedding 与异常文本嵌入之间的一致程度(公式1)。扩散语言引导分数

汇总了扩散语言引导分数图

,其定义如下:

这意味着当交叉注意力图的聚焦程度高时,分数会变得更大,即当最大值显著大于中值时。

在少量样本设置中,作者额外聚合了视觉引导的分数图,根据常见做法[25]定义分数如下:

5 对比

数据集作者使用了MVTec-AD [2] 和 VisA [60] 数据集,这些数据集主要用作异常检测的基准数据集。每个数据集包含多个物体类别,每个物体类别被分为一个仅包含正常图像的训练集和一个包含正常和异常图像混合的测试集。异常图像具有各种类型的异常。 Query 图像来自测试集,参考图像从训练集中采样。

Baseline 方法 作者与具有相同设置的方法进行比较,即仅使用提供的零样本或少样本正常图像,并且不依赖于任何额外监督的方法。这种设置反映了实践中常见的一个现实且具有挑战性的场景。

具体而言,作者将作者的方法CLIPFUSION与使用视觉模型(PaDiM、PatchCore)和使用视觉语言模型(CLIP-AC、Trans-MM、MaskCLIP、WinCLIP、PromptAD3)的方法进行比较。请注意,在这些方法中,只有CLIPFUSION和WinCLIP能够完全处理在零样本和少样本场景下的分割和分类任务。

picture.image

图片

表3: 不同模型的比较

picture.image

图片

表4: 不同模态的比较

picture.image

图片

表5: 时间步和块配置

picture.image

图片

表6: 特征图的解码器块

实验细节对于PatchCLIP,作者采用OpenCLIP [24, 9, 46],该模型已在LAION-400M [45]上预训练,并使用视觉Transformer(ViT)[14]作为其图像编码器。对于MapDiff,作者使用预训练的Stable Diffusion v2模型 [41],其中去噪器基于U-Net [42]。

作者在公式2中将

设置为0.25用于分割,在公式7中将

设置为0.75用于分类,以反映模型在每个任务中的不同重要性。作者报告了在不同随机种子下五次运行的平均性能和标准差。更多细节请参见附录C。

5.1 异常分割

表1展示了在零样本和少样本设置下,作者的方法与 Baseline 方法在异常分割任务中的性能比较。结果表明,CLIPFUSION在所有设置、数据集和指标上均持续优于 Baseline 方法。特别地,作者的方法在零样本设置中表现出显著的性能提升,这突出了基于扩散模型的交叉注意力图对零样本异常分割的关键贡献。此外,少样本设置中显著的性能提升展示了基于扩散模型如何补充基于CLIP的模型。

5.2 异常分类

表13展示了作者的方法与 Baseline 方法在异常分类任务上的性能比较。CLIPFUSION始终优于所有 Baseline 方法。这表明基于扩散的模型通过强化局部信息,不仅提升了分割任务的性能,也增强了分类任务的性能。

在分割和分类任务中,随着样本数量的增加,性能的持续提升突显了作者的方法在少量额外数据下的可扩展性。此外,作者结果中观察到的较小标准差表明了作者的方法具有鲁棒性。这种鲁棒性可归因于多模型集成,它减轻了变异性。

6 实证研究

在本节中,所有结果均在一次性设置下报告,以确保一致性。

6.1 消融研究

表3展示了不同模型的比较性能。正如预期,能够有效捕捉局部特征的扩散模型在分割任务中表现更好,而能够有效捕捉全局特征的CLIP模型在分类任务中表现更好。不同模型的组合始终比单独使用任一模型能获得更好的结果。这一经验证据表明,这两种模型捕捉了互补特征,使得它们的集成对分割和分类任务都非常有益。

表4展示了不同模态的比较性能。结果突出了两种模态的互补优势。结合这两种模态通过利用语义和空间信息来提升各项任务的性能。

6.2 从扩散去噪器中提取策略

作者探索了从扩散去噪器中有效提取特征的方法。在此,作者仅使用MapDiff进行实验,以更清晰地观察其效果。

表5突出了在计算

(公式6)时匹配时间步长和块数的影响。匹配较高时间步长与较低块数能获得更好的性能,反之亦然(时间步长

,时间步长

,时间步长

)。这种模式反映了扩散去噪器的内在行为:在较高时间步长下,去噪器将输入图像解释为高度噪声,并优先提取全局特征。处理粗粒度信息的较低块特别适合这项任务。使用较高时间步长可以看作是一种正则化策略,因为它们抑制局部细节并突出更广泛的模式。

表6显示,在计算

(公式6)时,包含早期块(块0)并没有提升模型的性能。相反,排除这个块始终能获得更好的结果。这表明解码器的早期阶段作为后续阶段的准备步骤,并没有形成具体的特征。

6.3 全局范式

IIPAD [34] 最近提出了一种新的小样本异常检测设置,称为全统一范式。该范式旨在训练一个单一的统一模型,能够检测多个物体类别的异常。在这个范式中,单样本设置指的是使用

张正常图像(每个类别一张),其中

是类别的数量。表7展示了在MVTec-AD数据集上单样本设置中与IIPAD(该范式下的SOTA方法)的比较,其中作者的方法实现了更高的性能。更多结果请参见附录G。

picture.image

图片

表7: 全一范式结果。

6.4 推理速度

作者的方法可以看作是WinCLIP的扩展。作者在表8中报告了使用NVIDIA A100 GPU测量的推理延迟,批处理大小为1。如所示,作者的方法比WinCLIP快约6-8倍。为了捕捉细粒度细节,WinCLIP在 Query 图像上滑动多尺度窗口,导致数百次前向传递。相比之下,作者的基于CLIP的模型利用从单次前向传递中获得的 Patch 嵌入。在此基础上,作者采用基于扩散的模型,不是作为迭代生成的去噪器,而是作为特征提取器来捕捉细粒度细节。因此,作者的方法总共只需要几次前向传递。

picture.image

图片

表8: 延迟(毫秒)比较

7 结论

作者提出了一种新颖的方法,将判别性基础模型和生成性基础模型协同结合,利用它们的互补优势。作为一个具体应用,作者介绍了CLIPFUSION,它将CLIP和扩散模型集成用于异常检测,并在零样本和少样本场景下的分割和分类任务中始终优于 Baseline 模型。这种方法的整体性不仅推动了异常检测的发展,还展示了多模态和多模型集成在复杂识别任务中的潜力。

参考

[1]. CLIP Meets Diffusion: A Synergistic Approach to Anomaly Detection


扫码加入👉「集智书童」交流群
(备注:方向+学校/公司+昵称)

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
大模型解决方案白皮书:社交陪伴场景全流程落地指南
随着大模型技术持续突破,AI正加速重塑社交娱乐的形态与体验。其中,陪伴式聊天因用户黏性强、互动频次高,成为大模型商业化落地的关键赛道。随着模型能力跃升至万亿参数级,AI从工具属性正迈向情感交互生态,现象级产品的诞生条件逐渐成熟。 本白皮书聚焦AI陪伴聊天应用开发,面向“从何起步、如何落地”的新手困惑,系统拆解从需求定义到产品上线的关键流程。我们结合工程化实践路径,打造模块化知识体系与渐进式开发框架,帮助开发者在30天内完成从技术认知到产品原型的跃升,快速构建具备基础交互能力的Web或App应用,迈出大模型
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论