Self-supervised Feature Adaptation for 3D Industrial Anomaly Detection
1、Background
现有的二维异常检测方法大致可以分为两类:基于重建的和基于特征嵌入的。
前者利用了仅用正常特征训练的生成器无法成功重建异常特征的特点。
而后者旨在通过训练有素的特征提取器对正常样本的分布进行建模,在推理阶段,将分布外的样本视为异常。
基于特征嵌入的方法更灵活,并在二维RGB异常检测任务上显示出有希望的性能。
然而,将二维特征嵌入范式简单地转移到三维领域并不容易。以最先进的基于嵌入的方法PatchCore为例,当与手工制作的三维表示(FPFH)结合使用时,它产生了一个强大的多模态异常检测基线。
然而,通过实验发现PatchCore+FPFH基线存在两个缺点,第一,由于预训练知识与工业场景之间的巨大差异,它容易将异常区域误认为是正常区域。第二,当涉及到具有更复杂纹理的类别时,它有时无法识别小的异常模式。
为了解决上述问题,该方法采用了特征适配策略,以进一步提高预训练模型的容量,并学习面向任务的特征描述符。
在模态方面,颜色更有效地识别纹理异常,而深度信息有助于检测三维空间中的几何变形,因此,最好利用模态内和跨模态信息进行适配。
另一方面,在粒度方面,模态间的对象级对应有助于学习紧凑的表示,而异常检测需要局部敏感性以识别微妙的异常,因此,需要一个多粒度的学习目标。
基于上述考虑,提出了一种新颖的局部到全局自监督多模态特征适配框架,名为LSFA,以更好地将预训练知识转移到下游异常检测任务。
具体来说,LSFA从两个视角执行适配:模态内和跨模态。前者适配引入了模态内特征紧凑性(IFC)优化,其中多粒度记忆库被应用于学习正常特征的紧凑分布。对于后者,设计了跨模态局部到全局一致性(CLC)以在补丁级别和对象级别对齐不同模态的特征。
在两种模态的多粒度信息的帮助下,通过LSFA适配的模型产生了面向三维空间异常检测的目标导向特征,因此能够捕捉到小的异常,同时避免误报。对于异常检测的最终推理,利用LSFA微调的特征构建记忆库,并通过计算特征差异来确定正常/异常。
总结来说,这项工作的主要贡献如下:
- 提出了LSFA,这是一个新颖有效的3D异常检测框架,它通过模态间局部到全局的对应关系来适配预训练特征。
- 在LSFA中,提出了
模态内特征紧凑性优化(IFC),以动态更新的记忆库从补丁级和原型级改进特征紧凑性。
- 在LSFA中,提出了
跨模态局部到全局一致性对齐(CLC),以多粒度对比信号减轻跨模态错位。
2、Method
整体流程:
- 特征提取
- 对于RGB图像和3D点云这两种模态的输入数据,首先使用预训练的特征提取器(例如ViT用于图像,PointMAE用于点云)提取它们的原始特征。
- 特征适配
- 提取的特征随后被送入适配器(Adaptors),适配器是专门设计来调整预训练特征以适应特定任务的网络结构,如异常检测。
- 适配器的输出是经过微调的特征,这些特征更适合于后续的处理步骤。
- 模态内特征紧凑性优化(IFC)
- 局部级别:在局部级别上,通过动态更新的记忆库来优化特征的紧凑性,使得同一类别内的正常样本特征更加接近,而异常样本特征则更容易被区分开来。
- 全局级别:在全局级别上,通过对整个样本的特征进行聚类和优化,进一步增强特征的区分度。
- 跨模态局部到全局一致性对齐(CLC)
- 局部对齐:确保RGB图像和3D点云在同一空间位置上的特征具有一致性,这有助于模型更好地理解两种模态之间的对应关系。
- 全局对齐:在全局层面上,通过对齐两种模态的整体特征分布,增强了模型对整个样本的理解。
- 缺陷定位
- 使用适配后的特征,通过现成的算法(如PatchCore)计算每个像素或体素的异常分数。
- 将两种模态的异常分数平均,得到最终的异常检测结果。
跨模态局部到全局一致性对齐(Cross-modal Local-to-global Consistency Alignment,CLC)
局部视图(Local View):
- 特征提取
- 首先,从RGB图像和对应的3D点云中提取局部特征。对于RGB图像,可以使用ViT等模型将图像分割成多个补丁,并提取每个补丁的特征;对于3D点云,则可以使用PointMAE等模型提取点的特征。
- 特征投影
- 将3D点云特征投影到RGB图像的相应补丁上。这一步骤确保了两种模态在空间位置上的对应关系。
- 局部一致性对齐
- 对于同一位置的RGB补丁和3D点云特征,通过最大化它们的相似度来确保局部几何一致性。
- 对于不同位置的特征,则通过最小化它们的相似度来避免错误的对应关系。
全局视图(Global View):
- 特征聚类
- 在局部特征对齐之后,对RGB图像和3D点云的局部特征进行聚类,以获得实例级(全局)特征。
- 全局一致性对齐
- 类似于局部对齐,对全局特征进行优化,以确保两种模态在整体上保持一致性。
优化方法:
- 对比损失
- 使用对比损失(contrastive loss)来度量和优化特征间的相似性。对于同一位置的特征,损失函数鼓励模型增加它们的相似度;对于不同位置的特征,则鼓励模型减小它们的相似度。
- 自监督信号
- 利用自监督信号来指导特征对齐,这意味着优化过程不依赖于外部标注,而是依赖于数据本身的结构特性。
关键点:
- 多粒度对齐:CLC方法从局部到全局对特征进行对齐,确保了不同尺度上的一致性。
- 自监督学习:通过自监督的方式进行特征对齐,减少了对标注数据的依赖。
- 特征增强:通过一致性对齐,增强了特征的表达能力,有助于提高异常检测的准确性。
- 跨模态交互:通过RGB和3D点云之间的特征对齐,实现了跨模态的信息融合。
局部到全局紧凑性优化策略(Intra-modal Feature Compactness optimization,IFC)
局部紧凑性优化(Local-Level):
- 局部特征提取
- 从RGB图像和3D点云中提取局部特征,这些特征通常对应于图像的补丁或点云的局部区域。
- 局部记忆库
- 构建一个局部级别的记忆库,用于存储训练过程中学习到的正常样本的局部特征。
- 局部紧凑性损失
- 通过计算局部特征与记忆库中最近邻特征之间的距离,使用均方误差(MSE)损失来度量特征的紧凑性。
- 该损失函数鼓励模型使正常样本的特征在特征空间中更加紧密,从而更容易与异常样本区分。
全局紧凑性优化(Global-Level):
- 全局特征提取
- 对局部特征进行聚类或汇总,以获得代表整个样本的全局特征。
- 全局记忆库
- 构建一个全局级别的记忆库,用于存储训练过程中学习到的正常样本的全局特征。
- 全局紧凑性损失
- 类似于局部紧凑性优化,全局紧凑性损失也使用MSE损失来度量全局特征的紧凑性。
- 该损失函数鼓励模型使全局特征在特征空间中形成更加紧凑的分布。
动态更新的记忆库:
- 特征更新
- 在训练过程中,新学习到的正常样本的特征会更新到记忆库中,以保持记忆库的动态性和准确性。
- 特征淘汰
- 如果记忆库的大小超过了预设的限制,将根据一定的策略(如最近最少使用)淘汰旧的特征,以维持记忆库的大小和有效性。
关键点:
- 多粒度特征优化:IFC策略同时考虑了局部和全局两个粒度的特征优化,增强了模型对不同尺度异常模式的检测能力。
- 自监督学习:通过自监督的方式进行特征紧凑性优化,减少了对标注数据的依赖。
- 记忆库的动态管理:记忆库的动态更新和淘汰机制确保了特征表示的时效性和紧凑性。
- 特征区分度提升:通过紧凑性优化,模型能够更清晰地区分正常和异常样本,从而提高异常检测的准确性。
pseudo-code
Algorithm: LSFA Training Procedure// 初始化
1: Initialize memory banks (M_G_I, M_L_I, M_G_P, M_L_P)
2: Initialize adaptors (Ψ_I, Ψ_P)// 训练循环
3: for each epoch do
4: for each (RGB image Ii, Point Cloud Pi) in training set D do
5: // 步骤 A: 特征提取
6: F_Ii <- Extract_features(Ii, pretrained_RGB_model) // 提取RGB特征
7: F_Pi <- Extract_features(Pi, pretrained_PointCloud_model) // 提取点云特征8: // 步骤 B: 特征适配
9: F_Ii_adapted <- Ψ_I(F_Ii) // 适配RGB特征
10: F_Pi_adapted <- Ψ_P(F_Pi) // 适配点云特征12: // 步骤 C: 跨模态局部到全局一致性对齐 (CLC)
13: H_Ii <- Project(F_Ii_adapted) // 投影RGB特征
14: H_Pi <- Project(F_Pi_adapted) // 投影点云特征
15: L_CLC <- Compute_CLC_loss(H_Ii, H_Pi) // 计算CLC损失16: // 步骤 D: 模态内特征紧凑性优化 (IFC)
17: L_IFC <- Compute_IFC_loss(F_Ii_adapted, F_Pi_adapted) // 计算IFC损失18: // 步骤 E: 反向传播和适配器更新
19: Update(Ψ_I, Ψ_P, L_CLC + L_IFC) // 更新适配器参数20: // 步骤 F: 更新记忆库
21: Update_memory_banks(M_G_I, M_L_I, F_Ii_adapted) // 更新RGB记忆库
22: Update_memory_banks(M_G_P, M_L_P, F_Pi_adapted) // 更新点云记忆库23: end for
24: end for25: return Ψ_I, Ψ_P // 返回训练好的适配器
3、Experiments
🐂🐎。。。
4、Conclusion
提出了一个简单而有效的自监督多模态特征适配框架LSFA,用于多模态异常检测。
具体来说,LSFA在 模态内和模态间进行特征适配。
对于模态内,提出了一种 基于动态更新记忆库的特征紧凑性优化方案,以增强特征对不寻常模式的敏感性。
对于模态间,提出了一种 局部到全局的一致性对齐策略,用于多尺度跨模态信息交互。