深度学习论文: DMAD: Dual Memory Bank for Real-World Anomaly Detection

深度学习论文: DMAD: Dual Memory Bank for Real-World Anomaly Detection
DMAD: Dual Memory Bank for Real-World Anomaly Detection
PDF: https://arxiv.org/pdf/2403.12362
PyTorch代码: https://github.com/shanglianlm0525/CvPytorch
PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks

1 概述

文章介绍了一种名为DMAD的新框架,用于图像异常检测。传统方法为每个对象训练一个独特的模型,但随着对象类别数量增加,这种方法导致了存储消耗的增加。UniAD采用多类设置,训练统一模型以节省存储。但无监督学习在异常检测中存在边界定义不准确的问题。利用现实世界中少量异常数据的半监督方法可提高性能。因此,作者提出DMAD框架,适用于统一半监督设置,通过双内存库处理两种情况,利用补丁特征编码器和多层感知器学习特征表示与异常分数映射,以更准确地检测异常。实验结果表明,DMAD在MVTec-AD和VisA数据集上的表现显著优于当前最先进的方法。
在这里插入图片描述
DMAD适用于半监督设置,也适用于没有标注异常的多类设置,适合现实世界中异常可能不易获取的情况。DMAD使用补丁特征编码器提取特征,并通过正常和异常Dual Memory bank建立统一决策边界。在无监督情况下,使用正常和异常特征融合生成的伪异常特征集作为abnormal memory bank。在半监督情况下,采用异常中心采样策略来扩充abnormal memory bank,以缓解数据不平衡问题。Dual Memory bank计算补丁特征与记忆银行中最近特征的距离和交叉注意力,形成正常和异常数据的知识库。最后,使用多层感知器(MLP)学习增强表示和异常分数之间的映射。

2 DMAD

本文介绍了一种名为DMAD的新框架,旨在应对现实世界的异常检测问题。在实际工业应用中,采用统一模型进行训练因其高度的兼容性和存储效率而备受青睐。DMAD框架针对两种情况进行了优化:一是适用于一般情况的统一设置,二是利用少量已标注异常数据的统一半监督设置,这取决于异常数据的可用性。
在这里插入图片描述
为了达成这一目标,DMAD框架包含了三个核心组件:补丁特征编码器、基于双内存库的知识增强模块以及异常分数映射器。该框架的目标是训练一个统一的神经网络,使其能够准确地区分正常与异常实例,并为异常分配更高的异常分数。通过有效结合正常数据和可访问的异常数据,DMAD在应对现实世界中的异常检测挑战时取得了显著的进展。

2-1 Patch Feature Encoder

补丁特征编码器由两部分组成:特征提取器 F Φ F_{Φ} FΦ 和可选的特征过滤操作 Filter。特征提取器用于从图像中提取特征,包括预训练的骨干网络和聚合操作。对于正常图像,直接提取其补丁特征。
在这里插入图片描述
随着系统运行,可将一些标注的异常数据用于训练 DMAD。对于异常图像,使用 Filter 操作从提取的特征中分离出异常部分,因为图像缺陷通常只占图像的小部分。通过双线性插值匹配特征分辨率,然后过滤异常部分,得到异常补丁特征。
在这里插入图片描述
这些特征之后会通过双重记忆银行进行增强。

2-2 Dual Memory Bank-based Knowledge Enhancement

在这里插入图片描述
Dual Memory Bank的构建,其中包括正常内存库 M n M_{n} Mn和异常内存库 M a M_{a} Ma。正常内存库存储正常模式,而异常内存库存储潜在的缺陷模式。对于一般统一设置,使用coreset采样算法从所有正常数据中提取补丁特征来构建 M n M_{n} Mn。对于 M a M_{a} Ma,如果没有可用的已标注异常,从DTD数据集中随机采样异常数据构建 M a M_{a} Ma。当可用的已标注异常变得可访问时,将观察到的已标注异常的过滤异常补丁特征集 M a s M_{a_{s}} Mas加入到 M a M_{a} Ma中。为了提取额外的知识,对于每个补丁正常特征,从 M n M_{n} Mn M a M_{a} Ma中识别最近邻特征,并计算特征与最近邻特征的距离和注意力矩阵。最后,将特征本身和两部分知识结合起来形成增强表示。这种方法有助于在异常检测中更有效地利用所有可用的信息,提高模型的性能。

2-3 Anomaly Score Mapper

异常分数映射器负责将增强的特征表示o映射到相应的异常分数S。为了实现这一映射,采用了多层感知器(MLP)Ψ来学习其中的映射关系,并利用铰链损失函数来优化网络结构。在一般统一(多类别)的场景中,采取特征增强策略来生成伪负样本,以丰富模型的训练数据。而当有已标注的异常样本可用时,引入一个包含三部分的铰链损失函数来进一步优化模型,其中λ1和λ2为可调节的超参数。这一工作有效地建立了增强表示与异常分数之间的关联模型,从而显著提升了异常检测的性能。
在这里插入图片描述
在一般统一设置中, λ1 = 1, λ2 = 0,而在统一半监督设置中,λ1 = 0.5, λ2 = 15。

2-4 Anomaly Detection and Localization

为了对测试图像进行精确的异常检测和定位,采用了经过训练的DMAD模型。首先,模型会为图像的每个补丁生成异常分数,并选择分数最高的前5个补丁,计算它们的平均分数作为整幅图像的异常级别评分。接着,为了得到更精细的像素级异常分数,采用双线性插值技术结合高斯平滑方法,对初步得出的分数进行优化和细化。这种方法不仅确保了异常定位的精确性,还能为异常提供更为准确的评分,从而极大地提高了异常检测的准确性和可靠性。

3 Experiments

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

数智先锋 | 多场景数据治理案例,释放数据要素生产力

数据作为第五大生产要素,成为释放新质生产力的关键基础。 当前各个行业数字化建设如火如荼,全力挖掘数据价值以驱动行业高质量应用发展。数据治理成为数据要素价值发挥的重要基础和前提。 数据治理不单是技术问题,不是依赖工具就能解决的&a…

JVM之内存分配的详细解析

内存分配 两种方式 不分配内存的对象无法进行其他操作,JVM 为对象分配内存的过程:首先计算对象占用空间大小,接着在堆中划分一块内存给新对象 如果内存规整,使用指针碰撞(Bump The Pointer)。所有用过的内…

链式队列基本操作

链式队列的基本概念 链式队列是一种常见的数据结构,它使用链表作为其底层数据存储结构。链式队列的特点是动态的内存分配,可以有效地处理队列的入队和出队操作。下面,我将介绍链式队列的实现方法,并提供相应的C语言代码示例。 链…

C语言-设置控制台信息

Win_API Win_API是Windows应用程序接口(Windows Application Programming Interface)的缩写,它是一组函数、系统服务和程序接口,允许开发者在微软Windows操作系统上创建应用程序。Win32 API 是Windows API的一个主要部分&#xff…

Linux PXE高效批量网络装机

系统初始化 systemctl disable --now firewalld.service setenforce 0 vim /etc/selinux/config 安装软件 yum install -y tftp-server xinetd dhcp vsftpd syslinux 复制 vmlinuz initrd.img pxelinux.0 到 /var/lib/tftpboot/ 目录 [rootlocalhost ~]# cd /mnt/…

设计模式之业务代表模式

在编程江湖的风雨中漂泊多年,每当我遇到那些错综复杂的业务逻辑和系统交互,总有一个模式像一位忠诚的骑士,默默守护着我的代码城堡,那就是——业务代表模式(Business Delegate Pattern)。它不是最耀眼的明星…

C++ 如何进阶?

一、C基础(3个月) 1、面向对象的三大特性:封装、继承、多态 2、类的访问权限:private、protected、public 3、类的构造函数、析构函数、赋值函数、拷贝函数 4、移动构造函数与接贝构造函数对比 5、深接贝与浅贝的区别 6、空…

【C++语言】类和对象--默认成员函数 (中)

文章目录 前言类的六个默认成员函数:1. 构造函数概念特性做了什么?易错注意:显式定义和默认构造函数 2. 析构函数概念特征做了什么?注意事项: 3.拷贝构造函数概念特征做了什么?注意事项: 4.赋值运算符重载…

CellMarker | 人骨骼肌组织细胞Marker大全!~(强烈建议火速收藏!)

1写在前面 分享一下最近看到的2篇paper关于骨骼肌组织的细胞Marker&#xff0c;绝对的Atlas级好东西。&#x1f44d; 希望做单细胞的小伙伴觉得有用哦。&#x1f60f; 2常用marker&#xff08;一&#xff09; general_mrkrs <- c( MYH7, TNNT1, TNNT3, MYH1, MYH2, "C…

ComfyUI 基础教程(十三):ComfyUI-Impact-Pack 面部修复

SD的WebUI 中的面部修复神器 ADetailer,无法在ComfyUI 中使用。那么如何在ComfyUI中进行面部处理呢?ComfyUI 中也有几个面部修复功能,比如ComfyUI Impact Pack(FaceDetailer),以及换脸插件Reactor和IPAdapter。 ComfyUI-Impact-Pack 是一个功能强大的插件,专为 ComfyUI …

淘宝扭蛋机小程序开发:开启你的惊喜之旅

一、扭出新世界&#xff0c;惊喜不断 在这个充满无限可能的数字时代&#xff0c;淘宝扭蛋机小程序为你带来了一种全新的购物与娱乐体验。扭蛋机&#xff0c;这个充满童趣和惊喜的玩具&#xff0c;如今在我们的小程序中焕发出新的活力&#xff0c;为你带来一波又一波的惊喜与快…

【CTF Web】XCTF GFSJ0485 simple_php Writeup(代码审计+GET请求+PHP弱类型漏洞)

simple_php 小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。 解法 &#xfeff;<?php show_source(__FILE__); include("config.php"); $a$_GET[a]; $b$_GET[b]; if($a0 and $a){echo $flag1; } if(is_numeric($b)){exit(); } if($b>1234){ech…

jquery项目 html使用export import方式调用模块

jquery的老项目&#xff0c;引入vue3, 需要方便使用export, import方式引用一些常用的方法与常量 导出模块 export js/numberUtil.js /*** Description:* Author Lani* date 2024/1/10*//* * 【金额】 保留2位小数&#xff0c;不四舍五入 * 5.992550 >5.99 , 2 > 2.…

【Kaggle】练习赛《洪水数据集的回归预测》(下)

前言 上篇《洪水数据集的回归预测》(上) 介绍了该数据集非常特殊之处&#xff0c;各特征都非常类似&#xff0c;没有特别之处&#xff0c;各特征之间的相关系数几乎为零。同时&#xff0c;各类模型不敏感&#xff0c;最理想的模型居然是线性回归&#xff0c;决定系数 R 2 R^2 …

64位Office API声明语句第118讲

跟我学VBA&#xff0c;我这里专注VBA, 授人以渔。我98年开始&#xff0c;从源码接触VBA已经20余年了&#xff0c;随着年龄的增长&#xff0c;越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友&#xff0c;都来学习VBA,利用VBA,起码可以提高…

达梦数据库导入数据问题

进行数据导入的时候遇到了导入数据问题 第一个问题&#xff1a; 该工具不能解析此文件&#xff0c;请使用更高版本的工具 这个是因为版本有点低&#xff0c;需要下载最新的达梦数据库 第二个问题&#xff1a; &#xff08;1&#xff09;本地编码&#xff1a;PG_GBK, 导入文…

全国31省对外开放程度、经济发展水平、ZF干预程度指标数据(2000-2022年)

01、数据介绍 自2000年至2022年&#xff0c;中国的对外开放程度不断深化、经济发展水平不断提高、ZF不断探索并调整自身在经济运行中的角色和定位&#xff0c;以更好地适应国内外环境的变化&#xff0c;也取得了举世瞩目的成就。这一期间&#xff0c;中国积极融入全球经济体系…

[机器学习-02] 数据可视化神器:Matplotlib和Seaborn工具包实战图形大全

目录 引言 正文 01-Matplotlib包的使用示例 1&#xff09;Matplotlib导入方式 2&#xff09;折线图绘制 3&#xff09;散点图绘制 4&#xff09;柱状图绘制 5&#xff09;饼图绘制 6&#xff09;等高线图绘制 7&#xff09;箱线图绘制 8&#xff09;较为复杂…

7zip如何只压缩文件不带上级目录?

在使用7zip进行文件压缩的时候&#xff0c;如果直接选择要压缩的文件进行压缩&#xff0c;得到的压缩包则会多包含一层顶层目录&#xff0c;解压缩之后需要点击两次才能进入到实际目录中&#xff0c;为了解决这个问题&#xff0c;本文根据探索找到了一种解决办法。 如下是一个演…

表空间的概述

目录 表空间的属性 表空间的类型 永久性表空间(PermanentTablespace) 临时表空间(Temp Tablespace ) 撤销表空间(Undo Tablespace) 大文件表空间(BigfileTablespace) 表空间的状态 联机状态(Online) 读写状态(Read Write) 只读状态(Read) 脱机状态(Offline) Oracle从…