用于工业异常检测的不对称学生-教师网络
- 摘要
- 介绍
- 模型架构
- 总体介绍:
- 教师网络
- 学生网络
- 实验
- 结论
时间:2022.10.14
期刊:WACV
之前师生网络结构的不足:
- 具有类似体系结构的学生网络,当输入不属于训练分布的数据时,它会推断出与教师类似的输出,给出低异常分数。
- 也就是说师生网络结构相似时,在训练数据分布外的数据,学生网络会预测出错,即很大概率把异常数据预测为无缺陷的数据。
- 解决:提出不对称的师生网络架构
前置知识:
- 规范化流:一类生成模型,通过使用规范化流,可以将复杂的数据分布映射到一个已知的简单分布上,这样就可以实现从简单分布中采样来生成符合原始数据分布的样本。归一化流由多个后续仿射耦合块组成。
- Real NVP使用了一系列的仿射耦合层(affine coupling layer),每一层都将输入数据分成两个部分:一个部分直接输出,另一个部分通过仿射变换来作为下一层的输入。
这样的设计使得模型能够保持输入数据的维度不变,并且允许在训练过程中计算概率密度函数的导数。
我们基于Real NVP[15]训练归一化流,以将训练分布转换为正态分布N(0;I)。
摘要
文章贡献:
-
我们的方法通过高度不对称的网络作为学生-教师对来避免从教师到学生的非期望的泛化。
-
我们通过引入作为教师的双射规范化流来改进学生-教师网络
-
通过利用师生距离,我们的AST优于教师的密度估计能力。
工业缺陷检测,一般使用异常检测的方法,它的可用数据集(带有缺陷的数据集)很少或不完整。
这项工作发现了AD的学生-教师方法中以前未知的问题,并提出了一种解决方案,即训练两个神经网络,为无缺陷的训练示例产生相同的输出。
师生网络的核心假设是,对于异常情况,两个网络的输出之间的距离更大,因为它们在训练中不存在。
然而,以前的方法存在学生和教师架构的相似性,因此对于异常情况,距离非常小,
因此,我们提出了非对称师生网络(AST)。
作为教师,我们训练一个用于密度估计的归一化流,作为学生,我们训练一个传统的前馈网络,以触发较大距离的异常:与正常数据相比,归一化流的双向性强制教师输出异常的差异。
在训练分布之外,由于其根本不同的架构,学生无法模仿这种差异。
我们的AST网络通过归一化流来补偿错误估计的可能性,该归一化流在以前的工作中被替换用于异常检测。
介绍
首先,教师在一个前置任务上接受训练,以学习语义嵌入。在第二步中,对学生进行训练,使其与老师的输出相匹配。
这样做的动机是,学生只能在正常数据上匹配教师的输出,因为学生只接受正常数据的训练。
学生和老师的输出之间的距离被用作测试时异常的指标。
假设与无缺陷的例子相比,有缺陷的例子的该距离更大。
之前存在的问题:具有类似体系结构的学生网络,当输入不属于训练分布的数据时,它会推断出与教师类似的输出,给出低异常分数。
内射性是指神经网络中节点与其他节点以及自身之间的连接关系,它在处理序列数据和记忆相关任务中起到重要作用。
通常,由于常见神经网络的内射性缺失,不能保证分布外的输入将导致两个输出的足够大的变化。
与规范化流相比,传统网络不能保证为分布外输入提供分布外输出。
这些问题促使我们使用不对称的师生对(AST):双射归一化流充当教师,而传统的序列模型充当学生
通过这种方式,教师保证对异常引起的输入变化敏感。此外,使用不同的体系结构,从而使用不同的可学习函数集,加强了分布外样本的远距离输出的影响。
**作为教师的前置任务,我们通过最大似然训练将图像特征和/或深度图的分布优化为正态分布,**这相当于密度估计。这种优化本身在之前的工作中被用于异常检测,利用可能性作为异常分数:正常的低可能性应该是异常的指标。然而,Le和Dinh已经表明,即使是完美的密度估计也不能保证异常检测。
我们表明,与教师获得的可能性相比,我们的师生距离是异常检测的更好度量。
使用归一化流本身进行异常检测的优点是,可以补偿可能的可能性估计错误:如果将正常的低可能性错误地分配给正常数据,则学生可以预测该输出,因此仍然会产生较小的异常分数。如果将正常的高可能性错误地分配给异常数据,则学生无法预测该输出,再次导致高异常分数。
通过这种方式,我们将师生网络和密度估计的好处与归一化流相结合。我们通过位置编码和使用3D图像掩蔽前景来进一步增强检测。
模型架构
总体介绍:
训练两个模型,一个学生模型fs和一个教师模型ft。
训练过程分为两个阶段:
首先,优化教师模型,通过归一化流将训练分布双射地转换为正态分布N(0;I)。
其次,通过最小化训练样本x∈ X的fs(x)和ft(x)之间的距离,优化学生以匹配教师输出。在测试时应用该距离进行异常评分,。
我们对输入图的空间维度使用正弦位置编码[50]作为归一化流ft的条件。这样,特征的出现与其位置有关,以检测异常。
教师网络
对于教师的规范化流架构,我们使用4个耦合块
输入:x是wXh的n维特征的特征映射,(先固定排列,再偶信道分割),在这些耦合块中,在随机选择保持固定的排列之后,输入x的通道沿着通道被均匀地分成部分x1和x2。这些部分中的每一个都与作为静态条件的位置编码c相连接。
其中,日是元素乘积,[…,…]表示串联,一个耦合块的输出是沿信道的Y1和Y2的级联。
X1和x2通过子网络SI和TI,来计算对应的,仿射变换和移位参数。
每对内部子网络si和ti被设计为具有一个隐藏层的一个浅卷积网络ri,该隐藏层的输出被划分为尺度分量和移位分量。
训练过程使用了伽马技巧等方法,通过优化均值来最小化负对数似然函数值。
学生网络
一个具有残差块的简单全卷积网络。
每个残差块由3×3卷积层的两个序列、批量归一化[25]和泄漏ReLU激活组成。我们添加卷积作为第一层和最后一层,以增加和减少特征维度。
与老师类似,学生将图像特征作为输入。
此外,位置编码c被级联。
输出维度与教师匹配,以实现逐像素的距离计算。
在给定训练集x的情况下,在输出的像素位置(i;j)处,我们最小化训练样本x∈ X上学生输出fs(x)和教师输出ft(x)之间的欧式距离的平方(放大差异)。
实验
- MVTec AD[6]和MVTec 3D-AD
对于这两个数据集,训练集只包含无缺陷数据,测试集包含无缺陷和有缺陷的示例。
除了图像级标签外,数据集还提供了关于缺陷区域的像素级注释,我们使用这些注释来评估缺陷的分割。
MVT2D,是一个高分辨率的2D RGB图像数据集,包含10个对象和5个纹理类别。测试集中总共有73种缺陷类型,例如,以各种尺寸和形状的位移、裂纹或划痕的形式出现。
MVTec 3D-AD,我们称之为MVT3D,是一个非常新的3D数据集,包含10个类别的2D RGB图像和3D扫描。这些类别包括可变形和不可变形的物体,部分具有自然变化(例如桃和胡萝卜)。除了MVT2D中的缺陷类型之外,还存在只能从深度图中识别的缺陷,例如凹陷。
我们使用在ImageNet[13]上预训练的EfficientNet-B5[47]的第36层输出作为特征提取器。该特征提取器在学生和教师网络的训练期间不被训练。 - 教师网络
对于教师的规范化流架构,我们使用4个耦合块,这些耦合块以具有32个通道的位置编码为条件。
每对内部子网络si和ti被设计为具有一个隐藏层的一个浅卷积网络ri,该隐藏层的输出被划分为尺度分量和移位分量。
在ri中,我们使用ReLU激活。
- 学生网络
对于学生网络,我们使用n=4个残差卷积块。
同样,我们从老师那里接管了时期的数量和优化器参数。
与异常检测一样,我们通过计算接收器工作特性下的面积(AUROC)来评估我们的方法在图像级别上的性能。
为了在像素级测量异常的分割,我们在给定数据集中的地面实况掩码的情况下计算像素级的AUROC。
表2显示了我们的方法的AUROC和之前检测15类MVT2D异常的工作,以及纹理、对象和所有类的平均值。
- 实验结论
我们在所有类别的平均检测AUROC上都设置了一个新的最先进的性能,将其略微提高到99.2%。
在这些对象中,除了PatchCore[36]之外,我们以0.9%的相对较大的优势超过了以前的工作。
特别是与两种学生-教师方法[7,51]相比,分别显著提高了6%和3.6%。
此外,与当前最先进的密度估计器[22,39]的可能性相比,我们的师生距离显示出更好的异常指标,后者与我们的老师一样,是基于归一化流的。
结论
贡献:
1.不对称师生网络
2.引入规范化流改善网络
3.利用师生距离而不是密度估计,来优化模型