DeSTSeg: Segmentation Guided Denoising Student-Teacher for Anomaly Detection

DeSTSeg: Segmentation Guided Denoising Student-Teacher for Anomaly Detection

清华、苹果

个人感觉

Introduction 很自然的让读者理解作者问题的提出,也有例子直接证明了这个问题的存在,值得借鉴!!
Related work写的也很不错
3.2的方法写的也不错

摘要

视觉异常检测是计算机视觉领域的一个重要问题,通常被表述为单类分类和分割任务。学生-老师 (S-T) 框架已被证明能够有效解决这一挑战。然而,之前基于 S-T 的研究仅凭经验对正常数据施加约束并融合多层信息。

在本研究中,我们提出了一种改进的模型,称为 DeSTSeg,它将预先训练的教师网络、去噪学生编码器-解码器和分割网络集成到一个框架中。首先,为了加强对异常数据的约束,我们引入了一个去噪程序,使学生网络能够学习更稳健的表示。从合成损坏的正常图像中,我们训练学生网络以匹配相同图像的教师网络特征而不会损坏。其次,为了自适应地融合多级 S-T 特征,我们训练了一个具有合成异常掩码丰富监督的分割网络,实现了显着的性能提升

一、 Intrduction

The student-teacher (S-T) framework, known as knowledge distillation, has proven effective in AD [3, 9, 26, 31,33]. In this framework, a teacher network is pre-trained on a large-scale dataset, such as ImageNet [10], and a student network is trained to mimic the feature representations of the teacher network on an AD dataset with normal samples only. The primary hypothesis is that the student network will generate different feature representations from the teacher network on anomalous samples that have never been encountered in training. Consequently, anomalous pixels and images can be recognized in the inference phase. Notably, [26, 31] applied knowledge distillation at various levels of the feature pyramid so that discrepancies from multiple layers were aggregated and demonstrated good performance. However, there is no guarantee that the features of anomalous samples are always different between S-T networks because there is no constraint from anomalous samples during the training. Even with anomalies, the student network may be over-generalized [22] and output similar feature representations as those by the teacher network. Furthermore, aggregating discrepancies from multilevel in an empirical way, such as sum or product, could be suboptimal. For instance, in the MVTec AD dataset under the same context of [31], we observe that for the category of transistor, employing the representation from the last layer, with 88.4% on pixel-level AUC, outperforms that from the multi-level features, with 81.9% on pixel-level AUC.

学生-老师 (S-T) 框架,即知识蒸馏,已被证明在 AD 中是有效的 [3, 9, 26, 31, 33]。在这个框架中,老师网络在大型数据集(例如 ImageNet [10])上进行预训练,学生网络在仅包含正常样本的 AD 数据集上训练以模仿老师网络的特征表示。主要假设是学生网络将在训练中从未遇到过的异常样本上生成与老师网络不同的特征表示。因此,可以在推理阶段识别异常像素和图像。值得注意的是,[26, 31] 在特征金字塔的各个级别应用知识蒸馏,以便聚合来自多个层的差异并表现出良好的性能。然而,不能保证异常样本的特征在 S-T 网络之间总是不同的,因为在训练期间没有来自异常样本的约束。即使存在异常,学生网络也可能过度概括 [22],并输出与教师网络相似的特征表示。此外,以经验方式(例如求和或乘积)聚合来自多级的差异可能不是最优的。例如,在 [31] 相同背景下的 MVTec AD 数据集中,我们观察到对于晶体管类别,使用最后一层的表示(像素级 AUC 为 88.4%)优于来自多级特征的表示(像素级 AUC 为 81.9%)。

总的来说两个问题

  • 蒸馏的假设问题,在异常数据上一定会出现 教师和学生分歧的问题吗
  • 使用相加或者乘积的方式一定会对于最终的异常检测结果的汇总会好吗?
  • 作者已经通过实验发现相加和乘积在一些数据上不是最好的结果例如晶体管类别

解决方案
为了解决上述问题,我们提出了 DeSTSeg,如图 1 所示,它由去噪学生网络、教师网络和分割网络组成。我们在正常图像中引入随机合成异常,然后使用这些损坏的图像 1 进行训练。去噪学生网络以损坏的图像作为输入,而教师网络以原始干净图像作为输入。在训练期间,两个网络之间的特征差异被最小化。换句话说,学生网络被训练在特征空间中执行去噪。将异常图像作为两个网络的输入,教师网络将异常自然地编码为特征,而训练后的去噪学生网络将异常从特征空间中过滤掉。因此,这两个网络得到强化,以从异常输入中生成不同的特征。对于去噪学生网络的架构,我们决定使用编码器-解码器网络来实现更好的特征去噪,而不是采用与教师网络相同的架构。此外,我们没有使用经验聚合,而是附加了一个分割网络,以可训练的方式融合多级特征差异,并使用生成的二元异常掩码作为监督信号。

我们的主要贡献概括如下。(1)我们提出了一种去噪学生编码器-解码器,该解码器经过训练,可以在异常输入下明确生成与老师不同的特征表示。(2)我们采用分割网络自适应地融合多级特征相似性,以取代经验推理方法。(3)我们在基准数据集上进行了广泛的实验,以证明我们的方法对各种任务的有效性。

二、相关工作

异常检测与定位已从多个角度得到研究。在图像重建中,研究人员使用自动编码器 [4]、变分自动编码器 [1, 30] 或生成对抗网络 [21, 27, 28] 在正常数据上训练图像重建模型。假设异常图像在训练期间不会被看到,因此无法有效地重建,因此输入图像和重建图像之间的差异可用作像素级异常分数。然而,由于过度泛化问题,**异常区域仍然有机会被准确重建 [22]。**另一个视角是参数密度估计,它假设正常数据的提取特征服从某种分布例如多元高斯分布 [8, 15, 16, 23],并使用正常数据集来估计参数。然后,通过推理将异常数据识别为异常数据。由于高斯分布假设过于严格,一些近期研究借用了正则化流的思想,通过将任意分布投影到高斯分布来近似任何分布的密度 [13, 35]。此外,基于记忆的方法 [7,19,24,34] 在训练中构建正常数据的记忆库。在推理过程中,给定一个查询项,模型会在记忆库中选择最近的项,并使用查询项与最近项之间的相似性来计算异常分数

知识提炼。

知识提炼基于预训练的教师网络和可训练的学生网络。由于学生网络是在无异常数据集上训练的,因此其异常特征表示预计与教师网络的特征表示不同。过去已经提出了许多解决方案来提高对各种类型异常的区分能力。例如,[3] 使用集成学习来训练多个学生网络,并利用其特征表示的不规则性来识别异常。[31] 和 [26] 采用多级特征表示对齐来捕获低级和高级异常。[9] 和 [33] 为学生网络设计了解码器架构,以避免 S-T 网络之间架构相同和数据流相同的缺点。这些工作侧重于提高 S-T 表示在正常输入上的相似性,而我们的工作还试图区分它们在异常输入上的表示。

异常模拟。

虽然在单类分类 AD 的背景下没有异常数据可供训练,但可以模拟伪异常数据,以便以监督的方式训练 AD 模型。经典的异常模拟策略,如旋转 [12] 和剪切 [11],在检测细粒度异常模式 [16] 方面表现不佳。一种简单而有效的策略称为 CutPaste [16],它随机选择原始图像内的矩形区域,然后将内容复制并粘贴到图像内的不同位置。[36] 中提出并在 [37] 中采用的另一种策略使用二维 Perlin 噪声来模拟更逼真的异常图像。利用模拟的异常图像和相应的地面真实掩码,[29, 36, 37] 使用分割网络对异常进行局部化。在我们的系统中,我们采用 [36] 的思想进行异常模拟和分割。

总的来说是多种噪声模拟的方式

在这里插入图片描述
图 1. DeSTSeg 概览。训练期间生成并使用合成异常图像。在第一步 (a) 中,使用合成输入训练学生网络,以从干净图像生成与教师网络类似的特征表示。在第二步 (b) 中,将学生和教师网络的归一化输出的元素乘积连接起来并用于训练分割网络。分割输出是预测的异常分数图。

三、 方法

提出的 DeSTSeg 由三个主要部分组成:预训练的教师网络、去噪学生网络和分割网络。如图 1 所示,将合成异常引入正常训练图像中,并分两步训练模型。

  • 在第一步中,模拟异常图像用作学生网络输入,而原始干净图像则作为教师网络的输入。教师网络的权重是固定的,但用于去噪的学生网络是可训练的。
  • 在第二步中,学生模型也是固定的。学生和教师网络都将合成异常图像作为输入,以优化分割网络中的参数来定位异常区域。
  • 对于推理,以端到端模式生成像素级异常图,并通过后处理计算相应的图像级异常分数。
3.1. 合成异常生成

我们的模型训练依赖于合成异常图像,这些图像使用 [36] 中提出的相同算法生成。生成随机二维 Perlin 噪声,并按预设阈值进行二值化,以获得异常掩码 M 。通过用无异常图像内部 和来自外部数据源 A 的任意图像的线性组合替换掩码区域来生成异常图像 Ia ,不透明度因子 β 在 [0.15, 1] 之间随机选择。
在这里插入图片描述

表示元素乘法运算。异常生成在训练期间在线进行。通过使用该算法,可以引入三个好处。首先,与绘制矩形异常掩模[16]相比,随机Perlin噪声生成的异常掩模更加不规则,与实际异常形状相似。其次,用作异常内容A的图像可以任意选择,而无需精心选择[36]。第三,不透明度因子β的引入可以看作是一种数据增强[38],可以有效增加训练集的多样性。

3.2. 去噪学生-教师网络

在以前的多级知识提炼方法 [26, 31] 中,学生网络的输入(正常图像)与教师网络的输入相同,学生网络的架构也是如此。然而,我们提出的去噪学生网络和教师网络将成对的异常和正常图像作为输入,去噪学生网络具有不同的编码器解码器架构。在以下两段中,我们将探讨这种设计的动机。首先,如第 1 节所述,应建立一个优化目标,以鼓励学生网络生成不同于教师的异常特定特征我们进一步赋予学生网络一个更直接的目标:在教师网络监督的异常区域上构建正常特征表示。由于教师网络已经在大型数据集上进行了预训练,因此它可以在正常和异常区域生成判别性特征表示。因此,去噪学生网络在推理过程中将生成与教师网络不同的特征表示。此外,如第 2 节所述,基于记忆的方法在记忆库中寻找与查询项目最相似的正常项目,并使用它们的相似性进行推理。同样,我们优化去噪学生网络以重建正常特征。其次,考虑到特征重建任务,我们得出结论,学生网络不应复制教师网络的架构。考虑到重建早期层特征的过程,众所周知,CNN 的较低层捕获局部信息,例如纹理和颜色。相反,CNN 的上层表达全局语义信息 [9]。回想一下,我们的去噪学生网络应该从教师网络中重建相应正常图像的特征,这样的任务依赖于图像的全局语义信息,并且不能仅靠几个较低层完美完成。我们注意到,所提出的任务设计类似于图像去噪,不同之处在于我们希望在特征空间中对图像进行去噪。编码器解码器架构广泛用于图像去噪。因此,我们采用它作为去噪学生网络的架构。还有一种替代方法是使用教师网络作为编码器,并将学生网络反转为解码器 [9, 33];然而,我们的初步实验结果表明,完整的编码器-解码器学生网络表现更好。一种可能的解释是,预先训练的教师网络通常在 ImageNet 上使用分类任务进行训练;因此,最后一层的编码特征缺乏足够的信息来重建各级特征表示。

按照 [31],教师网络是一个经过 ImageNet 预训练的 ResNet18 [14],其中删除了最后一个块(即 conv5 x)。输出特征图从剩余的三个块中提取,即 conv2 x、conv3 x 和 conv4 x,分别表示为 T 1 T ^1 T1 T 2 T ^2 T2 T 3 T ^3 T3。对于去噪学生网络,编码器是一个随机初始化的 ResNet18,所有块分别命名为 S E 1 S^1_E SE1 S E 2 S^2_E SE2 S E 3 S^3_E SE3 S E 4 S^4_E SE4 。解码器是一个反向 ResNet18(通过用双线性上采样替换所有下采样),有四个残差块,分别命名为 S D 4 S^4_D SD4 S D 3 S^3_D SD3 S D 2 S^2_D SD2 S D 1 S^1_D SD1

我们最小化 T k T ^k Tk 和​​ S D k S^k_D SDk 中的特征之间的余弦距离, k = 1 , 2 , 3 k = 1, 2, 3 k=1,2,3 F T k ∈ R C k × H k × W k F_{T_k} ∈ R^{C_k ×H_k ×W_k} FTkRCk×Hk×Wk 表示来自 T k T_k Tk 层的特征表示, F S k ∈ R C k × H k × W k F_{S_k} \in R^{C_k ×H_k ×W_k} FSkRCk×Hk×Wk 是来自 S D k S^k_ D SDk 层的特征表示,余弦距离可以通过公式 (2) 和公式 (3) 计算。 i i i j j j 代表特征图上的空间坐标。具体而言, i = 1... H k i = 1...H_k i=1...Hk j = 1... W k j = 1...W_k j=1...Wk。损失是三个不同特征级别的距离之和,如公式 (4) 所示。

在这里插入图片描述

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

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

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

相关文章

第T9周:Tensorflow实现猫狗识别(2)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 具体实现 (一)环境 语言环境:Python 3.10 编 译 器: PyCharm 框 架: Tensorflow 2.10.0 (二)具体…

分布式锁的实现原理

作者:来自 vivo 互联网服务器团队- Xu Yaoming 介绍分布式锁的实现原理。 一、分布式锁概述 分布式锁,顾名思义,就是在分布式环境下使用的锁。众所周知,在并发编程中,我们经常需要借助并发控制工具,如 mu…

搭建帮助中心到底有什么作用?

在当今快节奏的商业环境中,企业面临着日益增长的客户需求和竞争压力。搭建一个有效的帮助中心对于企业来说,不仅是提升客户服务体验的重要途径,也是优化内部知识管理和提升团队效率的关键。以下是帮助中心在企业运营中的几个关键作用&#xf…

深入浅出剖析典型文生图产品Midjourney

2022年7月,一个小团队推出了公测的 Midjourney,打破了 AIGC 领域的大厂垄断。作为一个精调生成模型,以聊天机器人方式部署在 Discord,它创作的《太空歌剧院》作品,甚至获得了美国「数字艺术/数码摄影」竞赛单元一等奖。 这一事件展示了 AI 在绘画领域惊人的创造力,让人们…

python+docx:(二)页眉页脚、表格操作

目录 页眉页脚 表格 表格样式 插入表格 插入行/列 合并单元格 单元格 页眉页脚 页眉页脚操作需要访问文件的section,可通过添加页脚来添加页码。 from docx import Document from docx.enum.text import WD_PARAGRAPH_ALIGNMENT, WD_ALIGN_PARAGRAPH, WD_CO…

Matlab Simulink 电力电子仿真-单相电压型半桥逆变电路分析

目录 一、单相电压型半桥逆变电路仿真模型 1.电路模型 2.电路模型参数 二、仿真分析 三、总结 1.优缺点 2.应用场景 一、单相电压型半桥逆变电路仿真模型 1.电路模型 单相电压型半桥逆变电路是一种常见的逆变电路,主要用于将直流电源转换为交流电源。 &…

C++入门——“C++11-lambda”

引入 C11支持lambda表达式,lambda是一个匿名函数对象,它允许在函数体中直接定义。 一、初识lambda lambda的结构是:[ ] () -> 返回值类型 { }。从左到右依次是:捕捉列表 函数参数 -> 返回值类型 函数体。 以下是一段用lam…

如何保护LabVIEW程序免遭反编译

在正常情况下,LabVIEW程序(即编译后的可执行文件或运行时文件,如 .exe 或 .llb)无法直接被反编译出源码。然而,有一些需要特别注意的点: 1. LabVIEW的编译机制 LabVIEW编译器会将源码(.vi文件&a…

提升76%的关键-在ModelMapper中实现性能提升的几种方法

目录 前言 一、ModelMapper基础知识 1、深入ModelMapper 2、深入Configuration配置 3、深入MappingEngineImpl 二、默认加载模式 1、基础测试代码 三、持续优化,慢慢提升 1、增加忽略字段 2、设置忽略空值模式 3、设置命名模式 4、采用精准匹配模式 四、…

【C语言】结构体、联合体、枚举类型的字节大小详解

在C语言中,结构体(struct)和联合体(union) 是常用的复合数据类型,它们的内存布局和字节大小直接影响程序的性能和内存使用。下面为大家详细解释它们的字节大小计算方法,包括对齐规则、内存分配方…

【优选算法】位运算

目录 常见位运算总结1、基础位运算2、给一个数n,确定它的二进制位的第x位上是0还是13、将一个数n的二进制位的第x位改成14、将一个数n的二进制位的第x位改成05、位图的思想6、提取一个数n的二进制位中最右侧的17、将一个数n的二进制位中最右侧的1变为08、位运算的优…

jQuery九宫格抽奖,php处理抽奖信息

功能介绍 jQuery九宫格抽奖是一种基于jQuery库的前端抽奖效果。通过九宫格的形式展示抽奖项,用户点击抽奖按钮后,九宫格开始旋转,最终停在一个随机位置上,此位置对应的抽奖项为用户的中奖结果。 本文实现九宫格的步骤为&#xf…

AI界的信仰危机:单靠“规模化”智能增长的假设,正在面临挑战

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Unity类银河战士恶魔城学习总结(P149 Screen Fade淡入淡出菜单)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了进入游戏和死亡之后的淡入淡出动画效果 UI_FadeScreen.cs 1. Animator 组件的引用 (anim) 该脚本通过 Animator 控制 UI 元…

【C语言篇】探索 C 语言结构体:从基础语法到数据组织的初体验

我的个人主页 我的专栏:C语言,希望能帮助到大家!!!点赞❤ 收藏❤ 目录 什么是结构体结构体的定义与使用结构体内存布局嵌套结构体与指针结构体数组的操作结构体与函数结构体内存对齐机制位域与结构体的结合动态内存分…

COMSOL工作站:配置指南与性能优化

COMSOL Multiphysics 求解的问题类型相当广泛,提供了仿真单一物理场以及灵活耦合多个物理场的功能,供工程师和科研人员来精确分析各个工程领域的设备、工艺和流程。 软件内置的#模型开发器#包含完整的建模工作流程,可实现从几何建模、材料参数…

大语言模型LLM的微调代码详解

代码的摘要说明 一、整体功能概述 这段 Python 代码主要实现了基于 Hugging Face Transformers 库对预训练语言模型(具体为 TAIDE-LX-7B-Chat 模型)进行微调(Fine-tuning)的功能,使其能更好地应用于生成唐诗相关内容的…

qt5.14.2跟vs2022配置

1.qt6要在线安装,安装时间比较长,要求网络要稳定,不适合快速安装 2.使用qt5.14.2离线安装包,安装速度快,可以快速安装。 3.安装完qt.5.14.2后打开QtCreate4.0.1,打开 工具->选项->Kits,发现如下图: 没…

【拥抱AI】RAG(Retrieval-Augmented Generation)知识库的切片策略及其改进

1. RAG简介 RAG是一种结合了信息检索和文本生成的技术,它通过从一个外部的知识库中检索相关信息来增强生成模型的能力。这种方法可以提高生成内容的相关性和准确性,特别是在处理长文档时,有效的文本切片策略对于提升检索效率和质量至关重要。…

webrtc ios h264 硬编解码

webrtc ios h264 硬编解码 一 ios 系统支持 从ios8开始,苹果公司开放了硬解码和硬编码API(即 VideoToolbox.framework API) 二 主要api 1 主要解码函数 VTDecompressionSessionCreate // 创建解码 session VTDecompressionSession…