Grid-Based Continuous Normal Representation for Anomaly Detection 论文阅读

Grid-Based Continuous Normal Representation for Anomaly Detection 论文阅读

  • 摘要
  • 简介
  • 方法
    • 3.1 Normal Representation
    • 3.2 Feature Refinement
    • 3.3 Training and Inference
  • 4 实验结果
  • 5 总结

文章信息:
在这里插入图片描述
原文链接:https://arxiv.org/abs/2402.18293
源码地址:https://github.com/laozhanger/GRAD

摘要

最近在无监督方式下,异常检测领域取得了重大进展,其中仅有正常图像用于训练。几种最新的方法旨在基于记忆检测异常,通过比较输入和直接存储的正常特征(或使用正常图像训练的特征)。然而,这种基于记忆的方法在离散特征空间上操作,通过最近邻或注意机制实现,存在泛化能力差或者输出与输入相同的身份捷径问题。此外,现有方法中大部分设计用于检测单一类别的异常,当面对多类别对象时性能不理想。为了解决上述所有挑战,

我们提出了GRAD,一种新颖的异常检测方法,用于在“连续”特征空间中表示正常特征,通过将空间特征转换为坐标并将其映射到连续网格来实现。

此外,我们精心设计了专为异常检测定制的网格,有效表示局部和全局正常特征,并有效地融合它们。

我们的大量实验证明,GRAD成功地泛化了正常特征并减轻了身份捷径问题,此外,由于高粒度全局表示,GRAD有效地处理了单一模型中的多样类别。

在使用MVTec AD数据集进行评估时,GRAD在多类别统一异常检测方面减少了65.0%的错误,显著优于先前的最先进方法。项目页面位于 https://tae-mo.github.io/grad/。
在这里插入图片描述

简介

在这项工作中,作者提出了将网格表示结合到异常检测中以实现高性能。

主要贡献:通过将离散特征存储替换为连续网格来表示正常特征,从而解决了上述讨论的挑战性问题,并实现了高性能。

方法

在这里插入图片描述

Background.为了帮助读者理解GRAD,我们首先描述了网格操作。网格被训练为坐标的函数,具有无限分辨率,输出与坐标对应的特征。无限分辨率下的输出特征是通过网格中附近特征的聚合得到的,基于输入坐标和相邻特征之间的距离。例如,当我们进行一维网格采样 ϕ ( ⋅ ; G ) : R → R C ϕ(·; G) : \mathbb{R} → \mathbb{R}^C ϕ(⋅;G):RRC 时,具有C个通道的输出特征是通过一维网格 G ∈ R R × C G ∈ \mathbb{R}^{R×C} GRR×C 的相邻值进行插值得到的,数学上可以表示如下:
在这里插入图片描述
其中, v ∈ R v ∈ \mathbb{R} vR 是一个任意的输入坐标,被归一化为网格分辨率 R R R,而 G [ i G[i G[i] 表示来自网格 G G G 的索引 i i i 处的特征。 m m m n n n 是要参考的索引, ⌊ ⋅ ⌋ ⌊·⌋ ⌈ ⋅ ⌉ ⌈·⌉ 分别表示向下取整和向上取整操作。上述方程可以通过对D维网格的 2 D 值 2^D值 2D进行插值,简单地扩展到更高维度 D D D(例如,在图1( c )中的2D网格中的4个值)。
Overview.我们的工作动机是利用网格操作在连续空间中有效表示正常特征,与离散空间有所区别。以无监督的方式,GRAD基于输入特征和输出正常特征之间的差异来检测异常图像和区域,如图2(a)中所描述的。因此,GRAD的主要目标是有效地保留正常成分(例如,形状或纹理),同时消除特征内存在的任何异常。

为此,我们在训练阶段将正常特征表示为连续空间中的正常表示,这在测试阶段用于替换异常特征。我们描述了GRAD如何在连续空间中表示正常特征并获取输出特征 x ^ \hat{x} x^,基于从预训练骨干网络提取的输入特征 x x x,其中 x x x x ^ ∈ R C × H × W \hat{x} ∈ \mathbb{R}^{C×H×W} x^RC×H×W C 、 H 、 W C、H、W CHW 分别是特征的通道数、高度和宽度。

3.1 Normal Representation

GRAD的基本概念是将输入特征转换为连续值的特定坐标,然后将这些坐标映射到特征网格上。特别地,我们设计了从局部和全局视角表示正常特征。通过结合每个视角的独特特征,得到的特征可以提供对输入的强大表示,捕捉细粒度的细节以及更广泛的整体结构。
Local representation.
在这里插入图片描述

如图2(a)所示,GRAD对特征的每个像素进行采样,以表征图像的每个补丁,以表示局部特征。然后,通过具有1个卷积核大小的卷积层将每个像素的通道转换为相应的坐标(低维向量),然后进行双曲正切激活。利用这些逐像素的坐标,我们从局部网格表示中获取采样的正常特征。更正式地,我们定义一个函数 v l ( ⋅ ) : R C × H × W → R C l × H × W v^l(·) :\mathbb{R}^{C×H×W} → \mathbb{R}^{C_l×H×W} vl():RC×H×WRCl×H×W,根据输入特征生成逐像素的坐标,其中 C l C_l Cl是生成坐标的维度。给定逐像素的坐标 v h , w l ( ⋅ ) ∈ R C l v^l_{h,w}(·) ∈ \mathbb{R}^{C_l} vh,wl()RCl,从具有每个维度分辨率 R l R_l Rl和通道数 C C C C l C_l Cl维网格 G l G_l Gl中采样正常特征。局部表示 f l ( x ) : R C × H × W → R C × H × W f^l(x) : \mathbb{R}^{C×H×W} → \mathbb{R}^{C×H×W} fl(x):RC×H×WRC×H×W 的方程如下所示:
在这里插入图片描述
其中, ϕ ( ⋅ ; G l ): R C l → R C ϕ(·; G_l):\mathbb{R}^{C_l}→\mathbb{R}^C ϕ⋅;Gl):RClRC表示通过基于坐标对网格值进行双线性内插来从网格 G l G_l Gl采样特征。

由于特征的每个像素都表征图像中的一个补丁,局部表示确保保留正常补丁,并用具有相似局部上下文的正常补丁替换异常补丁。因此,当输入一个正常补丁时,即使在训练补丁中没有完全匹配的情况下,也可以通过插值映射到附近坐标的正常特征来表示相应的正常特征。

此外,对于异常补丁,GRAD基于减少的坐标找到一个最能代表异常补丁的正常特征。由于在训练过程中网格从未暴露于异常特征,它无法通过插值附近的正常特征来表示异常特征。这是我们如何有效解决现有方法中经常出现的基于注意机制聚合大量特征的相似性而产生的身份捷径(IS)问题的核心思想。

Global representation.异常区域不仅可能存在于图像的局部,还可能存在于全局范围内。为了处理这样的全局异常情况,GRAD维护另一个网格表示来捕获图像的全局特征。与局部表示类似,我们制定了一个函数来获取全局特征坐标 v g ( ⋅ ) : R C × H × W → R C g v^g(·) : \mathbb{R}^{C×H×W} → \mathbb{R}^{C_g} vg():RC×H×WRCg ,其中 C g C_g Cg是坐标的降维维度。对于函数 v g ( ⋅ ) v^g(·) vg(),我们采用了全局平均池化和线性层,如图2(a)所示。特征级的坐标通过具有每个维度分辨率 R g R_g Rg C g C_g Cg维网格 G g G_g Gg映射到每个正常特征。网格 G g G_g Gg的一个元素是一个 C H W CHW CHW维向量,一旦被采样,它就被重塑为 C × H × W C×H×W C×H×W张量。全局表示 f g ( x ) : R C × H × W → R C × H × W f^g(x) : \mathbb{R}^{C×H×W} → \mathbb{R}^{C×H×W} fg(x):RC×H×WRC×H×W的方程表示如下:
在这里插入图片描述

其中, ϕ ( ⋅ ; G g ): R C g → R C H W ϕ(·; G_g):\mathbb{R}^{C_g}→\mathbb{R}^{CHW} ϕ⋅;Gg):RCgRCHW表示通过双线性插值从网格 G g G_g Gg采样特征,并且 r e s h a p e ( ⋅ ): R C H W → R C × H × W reshape(·):\mathbb{R}^{CHW} → \mathbb{R}^{C×H×W} reshape):RCHWRC×H×W表示整形操作。
在这里插入图片描述

Fused representation.我们将局部和全局表示 f l ( x ) f_l(x) fl(x) f g ( x ) f_g(x) fg(x)组合起来,以有效地学习正常表示 f n ( x ) f_n(x) fn(x),如图2(a)所示。局部和全局表示被连接起来,然后被送入以下卷积网络 ψ ( ⋅ ) : R 2 C × H × W → R C × H × W ψ(·) : \mathbb{R}^{2C×H×W} → \mathbb{R}^{C×H×W} ψ():R2C×H×WRC×H×W来重构 f n ( x ) f_n(x) fn(x),如下所示:
在这里插入图片描述

其中, c o n c a t ( ⋅ , ⋅ ) concat(·, ·) concat(⋅,⋅)表示沿着通道轴拼接两个特征。通过融合局部和全局表示,GRAD可以从细粒度的细节到更广泛的上下文中表示正常特征,相比仅使用其中之一,可以获得更高的性能(见第4.4节中的消融研究)。

3.2 Feature Refinement

尽管局部和全局正常表示已经融合,但在 f n ( x ) f_n(x) fn(x) x x x之间仍然可能存在正常区域的偏差,这可能导致错误检测(即假阳性)。因此,在特征细化中,我们的目标是在应该是正常但与 x x x有偏差的区域中对 f n ( x ) f_n(x) fn(x)进行细化,以减少假阳性。为了识别这样的区域,我们通过结合均方误差(MSE)和余弦相似度评估 x x x f n ( x ) f_n(x) fn(x)之间的逐像素相似性。这两个指标提供了正常和异常特征之间差异的全面视角,其中 M S E MSE MSE捕捉绝对强度差异,而余弦相似度则表征结构和位置的相似性。通过考虑组合相似性 S ∈ R H × W S ∈ R^{H×W} SRH×W,我们可以重构 x ^ \hat{x} x^如下:
在这里插入图片描述
其中, h h h w w w是空间特征的索引, 1 [ ⋅ ] \mathbb{1}[·] 1[]是指示函数, m s e ( ⋅ , ⋅ ) mse(·, ·) mse(⋅,⋅) c o s i m ( ⋅ , ⋅ ) cosim(·, ·) cosim(⋅,⋅)分别是均方误差和余弦相似度。为了将MSE作为相似性的度量,我们根据其是否超过阈值k将MSE值转换为0或1。

3.3 Training and Inference

Coordinate jittering.为了实现更广义的网格表示,我们在训练阶段对局部坐标 v l ( x ) v_l(x) vl(x) 应用高斯噪声。例如,没有抖动时,在二维网格中,一个坐标影响最多四个网格值,如图2(b)所示。相比之下,当扰动坐标时,我们可以在每次迭代中使用钟形分布更新更多的网格值,从而产生更广义的网格。
在这里插入图片描述

Training.
给定 x x x和GRAD导出 x ^ \hat{x} x^,我们采用MSE损失作为目标函数,如下所示:
在这里插入图片描述
根据公式(7),我们以端到端的方式学习整个模型,包括由Xavier正态初始化[12]初始化的网格。由于在训练阶段 x x x始终是正常输入,因此网格被学习用于表示正常特征。
Inference.
为了通过 x x x x ^ \hat{x} x^之间的差异进行异常检测和定位,我们制定了异常分数图 d ∈ R H × W d ∈ \mathbb{R}^{H×W} dRH×W如下所示:

在这里插入图片描述
其中, h h h w w w表示每个像素的位置。为了与相应的真实情况相匹配, d d d被插值到输入的原始形状中。通过从平均池化的 d d d中取最大值,可以获得每个图像的异常分数,并且插值后的异常图本身用于像素级异常分数。

4 实验结果

异常检测
在这里插入图片描述
异常定位
在这里插入图片描述

5 总结

在这项工作中,作者提出了一种新颖的异常检测架构,名为GRAD,它在连续空间中表示正常特征,与之前局限于离散空间的方法不同。GRAD成功地在连续空间中表示了局部和全局特征,同时克服了现有方法的诸多局限,如泛化能力弱、身份捷径、计算复杂度和参数效率等。通过大量实验,作者定性和定量地展示了GRAD的有效性。通过特征细化和坐标抖动,GRAD取得了显著优势的最先进性能。

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

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

相关文章

【MIT 6.S081】2020, 实验记录(6),Lab: Copy-on-Write Fork

目录 Task: Implement copy-on writestep 1:对内存块进行引用计数step 2:uvmcopy 实现 fork 时将 parent 的物理页映射到 child 中step 3:在 usertrap 中增加对 page fault 的处理执行测试 官方说明:Lab: Copy-on-Write Fork for …

C++进阶-- map和set

关联式容器 在前面,我们所学的vector、list、deque,这些都是序列容器,也就是底层为线性序列的数据结构。 而关联式容器是C标准库中的一种类别,用于存储键值对(key-value pair),关联式容器中的元…

vxe-table编辑单元格动态插槽slot的使用

业务场景:表格中只有特定某一行的的单元格可以编辑,列很多,为每个列写个插槽要写很多重复代码,所以这里使用动态插槽,简化代码量。显示编辑图标,点击编辑图标隐藏。失去焦点保存调后台接口。 解决办法&…

十行代码开发一个AI应用

Semantic Kernal 简介 Semantic Kernel (SK) is a lightweight SDK that lets you easily mix conventional programming languages with the latest in Large Language Model (LLM) AI "prompts" with templating, chaining, and planning capabilities out-of-the-…

关于vue中关于eslint报错的问题

1 代码保存的时候会自动将单引号报错为双引号 导致eslint报错的问题, 解决思路: 在项目根目录下新建一个.prettierrc.json文件 { “tabWidth”: 2,“useTabs”: false,“singleQuote”: true,“semi”: false} 2 关于报错代码的时候 出现尾随逗号报错…

Zabbix 系统告警“More than 75% used in the configuration cache”处理办法

Zabbix系统报错提示 Zabbix 系统告警“More than 75% used in the configuration cache”,看了一下意思是可用的配置缓存超过75%。 修改缓存大小 vim /etc/zabbix/zabbix_server.confesc : /CacheSize 找到配置 将64M改大一点,保存退出。 重启zabbix…

【MySQL】数据库中常用的函数

目录 聚合函数COUNT()函数的多种用法COUNT(*)COUNT(主键)COUNT(1)COUNT(常量)COUNT(非主键)COUNT(distinct(字段)) COUNT()函数小结 字符函数length(str)函数:获取参数值的字节个数concat(str1,str2,...)函数:字符串拼接upper(str)、lower(str)函数:大小…

Linux高负载排查最佳实践

在Linux系统中,经常会因为负载过高导致各种性能问题。那么如何进行排查,其实是有迹可循,而且模式固定。 本次就来分享一下,CPU占用过高、磁盘IO占用过高的排查方法。 还是那句话,以最佳实践入手,真传一句话…

数据库-第二/三章 关系数据库和标准语言SQL【期末复习|考研复习】

前言 总结整理不易,希望大家点赞收藏。 给大家整理了一下计数据库系统概论中的重点概念,以供大家期末复习和考研复习的时候使用。 参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。 文章目录 前言第二、三章 关系数据库和标准语言SQL2.1 关系2…

JVM原理-基础篇

Java虚拟机(JVM, Java Virtual Machine)是运行Java应用程序的核心组件,它是一个抽象化的计算机系统模型,为Java字节码提供运行环境。JVM的主要功能包括:类加载机制、内存管理、垃圾回收、指令解释与执行、异常处理与安…

虚拟机内存不够用了?全流程操作Look一下?

虚拟机信息:操作系统:CentOS Linux 7 (Core),用的是VMware Workstation 16 Pro 版本16.2.3 build-19376536;我的主机 Windows 10 Education, 64-bit (Build 22000.1817) 10.0.22000 前言:虚拟机用久了就会出现内存不足…

Rocky Linux 安装部署 Zabbix 6.4

一、Zabbix的简介 Zabbix是一种开源的企业级监控解决方案,用于实时监测服务器、网络设备和应用程序的性能和可用性。它提供了强大的数据收集、处理和可视化功能,同时支持事件触发、报警通知和自动化任务等功能。Zabbix易于安装和配置,支持跨平…

【前端素材】推荐优质后台管理系统网页Hyper平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理和控制网站、应用程序或系统的管理界面。它通常被设计用来让网站或应用程序的管理员或运营人员管理内容、用户、数据以及其他相关功能。后台管理系统是一种用于管理网站、应用程序或系统的工具,通常由管理员使…

【AIGC】OpenAI推出王炸级模型sora,颠覆AI视频行业(2024)

对于OpenAI推出的Sora模型,我们可以进一步探讨其可能的技术细节、潜在应用以及对AI视频行业的影响。 点击以下任一云产品链接,跳转后登录,自动享有所有云产品优惠权益: 经过笔者亲测,强烈推荐腾讯云轻量应用服务器作…

【分类讨论】【割点】1568. 使陆地分离的最少天数

作者推荐 动态规划的时间复杂度优化 本文涉及知识点 分类讨论 割点 LeetCode1568. 使陆地分离的最少天数 给你一个大小为 m x n ,由若干 0 和 1 组成的二维网格 grid ,其中 1 表示陆地, 0 表示水。岛屿 由水平方向或竖直方向上相邻的 1 …

接口详细说明

接口概述 接口也是一种规范 接口的定义与特点 接口的格式如下: //接口用关键字interface来定义 public interface 接口名 {// 常量// 抽象方法 } JDK8之前接口中只能是抽象方法和常量,没有其他成分了。 接口不能实例化。 接口中的成员都是public修…

svn介绍 4.0

一、svn介绍(版本控制工具) 1、svn的定义: svn是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式个管…

电脑数据丢失是什么原因 易我数据恢复软件下载 easyrecovery数据恢复软件下载 电脑数据删除了怎么恢复 电脑数据库损坏了怎么找回

目录 一、电脑数据丢失是什么原因 二、电脑数据丢失如何恢复 三、EasyRecovery恢复电脑数据的方法介绍 电脑是我们大家熟悉并且常用的数据存储设备,也是综合性非常强的数据处理设备。对于电脑设备来讲,最主要的数据存储介质是硬盘,电脑硬…

CMU15445实验总结(Spring 2023)

CMU15445实验总结(Spring 2023) 背景 菜鸟博主是2024届毕业生,学历背景太差,导致23年秋招无果,准备奋战春招。此前有读过LevelDB源码的经历,对数据库的了解也仅限于LevelDB。奔着”有对比才能学的深“的理念,以及缓解…

linux系统Jenkins工具配置webhook自动部署

Jenkins工具webhook自动部署 webhook自动部署webhook的意义操作流程jenkins页面操作gitlab页面操作 webhook自动部署 webhook的意义 自动化部署:Webhook 可以在代码提交、合并请求或其他特定事件发生时自动触发 Jenkins 构建和部署任务,从而实现自动化…