当前位置: 首页 > article >正文

【CVPR2024-工业异常检测】PromptAD:与只有正常样本的少样本异常检测的学习提示

代码链接

摘要

摘要写作总结:
1.提出 两个关键点 (视觉语言模型【模型】+ 少量工业异常检测【方向】)
2.想要解决的问题
3.针对上述问题,本文提出了一种什么【方法】的什么【应用方面】方法【模型名】
4.具体讲方法的步骤
5.实验结果(挑好的讲)

1.视觉语言模型 有助于解决 少量工业异常检测中需要设计大量提示信息的问题。
2.传统提示学习方法不适用于异常检测这种单类情况(正常/不正常),适用于多类别问题(比如区分狗,猫,鸟等问题)
3.提出PromptAD(方法:单类提示学习即正常/不正常,应用方面:小样本异常检测)
4.PomptAD步骤:

  • 语义拼接: 把正常提示(比如“这是一个正常的物体”)和异常提示的后缀(比如“有缺陷的”)拼接到一起,生成大量的异常提示(类似“这是有缺陷的物体”),用到异常检测(单类环境)下的提示学习
  • 显式异常边界: 为了解决异常样本少的问题,提出“显式异常边界”。设置超参数来控制正常图片的特征 和 异常提示(文字描述异常的特征)的特征之间的距离,让模型更容易区分正常特征和异常特征
    【设超参数为0.5,正常特征点为(0,0),则正常特征点跟异常提示特征点的距离要超过0.5,异常提示特征点可以是(0,0.5)】

5.实验结果:
在 MVTec和VisA的少样本异常检测的12种情况中,promptAD在其中11种情况中排名第一,即少样本异常检测效果很好。

【对每个数据集(MVTec和VisA)有三种测试情况:
 1.1-shot(1张正常图片训练)
 2. 2-shot(2张正常图片训练)
 3. 4-shot(4张正常图片训练)
 每种训练方式都会测试 图像级别(整张图片是否异常)和像素级别(图片中的哪些部分是异常的)的异常测试性能
 每个数据集有  33种测试情况)✖ 22种测试级别)=6种测试情况】
 有两个数据集-》有622个数据集)=12种测试情况】

实验

实验开头写作总结:
1.对比实验:明确跟哪些方法比,在什么设置下,有几种结果(图像级和像素级)
2.融合实验:我们通过烧烛实验验证了所提出的什么【模块】对什么的改善,并展示了不同【模型方法】的影响
3.Dataset.(数据集设置)明确使用哪几个数据集+ 介绍数据集中的情况+ 说明训练集和测试集的情况
4.评价指标 和 实现细节: 评价指标:简单介绍用的评价指标。  实现细节:介绍用的参数默认值,用了哪个模型和它的什么参数

1.明确PromptAD

  • 跟最新方法比,在1,2和4张正常图片设置下,包括图像级和像素级的结。
  • 跟多正常图片和全正常图片方法比,体现PromptAD强大的少样本检测能力

2.烧蚀实验:

  • SC和EAM对提示学习的改善
  • 不同CLIP转换方法 和 超参数 的影响

3.Dataset.:

  • MVTec和VisA 作为基准。两个基准测试都有多个只有一个对象的子集
介绍数据集常用话术:
MVTec包含15个对象,每张图像7002 - 9002像素,
VisA包含12个对象,每张图像大约1.5K × 1K像素。
MVTec contains 15 objects with 70029002 pixels per image, and VisA contains 12 objects with roughly 1.5K × 1K pixels per image.
  • 异常检测是单类任务(正常/不正常),训练集只包含正常样本,测试集有正常样本和有图像级和像素级注释的异常样本。注释每个对象的异常类别。
  1. Evaluation metrics.
    AUROC:We follow the literature [4] in reporting the Area Under the Receiver Operation Characteristic (AUROC) for both image-level and pixel-level anomaly detection.Implementation details
    Implementation details. 使用超参数τ的默认值+CLIP开源模型和预训练参数+基于LAION-400M数据集预训练的CLIP模型+优化后的ViT-B/16+(视觉编码器)
实验写作总结:
1.Image-level Comparison Results(图像级对比结果):
+ 【模型名】与当前方法的图像级对比实验结果如表几所示,其中【修改设置的方法名】修改了哪些设置
+ 说明除本方法外,值较好的两种方法。
+ 本方法比值较好的两种方法 在值上的提升,只提好的.如果本方法使用的提示少或者样本少,补充在后面。

5.1. Image-level Comparison Results(图像级对比结果)

在这里插入图片描述
表1。基于MVTec和VisA基准的AUROC图像级异常检测比较。最好和次好的结果分别用粗体和下划线标出。†表示基于clip的方法。

AUROC:表示ROC曲线下的面积【ROC表示在不同阈值下的性能,横轴:False Positive Rate (FPR):假正率,表示被错误分类为正类的负类样本的比例。
纵轴:True Positive Rate (TPR):真正率,也叫召回率,表示被正确分类为正类的正类样本的比例。】
假设你有一个模型用来检测图片是否异常,你得到了以下结果:
在某个阈值下,真正率(TPR)是 0.8,假正率(FPR)是 0.2。
在另一个阈值下,真正率(TPR)是 0.9,假正率(FPR)是 0.3。
如果你把所有这些点画在图上,就得到了 ROC 曲线。这条曲线下的面积就是 AUROC。如果 AUROC 接近 1,说明你的模型在各种阈值下都能很好地分类
  • PromptAD与当前方法的图像级对比实验结果如表1所示,其中SPADE[11]、PaDiM[12]和PatchCore[39]是传统全样本方法在少样本设置下的重新配方。

  • CLIP模型对于少样本设置有益:WinCLIP和RWDA(引入了CLIP)在少样本设置下的AUROC值不错(>93),其余方法(除PromptAD外)AUROC值都不好(<90)

  • PromptAD在MvTec和Visa两个数据集的(1,2,4少样本)3种设置下的AUROC的值跟WinCLIP和RWDA的AUROC(引入了CLIP)的最大值都有一定的提升:MvTec中提升了1.3%, 1.3%, 1.4%(1,2,4),Visa中提升了2.9%, 2.7%, 1.8%(1,2,4)。【另外说明:PromptAD使用的提示数量比WinCLIP+和RWDA少】

2.Pixel-level Comparison Results(像素级对比结果):
像素级比较实验结果如表几所示。
+ 写数据比较好的(排第一或第二),排第一跟第二比看增加多少,排第二跟第一比看少了多少
异常定位定量结果如图几所示。
+ 看异常定位对不对,精准不精准

5.2. Pixel-level Comparison Results(像素级对比结果)

在这里插入图片描述

像素级比较实验结果如表4所示。

The pixel-level comparative experimental results are recorded in Table 4.
  • 引入CLIP模型带来的影响不大:基于CLIP的方法(如WinCLIP+)和其他方法在像素级AUROC差别不大。
  • PromptAD在MvTec和Visa的1-shot,2-shot的像素级AUROC是最高,且比WinCLIP高0.7(MvTec 1-shot),0.2(MvTec 2-shot),0.3(Visa 1-shot),0.3(Visa 2-shot)
  • 在4-shot,PromptAD在Visa上排第一,在Mvtec上排第二,比第一少了0.5。
    在这里插入图片描述
  • 一样本异常定位定量结果如图3所示。
The quantitative results of anomaly localization are shown in Figure 3.
  • 在一样本设置下,PromptAD和 PatchCore,WinCLIP相比,对物体和纹理的异常定位更好。能够精确定位一些小的异常区域。
//3.跟其他什么类型方法相比(可有)

5.3. Compared With Many-shot Methods(跟全样本方法对比)

在这里插入图片描述

  • 表格2的内容:少样本设置下的PromptAD和全样本/多样本设置的其他方法相比较,红色数值是低于1样本的,蓝色数值是低于4样本的
  • 说明结果:PromptAD的少样本检测性能比较好(超过一些全样本的方法的结果)
    明确优于哪些方法,差于哪些方法:PromptAD>MKD和P-SVDD,但<最新的PatchCore和SimpleNet
4.Ablation Study(消融实验)
+ 明确 在哪几个数据集上实验,针对哪些的影响,在什么设置 对模型整体性能的影响
+ 分模块写,各个模块对于模型的影响:先说失去这个模块会有什么影响,再写实验结果中没有这个模块的影响和增加这个模型的影响。

5.4. Ablation Study(消融实验)

  • 在MVTec和VisA,针对不同方法的不同模块【语义连接(SC)+显式异常边界(EMA)+视觉引导异常检测(VAD)】,在1样本设置下对PromptAD整体性能的影响。消融研究结果记录在表3中。
We verify the impact of different modules of different proposed methods on the overall performance of PromptAD under 1-shot setting on MVTec and VisA .
Results of the ablation study are recorded in Table 3.

在这里插入图片描述
表3.单针消融研究的图像水平/像素水平结果(AUROC)。PAD和VAD分别是提示引导和视觉引导的异常检测,SC是语义拼接,EAM是显式异常边缘。

  • 语义连接(SC):SC的作用{没有SC,传统语义连接会失去用于对比的负面提示。因为负面提示对于对比学习很重要,失去负面提示,提示学习效果会很大降低。}
    +实验结果体现没有SC的影响{在表3中,可以看到没有SC时,在MVTec和Visa上的图像和像素AUROC结果不是很好}[个人觉得表3没有体现没有SC的影响,没有SC表格应该是✖,✔,✔和✔,✔,✔两个数据的对比,表3中只有✖,✖,✖和✖,✖,✔]
    +实验结果体现有SC的影响{基础模型(✖,✖,✖)和使用SC(✔,✖,✖)在MVTec(和VisA)的图像级/像素级结果分别提高了8.9%/3.9%(8.7%/5.0%)-》提升提示学习在异常检测中的适用性}

  • 显式异常边界(EAM):EAM的作用{因为训练阶段没有异常样本-》正常提示和异常提示之间没有明确的边界。EAM用超参数控制正常和异常提示特征间的距离。}
    +实验体现有EAM的影响{只使用SC(✔,✖,✖)和加上EAM(✔,✔,✖)对比,MVTec(和VisA)的图像级/像素级结果分别提高了0.9%/0.8%(1.9%/1.3%

  • 视觉引导异常检测(VAD):VAD的作用{PAD(SC+EAM)会忽略局部细节,不利于像素级的检测-》引入侧重于局部细节的VAD}+
    +PAD的作用和VAD的作用:PAD提升图像级,VAD提升像素级{在MVTec(和VisA)上,只有PAD的模型(✔,✔,✖)跟基础模型(✖,✖,✖)相比,图像级的提升(9.8/10.6)比像素级的提升(4.7/6.3)更高;只有VAD的模型(✖,✖,✔)跟基础模型(✖,✖,✖)相比,在MVTec上像素级的提升(5.4)比图像级的提升(3.6)更大,在Visa上图像级和像素级提升差不多
    +PAD和VAD都有的最终效果{MVTec(和VisA)的图像级/像素级结果达到94.6%/95.9%(86.9%/96.7%)}

5.不同CLIP变换的结果
+ CLIP模型的研究进展
+ 介绍表格 是在哪几个数据集上做的,在什么设置下做的,对比哪些方法,展示的是什么测量值(图像级/像素级)
+ 简单介绍 不同模型对于CLIP的改进
+ 详细对比表格中的结果
(1.原始模型结果 2.转化模型结果 3.使用论文方法后的结果【体现论文方法的有效性】写哪些模型使用论文方法后性能提升了,如果有降低的也可以写一个小点作为缺陷)

5.5. 不同CLIP变换的结果

  • CLIP无法直接完成提示引导的定位任务-》一些论文尝试CLIP转换
    在这里插入图片描述
    表5所示。在0-shot/1-shot设置下,MVTec和VisA使用不同CLIP转换的像素级结果(AUROC)。
  • 介绍表格内容{在0-shot(使用1000个提示)/1-shot(用PromptAD提示方法)设置下,MVTec和VisA使用不同CLIP转换的像素级结果(AUROC)}
  • 不同CLIP模型对于CLIP的改进{MaskCLIP在CLIP上的改进:降低QKV的注意力+在视觉编码器的每一层之后嵌入局部特征 ; CLIP+Linear在CLIP上的改进:对齐局部特征与提示特征(在每个块之后为视觉编码器添加一个可学习的线性层)
  • 详细对比表格中的结果{
    +CLIP中相反的视觉激活->原始CLIP检测结果不好(0-shot设置下对MVTec/Visa的像素级测试值:22.5%/24.6%,低于随机预测(50.0%))
    +转化注意力后效果好:MaskCLIP和VV-CLIP分别在MVTec/Visa上提升了63.0%/55.9%(Visa)和64.2%/58.3%(Visa),且VV-CLIP的性能提升更多(可能因为保留了一部分信息交互)}
    +PromptD的有效性{加了PromptAD方法后的MaskCLIP和VV-CLIP分别在MVTec/Visa上提升了6.1%/10.7%,5.8%/8.9%,加了PromptAD方法后CLIP模型在MVTec/Visa上提升了57.4%/55.8%}
    +Prompt的一点缺陷{PromptAD加入CLIP+Linear后效果下降(可能因为PormptAD和Linear线性层相互干扰)
6.超参数分析(如果有需要调整的超参数,这个部分是有必要)
+ 写研究哪几个超参数的影响
+ 分别解释这些超参数  分别是什么的超参数,有什么作用
+ 不同的超参数对模型方法的影响

5.6. Hyper-parameter Analysis(超参数分析)

  • 研究 N,L,λ对PromptAD的影响。
We complete the effect of N , L and λ on PromptAD.
  • 分别解释 N,L,λ分别是什么的超参数,有什么作用
    +λ是损失Lalgin的超参数,用于控制map和LAPs特征分布的对齐程度
    +N是NPs的个数
    +L为异常提示后缀的个数,N ×L为lap的个数

在这里插入图片描述
VisA在单样本设置下使用不同的N和L的图像级/像素级结果。

  • 不同的N和L对PromptAD的影响:图4演示了N和L对PromptAD的影响。
    +图像级上,N的影响不大,L影响较大{N=1,N=4的图像级结果没什么差异,L越大图像级的值越高}
    +像素级上,N和L影响都较小,较大的L像素级的值有一点提升
    在这里插入图片描述
    在MVTec[4]在1样本设置使用不同的超参数λ的图像级/像素级结果
  • 不同的λ对PromptAD的影响:图5记录了不同λ下的图像级/像素级结果。
    +当λ越接近0,结果越差-》map和LAPs的分布需要对齐,但不能过度对齐,会降低异常提示的多样性,会降低模型对异常图像特征的感知
7.可视化结果
+ 为了量化【模型】的效果,我们将【可视化的部分】可视化。详细讲可视化哪些内容
+ 展示可视化的结果,表现模型方法的有效性
+ 不同的超参数对模型方法的影响

5.7. Visualization Results(可视化结果)

  • 为了量化PromptAD的效果,我们将L2归一化后的视觉和文本特征可视化。{具体,可视化3 NPs, 3×13 MAPs, 和 3×10 LAPs + 100个图像级/像素级正常视觉特征}
To quantify the effect of PromptAD, we visualize the visual and textual features after L2 normalization.

在这里插入图片描述
使用T-SNE在单样本设置下的特征可视化结果。
NP text feature 正常特征
MAP text feature表示手动异常提示(手动把异常后缀放到正常特征后)
LAP text feature表示可学习异常特征(模型在学习过程中自动生成的异常提示特征)
Normal visual feature 正常视觉特征

  • 展示可视化的结果,表现PromptAD的有效性{图6为可视化结果。
    +正常特征(红蓝)和异常特征(橙绿)分的很开
    +正常特征和正常视觉特征重复率高
    +正常提示特征分布的较开,和正常视觉特征的整体分布贴合 }

http://www.kler.cn/a/558687.html

相关文章:

  • Cannot deserialize instance of java.lang.String out of START_ARRAY token
  • 【设计模式】【创建型模式】工厂方法模式(Factory Methods)
  • Content-Type类型总结(安全)
  • List 接口中的 sort 和 forEach 方法
  • 医疗AI领域中GPU集群训练的关键技术与实践经验探究(上)
  • 《2024工业控制系统网络安全态势白皮书》
  • 第17篇:网络请求与Axios集成
  • Linux——安装Git的方法
  • 【EB-03】 AUTOSAR builder与EB RTE集成
  • WPS接入私有化DeepSeek大语言模型
  • 《西湖绸》(仿郭敬明「蜀绣」)
  • 一题学会Java入门语法(需C\C++基础)
  • Redisson分布式锁java语法, 可重入性实现原理 ,(还有可重试性,超时不释放,主从一致性)
  • Orcale、MySQL中左连接,右连接,内连接的区别以及运用场景系列02(基础语法)
  • 一文理解Encoder,Decoder,Head之间的关系
  • eclipse 运行工程报错in thread “main“ java.lang.OutOfMemoryError: Java heap space
  • 体育数据网站推荐系统开发:赛事数据、前瞻分析与智能推荐
  • [Java] Redis实现秒杀
  • Grok 3 实际体验效果超越 GPT-4?深度解析与用户反馈
  • stm32mp采用spi接口扩展can