摘要
图像异常检测旨在识别并定位图像中的异常区域,针对现有算法中不同层次特征信息利用不充分的问题,提出了基于多层次特征融合网络的图像异常检测算法。通过使用融合了异常先验知识的伪异常数据生成算法,对训练集进行了异常数据扩充,将异常检测任务转化为监督学习任务;构建了多层次特征融合网络,将神经网络中不同层次特征进行融合,丰富了特征中的低层纹理信息和高层语义信息,使得用于异常检测的特征更具区分性;训练时,设计了分数约束损失和一致性约束损失,并结合特征约束损失对整个网络模型进行训练。实验结果表明,MVTec数据集上图像级检测接收机工作特性曲线下面积(area under the receiver operating characteristic, AUROC)平均值为98.7%,像素级定位AUROC平均值为97.9%,每区域重叠率平均值为94.2%,均高于现有的异常检测算法。
Abstract
Image anomaly detection aims to identify and locate the abnormal region in an image. To address the issue on the insufficient utilization of different-level feature information in the existing methods, an image anomaly detection method based on multi-level feature fusion network was put forward. By using the pseudo anomaly data generation algorithm incorporated with the anomaly prior knowledge, the anomaly data of the training set were augmented, and then the anomaly detection task was transformed into a supervised learning task. A multi-level feature fusion network was constructed to enriches the low-level texture information and high-level semantic information of features by fusing the different levels of features in the neural network, which could make the features used for anomaly detection more discriminative. In the training phase, the score constraint loss and the consistency constraint loss were designed and combined with the feature constraint loss to train the whole network model. Experimental results on the MVTec dataset showed that the proposed model could achieve 98.7% AUROC (area under the receiver operating characteristic) mean value in the detection task, 97.9% AUROC mean value in the pixel-wise localization task and 94.2% mean value of per-region-overlap in the localization task, which outperformed several existing anomaly detection approaches.
异常检测通常是指在异常先验知识有限甚至缺失的情况下,检测并定位出与正常模式不同的异常模式。在计算机视觉领域中,图像中的异常通常表现出局部性,如物体表面的划痕、破损等或者因部分结构扭曲而显示出的缺陷,很多应用任务都涉及异常检测问题,如工业图像缺陷检测[1-3]、医学图像分析[4]和视频监控[5-6]等。与常见的监督分类问题[7-8]不同,图像中的异常模式相比于正常模式十分罕见,在形式上呈现多样性,因此难以获取足够的有标签或无标签的异常数据[9]用于模型训练。为了解决这一挑战,研究者们通常仅使用正常数据来训练异常检测器,现有的检测算法总体上可分为三类:基于重构的方法[10-13]、基于概率预测的方法[14-18]以及基于单类分类[19-23]的方法。
基于重构和基于概率预测的方法,在训练时模型通常仅学习正常示例的特征表示或数据分布,测试时那些无法被模型很好表示的示例将被视为异常。然而,Hendrycks等[23]表明,除了正常数据,在训练时引入一些已知的异常来增加异常先验知识,可以显著地提高异常检测性能。基于单类分类的方法[19],旨在学习一个具有判别力的特征空间,将仅包含正常模式的特征区域与所有的异常特征区域分离开来。Liznerski等[21]提出完全卷积数据描述(fully convolutional data description,FCDD)算法,该算法在训练时使用正常数据和伪异常数据,通过交叉熵分类损失训练一个超球体,实现将正常数据特征聚集在超球体球心附近,异常数据特征映射到远离球心的区域,测试阶段利用数据点到球心的距离来生成相应的异常分数。然而,该算法存在如下三个缺点:①所使用的伪异常数据类型单一,这使得模型在测试阶段无法很好地处理复杂多样的真实异常模式;②所使用特征的质量不高,缺乏对图像底层纹理信息的利用;③直接通过将数据点到球心的距离转化为异常分数,使得模型性能严重依赖于数据的特征质量,当特征质量不高时,模型性能十分有限。
为了解决FCDD算法存在的上述缺点,构建了一个多层次特征融合网络,用于提取和融合不同类型的特征,该网络主要包括以下三个部分:主干网络、统计纹理学习网络 [24](statistical texture learning network,STLNet)以及自校准卷积模块[25](self-calibrated convolutions block)。另外,与FCDD算法不同,通过将数据特征经过一个全连接层映射的方式生成相应的异常分数可使模型能够很好地应对特征质量不高的情况。具体而言:首先通过自监督方式在正常训练图像上生成伪异常,同步训练多层次特征融合网络和一个单类分类器,使正常数据特征集中在设定的超球球心附近,生成的伪异常数据特征映射在尽可能远离球心的区域;然后使用一个全连接层将正常数据和异常数据特征映射为异常分数,并使得正常数据的异常得分小,异常数据的异常得分大;最后考虑到数据特征与分数之间应保持相类似的拓扑结构,提出了特征与分数之间一致性约束项,用于最终损失函数的设计。
1 多层次特征融合网络
多层次特征融合网络如图1所示,该网络整体上可以分为主干网络、纹理特征提取网络[24]和自校准模块[25]三个部分。通过将STLNet提取的底层纹理特征和自校准模块生成的高层语义特征进行有效的融合,得到该网络最终的输出。
1.1 主干网络
主干网络为残差网络(residual network,ResNet)[26],一个多尺度特征提取器,它的低层网络生成具有较少上下文信息的高分辨率特征,高层网络生成具有较多上下文信息的低分辨率特征。对于STLNet,它由纹理增强模块(texture enhancement module,TEM)和金字塔纹理特征提取模块(pyramid texture feature extraction module,PTFEM)两个模块组成。该网络首先融合ResNet前两层网络输出的特征,并送入TEM中提取一级纹理特征;然后将TEM提取的纹理特征和ResNet前两层网络输出的特征进行融合,输入PTFEM抽取多尺度纹理特征;最后融合ResNet前两层网络输出的特征、一级纹理特征和多尺度纹理特征获取最终的图像底层纹理特征。自校准模块通过下采样-上采样操作间接地增大了卷积核的感受野,通过将ResNet第三层网络输出的特征输入自校准模块中获得更高质量的特征。

图1多层次特征融合网络
Fig.1Multi-level feature fusion network
1.2 纹理特征提取网络
STLNet从统计学角度学习图像纹理特征,提出了使用量化计数算子(quantization and counting operator,QCO)来描述和统计图像中纹理信息的方法,分析了图像底层信息的分布。考虑到在异常检测任务中,图像中不同纹理之间的差异性,通过STLNet提取底层纹理特征,有效地刻画了图像中正常和异常区域的纹理,提高了异常检测的性能。STLNet设计了TEM和PTFEM两个模块,分别使用一维量化计数算子和二维量化计数算子描述图像中的纹理分布。对于TEM,如图2所示,它逐个考量每个像素在特征空间中的分布情况。
首先通过计算输入特征图中的每个像素特征与其全局特征的余弦距离,得到特征相似度向量,其中K=H×W,H和W分别表示输入特征图的高度和宽度。
然后使用一维QCO将M量化成N个级别,得到量化矩阵和量化级别L=[L1,L2,···,LN],其中Ln=(Mmax-Mmin)÷N×n+Mmin。表示向量M第i像素相似值Mi所属的量级级别,Ei,n表示向量M第i像素相似值Mi在第n量化级别上的值,Ei,n的计算公式为:

(1)
将量化级L和归一化后的量化矩阵E′融合生成量化映射矩阵,B的计算公式为:
(2)
式中,Cat()表示将两个向量拼接为一个矩阵。
最后将量化映射B通过多层感知机(multilayer perceptron,MLP)增加通道数并与全局特征相融合获得统计特征,其中C表示通道数。直接从ResNet浅层提取的底层特征质量通常较低,因此TEM利用自注意力机制设计了一个可学习的映射矩阵,该矩阵融合所有其他节点特征来更新统计特征D,得到重构的D′;将特征D′的信息平均分配给输入的每个像素,生成高质量的纹理特征R=D′·E。
对于PTFEM,如图3所示,它使用二维QCO来逐对考量两个相邻像素在特征空间中的分布情况,旨在计算特征图相邻像素之间的共生关系,是对一维QCO的扩展。此外,PTFEM还使用四个不同尺度(1,2,4,8)的并行分支来提取多尺度纹理特征。每个分支上的特征图被划分为不同数量的子区域,每个子区域通过纹理特征提取单元得到相对应的纹理表示;将每个分支所得的特征图上采样至输入特征图大小,并进行特征融合,生成多尺度纹理特征。

图2纹理增强模块
Fig.2Texture enhancement module

图3金字塔纹理特征提取模块
Fig.3Pyramid texture feature extraction module
1.3 自校准模块
主干网络只使用了ResNet的前三层网络,导致网络的感受野较小。因此,为了获得更大感受野网络下的数据特征,且不改变特征图的高度和宽度,将ResNet第三层网络输出的特征送入自校准卷积模块,通过对特征图进行下采样间接增加卷积核的尺寸,来扩大网络的感受野,进而生成语义信息更为丰富的特征。
自校准模块在两个不同的尺度空间进行卷积变换,高效地收集了每个空间位置的上下文信息。如图1所示,在原始尺度空间中,输入特征经过Conv-BN操作(Conv表示卷积操作,BN表示批次归一化操作),不改变特征图宽度和高度;在小尺度特征空间中,输入特征首先经过平均池化下采样(下采样率为r)后通过Conv-BN操作,然后上采样到原始特征图尺寸,并与原始特征进行相加融合,经过Sigmoid激活后与原始尺度空间中特征相乘并通过Conv-BN操作获得最终的输出。
2 伪异常与损失
2.1 伪异常生成
在异常检测任务中,难以获取充足的异常数据,因此研究人员通常仅使用正常数据来训练模型。然而Liznerski等[21]的研究表明,在训练阶段引入一些人为生成的异常数据可以有效地提升模型的检测性能。受此启发,本研究采用了两种伪异常生成算法在正常训练图像上生成伪异常,并为每张伪异常图像生成相应的掩膜[21](mask),如图4所示。其一为使用“五彩纸屑噪声”生成合成异常,其二为通过CutPaste[17]随机剪切图像上一小块区域然后贴在图像上的随机位置制造异常。虽然生成的伪异常与真实异常存在不同,但是实验表明,在训练集中引入伪异常数据,可以促使模型对不规则性的学习,使得模型在处理真实缺陷数据时具有很好的泛化能力。

图4伪异常生成图
Fig.4Pseudo exception generating graph
2.2 特征约束
通过改进超球体分类[21-22](hypersphere classifier,HSC)损失提出了正常-异常特征约束损失,如图5所示,该约束项旨在学习一个超球体,通过对神经网络ψ(·,W)的训练,将正常数据特征聚集在球心附近,异常数据特征映射在远离球心区域[19]。因为图像中的异常通常是细粒度的,为了更准确地分割出图像中的缺陷区域,这里采用密集的像素级预测,即预测出每个像素所属的类别(正常或异常)。设X1,X2,···,XN表示图像像素样本集合,y1,y2,···,yN表示每个像素所对应的标签,其中yi=0表示正常、yi=1表示异常。特征约束损失表示为:
(3)
式中,,表示像素Xi到超球体球心的距离,球心为原点,ψ表示特征学习网络,表示像素Xi的特征向量,W为网络中的参数。通过最小化学习一个超球体,使得正常像素特征集中在超球体内,异常像素特征映射到超球体外。通过l(z)=exp(-A(Xi))将像素Xi到球心的距离A(Xi)转换为像素属于正常类别的概率,使用交叉熵损失训练网络使得正常像素到球心的距离尽可能小,异常像素到球心的距离尽可能大。

图5超球体分类
Fig.5Hypersphere classifier
在异常检测与分割任务中,训练集往往不包含异常数据,通过引入伪异常生成技术,一定程度上解决了该问题。但是,该技术所生成的异常图像中的异常像素数量远远小于正常像素数量,这带来了类别不平衡问题。为了缓解类别不平衡对模型训练阶段的影响,在正常和异常特征损失中引入不同的权重,重新设计如下特征约束损失。
(4)
式中,N1表示训练图像中正常像素个数,N2表示异常像素个数。
2.3 分数约束
如2.2节所述,特征约束将正常像素的特征统一映射到超球体内,异常像素的特征映射到超球体外,在特征层面对正常像素和异常像素进行区分。但在图像异常分割任务中,还需要预测每个像素的异常得分用于判断其所属的类别。与FCDD[21]直接将像素特征点到超球体球心的距离转化成异常分数的方法不同,本文使用一个全连接层,将像素特征F映射为异常得分S,其中θs为网络中的参数,有效地应对所得数据特征质量不高的问题。设计分数约束项使得正常像素异常得分低,异常像素异常得分高。分数约束损失表示为:
(5)
式中,Nn和Na分别表示正常像素个数和异常像素个数,X.n和X.a分别表示正常像素和异常像素,表示像素Xi的异常得分,ψ(Xi,W)表示像素Xi的特征,γ和λ为超参数,本实验中设置γ=2.5,λ=5。中的第一项保证正常像素的异常得分小于阈值γ,第二项保证异常像素和正常像素的异常得分之差大于阈值λ。
2.4 特征与分数之间一致性约束损失
在2.2节和2.3节中,引入伪异常数据来辅助训练异常检测模型,使得异常检测器具有更好的泛化性能,能够在测试阶段识别未知的异常模式。然而,特征约束和分数约束都是对像素特征逐个进行考量,未考虑到像素特征之间的相关性在图像异常检测任务中也起着至关重要的作用。因此,本小节设计了特征与分数之间的一致性损失约束项,通过使像素特征间的拓扑性与分数之间的拓扑性一致,来捕获像素特征之间的相关性。一致性约束如图6所示,红色点表示像素特征,绿色点表示像素得分,不同像素异常得分之间的拓扑结构应与像素特征之间的拓扑结构保持一致,这里使用KL散度[27](Kullback-Leibler divergence)(记作Ω)对两种拓扑结构关系进行一致性约束。

图6一致性约束示意图
Fig.6Consistency constraint diagram
为了便于后续计算,首先将输入的图像X的特征图、分数图的表达形式分别改为和 ,其中K=H×W;然后分别计算特征图F、分数图Z中每一个像素的特征向量与所有像素特征向量之间的欧式距离,得到相应的特征相似度矩阵、分数相似性矩阵。一致性损失函数为:
(6)
式中,K表示图像中的像素点个数,i表示相似性矩阵的第i行,Pi、Qi分别表示第i个像素特征、分数与图像中所有其他像素特征、分数之间的相似性关系。使用Softmax函数σ将相似性关系转换为概率分布,通过计算每一行概率分布之间的KL散度约束特征与分数之间的一致性关系。假设每个batch有N张图像,则最终的一致性损失函数为:
(7)
计算所有像素点之间相似度的代价十分高昂,而且真实异常形式复杂多样,其特征间的相关性难以捕获。因此,本实验中采用将多个像素点打包成像素块(patch)的方式,仅计算正常像素块之间的一致性关系。
2.5 全局损失函数
全局损失函数包括了特征约束损失、分数约束损失和一致性损失,具体形式为:
(8)
式中,α、β、ξ为超参数,本实验中设置α=1,β=1,ξ=1。
在推理阶段,首先使用学习得到的分数映射网络η为每个测试对象生成异常分数图,如式(9)所示,其中Sc表示“异常分数”;然后采用双线性插值技术将分数图上采样为原图大小,得到像素级异常分数,用于图像异常定位;最后使用每张图像像素中最大的异常分数作为该图像的异常得分。
(9)
3 实验
本研究在MVTec[1]数据集上进行实验评估,该数据集包含5 354张高分辨率彩色图像,分为10个对象类别和5个纹理类别,用于异常检测任务。数据集的训练集中仅包含正常图像,测试集由正常图像和具有各种类型缺陷的异常图像组成,同时,这个数据集还为每张有缺陷的测试图像提供了像素级注释。图7展示了该数据集部分类别的一个正常示例图像和一个异常示例图像以及异常所对应的真值图像即Ground_truth,为了便于观察,异常示例图像中的部分异常区域被进行了放大显示。从异常示例图像中可以看出,测试集中的异常图像所包含的缺陷类型各种各样,如划痕、凹痕和破损等物体表面的缺陷,或物体部分结构扭曲的缺陷以及物体不完整而显示出的缺陷。由于该数据集图像数量相对较少,其中每类训练集的图像数量在60~391张不等,分辨率在700像素×700像素和1 024像素×1 024像素之间,且训练集中不包含异常图像,这给深度表征学习带来了挑战,因此在训练模型时,通过复制操作(repeat)对训练集中的数据进行10倍扩充,并在扩充后选取一半数量的图像用于生成伪异常数据。与现有的方法一致,本研究为MVTec数据上每个类别单独训练一个分类器。

图7MVTec数据集图像
Fig.7Image of MVTec dataset
3.1 实验细节
模型的主干网络为ResNet50,参数初始化为在ImageNet上预训练参数,使用STLNet纹理网络提取底层纹理特征和自校准模块扩大感受野。采用随机梯度下降(stochastic gradient descent,SGD)作为优化器。初始学习率设置为0.001,衰减率为0.000 03,输入图像的分辨率为256像素×256像素,批量大小设置为32,训练迭代次数为200。
3.2 评价指标与实验结果
对于图像级异常检测,使用接收机工作特性曲线下面积(area under the receiver operating characteristic,AUROC)作为评价指标;对于图像缺陷定位,使用像素级AUROC和每区域重叠率[27](per-region-overlap,PRO)作为评价指标,不同于简单地逐像素考量AUROC值,PRO评分对任意大小的异常区域一视同仁。将本研究方法与7种近期提出的典型图像异常检测算法进行比较,包括:基于蒸馏学习的异常检测和异常定位[28](uninformed students: student-teacher anomaly detection with discriminative latent embeddings,US)方法、用于异常检测的无监督元转换器[29](unsupervised Metaformer for anomaly detection,MF)、图像patch支持向量数据描述[30](patch-level support vector data description,PSVDD)算法、FCDD[21]、基于图像patch分布建模的异常检测[16](patch distribution modeling,PaDiM)方法、CutPaste[17]以及基于一类嵌入的反蒸馏异常检测 [31](anomaly detection via reverse distillation from one-class embedding,RD)。
不同方法在MVTec数据集上的实验结果如表1和表2所示,本研究方法中15个类别图像级检测平均精度和像素级检测平均精度均高于现有方法。图像级平均AUROC达到98.7%,像素级平均AUROC和PRO分别达到97.9%和94.2%。对于FCDD和PSVDD,本文遵循它们原论文的实验设置,未在图像级异常检测任务上与FCDD进行比较,且未在像素级异常检测任务上与PSVDD进行比较。异常检测可视化情况如图8所示,将缺陷分为较大缺陷和微小缺陷两类,并通过可视化定性评价其性能,图8(a)为MVTec数据集中部分异常图像,图8(b)为MVTec数据集为异常图像所对应的真值图像,其中白色区域表示图像中具体的异常区域,图8(c)为模型的可视化结果,可以看出本研究方法在整体上产生了优异的检测效果。
表1不同方法在MVTec数据集的图像级检测结果AUROC
Tab.1 AUROC of image-level detection results in MVTec data sets by different methods

表2不同方法在MVTec数据集的实验结果像素级AUROC(左)和PRO(右)
Tab.2 Experimental results of different methods in MVTec data sets at pixel level AUROC (left) and PRO (right)


图8异常检测可视化图
Fig.8Anomaly detection visualization
3.3 伪异常样本比例分析
通过在训练集中引入伪异常样本,将异常检测任务转化为监督学习任务,本小节研究不同伪异常样本比例对本文模型的性能影响。表3给出了6种伪异常样本比例下该方法的实验结果。表3中AUROCAD和AUROCAL及PRO分别表示MVTec数据集中15个类别图像级检测的平均精度和像素级检测的平均精度。通过对表3中的实验结果进行分析,得到如下发现:①模型在训练集中不加入伪异常时,性能表现很差。这是因为本文的特征约束损失和分数约束损失都是针对训练集中存在异常数据而设计的,此时式(4)和式(5)的第二项均会失效,导致实验结果不理想。②模型的检测精度随着训练样本中伪异常比例的增加,呈现先上升再下降的趋势,并且当伪异常样本占所有训练样本的比例为50%时,异常检测性能最优。③相比于仅用训练集中5%的数据生成伪异常,在伪异常样本占所有训练样本50%时,图像级检测平均AUROC提升1.1%,像素级检测平均AUROC和PRO分别提升0.6%和3.9%,证实了在训练时加入适量伪异常样本可以显著提升模型性能。④模型在75%和100%伪异常比例下的实验结果均劣于50%伪异常比例下的实验结果,这是因为在训练集中引入过多的伪异常样本,会使模型过于关注对伪异常模式的学习,导致模型泛化性能下降。
表3本文方法在6种不同伪异常比例下的实验结果
Tab.3 Experimental results of the proposed method under six different pseudo-anomaly ratio

3.4 消融实验
本小节通过大量消融实验,对自校准模块STLNet以及一致性损失的有效性进行验证。将多尺度特征融合网络作为基线模型,该网络直接融合ResNet50前三层网络生成的特征作为其最终输出,仅使用特征约束训练该网络,直接将像素特征点到超球体球心的距离转化成异常分数。消融实验结果见表4,表4中的 AUROCAD和AUROCAL及PRO分别表示MVTec数据集中15个类别图像级检测的平均精度和像素级检测的平均精度,可以观察到自校准模块、STLNet、分数约束以及一致性损失都在一定程度上提高了异常检测性能。
表4消融实验结果
Tab.4 Results of ablation experiment

4 结论
异常模式通常是罕见的、形式多样的,并且难以获取充分的异常数据用于模型训练,这为异常检测任务带来了极大的挑战。因此,本文首先通过自监督的方式生成伪异常数据,扩充了数据集;然后构建一个多层次特征融合网络,使用STLNet抽取底层纹理特征和自校准模块,提取更具表示力的特征用于异常检测;最后使用特征约束损失、分数约束损失和一致性损失联合训练网络模型。实验结果表明,本文方法在异常检测和异常定位等方面的性能显著地优于现有的异常检测算法。