本研究的主要作者包括Karsten Roth(来自图宾根大学)、Latha Pemula、Joaquin Zepeda、Bernhard Schölkopf、Thomas Brox和Peter Gehler(均来自亚马逊AWS)。该研究于2022年5月5日发布在arXiv预印本平台上,论文标题为《Towards Total Recall in Industrial Anomaly Detection》。
该研究属于计算机视觉领域,具体聚焦于工业异常检测(Industrial Anomaly Detection)。在工业生产中,检测产品缺陷是一个关键任务,尤其是在大规模制造中。传统的异常检测方法通常依赖于大量标注数据,但在实际工业场景中,获取异常样本的成本较高,且异常类型多样且难以预测。因此,如何在仅有正常样本(nominal samples)的情况下进行异常检测(即“冷启动问题”),成为一个重要的研究方向。
现有的方法通常依赖于预训练的ImageNet模型,结合异常检测模型(如基于重建误差或生成对抗网络的方法)来实现。然而,这些方法在高层次特征上存在偏差,且难以捕捉工业图像中的细微缺陷。
本研究的目标是提出一种新的方法PatchCore,通过构建一个最大化的代表性记忆库(memory bank),利用局部特征来提升异常检测和定位的性能。PatchCore旨在解决以下问题: 1. 最大化测试时可用的正常样本信息; 2. 减少对ImageNet类别的偏差; 3. 保持较高的推理速度。
PatchCore的核心思想是利用局部特征(patch-level features)来构建记忆库。具体步骤如下: 1. 特征提取:使用预训练的ImageNet模型(如ResNet或WideResNet)提取图像的中层特征(mid-level features),这些特征能够捕捉到更细粒度的信息,同时避免高层特征的偏差。 2. 局部特征聚合:通过局部邻域聚合(local neighborhood aggregation)增强特征的鲁棒性,确保每个局部特征能够覆盖足够的上下文信息。 3. 记忆库构建:将所有正常样本的局部特征存储在一个记忆库中,用于后续的异常检测。
为了减少记忆库的冗余并提高推理效率,PatchCore引入了贪婪核心集子采样(greedy coreset subsampling)方法。该方法通过选择最能代表整个特征空间的子集,显著降低了存储和计算成本,同时保持了高性能。
在测试阶段,PatchCore通过计算测试图像局部特征与记忆库中最近邻特征的距离来生成异常分数。具体步骤包括: 1. 异常分数计算:对每个局部特征,计算其与记忆库中最近邻特征的距离,取最大值作为异常分数。 2. 异常定位:通过将局部特征的异常分数重新映射到图像空间,生成像素级的异常分割图。
研究在多个工业异常检测基准数据集上进行了实验,包括: - MVTec AD:包含15个子数据集,共5354张图像。 - MTD(Magnetic Tile Defects):包含925张正常图像和392张异常图像。 - MSTC(Mini ShanghaiTech Campus):包含行人视频数据,用于非工业场景的异常检测。
评估指标包括: - 图像级异常检测:使用AUROC(Area Under the Receiver Operating Characteristic curve)评估。 - 像素级异常定位:使用像素级AUROC和PRO(Per-Region Overlap)指标评估。
PatchCore在MVTec AD数据集上取得了显著的性能提升: - 图像级异常检测:AUROC达到99.6%,比现有最佳方法(如PaDiM)减少了超过一半的错误率。 - 像素级异常定位:像素级AUROC达到98.1%,PRO指标达到93.5%,均优于现有方法。
此外,PatchCore在低样本(few-shot)场景下也表现出色,仅使用少量正常样本即可达到与现有方法相当的性能。
PatchCore通过核心集子采样显著降低了推理时间。例如,在MVTec AD数据集上,PatchCore-1%的推理时间仅为0.17秒/图像,远低于其他方法(如SPADE和PaDiM)。
PatchCore通过引入局部特征记忆库和核心集子采样,显著提升了工业异常检测的性能。其创新点在于: 1. 局部特征的使用:通过中层特征捕捉更细粒度的异常信息。 2. 核心集子采样:在保持高性能的同时显著降低了计算成本。
PatchCore的高性能和低推理成本使其非常适合实际工业应用,尤其是在需要快速、准确检测缺陷的场景中。此外,其低样本需求也使其在数据稀缺的环境中具有优势。
总结来说,PatchCore通过创新的局部特征记忆库和核心集子采样方法,为工业异常检测提供了一种高效、高性能的解决方案,具有重要的科学和应用价值。