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

UniAD:实现多类别异常检测的统一模型

来源:投稿 作者:Mr.Eraser
编辑:学姐

论文标题:用于多类异常检测的统一模型

论文链接:https://arxiv.org/abs/2206.03687

论文贡献:

  • 提出UniAD,它以一个统一框架完成了多个类别的异常检测。

  • 提出分层的查询解码器来帮助建立多类分布的模型。

  • 采用邻居屏蔽的注意力模块,以进一步避免从输入特征到重构输出特征的信息泄漏。

  • 提出一种特征抖动策略,即使在有噪声输入的情况下也能敦促模型恢复正确的信息

1.引言

异常检测在制造业缺陷检测、医学图像分析和视频监控中得到了越来越广泛的应用。考虑到高度多样化的异常类型,一个常见的解决方案是对正常样本的分布进行建模,然后通过寻找离群值来识别异常样本。因此,学习正常数据的紧凑边界至关重要,如图a所示。

当涉及到多类情况时,我们希望模型能同时捕捉到所有类别的分布,这样它们就能像图b那样共享同一个边界。但是如果我们专注于某一特定类别,比如说图b中的绿色类别,那么其他类别的所有样本都应该被视为异常,无论它们本身是正常的(即蓝圆圈)还是异常的(即蓝三角形)。从这个角度来看,如何准确地对多类分布进行建模变得至关重要。

综上所述,本文摆脱了传统的为每一类训练一个模型的范式(图c ),并设法用一个统一的框架(图d)完成对各种类的异常检测。

2.相关工作分析

MLP, CNN, Transformer和提出的UniAD在MVTec-AD数据集上的比较:图a表示训练损失(蓝色), 异常检测(绿色)和定位(红色)的测试AUROC。在MLP, CNN和Transformer的训练过程中,正常样本的重建误差不断变小,但在异常情况下的性能在达到峰值后却严重下降。这是由于模型学习了一个 “相同的捷径”,它倾向于直接复制输入作为输出,不管它是正常的还是异常的。图b“捷径”的视觉解释,异常样本可以被很好地恢复,因此变得很难从正常样本中检测出来。

相比之下,UniAD克服了上述问题,并设法将异常样本重建为正常样本。值得注意的是,所有的模型都是为特征重建而学习的,并且采用了一个单独的解码器来渲染来自特征的图像。这个解码器只用于可视化。

3.UniAD 方法概览

UniAD 的框架如下,由一个Neighbor Masked Encoder (NME)和一个Layer-wise Query Decoder (LQD)组成。LQD的每一层都采用了可学习的查询嵌入来帮助建立复杂的训练数据分布模型。Transformer中的全部注意力被邻居屏蔽的注意力所取代,以避免信息从输入到输出的泄漏。特征抖动策略鼓励模型在嘈杂的输入中恢复正确的信息。所有这三项改进都有助于模型避免学习 “相同的捷径“。

3.1Neighbor masked attention

我们怀疑原始Transformer中的full- attention对 “相同的捷径 ”有所贡献。在full- attention中,一个token被允许看到自己,所以它将很容易通过简单的复制来进行重建。

此外,考虑到特征tokens是由CNN骨干提取的,相邻的tokens一定有很多相似之处。

因此,提出在计算注意力图时对相邻token进行屏蔽,即Neighbor Masked Attention (NMA)。请注意,邻居区域是在二维空间定义的,如图4所示。

3.2 Neighbor masked encoder & Layer-wise query decoder

Neighbor masked encoder:

编码器遵循原始Transformer中的标准架构。每层由一个注意力模块和一个前馈网络(FFN)组成。然而,full-attention被提出的NMA取代,以防止信息泄露。

Layer-wise query decoder:

查询嵌入可以帮助防止重建异常,但原始Transformer中只有一个查询嵌入。因此,我们设计了一个分层查询解码器(LQD)来加强查询嵌入的使用,如图3所示。具体来说,在LQD的每一层,可学习的查询嵌入首先与编码器嵌入融合,然后与前一层的输出融合(第一层的自我融合)。特征融合是由NMA实现的。在原始Transformer之后,一个2层的FFN被应用于处理这些融合的tokens,并且利用残余连接来促进训练。LQD的最终输出作为重构的特征。

3.2 Layer-wise query decoder 选择策略

层级查询解码器(LQD)的各种设计选择,其中每层使用两个注意力模块。为了简单起见,省略了残差连接、层规范化和前馈网络。

对分层查询解码器(LQD)的设计选择进行消融研究。每个设计的概念可以在上图中找到。分别报告了异常检测/定位方面的表现。

3.3 Feature jittering

受去噪自动编码器(DAE)的启发,我们向特征tokens添加扰动,引导模型通过去噪任务学习正常样本的知识。具体来说,对于一个特征token,f_{tok}\in\mathbb{R}^C,我们从高斯分布中对干扰D进行采样:

其中,α是控制噪声程度的抖动尺度。同时,采样干扰以固定的抖动概率p添加到f_{tok}中。

3.4 实施细节

特征提取:

我们采用在ImageNet上预训练的固定的EfficientNet-b4作为特征提取器。从阶段1到阶段4的特征被选中。这里的阶段指的是具有相同大小的特征图块的组合。然后,这些特征被调整为相同的大小,并沿通道维度串联起来,形成一个特征图,之后,这个特征图被标记为具有C_{org}通道的H×W特征tokens。

 

特征重建:

首先对这些特征标记进行线性投影,将C_{org}减少到一个较小的通道,即C,然后这些标记被NME和LQD处理。可学习的位置嵌入被添加到注意力模块中,以告知空间信息。之后,另一个线性投影被用来恢复从C到C_{org}的通道。经过重塑,最终得到重建的特征图,

目标函数:

我们的模型是用MSE损失来训练的:

异常定位的推理:

异常定位的结果是一个异常得分图,它为每个像素分配一个异常得分。具体来说,异常得分图s,被计算为重建差异的L2准则,即:

然后用双线性插值将s向上采样到图像大小,得到定位结果。

异常检测的推理:

异常检测的目的是检测图像是否包含异常区域。

通过取平均汇集的s的最大值,将异常得分图s转化为图像的异常得分。

4.实验效果 & 结果

在MVTec-AD上使用AUROC指标的异常检测结果。所有的方法都在统一建模/单独建模的情况下进行评估。在统一建模的情况下,学习到的模型被应用于检测所有类别的异常情况,而不需要进行微调。

在MVTec-AD上使用AUROC指标的异常定位结果。所有的方法都在统一建模/单独建模的情况下进行评估。在统一建模的情况下,学习到的模型被应用于检测所有类别的异常情况,而不需要进行微调。

关注下方《学姐带你玩AI》🚀🚀🚀

回复“500”获取AI必读论文合集

码字不易,欢迎大家点赞评论收藏!

相关文章:

UniAD:实现多类别异常检测的统一模型

来源:投稿 作者:Mr.Eraser 编辑:学姐 论文标题:用于多类异常检测的统一模型 论文链接:https://arxiv.org/abs/2206.03687 论文贡献: 提出UniAD,它以一个统一框架完成了多个类别的异常检测。 …...

Java 面试 | tcp ip http https(2023版)

文章目录 HTTP&HTTPS1、Http和Https的区别?2、什么是对称加密与非对称加密3、客户端不断进行请求链接会怎样?DDos(Distributed Denial of Service)攻击?4、GET 与 POST 的区别?5、什么是 HTTP 协议无状态协议?怎么解决Http协议无状态协议?6、Session、Cookie 与 Appl…...

全志V3S嵌入式驱动开发(音频输出和音频录制)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 之前在芯片公司的时候,基本没有看过音频这一块,只知道有个alsa框架这么个知识点。要驱动音频,需要两部分&#…...

使用RP2040自制的树莓派pico—— [2/100] HelloWorld! 和 点亮LED

使用RP2040自制的树莓派pico—— [2/100] HelloWorld! 和 点亮LED 开发环境HelloWorld!闪烁 LED 灯代码 由于比较简单就放在一起写了 开发环境 软件:Thonny HelloWorld! 要想使串口打印HelloWorld! 只需要一行代码 print("HelloWorld!")保…...

康耐视In-Sight2800相机的使用

In-Sight2800相机注册分类程序 一、登录相机 二、图像导入 IS相机支持拍摄图像和从文件中导入图像 如选择从文件中导入图像,文件夹选择位置在页面左下方,如下图 三、注册分类器 在检查模块注册分类器,注册图像需要一张一张去学习&#x…...

驱动开发:内核封装WFP防火墙入门

WFP框架是微软推出来替代TDIHOOK传输层驱动接口网络通信的方案,其默认被设计为分层结构,该框架分别提供了用户态与内核态相同的AIP函数,在两种模式下均可以开发防火墙产品,以下代码我实现了一个简单的驱动过滤防火墙。 WFP 框架分…...

python+vue校园快递代取系统的设计与实现3i0v9

开发语言:Python 框架:django/flask Python版本:python3.7.7 数据库:mysql 数据库工具:Navicat 开发软件:PyCharm 本系统名为“基于vue快递代取系统”,系统主要适用于毕业设计,不…...

C 语言详细教程

目录 第一章 C语言基础知识 第二章 数据类型、运算符和表达式 第三章 结构化程序设计 第四章 数组 第五章 函数 第六章 指针 第七章 结构体类型和自定义类型 第八章 编译预处理 第九章 文件 说明:本教程中的代码除一二三个之外,都在https://ligh…...

函数重载与缺省参数

目录 一 缺省参数 缺省参数分半缺省和全缺省。 2,半缺省参数 3,全缺省参数 4.缺省参数的注意事项 二 函数重载 2 .函数重载参数类型不同强调 三 函数名修饰规则 一 缺省参数 1.缺省参数特性(备胎) 缺省参数是指我们定义函数时有给缺省值的参数&#xf…...

线程引入的开销

单线程程序既不存在线程调度,也不存在同步开销,而且不需要使用锁来保证数据结构的一致性。在多个线程的调度和协调过程中都需要一定的性能开销:对于为了提升性能而引入的线程来说,并行带来的性能提升必须超过并发导致的开销。 上下…...

学生成绩管理系统

基于springboot vue实现的学生成绩管理系统 主要模块: 1)学生模块:我的成绩、成绩统计、申述管理、修改密码 2)教师模块:任务管理、对学生班级任务安排、班级学生的成绩查看、申述管理 3)管理员模块&…...

什么是关系模型? 关系模型的基本概念

关系模型由IBM公司研究员Edgar Frank Codd于1970年发表的论文中提出,经过多年的发展,已经成为目前最常用、最重要的模型之一。 在关系模型中有一些基本的概念,具体如下。 (1)关系(Relation)。关系一词与数学领域有关,它是集合基…...

shell编程-02-变量作用域

作用域 局部变量:变量只能在函数内部使用 全局变量:变量可以在当前 Shell 进程中使用 环境变量:变量还可以在子进程中使用 局部变量 函数中定义的变量默认是全局变量,在定义时加上local命令,此时该变量就成了局部变…...

C++服务器框架开发6——日志系统LogFormatter/size_t学习

该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。 其教学视频见:[C高级教程]从零开始开发服务器框架(sylar) 上一篇:C服务器框架开发5——日志系统LogAppender/IO类“3种stream”/双感叹号 C服务器框架开发6——日志系统logFormatter/size_t学…...

MYSQL实战45讲笔记--深入浅出索引

深入浅出索引 索引的常见模型 索引模型:是哈希表、有序数组和搜索树。 区别: 哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的值即 key,就可以找到其对应的值即 Value。哈希的思…...

SpringCloudAlibaba:分布式事务之Seata学习

目录 一、分布式事务基础 (一)事务 (二)本地事务 (三)分布式事务 二、Seata概述 1.Seata 的架构包含: 2.其工作原理为: 3.如果需要在 Spring Boot 应用中使用 Seata 进行分布式事务管理,主要步骤为…...

【MySQL数据库 | 第四篇】SQL通用语法及分类

目录 🤔SQL通用语法: 😊语句: 😊注释: 🤔SQL语句分类: 😊1.DDL语句: 😊2.DML语句: 😊3.DQL语言: &…...

Liskov替换原则:用了继承,子类就设计对了吗?

前言 上一篇,我们讲了开放封闭原则,想要让系统符合开放封闭原则,最重要的就是我们要构建起相应的扩展模型,所以,我们要面向接口编程。 而大部分的面向接口编程要依赖于继承实现,继承的重要性不如封装和多…...

腾讯云服务器SA3实例AMD处理器CPU网络带宽性能详解

腾讯云AMD服务器SA3实例CPU采用2.55GHz主频的AMD EPYCTM Milan处理器,睿频3.5GHz,搭载最新一代八通道DDR4,内存计算性能稳定,默认网络优化,最高内网收发能力达1900万pps,最高内网带宽可支持100Gbps。腾讯云…...

接口测试常用测试点

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 测试的策略: 接口测试也是属于功…...

Unity之OpenXR+XR Interaction Toolkit接入HTC Vive解决手柄无法使用的问题

前言 随着Unity版本的不断进化,VR的接口逐渐统一,现在大部分的VR项目都开始使用OpenXR开发了。基于OpenXR,我们可以快速适配HTC,Pico,Oculus,等等设备。 今天我们要说的问题就是,当我们按照官方的标准流程配置完OpenXR后(参考:Unity之OpenXR+XR Interaction Toolkit…...

AC变DC220V变5V小家电电源芯片-AH8652、AH8669

Q: 什么是AH8652和AH8669电源芯片? A: AH8652和AH8669都是AC变DC的电源芯片,适用于将输入的交流电压(220V)转换为5V直流电压输出,用于小家电的电源模块等应用。 AC变DC220V变5V小家电电源芯片-AH8669 Q: AH8652和AH8669的最大输…...

深度学习笔记之循环神经网络(九)GRU的反向传播过程

深度学习笔记之循环神经网络——GRU的反向传播过程 引言回顾: GRU \text{GRU} GRU的前馈计算过程场景设计 反向传播过程 T \mathcal T T时刻的反向传播过程 T − 1 \mathcal T - 1 T−1时刻的反向传播路径 T − 2 \mathcal T - 2 T−2时刻的反向传播路径 总结 引言 …...

ISFP型人格的性格缺陷和心理问题分析

ISFP人格的特征:性格敏感、为人善良、是具有有创造力的人格类型。他们喜欢追求内心的感受和情感,注重自由、个性和独立。ISFP性人格偏于内向,善于自省,对情绪敏感度高,同理心强。 每种人格类型的都有各自的优势和不足…...

HTML <dir> 标签

HTML5 中不支持 <dir> 标签在 HTML 4 中用于列出目录标题。 实例 目录列表&#xff1a; <dir><li>HTML</li><li>XHTML</li><li>CSS</li> </dir>浏览器支持 IEFirefoxChromeSafariOpera 所有主流浏览器都支持 <…...

leetcode 621. 任务调度器

题目链接&#xff1a;leetcode 621 1.题目 给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行&#xff0c;并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间&#xff0c;CPU 可以完成一个…...

线程任务的取消

如果外部代码能在某个操作正常完成之前将其置入“完成”状态&#xff0c;那么这个操作就可以称为可取消的(Cancellable)。取消某个操作的原因很多&#xff1a; 用户请求取消。用户点击图形界面程序中的“取消”按钮&#xff0c;或者通过管理接口来发出取消请求,例如JMX (Java …...

在线聊天项目

人事管理项目-在线聊天 后端接口实现前端实现 在线聊天是一个为了方便HR进行快速沟通提高工作效率而开发的功能&#xff0c;考虑到一个公司中的HR并不多&#xff0c;并发量不大&#xff0c;因此这里直接使用最基本的WebSocket来完成该功能。 后端接口实现 要使用WebSocket&…...

动态规划-硬币排成线

动态规划-硬币排成线 1 描述2 样例2.1 样例 1:2.2 样例 2:2.3 样例 3: 3 算法解题思路及实现3.1 算法解题分析3.1.1 确定状态3.1.2 转移方程3.1.3 初始条件和边界情况3.1.4 计算顺序 3.2 算法实现3.2.1 动态规划常规实现3.2.2 动态规划滚动数组 该题是lintcode的第394题&#x…...

有效的括号——力扣20

题目描述 思路 1.判断括号的有效性可以使用「栈」这一数据结构来解决 2.遍历给定的字符串 s。当遇到一个左括号时&#xff0c;我们会期望在后续的遍历中&#xff0c;有一个相同类型的右括号将其闭合。由于后遇到的左括号要先闭合&#xff0c;因此我们可以将这个左括号放入栈顶。…...

wordpress 替换谷歌字体/电子商务网络营销

SuSELinux10上如何安装Oracle数据库呢&#xff1f;下面给大家一步步的讲解这些步骤。系统要求&#xff1a;内存&#xff1a;推荐1GSwap分区&#xff1a;设为内存的2倍/tmp磁盘空间&#xff1a;400MB以上磁盘空间&#xff1a;软件3.5G 数据1.2G所需软件&#xff1a;SuSE Linux10…...

做挂件的网站/昆明seo建站

详细字义 ◎ 让 讓 rng 〈动〉 (1) (形声。从言&#xff0c;襄( xiāng)声。本义:责备) (2) 同本义 [blame] 让&#xff0c;相责让也。——《说文》 诘责以辞谓之让。——《小尔雅》 让&#xff0c;责也。——《广雅》 且让之。——《左传昭公二十五年》 让不贡。——《国语周语…...

外国人做汉字网站/网络优化工程师

我们一般情况下使用集合&#xff0c;都是在单线程的情况下&#xff0c;但是如果是多线程呢&#xff1f;会出现什么样的结果呢&#xff1f; 下面的代码&#xff0c;在多线程的情况下输出报出异常 Exception in thread “6” java.util.ConcurrentModificationException 原因在于…...

政府网站建设的基本原则/杭州seo搜索引擎优化公司

records简单了解&#xff1a;Records 是一个非常简单但功能强大的库&#xff0c;用于对大多数关系数据库进行原始SQL查询。只需编写SQL。没有钟声&#xff0c;没有哨声。使用可用的标准工具&#xff0c;这一常见任务可能会令人惊讶地困难。该库努力使此工作流程尽可能简单&…...

如何建设学校网站/网站seo的内容是什么

统计Xcode项目 代码行数 1、打开终端。 2、cd到你项目的路径。 3、输入下面的指令&#xff1a; grep -d recurse "\n" classes | wc -l classes&#xff0c;如果你不是默认的classes路径&#xff0c;改之。效果:yifei-yumatoMacBook-Pro:QJSG V0.3.1.1 yuyifei2000$ …...

网页如何制作/seo推广外包报价表

题记&#xff1a;写这篇博客要主是加深自己对列执行的认识和总结实现算法时的一些验经和训教&#xff0c;如果有错误请指出&#xff0c;万分感谢。 Null&#xff0c;在T-SQL中是个很诡异的内容&#xff0c;它的处置方式不按常规来走&#xff0c;以至于我们在处置数据的时候&…...