题目:Multimodal Industrial Anomaly Detection by Crossmodal Feature Mapping
题目:基于跨模态特征映射的多模态工业异常检测
Abstract 摘要
近期的研究进展表明,利用点云和图像来定位异常具有潜力。然而,它们在工业制造中的适用性往往受到显著缺陷的限制,例如使用内存库,这会导致内存占用和推理时间大幅增加。本文提出一种新颖的轻量快速框架,该框架在标称样本上学习将一个模态的特征映射到另一个模态,并通过精确找出观测特征与映射特征之间的不一致来检测异常。大量实验表明,本文的方法在MVTec 3D - AD数据集上,无论是在标准设置还是少样本设置下,都达到了先进的检测和分割性能,同时相比以往的多模态异常检测方法,推理速度更快,内存占用更少。此外,本文提出一种层剪枝技术,在对性能造成轻微损失的前提下,提高内存和时间效率。
1. Introduction 介绍
1.1 现有RGB图象异常检测的问题
工业异常检测(AD)旨在识别产品中的异常特征或缺陷,是质量检测流程的关键部分。由于异常的罕见性和不可预测性,收集能体现异常情况的数据颇具挑战性。因此,大多数研究聚焦于无监督方法,即仅使用无缺陷样本(也称为标称样本)训练的算法。当前,多数现有的异常检测方法侧重于分析RGB图像。然而,在许多工业场景中,仅基于彩色图像难以有效识别异常,例如,光照条件变化易导致误检,表面偏差可能不会以明显异常的颜色呈现。结合彩色图像和三维传感器获取的表面信息可解决上述问题,并显著提升异常检测效果。
1.2 三维异常检测基准数据集的产生引发的多模态缺陷检测
近来,得益于三维异常检测基准数据集(如MVTec 3D - AD [5] 和Eyecandies [6] )的引入,研究人员开始探索新途径。实际上,这两个数据集为所有数据样本都提供了RGB图像以及像素配准的三维信息,从而推动了新的多模态异常检测方法的发展 [17, 36, 41] 。
像BTF [17] 和M3DM [41] 这类无监督多模态异常检测方法,依赖大型多模态特征内存库。它们以大量内存需求和缓慢推理速度为代价,实现了卓越性能(图1中的AUPRO@30%指标 )。
特别地,M3DM通过 利用在大型数据集(即分别针对二维和三维特征,在ImageNet和Shapenet上)自监督训练的冻结特征提取器 ,超越了BTF。另一种近期的多模态方法AST [36] 采用师生范式,构建了更快的架构(图1 )。
然而,AST 未利用三维数据的空间结构 ,仅将此信息作为二维网络架构中的额外输入通道。这导致其性能相较于M3DM和BTF较差(图1 )。
1.3 本文的新范式
在本文中,作者提出一种新颖范式,利用 从不同模态提取的特征间关系,改进多模态异常检测。如图2所示,本文方法的核心思想是在冻结的二维和三维特征提取器F2D\mathcal{F}_{2D}F2D和F3D\mathcal{F}_{3D}F3D的潜在空间之间,学习两个跨模态映射函数M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D和M3D→2D\mathcal{M}_{3D \to 2D}M3D→2D。因此,给定二维特征提取器计算出的二维特征,M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D学习预测三维预测器对应的三维特征;同样,M3D→2D\mathcal{M}_{3D \to 2D}M3D→2D学习为给定的三维特征预测二维特征。由于本文在标称数据上学习这两个映射函数,期望它们捕捉正常样本特有的跨模态关系,而异常样本因其本质特性,会实现训练时未见过的映射,比如从未观察到与特定三维特征相关联的二维特征,反之亦然。因此,在推理时,本文通过估计并聚合两个冻结特征提取器提供的实际特征与跨模态映射函数预测的特征之间的差异(Ψ3D,Ψ2D)(\Psi_{3D}, \Psi_{2D})(Ψ3D,Ψ2D),来计算异常图Ψ\PsiΨ。
该框架能够有效且高效地实现多模态异常检测。实际上,不存在明显的简单方法能使跨模态映射网络推广到有缺陷样本。例如,由于输入和输出特征来自不同模态,网络无法学习恒等映射,而这在以往基于重构的异常检测方法中可能出现 [23] 。此外,正如本文将在第3节讨论的,对标称数据中二维和三维特征间关系进行建模,可对各类异常具备高敏感度。最后,特征映射函数可实现为轻量级神经网络,如小型浅层多层感知器。这保证了极快的推理速度,同时内存占用有限。
如图1所示,本文基于跨模态映射函数的新型异常检测方法在MVTec 3D - AD数据集上达到了先进水平,超越了基于内存库的最佳资源密集型方法(本文的方法对比M3DM ),同时推理速度快得多。此外,本文发现,在冻结特征提取器较浅层特征间学习映射,能在内存需求和推理速度方面带来巨大提升,且对方法有效性影响相对有限。因此,本文可以剪去两个二维和三维特征提取器的最深层,得到文章框架的小型和微型变体(图1:Ours - S、Ours - T ),它们所需内存少得多,运行速度更快。值得注意的是,小型架构在MVTec 3D - AD数据集上仍能达到先进性能,同时与完整模型相比内存需求减少一半以上,而微型架构运行速度几乎快一倍,且性能超越BTF和AST。最后,文章指出,本文的方法甚至可用少量标称样本进行训练。为在这一具有挑战性的场景中恰当评估文章的方法,本文基于MVTec 3D - AD构建了首个少样本多模态异常检测基准,并且本文的方法在异常分割性能上达到了先进水平。
1.4 本文的贡献
本文的贡献可总结如下:
- 文章提出一种基于跨模态映射特征的新型无监督多模态异常检测框架;
- 通过使用从冻结的二维和三维特征提取器提取的特定模态特征,文章在MVTec 3D - AD数据集上实现了先进的检测和分割性能,同时在Eyecandies数据集上达到了与先进水平相当的性能;
- 本文的方法推理速度极快,且与先进解决方案相比内存需求更低;
- 本文在基于MVTec 3D - AD构建的少样本异常检测基准上达到了先进性能;
- 本文开发了一种网络剪枝策略,在不过度牺牲性能的前提下,大幅加快推理速度,显著节省内存。
2. Related Work 相关工作
2.1 Unsupervised Image Anomaly Detection 无监督图像异常检测
2.1.1 分析RGB图像的无监督异常检测方法
分析RGB图像的无监督异常检测方法 [23] 可大致分为两类 。
① 自动编码器、图像修复、扩散模型 来学习如何重构标称样本的图像
第一类方法的总体思路是使用自动编码器 [2, 18, 33, 48]、图像修复 [28] 或扩散模型 [42] 来学习如何重构标称样本的图像。然后在测试阶段,由于训练好的模型无法正确重构异常图像,通过分析输入图像与重构图像之间的差异,可计算出逐像素的异常图 。
② 基于深度神经网络定义的特征空间
第二类方法则基于深度神经网络定义的特征空间 [4, 7, 10, 12, 13, 15, 22, 24, 31, 32, 35, 38 - 40, 44 - 47, 49] 。深度特征重构(DFR )[43] 在从标称样本提取的特征上训练自动编码器。然后,与图像重构方法类似,它通过分析测试样本与原始特征之间的重构差异来识别异常 。
③ 冻结模型提取特征
随着有效通用特征提取器的日益普及 [8, 16, 25] ,人们对使用冻结模型提取特征的异常检测方法产生了兴趣 [1, 11, 34] 。在训练阶段,由冻结特征提取器从标称样本计算出的特征存储在内存库中。在推理阶段,==将冻结模型从输入图像中提取的特征与存储在内存库中的特征进行比较,以识别异常 ==。这些方法取得了显著的性能,但代价是推理速度慢(因为从输入图像提取的每个特征向量都必须与存储在内存库中的所有标称特征向量进行比较 ),且内存占用大(因为更大的内存库能更好地捕捉标称特征的变化 )。
2.1 Multimodal RGB-3D Anomaly Detection 多模态RGB - 3D异常检测
多模态方法利用RGB图像和三维数据来增强异常检测的鲁棒性和有效性 。在基于图像的异常检测基准测试的重要工作 [3] 之后,最近的一篇论文 [5] 引入了MVTec 3D - AD数据集,并进行了实验验证,其中包括几个基线方法,如基于生成对抗网络(GANs)和变分模型(即变分自动编码器,VAEs )的分布映射技术,以及自动编码器 。
受Patch - Core [34] 的启发,BTF [17] 研究了内存库在三维异常检测中的应用 。作者们提议将三维特征添加到由冻结卷积模型提供的二维特征中,以提高三维异常检测性能。他们使用从点云提取的手工制作的描述符 [37] 对几个三维特征进行处理,并取得了最佳结果 。
M3DM [41] 通过使用在大型数据集上自监督训练的基于冻结Transformer的基础模型提取的丰富且独特的二维和三维特征,对BTF进行了改进 。作者们还提出了一个学习函数,将二维和三维特征融合为多模态特征,与从单个模态计算出的特征一起存储在内存库中。然而,对大型特征库的依赖使得M3DM在内存和时间方面成本过高(图1 )。
与M3DM [41] 类似,本文的方法也使用由基于冻结Transformer的模型计算出的二维和三维特征 。 不过,本文不使用任何内存库,而是提出了一种新颖的跨模态特征映射范式,该范式可由两个轻量级神经网络实现。使用与M3DM [41] 相同的特征提取器,本文在MVTec 3D - AD数据集上取得了更好的性能,同时所需内存和运行时间显著减少(图1 )。
3. Method 方法
文章的多模态异常检测(AD)方法依赖于学习从标称样本中提取的特征之间的交叉模态映射,以根据预测和观测特征之间的差异来精确定位异常。如图2所示,这通过以下方式实现:
(i)一对固定的特征提取器 a pair of frozen feature extractors F2D\mathcal{F}_{2D}F2D 、F3D\mathcal{F}_{3D}F3D;
(ii)一对特征映射网络 a pair of feature mappings networks M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D 、M3D→2D\mathcal{M}_{3D \to 2D}M3D→2D;以及
(iii)一个聚合模块 an aggregation module
3.1 Feature Extraction 特征提取
文章流程的第一步是为二维图像I2DI_{2D}I2D中的每个像素 以及 三维点云P3DP_{3D}P3D中的每个点提取特征。如第一章节所述,在文章的框架中,两个特征提取器都已在大型外部数据集上进行了训练,并且保持固定,即其权重永远不会更新。
3.1.1 2D Feature Extraction and Interpolation 二维特征提取与插值
给定一幅尺寸为H×W×CH×W×CH×W×C的图像I2DI_{2D}I2D,文章使用二维特征提取器F2D\mathcal{F}_{2D}F2D对其进行处理,得到尺寸为Hf×Wf×D2DH_f×W_f×D_{2D}Hf×Wf×D2D的特征图。由于HfH_fHf和WfW_fWf的尺寸小于原始的HHH和WWW,作者应用线性上采样操作来获得E2DE_{2D}E2D,这是一个尺寸为H×W×D2DH×W×D_{2D}H×W×D2D的特征图,从而为每个像素位置获取一个特征向量。
3.1.2 3D Feature Extraction and Interpolation 三维特征提取与插值
给定一个尺寸为N×3N×3N×3的点云,文章用三维特征提取器F3D\mathcal{F}_{3D}F3D对其进行处理,得到一组NfN_fNf个尺寸为D3DD_{3D}D3D的特征向量。每个特征向量fcf_{\mathbf{c}}fc与原始点云中的特定点c∈P3D\mathbf{c} \in P_{3D}c∈P3D相关联。实际上,许多三维特征提取器(如文献[26] )并非为每个输入点估计特征,而只为其中一个子集估计特征,即Nf<NN_f < NNf<N 。因此,为了为点云P3DP_{3D}P3D中的每个点p\mathbf{p}p获取一个特征向量fpf_{\mathbf{p}}fp,文章采用与文献[41]类似的过程。这里,fpf_{\mathbf{p}}fp计算为在F3D\mathcal{F}_{3D}F3D提取的NfN_fNf个特征向量中,中心离p\mathbf{p}p最近的三个特征向量的加权和。通过这种方式,文章得到E3DE_{3D}E3D,即一组NNN个经过插值的、尺寸为D3DD_{3D}D3D的特征向量。
3.1.3 Feature Alignment 特征对齐
根据多模态异常检测中的标准设定 [5,6],文章假设三维数据和图像是像素配准的。因此,文章知道与每个三维点对应的像素位置。由于E2DE_{2D}E2D和E3D′E'_{3D}E3D′已经过插值,以匹配原始图像和点云的分辨率,文章可以将E3D′E'_{3D}E3D′投影到二维图像平面,得到E3DE_{3D}E3D,这是一个尺寸为H×W×D3DH×W×D_{3D}H×W×D3D的特征图。在这个过程中,对于没有对应三维特征的像素位置,文章将其向量设为零。最后,文章在E3DE_{3D}E3D上应用一个3×33×33×3的平滑核。在这个过程结束时,文章得到E2DE_{2D}E2D和E3DE_{3D}E3D,这两个在像素级别上对齐的特征图。
3.2 Crossmodal Feature Mapping 交叉模态特征映射
一旦获得E2DE_{2D}E2D和E3DE_{3D}E3D,本文部署两个特征映射函数,由轻量级多层感知器(MLP)实现,即M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D和M3D→2D\mathcal{M}_{3D \to 2D}M3D→2D 。
M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D将尺寸为D2DD_{2D}D2D的特征向量映射为尺寸为D3DD_{3D}D3D的特征向量,而M3D→2D\mathcal{M}_{3D \to 2D}M3D→2D执行相反的操作。每个网络从一种模态预测另一种模态的特征,独立处理每个像素位置。 因此,对于给定的像素位置iii,以及对应的二维和三维特征E2DiE^i_{2D}E2Di和E3DiE^i_{3D}E3Di,本文可以按如下方式获得另一种模态的预测特征:
E^3Di=M2D→3D(E2Di)E^2Di=M3D→2D(E3Di)(1)
\hat{E}^i_{3D} = \mathcal{M}_{2D \to 3D}(E^i_{2D}) \quad \hat{E}^i_{2D} = \mathcal{M}_{3D \to 2D}(E^i_{3D}) \quad (1)
E^3Di=M2D→3D(E2Di)E^2Di=M3D→2D(E3Di)(1)
当处理没有关联三维点的像素位置时,本文将对应的预测特征设为零。通过处理所有像素,本文分别得到尺寸为H×W×D2DH×W×D_{2D}H×W×D2D和H×W×D3DH×W×D_{3D}H×W×D3D的预测特征图E^3D\hat{E}_{3D}E^3D、E^2D\hat{E}_{2D}E^2D 。
3.2.1 Training 训练
在训练阶段,文章通过最小化两种模态输入数据计算出的特征图与预测特征图之间的余弦距离,在数据集的所有标称样本上对M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D和M3D→2D\mathcal{M}_{3D \to 2D}M3D→2D进行联合优化。因此,每个像素的损失为:
Li=(1−E2Di⋅E^2Di∥E2Di∥∥E^2Di∥)+(1−E3Di⋅E^3Di∥E3Di∥∥E^3Di∥)(2)
\mathcal{L}^i = \left(1 - \frac{E^i_{2D} \cdot \hat{E}^i_{2D}}{\|E^i_{2D}\|\|\hat{E}^i_{2D}\|}\right) + \left(1 - \frac{E^i_{3D} \cdot \hat{E}^i_{3D}}{\|E^i_{3D}\|\|\hat{E}^i_{3D}\|}\right) \quad (2)
Li=(1−∥E2Di∥∥E^2Di∥E2Di⋅E^2Di)+(1−∥E3Di∥∥E^3Di∥E3Di⋅E^3Di)(2)
3.2.2 Rationale 原理说明
如第一章节所指出的,这种新颖的范式对各类异常都具有高敏感度。
3.2.2.1 利用玩具示例举例说明可行性
让本文通过图3中的玩具示例来理解这一特性。
在训练阶段(左上角),文章观察到在平坦三维表面上有红色二维图案,在弯曲三维表面上有蓝色二维图案:M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D和M3D→2D\mathcal{M}_{3D \to 2D}M3D→2D学习预测从这些数据中提取的特征之间的关系。
在推理阶段,如果一个异常的(例如黄色)二维图案出现在弯曲表面上(右上角),M3D→2D\mathcal{M}_{3D \to 2D}M3D→2D会预测出对应蓝色图案的二维特征,而实际观察到的二维特征却是黄色图案。此外,M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D接收到一个在训练时未见过的输入特征,不太可能输出实际弯曲表面的三维特征。
因此,文章的方法能感知到二维和三维特征的预测值与观测值之间的差异。
类似的情况也适用于在异常三维表面上出现标称二维图案的情形(左下角):两种预测都与观测值不一致。
当两种模态都出现异常时(图3中未展示)也是如此:两种输入在训练时都未出现过,所以两种跨模态预测都不太可能与观测值匹配。
最后,本文强调需要多模态异常检测的一种情况:单个模态符合标称分布,但它们同时出现的情况却是异常的。例如在弯曲表面上出现红色图案(右下角):同样,M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D平坦区域的三维特征,M3D→2D\mathcal{M}_{3D \to 2D}M3D→2D输出蓝色图案的二维特征,两种预测都与观测值不一致。
3.2.2.2 一些会导致误检的问题和处理方法
值得指出的是,由于标称样本的可变性,二维和三维特征之间的映射可能并非唯一。
“nominal samples” 常见释义为 “标称样本” 。在相关研究(如异常检测等领域 )中,它通常指具有典型、标准特征的样本,代表正常、无异常情况下的数据或对象
2D-3D 是一对多 3D-2D是多对一
例如,在图3中,可能存在红色的平坦表面和弯曲表面,这种一对多的映射使得M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D难以学习到与红色区域的二维特征相关联的正确三维特征。
因此,当出现红色区域时,M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D可能会预测出错误的三维特征或不太可能出现的特征,从而导致预测的三维特征与观测到的三维特征之间存在差异。
然而,M3D→2D\mathcal{M}_{3D \to 2D}M3D→2D可以预测红色区域的二维特征,因为3D→2D3D \to 2D3D→2D映射可能是多对一的。
因此,本文可以通过仅在两种预测都与观测值不一致时指出异常来避免误检。
2D-3D 是一对多 3D-2D是一对多
当然,由于标称样本之间的可变性更高,本文也可能面临一对多的3D→2D3D \to 2D3D→2D映射,例如,再次考虑图3,弯曲的三维区域上既有蓝色又有红色图像区域。
在这种情况下,当弯曲表面上出现红色区域时,M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D可能会错误地预测平坦区域的特征,而M3D→2D\mathcal{M}_{3D \to 2D}M3D→2D可能会预测蓝色区域的特征,最终由于两种预测都与观测值不一致而导致误检。
怎么解决标称样本的复杂可变性
尽管如此,在文章的框架中,本文可以通过利用Transformer架构 [8,26] 提供的高度情境化的二维和三维特征,来解决跨模态潜在的一对多特征映射问题。
在文中,高度情境化的特征是指利用Transformer架构提取的、蕴含丰富上下文关联信息的二维和三维特征 。
丰富的上下文关联:这种特征不仅仅包含自身模态的基础信息,还融入了周边相关元素所构成的情境信息。如二维特征中,描述一个被蓝色和紫色区域包围的红色区域,就不是单纯的红色区域特征,而是关联了周围颜色分布的情境信息;三维特征里,代表位于波纹表面区域右侧的平坦区域,也是结合了与周边表面关系的情境信息。
降低一对多映射不确定性:相较于普通特征,高度情境化的特征能更精准地建立跨模态映射关系。因为其携带了更多情境信息,能让模型更明确不同模态特征间的对应关系,减少一对多映射造成的模糊性和错误预测。比如在复杂场景下,普通特征可能难以确定对应关系,而高度情境化特征可借助上下文关联信息,更准确地找到匹配的另一模态特征 。
实际上,一个上下文化的二维特征,例如描述一个被蓝色和紫色区域包围的红色区域,往往对应于一个特定的上下文化三维特征,例如表示位于波纹表面区域右侧的平坦区域。
换句话说,Transformer提取的高度上下文化的二维和三维特征不太容易出现一对多的跨模态映射。基于上述原因,本文在F2D\mathcal{F}_{2D}F2D和F3D\mathcal{F}_{3D}F3D中都采用了Transformer。
3.3 Aggregation 聚合
在推理阶段,测试样本被输入到特征提取和映射网络中,以获得两对提取的和预测的特征图(E2D,E^2D)(E_{2D}, \hat{E}_{2D})(E2D,E^2D)、(E3D,E^3D)(E_{3D}, \hat{E}_{3D})(E3D,E^3D)。在对所有单个特征向量进行ℓ2\ell_2ℓ2归一化后,文章作者通过差异函数D\mathcal{D}D对提取的和预测的特征图进行逐像素比较,以获得特定模态的异常图Ψ2D\Psi_{2D}Ψ2D、Ψ3D\Psi_{3D}Ψ3D:
Ψ2D=D(E2D,E^2D)Ψ3D=D(E3D,E^3D)(3)
\Psi_{2D} = \mathcal{D}(E_{2D}, \hat{E}_{2D}) \quad \Psi_{3D} = \mathcal{D}(E_{3D}, \hat{E}_{3D}) \quad (3)
Ψ2D=D(E2D,E^2D)Ψ3D=D(E3D,E^3D)(3)
文章作者使用欧几里得距离作为差异函数D\mathcal{D}D。
然后,使用聚合函数A\mathcal{A}A将上述异常图进行组合,以得到最终的异常图Ψ=A(Ψ2D,Ψ3D)\Psi = \mathcal{A}(\Psi_{2D}, \Psi_{3D})Ψ=A(Ψ2D,Ψ3D) 。
如在3.2节结合图3所讨论的,仅当两种预测都与观测值不一致时文章作者才指出异常,这为各类异常提供了高敏感度,并对误检具有良好的鲁棒性。因此,文章作者使用逐像素乘积作为聚合函数:Ψ=Ψ2D⋅Ψ3D\Psi = \Psi_{2D} \cdot \Psi_{3D}Ψ=Ψ2D⋅Ψ3D,这可以被视为逻辑与运算:仅当两个特定模态的分数都高时,任何像素位置的异常分数才会高,即异常检测必须由两种模态共同证实。
最终,聚合后的异常图通过一个标准差σ=4\sigma = 4σ=4的高斯核进行平滑处理,这与常见做法[11, 34, 41]类似。
进行样本级异常检测所需的全局异常分数是通过取异常图Ψ\PsiΨ的最大值得到的。
3.4 Layers Pruning 层剪枝
在本文方法中使用的特征提取器 [8, 26] 基于 由mmm层组成的Transformer编码器 。不同层特征之间的区别在于应用于原始输入的自注意力处理程度不同。随着输入特征在编码器层中向下传递,它们会表现出越来越强的上下文化。
文章观察到,在冻结的特征提取器较浅的层之间学习映射,在内存需求和推理速度方面可以带来显著提升,同时对有效性的影响有限。
“冻结” 意味着其权重在训练过程中不再更新
因此,如图4所示,本文通过在二维和三维冻结特征提取器(F2D,F3D)(\mathcal{F}_{2D}, \mathcal{F}_{3D})(F2D,F3D)中选择中间层lll并舍弃从l+1l + 1l+1层到最后一层来进行层剪枝 。
相应地,跨模态网络M2D→3Dl\mathcal{M}^l_{2D \to 3D}M2D→3Dl和M3D→2Dl\mathcal{M}^l_{3D \to 2D}M3D→2Dl将二维编码器第lll层的特征映射到三维编码器第lll层的特征,反之亦然 。
例如,在Ours - T (l=1l = 1l=1) 中,本文在第一层之后对两个编码器进行修剪,舍弃从第二层到最后一层,并在第一层提取的特征上应用跨模态映射 。相比之下,本文的参考模型在两个编码器的最后一层特征之间学习跨模态映射网络。
4. Experimental Settings 实验设置
4.1 Datasets and Metrics 数据集与指标
两个数据集
本文在两个多模态异常检测基准数据集上评估文章的框架。
① MVTec 3D - AD [5]由10类工业物体组成,共有2656个训练样本、294个验证样本和1197个测试样本。② Eyecandies [6] 是一个合成数据集,展示了工业传送带场景中10类食品的逼真照片。它包含10,000个训练样本、1,000个验证样本和4,000个测试样本。
这两个数据集都为每个样本提供了RGB图像以及像素配准的三维信息,即每个像素位置对应的(x,y,z)(x, y, z)(x,y,z)坐标。
评估指标
文章采用MVTec 3D - AD提出的评估指标。
具体来说,本文通过基于全局异常分数计算的接受者操作特征曲线下面积(I - AUROC) 来评估图像异常检测性能。
本文通过像素级接受者操作特征曲线下面积 (P - AUROC) 和每区域重叠下面积 (AUPRO) 来估计异常分割性能。
之前的所有工作都使用0.3作为误报率(FPR)积分阈值来计算AUPRO。作者认为这个值对于实际工业应用来说往往过于宽松,会导致过多误报。因此,作者还基于更严格的0.01阈值计算AUPRO。
作者将积分阈值为0.3和0.01的AUPRO分别记为AUPRO@30%和AUPRO@1%,并在补充材料中报告结果以及额外的阈值。
4.2 Implementation Details 实现细节
特征提取器
本文采用与M3DM [41] 相同的冻结Transformer来实现F2D\mathcal{F}_{2D}F2D和F3D\mathcal{F}_{3D}F3D特征提取器,即分别在ImageNet [14] 上训练的DINO ViT - B/8 [8, 21] 以及在ShapeNet [9] 上训练的Point - MAE [26] 。
因此,F2D\mathcal{F}_{2D}F2D处理224×224224×224224×224的RGB图像,输出28×28×76828×28×76828×28×768的特征图,在将特征输入M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D之前,先通过双线性上采样将其变为224×224×768224×224×768224×224×768。
F3D\mathcal{F}_{3D}F3D处理1024个3D点,按照FPS [29] 方法进行处理,为每组生成一个维度为1152的特征向量。如3.1节所述,在将这些特征输入M3D→2D\mathcal{M}_{3D \to 2D}M3D→2D之前,先进行插值和对齐,使其变为224×224×1152224×224×1152224×224×1152。
交叉特征映射
M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D和M3D→2D\mathcal{M}_{3D \to 2D}M3D→2D都仅由三层线性层组成,除最后一层外,每层之后都接GeLU激活函数 。
M2D→3D\mathcal{M}_{2D \to 3D}M2D→3D每层的单元数分别为768、960、1152,M3D→2D\mathcal{M}_{3D \to 2D}M3D→2D每层的单元数分别为1152、960、768 。这两个网络使用Adam优化器 [19] 联合训练250个epoch,学习率为0.001。
减少背景噪声
与文献[17, 36, 41]中做法相同,文章在三维点云上使用RANSAC算法拟合一个平面,如果一个点到该平面的距离小于0.005,则将其视为背景点 。在将点云输入F3D\mathcal{F}_{3D}F3D之前,会剔除这些背景点。这个过程加快了三维特征的处理速度,并减少了异常图中的背景噪声。
轻量级版本
此外,如3.4节所述,为得到本文框架的轻量级版本,作者在lll等于1、4、8的层对两个特征提取器进行剪枝,从而得到分别称为Ours - T、Ours - S和Ours - M的Tiny、Small和Medium架构。
服务器
本文在单个NVIDIA GeForce RTX 4090上,使用文章自己的代码以及其他多模态异常检测方法作者的原始代码进行了实验。
5. Experiments 实验
5.1 Anomaly Detection and Segmentation 异常检测与分割
文章按照文献[41]的设置,在MVTec 3D - AD和Eyecandies数据集上评估我们提出的方法,结果列于表1、表2和表3 。
① MVTec 3D - AD数据集
在MVTec 3D - AD数据集上,本文的方法在异常检测和分割任务中取得了最佳结果,在三个平均指标(即I - AUROC、AUPRO@30%和AUPRO@1% )以及大多数单个类别中,都优于先前的先进方法M3DM 。
表1和表2的对比表明,当评估标准设置在可容忍误报率(FPR)方面提出更具挑战性的要求时,当前异常检测方法的性能会大幅下降 。如第4节所述,本文认为这样的挑战更符合许多实际工业异常检测应用的需求。因此,文章认为MVTec 3D - AD基准远未达到饱和状态,多模态异常检测仍有很大的改进空间。
② Eyecandies数据集
对于Eyecandies数据集(见表3 ),本文的方法性能与M3DM相当,两种方法各有两项指标领先 。
此外,本文强调在Eyecandies数据集中,P - AUROC指标几乎已达到饱和,而在AUPRO@1%指标上仍有显著的改进空间 。
③ MVTec 3D - AD数据集上的定性结果
在图5中,本文展示了在MVTec 3D - AD数据集上的一些定性结果。与M3DM相比,本文方法生成的异常图显著更清晰,与真实缺陷分割的相对定位更准确,从而在AUPRO@1%指标上产生了更大的性能差距 。补充材料中报告了更广泛的定性结果。
5.2 Few-shot Anomaly Detection and Segmentation 小样本异常检测与分割
在相关工业场景中,收集大量标称样本成本极高,甚至不可行 。因此,异常检测方法的一个理想特性是仅通过少量样本就能对标称数据的分布进行建模。为应对这种情况,文章基于MVTec 3D - AD数据集构建了首个多模态小样本异常检测基准。
本文从每个类别中随机选择5张、10张和50张图像作为训练数据 。文章在这些样本上训练了几种优秀的多模态方法,包括BTF [17]、M3DM [41] 和AST [36] ,并在整个MVTec 3D - AD测试集上进行测试,结果列于表4 。
在检测方面,本文的方法取得的I - AUROC与M3DM [41] 相当,同时优于其他方法 。在所有小样本设置下,本文的方法在所有分割性能指标(P - AUROC、AUPRO@1%和AUPRO@30% )上都取得了最佳结果,显著提升了最具挑战性的分割指标(在5样本设置下,AUPRO@1%提升了0.052 )。
这些结果表明,本文的框架能够学习到通用的跨模态关系,即使只有少量标称样本也能有效工作。
5.3 Frame Rate and Memory Occupancy 帧率与内存占用
计算效率是工业异常检测的关键。因此,本文研究了几种优秀的多模态方法(BTF [17]、M3DM [41]、AST [36] 以及本文的方法 )在异常检测性能方面的内存占用和推理速度。
此外,本文还报告了通过在不同层级使用3.4节所述的剪枝技术对特征提取器进行处理后,文章框架的性能表现。结果列于表5 。
本文在配备NVIDIA 4090显卡和Pytorch 1.13的同一台机器上,以每秒帧数为单位计算推理速度,并报告在MVTec 3D - AD所有测试样本上的平均值 。对于每种方法,本文纳入了其推理流程中从输入预处理到异常分数计算、在GPU上同步计算等每一步骤的时间,以估算总推理时间。本文不包括仅在训练时执行的步骤,例如创建内存库。
关于推理过程中的内存占用,本文考虑网络参数、激活值和内存库等因素 。正如预期的那样,基于内存库的方法(BTF [17] 和M3DM [41] )帧率最低,内存占用最高。AST [36] 仅比本文的模型多需要26MB内存,因为它基于两个前馈网络。然而,由于其基于归一化流 [27] ,推理速度仍然相对较慢(4.966 fps )。
在本文中,帧率(Frame Rate)指的是模型在进行异常检测推理时,每秒钟能够处理的图像帧数 ,单位是 fps(frames per second )。它是衡量模型推理速度的一个重要指标
本文的方法具有最高的帧率(21.755 fps )和最低的内存占用(437.91 MB ),同时在所有指标上都优于其他竞争方法 。
经过剪枝的模型Ours - M、Ours - S和Ours - T效率更高,只是在准确性上有轻微牺牲。例如,Ours - S的内存占用仅为完整模型的一半,但在MVTec 3D - AD的所有指标上仍取得了先进的结果。值得注意的是,Ours - T在最具挑战性的异常分割指标(AUPRO@1% = 0.419 )上达到了先进水平,同时实时运行(48.12 fps )。
5.4 Aggregation Analysis 聚合分析
本文研究了3.3节中所讨论的基于逐像素乘积的聚合方法的影响 。在表6中,本文报告了在MVTec 3D - AD数据集上的实验结果,这些结果分别基于聚合前的异常图Ψ2D\Psi_{2D}Ψ2D和Ψ3D\Psi_{3D}Ψ3D,或者使用不同函数(如逐像素求和Ψ2D+Ψ3D\Psi_{2D} + \Psi_{3D}Ψ2D+Ψ3D、逐像素取最大值max(Ψ2D,Ψ3D)\max(\Psi_{2D}, \Psi_{3D})max(Ψ2D,Ψ3D) ,以及逐像素乘积Ψ2D⋅Ψ3D\Psi_{2D} \cdot \Psi_{3D}Ψ2D⋅Ψ3D )组合后的异常图。
可以看出,逐像素乘积在检测和分割任务中表现最佳 。实际上,仅将Ψ2D\Psi_{2D}Ψ2D和Ψ3D\Psi_{3D}Ψ3D分数都高的点视为异常点,能够排除在RGB和三维特征之间的标称关系不唯一时可能出现的误报,正如3.2节所讨论的那样。
5.5 Features Visualization 特征可视化
在图6中,本文展示了MVTec 3D - AD数据集中一个正常(上 )和一个异常(下 )测试样本在跨模态映射前后空间对齐的二维和三维特征图,分别为(E2D,E3D)(E_{2D}, E_{3D})(E2D,E3D)和(E3D→2D,E2D→3D)(E_{3D \to 2D}, E_{2D \to 3D})(E3D→2D,E2D→3D) ,以及二维(Ψ2D)(\Psi_{2D})(Ψ2D)、三维(Ψ3D)(\Psi_{3D})(Ψ3D)和最终异常图(Ψ2D⋅Ψ3D)(\Psi_{2D} \cdot \Psi_{3D})(Ψ2D⋅Ψ3D) 。
对比两行内容,作者注意到正常样本和异常样本的二维特征图E2DE_{2D}E2D看起来相似,而三维特征图E3DE_{3D}E3D则更好地突出了异常部分,这与图3中展示的三维异常情况相呼应 。在映射之后,E3D→2DE_{3D \to 2D}E3D→2D中可以看到异常部分(孔洞 ),但在E2D→3DE_{2D \to 3D}E2D→3D中却看不到。
这种可视化结果与3.2节和图3中讨论的原理相符:正常的二维特征被映射为正常的三维特征,异常的三维特征被映射为异常的二维特征 。因此,通过计算映射后的特征与原始特征之间的差异,本文得到二维和三维异常图,两者都突出显示了缺陷部分。值得注意的是,尽管孔洞在图像中只占据很小一部分,但仍能被准确检测出来。
5.6 Crossmodal Mapping vs Intramodal Reconstruction 跨模态映射与模态内重构
文献[43](DFR )的作者提出,通过在特征空间中从标称样本学习重构网络,能够利用重构误差来检测RGB图像中的异常 。由于本文的方法可被视为在特征空间中执行跨模态重构,因此本文研究了学习跨模态与模态内特征映射函数的效果差异 。表7对比了本文的方法 (跨模态,Cross ) 与通过修改映射网络输入层以学习在相同模态内重构特征 (模态内,Intra ) 的结果。
独立重构每个模态得到的结果表明,本文提出的跨模态特征映射在特定模态学习方面比模态内特征重构更有效(第1行对比第4行,第2行对比第5行 )。通过逐像素乘积获得的聚合图(第3行与第6行)也会产生更好的结果。
6. Conclusions and Limitations 结论与局限性
优点
本文基于跨模态映射Transformer架构提取特征的核心思想,开发了一种有效且高效的多模态异常检测框架 。这种新颖的范式在MVTec 3D - AD基准测试中,性能大幅超越了以往资源密集型方法,同时显著提高了推理速度 。此外,本文为冻结的Transformer编码器提出了一种层剪枝策略,该策略可大幅减少内存占用,在不牺牲异常检测性能的前提下实现更快的推理 。最后,在具有挑战性的小样本场景中,本文的方法优于竞争对手,在多模态小样本异常检测基准测试中达到了先进水平。
局限性
本文方法的一个局限性在于其仅适用于多模态的特性,即本文的范式不能应用于二维异常检测或三维异常检测,因为在训练和测试阶段都需要来自两种模态的数据 。
6.1 Acknowledgements 致谢
本文衷心感谢SACMI Imola的支持。