上篇文章通过MVTEC数据的的提出者公开的方法Uninformed Students: Student–Teacher Anomaly Detection with Discriminative Latent Embeddings([1911.02357] Uninformed Students: Student-Teacher Anomaly Detection with Discriminative Latent Embeddings (arxiv.org))进行了基于特征提取的教师学生网络进行异常匹配的原理探索,相信大家对于教师学生网络已经有了初步的认识,这篇文章将通过对Student-Teacher Feature Pyramid Matching for Unsupervised Anomaly Detection([2103.04257] Student-Teacher Feature Pyramid Matching for Anomaly Detection (arxiv.org))(本文将其缩写为STPD)的理解进行深入学习教师学生网络进行异常匹配,一起来看看吧🛬🛬🛬
教师学生网络训练流程
按照惯例,还是贴出网络架构图以方便大家更直观地了解,如图1所示,图中的教师学生网络选择ResNet18的前3个块(即conv2x , conv3x , conv4x)作为金字塔特征提取器。教师网络的参数取ImageNet 上预训练的ResNet - 18的相应值,学生网络的参数随机初始化🪂🪂
图1 STPM网络架构图
训练过程
使用一个预训练的模型(教师模型)来指导一个较小的模型(学生模型)学习,主要是使用了余弦相似性进行度量两网络所提取出的特征之间的差异,同时最小化该差异
- 训练数据集:训练数据集D由一系列无异常的图像组成,表示为 {I1, I2, ..., In} 。
- 目标:目标是捕获正常数据的流形(manifold),通过将教师模型的底层特征与学生模型的特征对齐来实现。
- 输入图像:输入图像Ik是一个三维数组,其中w是宽度,h是高度,c是颜色通道数。
- 教师和学生模型的输出:
这些特征图具有相同的尺寸wl×hl×dl。
- 特征向量:在特征图的每个位置(i,j)(i,j)
- 损失函数:损失函数定义为特征向量在L2范数下的欧几里得距离,并且这些向量是经过L2范数归一化的。这个距离实际上等同于余弦相似度的负值,它是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量,余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似。如图2所示
图2 损失函数计算图
-
图像损失:对于整个图像Ik的损失,是通过计算每个位置的损失然后取平均值得到的。如图3所示
图3 图像损失计算图
- 总损失:总损失是不同金字塔尺度上损失的加权平均,其中αl表示第l个特征尺度对异常检测的影响。在实验中,所有αl被设置为1。如图4所示
图4 两网络之间特征损失
模型进行缺陷预测:
预测方式是通过在一个大小为WxH的预测图像上构建一个同样大小的Ω映射,该映射即代表对应的异常分数。有的同学这时可能就要问了,不是有三层大小不同的特征提取层吗,它是如何构建这样一个映射的呢?
图5 异常分数计算图
首先由每层的异常分数开始说起,对于第L层特征分数的计算,是通过比较教师学生生成的特征图的差异来计算的,接着是构造Ω映射,它使用了双线性插值法将异常分数缩放到同等Ω大小,最后把三层的分数相加,即可获得最后的Ω映射。(双线性插值常用于图像缩放技术,原理是利用已知邻近像素点的灰度值或RGB中的三色值产生未知像素点的灰度值或RGB三色值,目的是由原始图像再生出具有更高分辨率的图像。通俗一点理解就是已知推导未知,从而强化图像)
总结:文章中提出的多尺度特征匹配策略通过在不同层次上对齐学生和教师网络的特征,可以更准确地检测出各种尺寸的异常,这提高了模型对不同类型异常的泛化能力,同时在保持高准确性的同时,还具有很高的效率,总体来说,整体效果很好,能较好地检测出异常。因为论文所展现的实验成果极好,所以我决定一探究竟,下篇我将更新一下这篇论文的代码篇,一起期待一下吧