【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.rhkb.cn/news/23212.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PostgreSQL】如何通过调整PostgreSQL配置参数提高数据库性能

如何通过调整PostgreSQL配置参数提高数据库性能 1. 数据库初始性能2. 内存相关参数3. WAL&#xff08;Write-Ahead Logging&#xff09;相关参数4. 并行查询相关参数5. 连接相关参数6. 根据情况调整 1. 数据库初始性能 使用pgbench在更新PostgreSQL数据库配置前先测试下数据库…

AI Agent实战:打造京东广告主的超级助手 | 京东零售技术实践

前言 自2022年末ChatGPT的问世&#xff0c;大语言模型&#xff08;LLM&#xff09;技术引发全球关注。在大模型技术落地的最佳实践中&#xff0c;智能体&#xff08;Agent&#xff09;架构显现出巨大潜力&#xff0c;成为业界的普遍共识&#xff0c;各大公司也纷纷启动Agent技…

从【人工智能】到【计算机视觉】,【深度学习】引领的未来科技创新与变革

前几天偶然发现了一个超棒的人工智能学习网站&#xff0c;内容通俗易懂&#xff0c;讲解风趣幽默&#xff0c;简直让人欲罢不能。忍不住分享给大家&#xff0c;点击这里立刻跳转&#xff0c;开启你的AI学习之旅吧&#xff01; 前言 – 人工智能教程https://www.captainbed.cn/l…

ChātGPT赋能的“SolidWorks工具箱”:重塑3D设计效率新标杆

ChātGPT精心打造的“SolidWorks工具箱”正逐步成为3D设计领域中的一颗璀璨新星&#xff0c;其集高效、便捷与创新于一身&#xff0c;为用户带来了前所未有的设计体验。以下是对这一革命性工具箱的深度剖析与美化呈现&#xff1a; 一、核心功能&#xff1a;重塑设计流程&#x…

php处理图片出现内存溢出(Allowed memory size of 134217728 bytes exhausted)

错误&#xff1a; 最近做图片上传功能时发现上传某些图片时报内存溢出错误。如下所示&#xff1a; {"code": 0,"msg": "Allowed memory size of 134217728 bytes exhausted (tried to allocate 24576 bytes)","data": {"code&q…

Spring——SpringSecurity开发经验实战

摘要 本文介绍了一个简单的 Spring Security 实战示例&#xff0c;涵盖基本的身份验证和授权流程。首先介绍了 Spring Security 是一个强大的安全框架&#xff0c;用于在 Spring 应用中实现身份验证、授权以及保护应用免受常见安全攻击。接着详细阐述了项目结构、添加 Spring …

Innovus中快速获取timing path逻辑深度的golden脚本

在实际项目中我们经常会遇到一条timing path级数特别多&#xff0c;可能是一两页都翻不完。此时&#xff0c;我们大都需要手工去数这条path上到底有哪些是设计本身的逻辑&#xff0c;哪些是PR工具插入的buffer和inverter。 数字IC后端手把手培训教程 | Clock Gating相关clock …

【Qt】桌面应用开发 ------ 绘图事件和绘图设备 文件操作

文章目录 9、绘图事件和绘图设备9.1 QPainter9.2 手动触发绘图事件9.3 绘图设备9.3.1 QPixmap9.3.2 QImage9.3.3 QImage与QPixmap的区别9.3.4 QPicture 10、文件操作10.1 文件读写10.2 二进制文件读写10.3 文本文件读写10.4 综合案例 9、绘图事件和绘图设备 什么时候画&#x…

数据结构绪论

一-数据结构的基本概念 1-数据 数据是信息的载体&#xff0c;是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。 2-数据元素 数据元素是数据的基本单位&#xff0c;通常作为一个整体进行考虑和处理。…

kafka基本知识

什么是 Kafka&#xff1f; Apache Kafka 是一个开源的分布式流处理平台&#xff0c;最初由 LinkedIn 开发&#xff0c;后来成为 Apache 软件基金会的一部分。Kafka 主要用于构建实时数据管道和流处理应用程序。它能够高效地处理大量的数据流&#xff0c;广泛应用于日志收集、数…

DeepSeek R1本地+私有云版医疗AI部署开发成功案例技术剖析

1. 引言 1.1 研究背景与意义 随着科技的飞速发展,人工智能(AI)在医疗领域的应用正逐渐成为推动医疗行业变革的重要力量。近年来,医疗 AI 取得了显著的进展,从疾病诊断、药物研发到医疗管理等各个环节,AI 技术都展现出了巨大的潜力。它能够处理和分析海量的医疗数据,为…

网络安全-openssl工具

OpenSSl是一个开源项目&#xff0c;包括密码库和SSL/TLS工具集。它已是在安全领域的事实标准&#xff0c;并且拥有比较长的历史&#xff0c;现在几乎所有的服务器软件和很多客户端都在使用openssl&#xff0c;其中基于命令行的工具是进行加密、证书管理以及测试最常用到的软件。…

“三次握手”与“四次挥手”:TCP传输控制协议连接过程

目录 什么是TCP协议 “三次握手”建立连接 “四次挥手”断开连接 “三次握手”和“四次挥手”的反思 总结 什么是TCP协议 想象一下&#xff0c;你和远方的朋友要进行一场电话交流&#xff0c;但这通电话不仅仅是随便聊聊&#xff0c;而是要传递一封重要的信件。为了确保这…

Visual Studio中打开多个项目

1) 找到解决方案窗口 2) 右键添加→ 选择现有项目 3) 选择.vcxproj文件打开即可

基于 Python Django 的校园互助平台(附源码,文档)

博主介绍&#xff1a;✌Java徐师兄、7年大厂程序员经历。全网粉丝13w、csdn博客专家、掘金/华为云等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不…

el-dropdown选中效果

vue2版本 <template><el-dropdown size"mini" command"handleCommand"><span class"el-dropdown-link">{{ selectedOption }}<i class"el-icon-arrow-down el-icon--right"></i></span><el-d…

Deepseek首页实现 HTML

人工智能与未来&#xff1a;机遇与挑战 引言 在过去的几十年里&#xff0c;人工智能&#xff08;AI&#xff09;技术取得了突飞猛进的发展。从语音助手到自动驾驶汽车&#xff0c;AI 正在深刻地改变我们的生活方式、工作方式以及社会结构。然而&#xff0c;随着 AI 技术的普及…

Linux(ubuntu) GPU CUDA 构建Docker镜像

一、创建Dockerfile FROM ubuntu:20.04#非交互式&#xff0c;以快速运行自动化任务或脚本&#xff0c;无需图形界面 ENV DEBIAN_FRONTENDnoninteractive# 安装基础工具 RUN apt-get update && apt-get install -y \curl \wget \git \build-essential \software-proper…

Rocky8 源码安装 HAProxy

HAProxy 是一款开源的高性能 负载均衡器 和 反向代理 软件&#xff0c;专注于处理高并发流量分发&#xff0c;广泛应用于企业级架构中提升服务的可用性、扩展性和安全性。 一、HAProxy 简介 1.1.HAProxy 是什么&#xff1f; 本质&#xff1a; 基于 C 语言开发 的轻量级工具&a…

JAVA最新版本详细安装教程(附安装包)

目录 文章自述 一、JAVA下载 二、JAVA安装 1.首先在D盘创建【java/jdk-23】文件夹 2.把下载的压缩包移动到【jdk-23】文件夹内&#xff0c;右键点击【解压到当前文件夹】 3.如图解压会有【jdk-23.0.1】文件 4.右键桌面此电脑&#xff0c;点击【属性】 5.下滑滚动条&…