赞
踩
我们提出了一个新的Patch分布建模框架,在单类学习的设置下,PaDiM同时检测和定位图像中的异常在。PaDiM利用一个预先训练好的卷积神经网络(CNN)进行patch嵌入,利用多元高斯分布得到正常类的概率表示。它还利用了CNN的不同语义级别之间的相关性来更好地定位异常。PaDiM在MVTec AD和STC数据集上的异常检测和定位方面优于当前最先进的方法。为了匹配真实世界的视觉工业检查,我们扩展了评估协议,以评估非对齐数据集上异常定位算法的性能。PaDiM最先进的性能和低复杂度使其成为许多工业应用的良好候选。
人类能够在一组同质自然图像中检测出异质或意外的模式。这种任务被称为异常检测,并有大量的应用,其中就包括视觉工业检查。然而,异常在生产线上是非常罕见的事件,手动检测很麻烦。因此,异常检测自动化可以通过避免减少操作员注意力持续时间和方便操作员工作来实现持续的质量控制。在本文中,我们主要关注于异常检测,特别是在工业检查的背景下的异常定位。在计算机视觉中,异常检测就是给图像一个异常分数。异常定位是一项更为复杂的任务,它给每个像素或像素的每个补丁分配一个异常值,以输出一个异常地图。因此,异常定位产生更精确和可解释的结果。通过我们的方法在MVTec异常检测(MVTec AD)数据集[1]的图像中进行异常定位的异常图示例如图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]数据集上优于现有的最先进的异常定位和检测方法。此外,在测试时,它具有较低的时间和空间复杂度,不受工业应用的数据集训练规模的影响。我们还扩展了评估协议,以评估模型在更现实的条件下的性能,即在非对齐数据集上。
异常检测和定位方法可分为基于重建的方法和基于嵌入相似度的方法
基于重构的方法被广泛应用于异常检测和定位。训练像自动编码器[1]、[9]-[11]、变分自动编码器[3]、[12]-[14]或生成对抗网络[15]-[17]这样的神经网络体系结构,只重建正常的训练图像。因此,异常图像可以被发现,因为它们没有很好地重建。在图像层面上,最简单的方法是将重构误差作为异常分数[10],但从潜在空间[16]、[18]、中间激活[19]或一个鉴别器[17]、[20]可以更好地识别异常图像。为了定位异常,基于重构的方法可以将像素级重构误差作为异常评分[1]或结构相似度[9]。或者,异常地图可以是由潜在空间[3]、[14]生成的视觉注意力地图。尽管基于重建的方法非常直观和可解释,但它们的性能受到限制,因为AE有时可以对异常图像(包括[21])产生良好的重建结果。
基于相似度的嵌入方法利用深度神经网络提取描述整幅图像的有意义向量,用于异常检测[6]、[22]-[24],或用于异常定位[2]、[4]、[5]、[25]的图像Patch。尽管如此,仅执行异常检测的基于相似度的嵌入方法给出了有希望的结果,但往往缺乏可解释性,因为它不可能知道异常图像的哪一部分是导致高异常分数的原因。在这种情况下,异常分数是测试图像的嵌入向量与代表训练数据集正态性的参考向量之间的距离。法向参考可以是包含法向图像[4]、[22]嵌入的nsphere的中心,高斯分布参数[23]、[26]或整个法向嵌入向量集合[5]、[24]。最后一个选项是SPADE[5],它在异常定位方面报告的结果最好。然而,在测试时,它在一组正规的嵌入向量上运行K-NN算法,因此推理复杂度随数据集训练大小线性增长。这可能会阻碍该方法的工业应用。
预先训练的CNN能够输出用于异常检测的相关特征[24]。因此,我们选择只使用一个预先训练好的CNN来生成patch嵌入向量,从而避免了繁琐的神经网络优化。在PaDiM中嵌入补丁的过程类似于SPADE[5]中的过程,如图2所示。在训练阶段
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。