DeSTSeg: Segmentation Guided Denoising Student-Teacher for Anomaly Detection

news2024/11/29 18:51:06

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.coloradmin.cn/o/2249927.html

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

相关文章

Java设计模式 —— 【创建型模式】工厂模式(简单工厂、工厂方法模式、抽象工厂)详解

文章目录 前言一、简单工厂(静态工厂)1、概述2、代码实现3、优缺点 二、工厂方法模式1、概述2、代码实现3、优缺点 三、抽象工厂模式1、概述2、代码实现3、优缺点 四、总结 前言 先看个案例:【手机和手机店】在没有工厂的时候,手…

利用Java爬虫获取阿里巴巴中国站跨境属性的详细指南

在全球化贸易的浪潮中,跨境电商正成为连接全球买家和卖家的重要桥梁。阿里巴巴中国站作为全球领先的B2B电子商务平台,提供了海量的商品信息,其中跨境属性信息对于跨境电商尤为重要。本文将详细介绍如何使用Java编写爬虫,从阿里巴巴…

「Qt Widget中文示例指南」如何为窗口实现流程布局?(二)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 本文将展示如何为不…

鸿蒙学习使用模拟器运行应用(开发篇)

文章目录 1、系统类型和运行环境要求2、创建模拟器3、启动和关闭模拟器4、安装应用程序包和上传文件QA:在Windows电脑上启动模拟器,提示未开启Hyper-V 1、系统类型和运行环境要求 Windows 10 企业版、专业版或教育版及以上,且操作系统版本不低于10.0.18…

Java后端如何进行文件上传和下载 —— 本地版

简介: 本文详细介绍了在Java后端进行文件上传和下载的实现方法,包括文件上传保存到本地的完整流程、文件下载的代码实现,以及如何处理文件预览、下载大小限制和运行失败的问题,并提供了完整的代码示例。 大体思路 1、文件上传 …

SqlServer强制转换函数TRY_CONVERT和TRY_CAST

SqlServer强制转换函数TRY_CONVERT和TRY_CAST的介绍和案例分享 1、本节内容 CAST 和 CONVERT TRY_CAST TRY_CONVERT 适用于: SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics 分析平台系统 (PDW)Microsoft Fabric 中的 SQL 分析端点Micro…

透视投影(Perspective projection)与等距圆柱投影(Equirectangular projection)

一、透视投影 1.方法概述 Perspective projection(透视投影)是一种模拟人眼观察三维空间物体时的视觉效果的投影方法。它通过模拟观察者从一个特定视点观察三维场景的方式来创建二维图像。在透视投影中,远处的物体看起来比近处的物体小&…

linux 中后端jar包启动不起来怎么回事 -bash: java: 未找到命令

一、用以下命令检查jdk版本 输入:java -version,如果JDK 环境变量没有配置,你会看到如下提示 二、配置jdk环境 1.先找到/etc/profile文件,然后在该文件最后面加上以下配置 export JAVA_HOME/usr/local/jdk-21.0.1 export PATH$…

TDengine在debian安装

参考官网文档&#xff1a; 官网安装文档链接 从列表中下载获得 Deb 安装包&#xff1b; TDengine-server-3.3.4.3-Linux-x64.deb (61 M) 进入到安装包所在目录&#xff0c;执行如下的安装命令&#xff1a; sudo dpkg -i TDengine-server-<version>-Linux-x64.debNOTE 当…

Java开发工程师最新面试题库系列——Java基础部分(附答案)

如果你有更好的想法请在评论区留下您的答案&#xff0c;一起交流讨论# 面向对象有哪些特征&#xff1f; 答&#xff1a;继承、封装、多态 JDK与JRE的区别是什么&#xff1f; 答&#xff1a;JDK是java开发时所需环境&#xff0c;它包含了Java开发时需要用到的API&#xff0c;JRE…

linux系统下如何将xz及ISO\img等格式压缩包(系统)烧写到优盘(TF卡)

最近用树莓派做了个NAS&#xff0c;效果一般&#xff0c;缺少监控及UI等&#xff0c;详细见这篇文章&#xff1a; https://blog.csdn.net/bugsycrack/article/details/135344782?spm1001.2014.3001.5501 所以下载了专门的基于树莓派的NAS系统直接使用。这篇文章是顺便复习一…

计算机的错误计算(一百六十八)

摘要 算式“(5^25*(1/25)^(1/5)*3^25(1/25)^(1/5)*5^25*3^(251/5)-(9/25)^(1/5)*3^25*5^25-(1/25)^(1/5)*3^25*5.0^25*(13^(1/5)-3^(2/5.0)))”的值为0。但是&#xff0c;在 MATLAB 中计算它&#xff0c;则输出含有15位整数。 例1. 计算 直接贴图吧&#xff1a; 这样&#x…

Python学习------第十四天

匿名函数 1.函数作为参数来传递 &#xff08;函数的参数中调用另外一个函数&#xff09; #定义一个函数&#xff0c;接受另一个函数作为参数传入 #计算逻辑的传入 def test_func(compute):result compute(1,2)print(result)print(f"{type(result)}")print(f"…

【经典论文阅读】Transformer(多头注意力 编码器-解码器)

Transformer attention is all you need 摘要 完全舍弃循环 recurrence 和卷积 convolutions 只依赖于attention mechanisms 【1】Introduction 完全通过注意力机制&#xff0c;draw global dependencies between input and output 【2】Background 1&#xff1a;self-…

Java——多线程案例

目录 一、单例模式 1.饿汉模式 2.懒汉模式 3.线程安全问题 4.解决线程安全问题(懒汉模式) 二、阻塞式队列 1.什么是阻塞队列 2.生产者消费模型 生产者消费者模型意义&#xff1a; 1.解耦合 2.削峰填谷 3.标准库中的阻塞队列 三、定时器 1.定时器是什么 2.标准库中的…

AI 声音:数字音频、语音识别、TTS 简介与使用示例

在现代 AI 技术的推动下&#xff0c;声音处理领域取得了巨大进展。从语音识别&#xff08;ASR&#xff09;到文本转语音&#xff08;TTS&#xff09;&#xff0c;再到个性化声音克隆&#xff0c;这些技术已经深入到我们的日常生活中&#xff1a;语音助手、自动字幕生成、语音导…

Linux服务器安装mongodb

因为项目需要做评论功能&#xff0c;领导要求使用mongodb&#xff0c;所以趁机多学习一下。 在服务器我们使用docker安装mongodb 1、拉取mongodb镜像 docker pull mongo &#xff08;默认拉取最新的镜像&#xff09; 如果你想指定版本可以这样 docker pull mongo:4.4&#…

Java基础 设计模式——针对实习面试

目录 Java基础 设计模式单例模式工厂模式观察者模式策略模式装饰器模式其他设计模式 Java基础 设计模式 单例模式 单例模式&#xff08;Singleton Pattern&#xff09; 定义&#xff1a;确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问这个实例。适用场景&…

分布式搜索引擎之elasticsearch单机部署与测试

分布式搜索引擎之elasticsearch单机部署与测试 1.部署单点es 1.1.创建网络 因为我们还需要部署kibana容器&#xff0c;因此需要让es和kibana容器互联。这里先创建一个网络&#xff1a; docker network create es-net1.2.加载镜像 这里我们采用elasticsearch的7.12.1版本的…

【工具】JS解析XML并且转为json对象

【工具】JS解析XML并且转为json对象 <?xml version1.0 encodingGB2312?> <root><head><transcode>hhhhhhh</transcode></head><body><param>ccccccc</param><param>aaaaaaa</param><param>qqqq<…