基于ViT的无监督工业异常检测模型汇总

news2024/11/8 7:14:41

基于ViT的无监督工业异常检测模型汇总

    • 论文1:RealNet: A Feature Selection Network with Realistic Synthetic Anomaly for Anomaly Detection(2024)
      • 1.1 主要思想
      • 1.2 系统框架
    • 论文2:Inpainting Transformer for Anomaly Detection(2021)
      • 2.1 主要思想
      • 2.2 模型架构
    • 论文3:UTRAD: Anomaly Detection and Localization with U-Transformer(2022)
      • 3.1 主要思想
      • 3.2 模型架构
      • 3.3 缺陷
    • 论文4:ADTR: Anomaly Detection Transformer with Feature Reconstruction(2022)
      • 4.1 主要内容
      • 4.2 模型结构
    • 论文5:A Unified Model for Multi-class Anomaly Detection(2022)—— 多分类无监督异常检测统一模型
      • 5.1 主要内容
      • 5.2 模型架构
    • 论文6:Exploring Plain ViT Features for Multi-class Unsupervised Visual Anomaly Detection(2024)- 多分类无监督异常检测统一模型
      • 6.1 主要内容
      • 6.2 模型架构
    • 7. 总结
      • 7.1 ViT的可用优势
      • 7.2 ViT的劣势

论文1:RealNet: A Feature Selection Network with Realistic Synthetic Anomaly for Anomaly Detection(2024)

1.1 主要思想

所提出的模型结合了传统的基于重建的方法和基于补丁的方法的优势。输入图像被细分为块,并使用 Vision Transformer 进行编码。然后将生成的特征馈送到解码器中以重建原始图像,从而使网络学习代表正常图像方面的特征(网络训练的唯一数据)。同时,高斯混合密度网络对 transformer 编码特征的分布进行建模,以估计该潜在空间中正常数据的分布。使用此模型检测异常会自动允许其定位,因为 transformer 编码的特征与位置信息相关联。

1.2 系统框架

在这里插入图片描述
使用基于重建的方法在全局级别检测到异常,通过应用于编码图像块的高斯混合模型进行定位。

论文2:Inpainting Transformer for Anomaly Detection(2021)

2.1 主要思想

区别与CNN,该论文作者采取基于自注意力机制的纯Transformer结构,将异常检测问题转换为图像覆盖修补问题。其解决方案实质上是基于图像重构的,其创新点在于采取自注意力机制进行全局的图像重建,重建后的图像与原图进行对比,差异部分就是异常部分。关于如何重建,还是由仅通过正常样本的训练得到的重建网络做到的。

2.2 模型架构

在这里插入图片描述

  • 每个Transformer块的输入输出都是一个序列(左侧)
  • inmatic 网络架构由一些简单的 Transformer 块堆栈组成。每个Transformer 由 MFSA 和多层感知器 (MLP) 组成。(右侧)
  • 对最后一个Transformer块的输出序列进行了平均,得到了一个向量,该向量用于通过映射得到扁平化的补丁像素空间。

对这些Transformer块进行训练,可以根据相邻的补丁对覆盖的图像块进行很好的修复。

推理和检测部分的实施过程是先生成完整的修复图像,然后使用重建后的图像和原始之间的差异来计算像素级异常图。

论文3:UTRAD: Anomaly Detection and Localization with U-Transformer(2022)

3.1 主要思想

该篇论文的解决方案实质上还是基于图像重构的方式,针对重建方式的不稳定和调整困难,以及采用大数据集预训练网络特征空间泛化能力差的问题,研究者采用了一些新颖的思想去改进:

  • 为避免预训练模型特征表示的不稳定性,在训练时采用冻结骨干网进行训练;
  • 为更好的估计深度特征,采用特征级别进行重建(重要结论:正常样本和异常样本在特征空间中更容易区分);
  • 构建了一个基于Transformer的多级自动编码器作为重建网络,利用提取到的正常样本的特征进行了训练;
    • 加入了Transformer注意力模块,全局信息可以得到很好聚合,模型更具泛化能力;
    • 考虑网络性能,降低计算成本,在构建时采用U型的Transformer(网络内部具有跳跃连接);
    • 采用金字塔层次结构,提取不同尺度的异常特征。

3.2 模型架构

在这里插入图片描述
输入图像先使用预训练的CNN主干为输入样本提取多尺度特征,然后使用U-Transformer(多尺度重建模型)进行图像的重建,之后重建之前和重建后会出现重建误差(图中的Reconstruction error),重建误差会作为异常分数输出以及像素级异常区域的检出。

3.3 缺陷

虽然已经采用了改进后的Transformer,但与基于嵌入式的方式相比依然存在模型尺寸大、推理时间长、难部署的问题。模型设计的太过复杂!

论文4:ADTR: Anomaly Detection Transformer with Feature Reconstruction(2022)

4.1 主要内容

三点动机:

  1. 根据较少的语义信息去重建原始像素值,正常区域与异常区域往往像素值相似但是具有不同的语义,因此像素重建的方法往往会引发歧义。正常样本和异常样本在特征空间内往往具有可区分的特征,所以不以重建原始像素值为目标而以重建原始特征为目标。提取特征采用CNN预训练网络去实现。
  2. 以往CNN的重建模型倾向于通过shortcuts去学习一定程度的“相同映射”,这会导致异常区域被很好的重建为异常区域,无法获取有效的重建误差。Transformer中的query embedding可以限制“相同映射”的趋势(有助于区分正常样本和异常样本),所以重建网络采用Transformer进行构建。
  3. 对可以提供少量异常样本的情况进行兼容,使得设计的模型既可以在没有异常图片的情况下训练,也可以在有异常图像的情况下训练。(考虑到了异常可用情况,设计了相应的损失函数)

4.2 模型结构

在这里插入图片描述
方法概述(a)Embedding:应用预先训练的 CNN 主干来提取多尺度特征。(b) Reconstruction:使用Transformer通过辅助可学习查询嵌入来重建特征标记。(c) Comparison:该方法与仅正常样本的情况和异常可用的情况兼容。异常评分图是通过提取和重建特征之间的差异获得的。
模型架构与前篇论文中的模型架构有相似之处,都是采用CNN进行特征的提取,采用Transformer进行重建网络的搭建,但很明显,该篇论文提出的Transformer架构更加简洁。


Transformer 重建网络:

  • 特征图 𝒇∈ℝC×H×W 首先被拆分为 H×W 特征标记。为了减少计算消耗,1×1 应用卷积来减小这些标记的维度,然后再将其馈送到 transformer 中。此外,当 transformer 输出时,它们的维度由另一个 1×1卷积恢复。
  • transformer 编码器将 输入的feature tokens 嵌入到潜在特征空间中。每个编码器层都遵循标准架构 ,具有多头注意、前馈网络 (FFN)、残差连接和归一化。
  • transformer 解码器遵循标准架构,并带有辅助查询嵌入。辅助查询是一个可学习的嵌入与输入的feature tokens具有相同尺寸,Transformer解码器将这些可学习的查询嵌入进行转换使用多头自注意力机制来重建feature token。位置嵌入被加入到 Transformer 模型中,是因为其 自注意力机制本身对输入顺序不敏感(即 permutation-invariant)。Learned position embedding 能让模型从数据中学习位置信息,从而有效地捕获输入序列的顺序依赖关系。

异常得分计算:
从重建网络中可以了解到,解码器的目标是根据可学习的辅助查询重建出解码器的feature token,然后与解码器的feature token进行对比从而根据重建误差得到异常区域。

论文5:A Unified Model for Multi-class Anomaly Detection(2022)—— 多分类无监督异常检测统一模型

5.1 主要内容

当前所有的异常检测方法都只能用一个模型解决一个类别,这种“一个模型只处理一个类别”的separate setting是十分耗费储存空间的,并且无法处理正常样本具有一定多样性的场景 (比如,一种物体有多种正常的型号)。所以该篇论文致力于解决一个更困难的统一设定,那就是用一个模型解决所有类别的异常检测。

该篇论文还是基于重构的思想,深入研究了”恒等映射“的问题(虽然重构模型是在正常样本上训练的,其遇到异常样本同样会重构成功。这使得正常样本和异常样本的重构误差都很小,难以被区分开来)。研究者希望能够从网络结构设计上避免”恒等映射“问题。

通过实验,发现结构上Transformer结构的”恒等映射“问题与MLP和CNN相比是较轻的。研究者们认为具有query embedding的attention可以抑制“恒等映射” 。所以基于Transformer进行了整体模型框架的构建,并做了三点相关改进。

5.2 模型架构

图3:UniAD的框架,由邻居掩码编码器(NME)和分层查询解码器(LQD)组成。LQD中的每一层都采用可学习的查询嵌入来帮助对复杂的训练数据分布进行建模。变压器中的全部注意力被邻居掩码注意力所取代,以避免信息从输入泄漏到输出。特征抖动策略鼓励模型在有噪声的输入下恢复正确的消息。所有这三个改进都有助于模型避免学习“相同的快捷方式
改进1:Layer-wise Query Embedding
通过增加query embedding,来增加其抑制“恒等映射”的能力。以transformer为基础,提出了Layer-wise Query Embedding,即,在decoder的每一层都加入query embedding。

改进2:Neighbor Masked Attention
研究者认为,在传统的Attention中,一个token是可以利用自己的信息的,这可能会防止信息泄漏,即,直接将输入进行输出,形成“恒等映射”。因此,提出了Neighbor Masked Attention,即,一个token是不能利用自己和自己的邻居的信息的。这样,网络就必须通过更远处的token来理解这个点的信息应该是什么,进而在这个过程中理解了正常样本,拟合了正常样本的分布。

改进3:Feature Jittering
受到De-noising Auto-Encoder的启发,设计了一个Feature Jittering策略。即,在输入的feature tokens中加入噪声,而重构的目标依然是未加噪声的feature tokens。因此,Feature Jittering可以将重构任务转化为去噪任务网络通过去除噪声来理解正常样本,并拟合正常样本的分布。同时,恒等映射在这种情况下不能使得loss等于0,也就不是最优解了。

论文6:Exploring Plain ViT Features for Multi-class Unsupervised Visual Anomaly Detection(2024)- 多分类无监督异常检测统一模型

6.1 主要内容

针对异常检测中,异常样本是多类的,以往的异常检测中每个类都需要单独的进行模型的训练,大大增加了模型训练和存储的成本。该篇论文提出了基于Plain ViT的多分类无监督的异常检测(MUAD)框架ViTAD。

6.2 模型架构

对于基于重建方式的异常检测模型,该篇论文抽象出一个基础的框架Meta-AD,包括一个编码器,特征融合器,解码器。与以往采用CNN搭建编码器和解码器的方式不同,该篇论文从Plain ViT 出发,搭建列状的ViT编码器和解码器,并从全局和局部的角度利用一些策略进行了改进。最终得到一个简单有效的基于ViT的模型框架。
在这里插入图片描述
改进前的模型架构:
改进前模型架构
改进后的模型架构:
在这里插入图片描述
论文出发点:

ViT的优势:与更复杂的CNN特征金字塔相比,Plain ViT得益于全局动态建模能力,列状的Plain ViT提供更多出色可用性和使用价值。ViT特征在各个阶段都比CNN的特征更加丰富和多样化,正常图像和异常图像之间的差异更加显著,这一现象表明VIT结构具有更强的建模能力和更大的感受野,可用于AD任务的潜在应用。

橙色数字表示从全局角度做的改进:

第一点:融合模块去除了多尺度跳跃链接,仅仅使用最后一级F作为输入(结构图中没有看到去除多尺度跳跃连接!)
原由:原因是列状的ViT深层特征F,足以包含丰富的纹理和语义属性。早期特征的注入会缩短信息流路经,导致潜在信息的泄露。使得模型能够学习到恒等映射并且影响模型在图像级别的判断能力。
第二点:在推理期间,使用F1, F2, F3来约束计算异常得分图A1,A2,A3,这样可以有效利用不同级别的特征图中的细粒度特征,得到更准确的异常分割图。
第三点:采用更强语义力度的DINO作为预训练数据集以便得到更好的特征提取效果。 (由于ImageNet-1k与AD数据集之间存在领域差异,这种直接的方式效果不佳)

蓝色数字表示从局部角度做的改进:

第一点:在归一化之前使用特征,输入到特征融合模块;

第二点:使用轻量级线性单层作为Fuser结构;(简化模型)

第三点:不维护类token(降低计算复杂度,提高计算性能);

第四点:增加基于ViT解码器位置的嵌入会带来轻微的性能提升。(提供位置信息)

7. 总结

7.1 ViT的可用优势

  • 全局特征提取:Transformer通过自注意力机制对图像的每一部分进行建模,能够从全局的角度捕捉特征。这使得它在提取长距离依赖和图像的全局特征方面表现出色。

  • 自适应性强:Transformer可以灵活调整不同位置之间的权重,因此在处理需要建模复杂关系的任务(如细粒度识别)上更具优势。

  • 不依赖卷积操作:Vision Transformer(ViT)将图像分割为小块后处理,从而避免了局限于局部的卷积操作。每个图像块会与其他图像块进行关联,从而捕捉到更丰富的全局特征

7.2 ViT的劣势

(1)模型结构与CNN相比较为复杂,且计算复杂度高
(2)训练快,推理慢
(3)空间位置信息不敏感,需要额外的位置向量嵌入

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

传输协议设计与牧村摆动(Makimoto‘s Wave)

有一条活鱼和一条死鱼,你准备怎么做,你会将活鱼红烧或将死鱼清蒸吗?好的食材只需要最简单的烹饪,不好的食材才需要花活儿。 我此前的文字几乎都在阐述一个观点,广域网就是那条死鱼,数据中心则是那条活鱼。…

基于Python的旅游景点推荐系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

程序员的生活周刊 #7:耐克总裁被裁记

0. 庙宇 这张图来自 Tianshu Liu, 被树木环绕的宝塔庙宇 1. 耐克总裁 耐克最近的总裁 John Donahoe 干了 5 年,终于被裁掉了。 这位总裁即不了解球鞋文化,也没有零售经验,但不懂事的董事会还是聘用它,寄托把耐克从运…

全面解析:区块链技术及其应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 全面解析:区块链技术及其应用 全面解析:区块链技术及其应用 全面解析:区块链技术及其应用 区…

工作流初始错误 泛微提交流程提示_泛微协同办公平台E-cology8.0版本后台维护手册(11)–系统参数设置

工作流初始错误 泛微提交流程提示_泛微协同办公平台E-cology8.0版本后台维护手册(11)–系统参数设置...-CSDN博客 工作流初始错误 泛微提交流程提示_泛微OA 工作流WebService接口使用说明 工作流初始错误 泛微提交流程提示_泛微OA 工作流WebService接口使用说明-CSDN博客 工作…

每日OJ题_牛客_春游_贪心+数学_C++_Java

目录 牛客_春游_贪心数学 题目解析 C代码 Java代码 牛客_春游_贪心数学 春游 描述: 盼望着,盼望着,东风来了,春天脚步近了。 值此大好春光,老师组织了同学们出去划船,划船项目收费如下:…

关于elementui el-radio 赋值问题

今天遇到这样的问题&#xff1a; 点击的时候&#xff0c;同时选中 照抄官网&#xff01; 后来发现了问题&#xff1a; 也就是说如果你的版本太低&#xff0c;就不能用value&#xff0c;而得用label&#xff0c;于是修改 <el-radio-group v-model"searchTime"&g…

设计者模式之策略模式

前言 在软件构建过程中&#xff0c;某些对象使用的算法可能多种多样&#xff0c;经常改变&#xff0c;如果将这些算法都写在对象中&#xff0c;将会使对象变得异常复杂&#xff1b;而且有时候支持不频繁使用的算法也是一个性能负担。 如何在运行时根据需要透明地更改对象的算…

MetaGeneMark:宏转录组转录本基因预测

GeneMark™ download 下载 gunzip gm_key_64.gz tar -xvzf MetaGeneMark_linux_64.tar.gz #查看安装 (完整路径)/gmhmmp #解压文件里面这个比较重要 MetaGeneMark_linux_64/mgm/MetaGeneMark_v1.mod #复制gm_key文件到主路径 mv gm_key_64 .gm_key cp .gm_key /home/zhongpei…

阿里云-防火墙设置不当导致ssh无法连接

今天学网络编程的时候&#xff0c;看见有陌生ip连接&#xff0c;所以打开了防火墙禁止除本机之外的其他ip连接&#xff1a; 但是当我再次用ssh的时候&#xff0c;连不上了才发现大事不妙。 折腾了半天&#xff0c;发现阿里云上可以在线向服务器发送命令&#xff0c;所以赶紧把2…

【go从零单排】Strings and Runes 字符串和字符

Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 概念 在Go语言中&#xff0c;rune 是一个内置的数据类型&#xff0c;用于表示一个Unicode字符。它实际上是一个别名…

JDK1.5 java代码打包jar HmacSha256

文章目录 demo地址背景实现编写代码编译class文件打包 JAR 文件执行生成的 JAR 文件辅助验证方式 常见问题和解决方法常规生成jar方案maven插件idea工具 demo地址 https://github.com/xiangge-zx/HmacSha256 背景 最近接到一个需求,做一个可以用来HmacSha256加密的小工具&am…

履带机器人(一、STM32控制部分--标准库)

一、履带机器人整体逻辑框架 通过在PC端搭建上位机,使得在PC端可以给STM32发送控制指令并且接受STM32的状态信息。 通过RS485通信,使得STM32可以和电机进行通信,STM32发送启动、停止、转速、方向等指令,并接受电机返回的状态信息。 二、STM32逻辑框架 整体逻辑: 1、先…

yakit中的规则详细解释

官方文档 序列前置知识之高级配置 | Yak Program Language 本文章多以编写yaml模版的视角来解释 规则一览 匹配器 在编写yaml中会使用到这里两个东西 点击添加会在返回包的右下角出现匹配器 上面有三个过滤器模式&#xff0c;官方解释 丢弃&#xff1a;丢弃模式会在符合匹配…

从0开始学习机器学习--Day14--如何优化神经网络的代价函数

在上一篇文章中&#xff0c;解析了神经网络处理分类问题的过程&#xff0c;类似的&#xff0c;在处理多元分类问题时&#xff0c;神经网络会按照类型分成多个输出层的神经元来表示&#xff0c;如下&#xff1a; 处理4个分类问题时的神经网络 我们可以看到&#xff0c;相较于之…

LINUX下的Myql:库的操作

目录 1.库的创建 2.字符集和校验集 1.查看db1默认的字符集合校验集 2.设置字符集和校验集 3.库的查看 4.数据库的修改 5.数据库的删除 6.数据库的备份 1.库的创建 create database db1; 创建一个名为db1的数据库&#xff0c;LINUX会创建一个名为db1的文件夹。 show data…

Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized

这里是Themberfue 在上一节的最后&#xff0c;我们讨论两个线程同时对一个变量累加所产生的现象 在这一节中&#xff0c;我们将更加详细地解释这个现象背后发生的原因以及该如何解决这样类似的现象 线程安全问题 public class Demo15 {private static int count 0;public …

【taro react】 ---- 常用自定义 React Hooks 的实现【六】之类渐入动画效果的轮播

1. 效果 2. 场景 css 效果实现:可以看到效果图中就是一个图片从小到大的切换动画效果,这个效果很简单,使用 css 的 transform 的 scale 来实现图片的从小到大的效果,切换就更加简单了,不管是 opacity 还是 visibility 都可以实现图片的隐藏和显示的切换。React.Children.m…

杨辉三角,洗牌算法

杨辉三角 给定一个非负整数numRows&#xff0c;生成杨辉三角的前numRows行。 在杨辉三角中&#xff0c;每个数是它的左上方和右上方的数的和。 public List<List<Integer>> generate(int numRows){List<List<Integer>> ret new ArrayList<>();…

ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic

设计题目&#xff1a;海鲜自助餐厅系统的设计与实现 摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所…