【论文笔记(8)】PaDiM a Patch Distribution Modeling Framework for Anomaly Detection and Localization

PaDiM a Patch Distribution Modeling Framework for Anomaly Detection and Localization

  • Abstract
  • Introduction
  • Related Work
    • Reconstruction-based methods
    • Embedding similarity-based methods
  • Patch Distribution Modeling
    • Embedding extraction
    • Learning of the normality
    • Inference : computation of the anomaly map
  • Experiments
    • Datasets and metrics
      • Metrics
      • Datasets
    • Experimental setups
  • Results
    • A.Ablative studies
      • Inter-layer correlation
      • Dimensionality reduction
    • B. Comparison with the state-of-the-art
      • Localization
      • Detection
    • C.Anomaly localization on a non-aligned dataset
    • D.Scalability gain
      • Time complexity
      • Memory complexity
  • Conclusion

Abstract

我们提出了一个新的Patch分布建模框架,在单类学习的设置下,PaDiM同时检测和定位图像中的异常在。PaDiM利用一个预先训练好的卷积神经网络(CNN)进行patch嵌入,利用多元高斯分布得到正常类的概率表示。它还利用了CNN的不同语义级别之间的相关性来更好地定位异常。PaDiM在MVTec AD和STC数据集上的异常检测和定位方面优于当前最先进的方法。为了匹配真实世界的视觉工业检查,我们扩展了评估协议,以评估非对齐数据集上异常定位算法的性能。PaDiM最先进的性能和低复杂度使其成为许多工业应用的良好候选。

Introduction

人类能够在一组同质自然图像中检测出异质或意外的模式。这种任务被称为异常检测,并有大量的应用,其中就包括视觉工业检查。然而,异常在生产线上是非常罕见的事件,手动检测很麻烦。因此,异常检测自动化可以通过避免减少操作员注意力持续时间和方便操作员工作来实现持续的质量控制。在本文中,我们主要关注于异常检测,特别是在工业检查的背景下的异常定位。在计算机视觉中,异常检测就是给图像一个异常分数。异常定位是一项更为复杂的任务,它给每个像素或像素的每个补丁分配一个异常值,以输出一个异常地图。因此,异常定位产生更精确和可解释的结果。通过我们的方法在MVTec异常检测(MVTec AD)数据集[1]的图像中进行异常定位的异常图示例如图1所示。

【论文笔记(8)】PaDiM a Patch Distribution Modeling Framework for Anomaly Detection and Localization_第1张图片图1所示。来自MVTec AD[1]的图像样本。左栏:晶体管,胶囊和木材类的正常图像。中间一栏:同类别的图片,用黄色突出显示地面真相异常。右栏:我们的PaDiM模型得到的异常热图。黄色区域表示检测到的异常,而蓝色区域表示正常区域。

异常检测是正常类和异常类之间的一种二元分类。然而,由于我们经常缺少异常的例子,而且异常可能具有意想不到的模式,所以不可能在完全监督下训练模型来完成这项任务。因此,异常检测模型通常在单类学习设置下进行估计,即当训练数据集仅包含正常类的图像,而在训练过程中异常示例不可用时。在测试时,将与正常训练数据集不同的样本分类为异常样本。

最近,有几种方法被提出将异常定位和检测任务结合在一个类学习设置[2]-[5]中。然而,它们要么需要深度神经网络训练[3],[6],这可能比较麻烦,要么在测试时间[4],[5]时对整个训练数据集使用k近邻(K-NN)算法[7]。随着训练数据集的增大,KNN算法的线性复杂度增加了时间和空间复杂度。这两个可伸缩性问题可能会阻碍异常定位算法在工业环境中的部署。

为了解决上述问题,我们提出了一种新的异常检测和定位方法,命名为PaDiM,用于Patch分布建模。它利用一个预先训练好的卷积神经网络(CNN)进行嵌入提取,具有以下两个特性:

1.每个patch位置用多元高斯分布来描述;
2.PaDiM考虑了预先训练的CNN的不同语义层次之间的相关性

通过这种新的和有效的方法,PaDiM在MVTec AD[1]和上海科技园区(STC)[8]数据集上优于现有的最先进的异常定位和检测方法。此外,在测试时,它具有较低的时间和空间复杂度,不受工业应用的数据集训练规模的影响。我们还扩展了评估协议,以评估模型在更现实的条件下的性能,即在非对齐数据集上。

Related Work

异常检测和定位方法可分为基于重建的方法和基于嵌入相似度的方法

Reconstruction-based methods

基于重构的方法被广泛应用于异常检测和定位。训练像自动编码器[1]、[9]-[11]、变分自动编码器[3]、[12]-[14]或生成对抗网络[15]-[17]这样的神经网络体系结构,只重建正常的训练图像。因此,异常图像可以被发现,因为它们没有很好地重建。在图像层面上,最简单的方法是将重构误差作为异常分数[10],但从潜在空间[16]、[18]、中间激活[19]或一个鉴别器[17]、[20]可以更好地识别异常图像。为了定位异常,基于重构的方法可以将像素级重构误差作为异常评分[1]或结构相似度[9]。或者,异常地图可以是由潜在空间[3]、[14]生成的视觉注意力地图。尽管基于重建的方法非常直观和可解释,但它们的性能受到限制,因为AE有时可以对异常图像(包括[21])产生良好的重建结果。

Embedding similarity-based methods

基于相似度的嵌入方法利用深度神经网络提取描述整幅图像的有意义向量,用于异常检测[6]、[22]-[24],或用于异常定位[2]、[4]、[5]、[25]的图像Patch。尽管如此,仅执行异常检测的基于相似度的嵌入方法给出了有希望的结果,但往往缺乏可解释性,因为它不可能知道异常图像的哪一部分是导致高异常分数的原因。在这种情况下,异常分数是测试图像的嵌入向量与代表训练数据集正态性的参考向量之间的距离。法向参考可以是包含法向图像[4]、[22]嵌入的nsphere的中心,高斯分布参数[23]、[26]或整个法向嵌入向量集合[5]、[24]。最后一个选项是SPADE[5],它在异常定位方面报告的结果最好。然而,在测试时,它在一组正规的嵌入向量上运行K-NN算法,因此推理复杂度随数据集训练大小线性增长。这可能会阻碍该方法的工业应用。

Patch Distribution Modeling

Embedding extraction

预先训练的CNN能够输出用于异常检测的相关特征[24]。因此,我们选择只使用一个预先训练好的CNN来生成patch嵌入向量,从而避免了繁琐的神经网络优化。在PaDiM中嵌入补丁的过程类似于SPADE[5]中的过程,如图2所示。在训练阶段,正常图像的每个patch补丁与预先训练的CNN激活图中其空间对应的激活向量相关联。然后,将来自不同层的激活向量连接起来,得到携带来自不同语义层次和分辨率的信息的嵌入向量,以便对细粒度和全局上下文进行编码。由于激活图的分辨率低于输入图像,因此许多像素具有相同的嵌入,然后形成与原始图像分辨率没有重叠的像素块。因此,可以在(i,j)∈[1,W]×[1,H]位置的网格中划分输入图像,其中w,h是用于生成嵌入的最大激活图的分辨率。最后,将该网格中的每个面片位置(i,j)与如上所述计算的嵌入向量xij相关联。

生成的patch嵌入向量可能携带冗余信息,因此我们实验研究减小其大小的可能性(章节V -A)。我们注意到,随机选择几个维度比经典的主成分分析(PCA)算法[30]更有效。这种简单的随机维数减少显著降低了我们的模型的复杂性,训练和测试时间,同时保持最先进的性能。最后,使用测试图像的patch嵌入向量,借助下一小节中描述的正常类的参数来输出异常图。

Learning of the normality

为了学习位置(i, j)处的正常图像特征,我们首先从N幅正常训练图像中计算在(i, j)处的patch嵌入向量集合, Xij= {xk ij, k∈[1,N]},如图2所示。将集合所携带的信息进行汇总,我们假设由多元高斯分布N(µij, Σij)产生的Xij,其中µij是样本均值,∑ij样本协方差估计如下:

在这里插入图片描述
【论文笔记(8)】PaDiM a Patch Distribution Modeling Framework for Anomaly Detection and Localization_第2张图片图2所示。对于最大的CNN特征图中位置(i, j)对应的每个图像patch, PaDiM从N个训练嵌入向量Xij= {xk ij, k∈[1,N]}的集合中学习高斯参数(µij, Σij),这些向量是从N个不同的训练图像和三个不同的预训练CNN层计算出来的。

其中正则化项 εI使样本协方差矩阵∑ij满秩,可逆。最后,通过高斯参数矩阵将每个可能的patch位置与如图2所示的多元高斯分布相关联。

我们的Patch嵌入向量携带来自不同语义层次的信息。因此,每一个估计的多元高斯分布N(µij, Σij)也捕获了不同层次的信息,并且Σij包含了层次间的相关性。我们通过实验表明(V -A节),对预先训练的CNN的不同语义级别之间的关系进行建模有助于提高异常定位性能。

Inference : computation of the anomaly map

受[23],[26]的启发,我们使用马氏距离[31]M(xij)给测试图像位置(i, j)的patch一个异常分数。M(xij)可以解释为嵌入xij的测试patch与学习分布N(µij, Σij)之间的距离,其中M(xij)的计算公式如下:

在这里插入图片描述
因此,可以计算出构成异常图的马氏距离矩阵:
在这里插入图片描述
最终整幅图像的异常得分为异常地图M的最大值。最后,在测试时,我们的方法不存在基于K-NN的方法[4]-[6],[25]的可伸缩性问题,因为我们不需要计算和排序大量的距离值来得到一个Patch的异常分数。

Experiments

Datasets and metrics

Metrics

为了评估定位性能,我们计算了两个阈值无关的指标。我们使用接收机工作特征曲线(AUROC)下的面积,其中真正的阳性率是正确分类为异常的像素的百分比。由于AUROC偏向于大的异常,我们也使用了每个区域重叠分数(PRO-score)[2]。它包括为每个连接组件绘制一个正确分类的像素率的平均值曲线,该曲线是假阳性率在0到0.3之间的函数。PRO-score是这条曲线的标准化积分。高的PRO-score意味着大的和小的异常都很好地定位。

Datasets

我们首先在MVTec AD[1]上评估我们的模型,该模型旨在单类学习设置中,测试用于工业质量控制的异常定位算法。它包含15个类,大约240张图像。原始图像的分辨率在700x700到1024x1024之间。有10个对象和5个纹理类。对象总是在数据集中以相同的方式居中对齐,如图1中晶体管和胶囊类所示。除了原始数据集,来评估性能异常定位模型在一个更现实的背景下,我们创建一个MVTec AD的修改版本,称为RdMVTec AD,我们应用随机旋转(-10 + 10)和随机作物(从256 x256 224 x224)对训练集和测试集。MVTec AD的这个修改版本可以更好地描述用于质量控制的异常定位的真实用例,其中感兴趣的对象并不总是在图像中居中和对齐。

为了进一步评估,我们还在上海理工大学(STC)数据集[8]上测试了PaDiM,该数据集模拟了静态摄像头的视频监控。它包含274 515个训练和42883个测试帧,分为13个场景。原始图像的分辨率是856x480。训练视频是由正常序列组成的,而测试视频则有异常情况,比如行人区出现车辆或人们打斗。

Experimental setups

我们用不同的主干训练PaDiM,ResNet18(R18)[27],Wide ResNet-50-2(WR50)[28]和EfficientNet-B5[29],都是在ImageNet[32]上预先训练的。与[5]中一样,当主干为ResNet时,从前三层提取Patch嵌入向量,以组合来自不同语义层次的信息,同时保持足够高的分辨率来完成定位任务。按照这个思想,如果使用EfficientNet-B5,我们从第7层(第2级别)、第20层(第4级别)和第26层(第5级别)提取Patch嵌入向量。我们还应用了随机降维(RD)(参见第III-A节和V-A节)。我们的模型名称指明了主干和所使用的降维方法(如果有的话)。例如,PaDiM-R18-RD100是具有ResNet18主干的PaDiM模型,使用100个随机选择的维度用于Patch嵌入向量。默认情况下,我们使用 ε=0.01在方程式1中。

我们以Wide ResNet-50-2(WR50)[28]为主干,复制了原始出版物中描述的模型SPADE[5]。对于Spade和PaDim,我们采用与[5]中相同的前置处理。我们将图像从MVTec AD调整为256x256,并将其居中裁剪为224x224。对于来自STC的图像,我们仅使用256x256调整大小。我们使用双三次插值调整图像和定位图的大小,并像[5]中那样对参数为σ=4的异常图使用高斯滤波器。

我们还将我们自己的VAE实现为基于重建的基线,使用ResNet18作为编码器,并使用8x8卷积潜变量实现。它在每个MVTec AD类上使用以下数据扩充操作进行训练:随机旋转(−2◦,+2◦),292x292调整大小,随机裁剪到282x282,最后中心裁剪到256x256。该训练使用ADAM优化器[12]在100个时段内执行,初始学习率为10−4,批大小为32个图像。用于定位的异常图对应于用于重建的像素L2误差。

Results

A.Ablative studies

首先,我们评估了PaDiM中语义层之间建模相关性的影响,并探讨了通过降维来简化我们方法的可能性。

Inter-layer correlation

高斯建模和马氏距离的结合已经在以前的工作中被用于检测敌意攻击[26]和图像级别的异常检测[23]。然而,这些方法并不像我们在PaDiM中所做的那样,对CNN的不同语义级别之间的相关性进行建模。在表I中,我们显示了仅使用前三层(第1层、第2层或第3层)中的一层(第1层、第2层或第3层)以及将这3个模型的输出相加以形成考虑前三层但不考虑它们之间的相关性(第1+2+3层)的集成方法时,具有ResNet18主干的PaDiM的MVTec AD上的异常定位性能。表1(PaDiM-R18)的最后一行是我们建议的PaDiM版本,其中每个Patch位置由一个高斯分布描述,并考虑了前三个ResNet18层及其之间的相关性。可以观察到,就AUROC而言,使用第三层在三层中产生最好的结果。这是因为第三层承载了更高语义级别的信息,这有助于更好地描述常态。然而,第三层比第二层略差,这可以用第二层分辨率较低来解释,这影响了异常定位的精度。正如我们在表I的最后两行中看到的那样,聚合来自不同层的信息可以解决高语义信息和高分辨率之间的权衡问题。与简单地将输出相加的模型层1+2+3不同,我们的模型PaDiMR18考虑了语义级别之间的相关性。因此,对于AUROC,它比第1+2+3层高出1.1个百分点(百分比),在PRO-SCORE上高出1.8个百分点。它证实了语义层次之间建模相关性的相关性。

【论文笔记(8)】PaDiM a Patch Distribution Modeling Framework for Anomaly Detection and Localization_第3张图片
表1 基于不同语义层的CNN异常定位性能研究。结果在MVTECAD上以元组(AUROC%, PRO-SCORE%)的形式显示。

Dimensionality reduction

PaDiM - R18从每个448维的patch嵌入向量集合中估计多元高斯分布。减小嵌入向量的大小可以降低模型的计算和存储复杂度。我们研究了两种不同的降维方法。第一种方法是应用主成分分析(PCA)算法将向量大小减少到100维或200维。第二种方法是随机特征选择,我们在训练前随机选择特征。在这种情况下,我们训练了10个不同的模型并取平均分数。尽管如此,随机性不会改变不同种子之间的结果,因为平均AUROC的标准误差均值(SEM)总是在10−4和10−7之间。
【论文笔记(8)】PaDiM a Patch Distribution Modeling Framework for Anomaly Detection and Localization_第4张图片

表2 利用主成分分析(PCA)或随机特征选择(RD)对448维降至100和200维的异常定位性能进行研究。结果在MVTECAD上以元组(AUROC%, PRO-SCORE%)的形式显示

从表2中我们可以注意到,对于相同数量的维度,随机降维(RD)在所有MVTec AD类上的性能在AUROC中至少比PCA高1.3个百分点,在PRO-Score中高出1.2个百分点。这可以通过PCA选择具有最高方差的维度的事实来解释,该维度可能不是帮助区分正常类别和异常类别的维度[23]。

从表2还可以看出,将嵌入向量大小随机减少到仅100维对异常定位性能的影响非常小。在AUROC中,结果只下降了0.4个百分点,在Pro-Score中,下降了0.3个百分点。这种简单而有效的降维方法显著降低了PaDiM的时间和空间复杂度,如第五-D节所示。

B. Comparison with the state-of-the-art

Localization

在表3中,我们显示了AUROC和MVTec AD上异常定位的PRO评分结果。为了进行公平的比较,我们使用了一个宽的ResNet-50-2(WR50),因为在SPADE[5]中使用了这个主干。由于其他基线的主干较小,我们也尝试了ResNet18(R18)。我们随机将带有WR50和R18的PaDiM的嵌入大小分别减少到550和100。

【论文笔记(8)】PaDiM a Patch Distribution Modeling Framework for Anomaly Detection and Localization_第5张图片表3.我们的padm模型与最先进的MVTEC AD异常定位的比较。结果以元组形式显示(AUROC%, PRO-SCORE%)

我们首先注意到,PaDiM-WR50-Rd550在所有类的PRO-SCORE和AUROC方面的平均表现都优于所有其他方法。PaDiM-R18-RD100是一款非常轻便的机型,在MVTec AD级别上的平均AUROC性能也比所有机型至少高出0.2个百分点。当我们进一步分析PaDiM的性能时,我们发现对象类之间的差距很小,因为PaDiM-WR50-RD550只在AUROC(+0.2p.p)中是最好的,而Spade[5]在PRO-Score(+1.8p.p)中是最好的。但是,我们的模型在纹理类上特别准确。在纹理类别上,PaDiM-WR50-RD550在PRO-SCORE和AUROC上的平均表现分别比第二好的SPADE[5]高出4.8个百分点和4.0个百分点。事实上,PaDiM学习正常类的显式概率模型与Spade[5]或Patch-SVDD[4]相反。它对纹理图像特别有效,因为即使它们不像对象图像那样对齐和居中,PaDiM也能有效地捕获它们在正常训练数据集上的统计相似性。

此外,我们在STC数据集上对我们的模型进行了评估。我们将我们的方法与两个最好的没有时间信息的异常定位模型CAVGA-RU[3]和SPADE[5]进行了比较。如表4所示,在STC数据集上使用我们最简单的模型PaDiM-R18-RD100获得了2.1p.p的最佳结果(AUROC)。事实上,在这个数据集中,图像中的行人位置是高度可变的,并且,如第五-C节所示,我们的方法在非对齐的数据集上执行得很好。

在这里插入图片描述
表4.我们的PADIM模型与最先进的AUROC% STC异常定位的比较。

Detection

通过取模型发布的异常图的最大分值(参见第III-C节),我们给出整个图像的异常分值,从而在图像级别上进行异常检测。我们使用SPADE中使用的宽ResNet-50-2(WR50)[28]和EfficientNet-B5[29]测试PaDiM的异常检测。表5显示,我们的模型PaDiM-WR50-Rd550优于除MahalanobisAD[23]之外的所有方法,其最好的主干是EfficientNet-B4。尽管如此,我们的PaDiM-EfficientNet-B5在AUROC的所有课程上平均至少比所有型号高出2.6个百分点。此外,与第二好的异常检测方法MahalanobisAD[23]相反,我们的模型还进行了异常分割,更精确地刻画了图像中的异常区域。
在这里插入图片描述表5.在MVTEC AD上使用AUROC%进行异常检测(图像级别)。

C.Anomaly localization on a non-aligned dataset

为了评估异常定位方法的稳健性,我们在第四-A节描述的MVTec AD的修改版本RD-MVTec AD上训练和评估PaDiM和几种最先进的方法(SPADE[5],VAE)的性能。本实验的结果显示在表6中。对于每个测试配置,我们使用随机种子在MVTec AD上运行5次数据预处理,以获得5个不同版本的数据集,表示为RD-MVTec AD。根据实验结果,PaDiM-WR50Rd550在PRO-SCORE和AUROC两个方面都优于其他模型。此外,与在普通MVTec AD上获得的结果相比,RD-MVTec AD上的SPADE[5]和VAE性能比PaDiM-WR50-RD550上的性能下降更多(参见表3)。PaDiM-WR50-RD550的AUROC结果下降5.3个百分点,而VAE和SPADE分别下降12.2个百分点和8.8个百分点。因此,我们可以得出结论,我们的方法对于未对齐的图像似乎比其他现有的和测试过的工作更健壮。

【论文笔记(8)】PaDiM a Patch Distribution Modeling Framework for Anomaly Detection and Localization_第6张图片
表6. 非对齐RD-MVTEC AD异常定位结果结果以元组形式显示(AUROC%, PRO-SCORE%)

D.Scalability gain

Time complexity

在PaDiM中,训练时间复杂度与数据集大小成线性关系,因为高斯参数是使用整个训练数据集来估计的。然而,与需要训练深度神经网络的方法相反,PaDiM使用预先训练的CNN,因此不需要深度学习训练,这通常是一个复杂的过程。因此,在MVTec AD这样的小数据集上训练它是非常快速和容易的。对于我们最复杂的型号PaDiM-WR50-RD550,在采用串行实施的CPU(Intel CPU 6154 3 GHz 72)上进行培训,在MVTec AD类上平均花费150秒,在STC视频场景上平均花费1500秒。使用GPU硬件进行前向传递和协方差估计,可以进一步加速这些训练过程。相比之下,按照第IV-B节描述的步骤在MVTec AD上训练每个班级10000个图像的VAE需要使用一台GPU NVIDIA P5000,每个类别需要2h40min。相反,Spade[5]不需要训练,因为没有参数需要学习。在测试正常训练图像的所有嵌入向量之前,它仍然计算并存储在存储器中。这些向量是K-NN算法的输入,这使得Spade的推理非常慢,如表7所示。

在这里插入图片描述
表7 CPU为INTEL I7-4710HQ @ 2.50GHZ的MVTEC AD上异常定位的平均推断时间(秒)。

在表7中,我们使用主流CPU(Intel i7-4710HQ [email protected] GHz)测量模型推理时间,并采用串行实施。在MVTec AD上,由于NN搜索的计算代价很高,SPADE的推理时间大约是我们的PaDiM模型(具有等效主干)的7倍。我们的VAE实现与大多数基于重建的模型相似,是最快的模型,但我们的简单模型PaDiM-R18-RD100在推理时间上具有相同的数量级。在具有相似复杂度的情况下,PaDiM在很大程度上优于VAE方法(参见第V-B节)。

Memory complexity

与Spade[5]和Patch SVDD[4]不同,该模型的空间复杂度与数据集训练大小无关,仅依赖于图像分辨率。PaDiM只在内存中保留与每个补丁相关的预先训练的CNN和高斯参数。在表8中,我们展示了SPADE、我们的VAE实现和PaDiM的内存需求,假设参数是以Float32编码的。在MVTec AD上,使用等效主干时,SPADE的内存消耗比PaDiM低。然而,当在STC这样的较大数据集上使用SPADE时,其内存消耗变得难以处理,而PaDiM-WR50-Rd550需要的内存则减少了七分之一。PaDiM空间复杂度从MVTec AD增加到STC,只是因为后者的数据集中输入图像分辨率更高,如第IV-B节所述。最后,我们的框架PaDiM的优点之一是,用户可以通过选择主干和嵌入大小来轻松地调整方法,以满足其推理时间要求、资源限制或预期性能。
【论文笔记(8)】PaDiM a Patch Distribution Modeling Framework for Anomaly Detection and Localization_第7张图片
表8.在MVTEC AD和STC数据集上训练的异常定位方法的GB内存需求。

Conclusion

提出了一种基于分布建模的单类学习环境下的异常检测与定位框架PaDiM。它在MVTec AD和STC数据集上实现了最先进的性能。此外,我们将评估协议扩展到非对齐数据,第一个结果表明PaDiM可以在这些更真实的数据上保持健壮性。PaDiM内存和时间消耗低,使用方便,适用于各种应用,如可视化工业控制。

你可能感兴趣的:(论文笔记,深度学习)