摘要
提出了对完全卷积数据描述(FCDD)的增量改进,这是一种从异常检测到图像异常分割(也称为异常定位)的自适应单类分类方法。我们分析了其原始损失函数,并提出了一种更类似于其前身的替代方法,即超球面分类器(HSC)。两者都在MVTec异常检测数据集(MVTec AD)上进行了比较——训练图像是无瑕疵的对象/纹理,目标是分割看不见的缺陷,实验结论表明,通过更好地设计 像素级监控 ( pixel-wise supervision ?)实现了一致的改进
一、绪论
异常检测(AD)旨在通过从正样本与没有或很少的此类负样本中学习,以此来识别不同的类别或非类别(正常的语义概念)。在过去几年中,这种无监督的问题已经出现了越来越多的具有新颖方法和若干文献综述的出版物。计算机视觉尤其受到了相当大的关注,这得益于MVTec异常检测数据集(MVTec AD)等公共数据集,该数据集包含对象/纹理的工业图像,并在图像级别和像素级别定义了AD问题。按图像的AD包括标记哪些图像包含缺陷,而按像素的AD,即异常分割(或定位),包括标记哪些像素属于缺陷(可以使用地面真相掩模)。
在本文中,我们在完全卷积数据描述(FCDD)的基础上逐步构建,该模型通过设计,通过应用支持向量数据描述(SVDD)启发的逐像素损失,从卷积神经网络的最后一个特征图输出热图(见图1)。 我们将超球面分类器(HSC)损失函数重新表述为分割任务(最初是为图像设置而设计的),使用Wilcoxon符号秩检验(配对T检验的非参数版本)的临界差(CD)图表明,在较少的训练时间内,性能得到了一致的改善。
二、相关工作
FCDD[4]的灵感来自SVDD的修改,SVDD是一种单类分类(OCC)模型。在本节中,我们总结了其相关的构想,然后重点关注的是它们的增量变化。为了清晰起见,省略了一些细节,例如正则化术语。
Fig,1 Fully Convolutional Data Descriptor (FCDD)
OCC最初被描述为支持向量机(svm)的一种适应,它学习用特征空间中的超平面或超球面从原点分离异常数据点。后来,SVDD,当正常/异常数据点落在超球内部/外部时,会通过激励的 (通过松弛变量)最小化超球的半径。换句话说,正常和异常实例在相反的方向上受到惩罚,因此(分别)向中心靠近和远离中心-注意,这个公式假设是有监督的。
One-Class Deep SVDD,是一个受到 SVDD启发的深度学习模型,使用带着参数 w 的神经网络 ,传入到正样本
中,然后通过如下方式的最小化训练,获取特征向量



(1)
其中, 是超球面在特征空间的中心点,n 表示每一个batch 中正样本的数量。换句话说,到中心点 a 的欧氏距离的均方根是最小的,这个距离在预测时,做为一个异常情况的得分值。注意,这个版本没有考虑异常实例,这使得训练不太稳定,并会(最终)导致特征崩溃(
收敛到常数函数)。在为防止特征崩溃而提出的几种策略中,[9,10]提出了对(1)的扩展,通过应用异常实例的分数,提高了使用监督的可能性,
从而产生一种激励,将(学习的)特征向量远离中心(我们称
为“推送”函数)。此外,在(1)中的距离公式
替换为 Pseudo-Hubert公式



因为它对异常值有刚好的鲁棒性,最终,超球面分类(HSC)的损失函数为:
取值范围是0/1,
是正常/异常。

最后,FCDD(如图1所示),通过重新设计的损失函数HSC,直接分割异常。
主干卷积神经网络(例如VGG)的第一层将特征图馈送到附加的(可学习的)1x1卷积。
在推理阶段,生成低分辨率异常得分图或“热图”(从像素向量到超球面中心的距离),并将其上采样到输入分辨率——下一节将介绍更正式的公式。
许多其他方法(与OCC不同)也存在,这里将不涉及,但有几个主要的研究分支值得注意。
对于异常检测任务,自动编码器(更一般的重建模型)已经进行了广泛的研究和改进,一些变化仍然存在于最先进的(SOTA)。
最近的改进版本也在SOTA中,
基于深度学习的特征提取与经典的机器学习模型(如k近邻和多变量高斯)的组合尽管简单,但也能获得有效的结果。
然而,目前大多数SOTA方法都是基于预先训练的特征提取器和标准化流程。
我们的工作旨在通过为[4]找到更好的损失函数来缩小OCC模型和当前SOTA之间的性能差距,如第3节所述,我们的结果在第5节中证明了其有效性。
三、 损失函数
在本节中,我们先介绍了FCDD 的损失函数,然后提出了我们改进的版本,然后通过比较来阐述他们的原理。
设 为n个图像,m像素的一个batch(
空间维度混淆),
代表着该batch 的ground truth 异常mask(0代表 正样本,1,代表负样本) ,
代表着


图像Xi的索引
首先,神经网络 ,通过参数 w , 通过低分辨率m,生成一个特征图
和每一个像素的得特征df。然后,使用一个带 偏置 的1*1 卷积,输出每一个像素值----以下符号认为该卷积(及其参数)包含在
中,并且省略了中心a, 因为它隐式嵌入其中。
最后,基于高斯核的上采样算子输出异常分数图
(定义为Xij索引),其中h(·)是像素级的Pseudo-Hubert公式。公式(4)是通过最小化损失函数优化后的参数w。



(4)
我们提出以下损失函数作为等式(4)的替代:
(5)
其中, , 分别是一批中所有正常和异常像素的图像和像素索引集合。
公式(4)是正常像素和异常像素(分别为左和右)上的每个图像上的平均异常分数( )的两个项之和的交叉平均值(
)。 事实上,Yij将迭代的一部分归零,因此项不会收敛到任何期望值。 通过校正,可以将p应用于异常像素(而不是每个像素单独)的平均分数,这会干扰反向传播:(非常)高分像素可以补偿通过(非常)低分像素传播的其他像素。因此,我们提出对每个像素都应用P值。

通过这些修改,可以实现嵌套的平均值(外部是交叉图像,内部是交叉像素)。然而,我们建议直接获取 batch 中所有像素的平均值( ),如果不这样做,嵌套的平均值将为较小的异常赋予更多权重。最后,我们通过因子
来缩放异常像素的分数,以补偿正常/异常像素的不平衡,我们的测试表明这是有效的(为简洁起见,省略了细节)– 存在其他(更现代和有效的)补偿不平衡数据集的技术,但我们不关注这个方向。

四、实验
本文的目的是证明提出的损失函数比原本的baseline有所改善,因此我们使用与[4]中相同的程序(下文规定了一些差异)在MVTec AD上对其进行测试——10类物体(例如“晶体管”)和5类纹理(例如“皮革”),每个类别都是独立训练和测试的。
步骤如下:VGG-11,在ImageNet上预训练,冻结 第三个池化层,并在使用第四个池化层之前进行裁剪;
使用随机梯度下降(SGD)对网络进行微调,batch大小为128张图像,Nesterov动量为0.9,权重衰减为10^−4,初始学习率为10^−3,在每个时期减少1.5%。
每个epoch 进行10次 迭代,每个图像有50%的机会被异常图像替换(在下面描述的数据预处理/增强之前),该异常图像可以是合成的或真实的,这取决于实验(不是在同一训练中)。
合成异常
(无监督设置):通过在正常图像上叠加五彩纸屑噪声(随机大小、放置和彩色正方形)自动生成,修改后的像素被视为异常(图2)
。
真实异常(半监督):每种异常类型(根据MVTec AD类别,介于1和6种类型之间)的一个(随机选择的)图像从测试集转移到训练集。
注意,我们的重点是无监督设置,但半监督设置(“一些”异常可用)也进行了测试以供参考。
每个实验用不同的随机种子重复六次,并根据两个度量的逐行平均值来衡量性能:逐像素的(AUROC)和逐像素的(AP)。其中与[4]的差异如下:我们在50个epoch而不是200个epoch运行梯度下降,并且,合成异常在边界上不平滑。
训练图像按以下顺序进行预处理和增强:调整大小至240 x 240;50%的机率在随机位置调整到224 x 224或裁剪到224 x 222;
有50%的机率
将所有参数设置为0.04或将所有参数都设置为0.0005时应用颜色抖动;应用高斯噪声,其平均值为零,标准偏差设置为图像像素值标准偏差的10%(所有通道混淆),每个像素的概率为50%;应用局部对比度归一化(所有通道混淆);在0和1之间对数据进行归一化(最小-最大归一化)。将测试图像调整为224 x 224,然后应用上面最后两个步骤。
我们在两个集群节点PowerEdge C4130(处理器Xeon E5-2680 V4,7核,2.4GHz)上运行了我们的实验,每个节点都有四个GPU Tesla P100-SXM2(16 GiB),我们使用权重和偏差来监控我们的实验。
最低GPU内存要求为5.6 GiB,(特定类别)平均运行时间从33分钟到2小时。
我们使用[4]公开提供的代码进行了修改,以整合第3节中描述的损失。
五、结论
表1和表2比较了从[4](
方程
4
)和我们的(公式5)中获得的跨类别平均结果与基线损失的AUROC和AP。
AUROC的基线结果均复制自[4](带“*”)并由我们复制。
GitHub上提供的Category-specific scores
:
gist.github.com/jpcbertoldo/8db759487279a5eec6fd0fc36764a4b4
图3显示了使用成对Wilcoxon符号秩检验和Bonferroni-Holm校正的CD图(每个度量),(标称)显著性水平为α=10%(
I类错误的概率),考虑到双侧替代假设。
Wilcoxon有符号秩检验的空假设是,两种方法对于任何数据集的秩都是相似的(“它们具有相同的性能”),并且非参数地比较它们的跨数据集性能差异——请注意,MVTec AD中的类别可以被视为独立的数据集,因为它们是单独训练和测试的。
换句话说,它提供了一个更强的统计论据(比较平均性能),因为没有无效假设(即图3中没有用水平红条连接的方法)意味着无论数据集如何,一种方法(通常)都明显优于另一种(所有其他因素都是固定的)。

六、问题总结
如表1和表2所示,我们提供的修改平均而言,性能的提高——“金属螺母”和“瓷砖”类别的改进程度最高(参见第5节中的每个类别的完整表链接)。对象、纹理和所有混淆类的平均得分显示了度量和设置的改善,而在无监督设置中,它们的平均方差降低(参见括号中的标准偏差)。
图3证实了我们的损失函数确实比前一个更好,特别是,图3.b显示,就AP而言,我们在不同数据集中的表现明显更好。
最后,我们还观察到,半监督设置几乎总是比无监督设置表现得更好,即使有非常少的异常图像(1到7,取决于类别),因此在训练集中使用适当异常的效果是提高性能的主要因素。
七、结束语
本文介绍了一种适用于图像异常分割的超球面损失函数。我们强调了FCDD[4](方程式4)中最初使用的损失函数的缺点,并提出了另一种损失函数(方程式5)。
使用成对Wilcoxon符号秩检验对命题的统计意义进行评估,总结在CD图中(图3)。平均而言,我们的建议达到了更好的性能(表1和表2),并且总体而言,无论MVTec-AD中的图像类别如何,排名都更好。
我们强调,本文中引入的新损失可以与其他更好地设计用于分割的神经网络架构(例如U-Net及其改进版本)一起使用,我们预计这将提供更高的改进。