【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为可视化结果。
    +正常特征(红蓝)和异常特征(橙绿)分的很开
    +正常特征和正常视觉特征重复率高
    +正常提示特征分布的较开,和正常视觉特征的整体分布贴合 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/975818.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WPF框架学习

WPF 可以想winfrom 那样在cs文件修改 属性数据&#xff1b; 为了前后端分离 而解耦合&#xff0c;有了M-V-VM模式 常见框架有 MVVMlight / Prism 等 ------------------------------------------------------------------------------------- 一、前提&#xff1a;有一定基…

网络运维学习笔记 017 HCIA-Datacom综合实验01

文章目录 综合实验1实验需求总部特性 分支8分支9 配置一、 基本配置&#xff08;IP二层VLAN链路聚合&#xff09;ACC_SWSW-S1SW-S2SW-Ser1SW-CoreSW8SW9DHCPISPGW 二、 单臂路由GW 三、 vlanifSW8SW9 四、 OSPFSW8SW9GW 五、 DHCPDHCPGW 六、 NAT缺省路由GW 七、 HTTPGW 综合实…

git,bash - 从一个远端git库只下载一个文件的方法

文章目录 git,bash - 从一个远端git库只下载一个文件的方法概述笔记写一个bash脚本来自动下载get_github_raw_file_from_url.shreanme_file.shfind_key_value.sh执行命令 END git,bash - 从一个远端git库只下载一个文件的方法 概述 github上有很多大佬上传了电子书库&#xf…

【废物研究生零基础刷算法】DFS与递归(一)典型题型

文章目录 跳台阶递归实现指数级枚举递归实现排列型枚举上面两题总结 递归实现组合型枚举P1036选数 跳台阶 思路&#xff1a; 如果 n 1&#xff0c;只有一种走法&#xff08;走 1 级&#xff09;。如果 n 2&#xff0c;有两种走法&#xff08;11 或 2&#xff09;。对于 n &g…

Java-01-源码篇-04集合-05-ConcurrentHashMap(1)

1.1 加载因子 加载因子&#xff08;Load Factor&#xff09;是用来决定什么时候需要扩容的一个参数。具体来说&#xff0c;加载因子 当前元素数量 / 桶的数量&#xff0c;当某个桶的元素个数超过了 桶的数量 加载因子 时&#xff0c;就会触发扩容。 我们都知道 ConcurrentHas…

AI赋能的未来城市:如何用智能化提升生活质量?

这会是我们憧憬的未来城市吗&#xff1f; 随着技术的不断进步和城市化进程的加速&#xff0c;现代城市面临着诸多挑战——交通拥堵、环境污染、能源消耗、人口老龄化等问题愈发突出。为了应对这些挑战&#xff0c;建设智慧城市已成为全球发展的重要趋势。在这一进程中&#xf…

DeepSeek各模型现有版本对比分析

文章目录 一、基础模型系列&#xff1a;V1 到 V3 的演进二、专用模型系列&#xff1a;推理与多模态三、版本选型与商业化趋势 DeepSeek作为最近特别火爆的模型&#xff0c;本文将对DeepSeek现有的主要版本进行对比分析,涵盖参数规模、训练数据、功能改进、应用场景和性能表现等…

【亲测有效】百度Ueditor富文本编辑器添加插入视频、视频不显示、和插入视频后二次编辑视频标签不显示,显示成img标签,二次保存视频被替换问题,解决方案

【亲测有效】项目使用百度Ueditor富文本编辑器上传视频相关操作问题 1.百度Ueditor富文本编辑器添加插入视频、视频不显示 2.百度Ueditor富文本编辑器插入视频后二次编辑视频标签不显示&#xff0c;在编辑器内显示成img标签&#xff0c;二次保存视频被替换问题 问题1&#xff1…

hot100_108. 将有序数组转换为二叉搜索树

hot100_108. 将有序数组转换为二叉搜索树 思路 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 平衡 二叉搜索树。 示例 1&#xff1a; 输入&#xff1a;nums [-10,-3,0,5,9] 输出&#xff1a;[0,-3,9,-10,null,5] 解释&#…

RFID涉密载体柜:智能安全,全程守护,提供智能化的安全管控

行业背景 RFID智能载体柜&#xff08;DW-G101&#xff09;是一种便捷化的载体管控系统&#xff0c;它采用RFID技术实现信息化&#xff0c;可以大大提高载体管理的效率和准确性。 随着信息化的快速发展&#xff0c;涉密载体&#xff08;如文件、U盘、光盘等&#xff09;的管理…

【复习】计算机网络

网络模型 OSI 应用层&#xff1a;给应用程序提供统一的接口表示层&#xff1a;把数据转换成兼容另一个系统能识别的格式会话层&#xff1a;负责建立、管理、终止表示层实体之间的通信会话传输层&#xff1a;负责端到端的数据传输网络层&#xff1a;负责数据的路由、转发、分片…

多线程篇学习面试

多线程 1.乐观锁、CAS思想 java乐观锁机制&#xff1a; ​ 乐观锁体现的是悲观锁的反面。它是一种积极的思想&#xff0c;它总是认为数据是不会被修改的&#xff0c;所以是不会对数据上锁的。但是乐观锁在更新的时候会去判断数据是否被更新过。乐观锁的实现方案一般有两种&a…

Spring Boot 概要(官网文档解读)

Spring Boot 概述 Spring Boot 是一个高效构建 Spring 生产级应用的脚手架工具&#xff0c;它简化了基于 Spring 框架的开发过程。 Spring Boot 也是一个“构件组装门户”&#xff0c;何为构件组装门户呢&#xff1f;所谓的“构件组装门户”指的是一个对外提供的Web平台&#x…

计算机毕业设计SpringBoot+Vue.jst0甘肃非物质文化网站(源码+LW文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

匹配算法:向下就近原则,向下没有就向上

匹配算法&#xff1a;向下就近原则&#xff0c;向下没有就向上 实现方式一实现方式二总结 实现方式一 private static List<Integer> findMatches(List<Integer> sourceList, List<Integer> searchValues) {List<Integer> sortedList sourceList.stre…

ESP32S3:解决RWDT无法触发中断问题,二次开发者怎么才能使用内部RTC看门狗中断RWDT呢?

目录 基于ESP32S3:解决RWDT无法触发中断问题引言解决方案1. 查看报错日志2. 分析报错及一步一步找到解决方法3.小结我的源码基于ESP32S3:解决RWDT无法触发中断问题 引言 在嵌入式系统中,RWDT(看门狗定时器)是确保系统稳定性的重要组件。然而,在某些情况下,RWDT可能无法…

【GPU驱动】OpenGLES图形管线渲染机制

OpenGLES图形管线渲染机制 OpenGL/ES 的渲染管线也是一个典型的图形流水线&#xff08;Graphics Pipeline&#xff09;&#xff0c;包括多个阶段&#xff0c;每个阶段都负责对图形数据进行处理。管线的核心目标是将图形数据转换为最终的图像&#xff0c;这些图像可以显示在屏幕…

PHP post 数据丢失问题

max_input_vars是PHP配置选项之一&#xff0c;用于设置一个请求中允许的最大输入变量数。它指定了在处理POST请求或者通过URL传递的参数时&#xff0c;PHP脚本能够接收和处理的最大变量数量。 max_input_vars的默认值是1000&#xff0c;意味着一个请求中最多可以包含1000个输入…

Mac下Python版本管理,适用于pyenv不起作用的情况

前言 声明&#xff1a;之前也在网上看到过可以使用pyenv来管理python版本&#xff0c;但由于作者的python安装路径实在是繁杂不堪&#xff0c;因此安装完成pyenv体验下来没有任何用处&#xff0c;但偶然发现vscode似乎可以看到各个python版本&#xff0c;因此写下这篇博客记录…

什么是完全前向保密(PFS)?

在当今数字化时代&#xff0c;信息安全至关重要。而密码学中的完全前向保密&#xff08;Perfect Forward Secrecy&#xff0c;简称PFS&#xff09;技术&#xff0c;已经成为保障信息安全的关键一环。如果没有完全前向保密&#xff0c;一旦长期密钥被泄露&#xff0c;攻击者就可…