题目:Multimodal Industrial Anomaly Detection via Hybrid Fusion
题目:基于混合融合的多模态工业异常检测
Multimodal 多模式的
Industrial Anomaly Detection 工业缺陷检测
via 通过
Hybrid Fusion 混合融合
Abstract 摘要
基于二维的工业异常检测已被广泛探讨,然而,基于三维点云和RGB图像的多模态工业异常检测仍存在诸多尚未涉足的领域。现有的多模态工业异常检测方法直接连接多模态特征,这会导致特征间产生强烈干扰,损害检测性能。
在本文中,我们提出了Multi - 3D - Memory(M3DM)这一全新的多模态异常检测方法,并采用混合融合方案:
- 首先,我们设计了一种基于逐块对比学习的无监督特征融合方法,以促进不同模态特征间的交互;
- 其次,我们使用带有多个记忆库的决策层融合,避免信息损失,并利用额外的新颖分类器做出最终决策;
- 此外,我们还提出了点特征对齐操作,以便更好地对齐点云和RGB特征。
大量实验表明,我们的多模态工业异常检测模型在MVTec - 3D AD数据集上的检测和分割精度方面均优于当前最优(SOTA)方法。代码位于https://github.com/nomewang/M3DM。
1. Introduction 介绍
工业异常检测旨在找出产品中的异常区域,在工业质量检测中发挥着重要作用。在工业场景中,获取大量正常样本较为容易,但缺陷样本却十分稀缺。当前的工业异常检测方法大多为无监督方法,即仅在正常样本上进行训练,仅在推理时对检测样本进行测试。此外,现有的大多数工业异常检测方法(如文献[2, 10, 26, 35] )基于二维图像。然而,在工业质检中,人类检测员会同时利用三维形状和颜色特征来判断产品是否有缺陷,其中三维形状信息对于准确检测至关重要。如图1所示,对于饼干和土豆,仅从RGB图像很难识别出缺陷。随着三维传感器的发展,最近发布的MVTec - 3D AD数据集(图1 )同时包含二维图像和三维点云数据,促进了多模态工业异常检测的研究。
无监督异常检测的核心思想是找出正常表示与异常之间的差异。当前二维工业异常检测方法可分为两类:
- 基于重建的方法:图像重建任务常用于学习正常表示,如文献[2, 10, 15, 23, 35, 36] 。基于重建的方法对于单模态输入(二维图像或三维点云)易于实现,但对于多模态输入,很难找到重建目标。
- 基于预训练特征提取器的方法:一种直观的方法是利用特征提取器将提取的特征映射到正常分布,并将分布外的特征视为异常。基于归一化流的方法(如文献[16, 28, 33] )使用可逆变换直接构建正常分布,基于记忆库的方法(如文献[9, 26] )存储一些代表性特征来隐式构建特征分布。
与基于重建的方法相比,直接使用预训练特征提取器不涉及多模态重建目标的设计,是多模态任务的更好选择。此外,当前多模态工业异常检测方法(如文献[17, 28] )直接将两种模态的特征连接在一起。然而,当特征维度较高时,多模态特征之间的干扰会很严重,导致性能下降。
为解决上述问题,我们提出一种基于RGB图像和三维点云的新型多模态异常检测方案,名为Multi - 3D - Memory(M3DM)。与现有直接连接两种模态特征的方法不同,我们提出一种混合融合方案,以减少多模态特征之间的干扰并促进特征交互。我们提出无监督特征融合(UFF)来融合多模态特征,UFF通过逐块对比损失进行训练,以学习相同位置多模态特征块之间的内在关系。为促使异常检测模型保持单域推理能力,我们分别为RGB、三维和融合特征构建三个记忆库。对于最终决策,我们构建决策层融合(DLF)来综合考虑所有记忆库的信息以进行异常检测和分割。
异常检测需要同时包含全局和局部信息的特征,其中局部信息有助于检测小缺陷,全局信息关注各部分之间的关系。基于此,我们使用Point Transformer(文献[21, 37] )提取三维特征,使用Vision Transformer(文献[6, 12] )提取RGB特征。我们进一步提出点特征对齐(PFA)操作,以对齐三维和二维特征。
我们的贡献总结如下:
- 我们提出M3DM,一种具有混合特征融合的新型多模态工业异常检测方法,在MVTec - 3D AD数据集上,其检测和分割精度优于当前最优方法。
- 我们提出基于逐块对比损失的无监督特征融合(UFF),以促进多模态特征之间的交互。
- 我们设计了利用多个记忆库的决策层融合(DLF),以实现稳健的决策制定。
- 我们探索了Point Transformer在多模态异常检测中的可行性,并提出 点特征对齐(PFA) 操作,将Point Transformer特征对齐到二维平面,以实现高性能的三维异常检测。
2. Related Works 相关工作
对于大多数异常检测方法而言,核心思路是找出正常数据的良好表示。传统异常检测已发展出多种不同路径:
- 基于概率的方法:使用正常样本的经验累积分布函数(如文献[8, 18] )来做出决策 。
- 基于邻域位置的方法:可利用表示空间中邻居的位置,这能通过多种聚类方法实现,比如k - 近邻算法(k - NN,文献[1, 25] ) 、相关积分(文献[22] )和直方图(文献[14] ) 。
- 异常值集成方法:使用一系列决策模型来检测异常数据,其中最著名的异常值集成方法是孤立森林(文献[19] ) 。
- 基于线性模型的方法:线性模型也可用于异常检测,例如简单利用主成分分析(文献[30] )的性质,或使用单类支持向量机(OCSVM,文献[29] ) 。
传统机器学习方法相较于深度学习依赖更少的训练数据,==因此我们利用这一优势,设计了基于OCSVM和随机梯度下降的决策层融合模块 ==。
2.1 2D Industrial Anomaly Detection 二维工业异常检测
工业异常检测通常处于无监督设置下。MVTec AD数据集被广泛用于工业异常检测(文献[2] )研究,其训练集仅包含正常样本,而测试集包含正常和异常样本。工业异常检测需要提取图像特征来做决策,特征可被隐式或显式地使用。
- 隐式特征方法:利用图像重建模型,如自动编码器(文献[2, 15, 36] )和生成对抗网络(文献[23] ) 。重建方法无法恢复异常区域,通过比较生成图像与原始图像可定位异常并做出决策。一些数据增强方法(文献[35] )被提出以提高异常检测性能,研究人员手动添加一些伪异常到正常样本中,训练目标是定位伪异常。
- 显式特征方法:依赖预训练的特征提取器,额外的检测模块利用学习到的特征或表示来定位异常区域。知识蒸馏方法(文献[10] )旨在学习一个学生网络来重建图像或提取特征,找出教师网络和学生网络之间的差异来表示异常。归一化流(文献[16, 33] )利用可逆变换将图像特征转换为正态分布,异常特征会落在分布边缘。实际上,上述所有方法都试图将特征信息存储在深度网络的参数中,近期研究表明==简单使用记忆库(==文献[26] )就能在异常检测中获得全面的召回率。
二维和三维异常检测有许多相似之处,我们将记忆库方法扩展到三维和多模态设置中,取得了令人瞩目的成果。
2.2 3D Industrial Anomaly Detection 三维工业异常检测
首个公开的三维工业异常检测数据集是MVTec - 3D AD数据集(文献[3] ) ,它为同一实例同时包含RGB信息和点位置信息。受医学异常检测启发,体素自动编码器和生成对抗网络(文献[3] )首次在三维工业异常检测中被探索,但这些方法丢失了大量空间结构信息,效果不佳。此后,一种三维师生网络(文献[4] )被提出,专注于局部点云几何描述符,该网络使用额外数据进行预训练。记忆库方法(文献[17] )也在三维异常检测中得到探索,采用几何点特征和简单的特征连接方式。知识蒸馏方法(文献[28] )利用深度信息进一步提升了纯RGB和多模态异常检测的结果。
我们的方法基于记忆库,与先前方法不同的是,我们提出一种新颖的流程,利用预训练的点变换器(point transformer)以及混合特征融合方案,以实现更精确的检测。
3. Method 方法
3.1 Overview 综述
我们的多三维记忆(M3DM)方法将三维点云和RGB图像作为输入,并进行三维异常检测与分割。我们提出一种混合融合方案,以促进跨域信息交互,同时保持每个单一域的原始信息 。
我们利用两个预训练的特征提取器(用于RGB的DINO [6]和用于点云的PointMAE [21])分别提取颜色和三维表示。如图2所示,M3DM由三个重要部分组成:
(1)点特征对齐(PFA,3.2节):为解决颜色特征与三维特征的位置信息不匹配问题,我们提出点特征对齐,将三维特征对齐到二维空间,这有助于简化多模态交互并提升检测性能。
(2)无监督特征融合(UFF,3.3节):由于多模态特征间的交互可生成有助于异常检测的新表示[17,28],我们提出无监督特征融合模块,以统一多模态特征分布并学习其内在联系。
(3)决策层融合(DLF,3.4节):尽管UFF有助于提升检测性能,但信息丢失不可避免,我们提出决策层融合,以统一多个记忆库来进行最终决策。
3.2 Point Feature Alignment 点特征对齐
3.2.1 Point Feature Extraction 点特征提取
我们利用点变换器(
F
p
t
\mathcal{F}_{pt}
Fpt)[37]来提取点云特征。
输入的点云
p
p
p 是一个由
N
N
N 个点组成的点位置序列。经过最远点采样(FPS)[24]后,点云被划分为
M
M
M 组,每组包含
S
S
S 个点。然后,每组中的点被编码为一个特征向量,并将这
M
M
M 个向量作为点变换器的输入。点变换器的输出
g
g
g 是
M
M
M 个点特征,这些特征随后被组织成点特征组:每个组都有一个单一的点特征,该特征可以被视为组中心点的特征。
FPS最远点采样划分为M个组,每组包含S个点。
1.划分为M个组
首先是怎么确定M个组,先通过FPS采样M个点作为中心点。
第一步:随机采样一个点作为初始采样点集,一般选取距离点云重心最远的点作为初始采样点。
第二步:依次计算所有未采样点与已采样点的距离,通常使用欧氏距离。取距离初始采样点最大的点为下一个采样点。
第三步:计算每一个未采样点与采样点集中所有点的距离,保留最小距离。遍历所有未采样点后,从所有的最小距离中选出最大值,该最大值对应的未采样点即为下一个采样点,加入采样点集。
第四步:重复第三步,直到获取M个采样点。2.每组包含S个点
使用FPS采样到一些中心点,然后使用 K nearest neighbor (KNN)或者Ball query 算法分组。
KNN:以每个中心点为基准,计算剩余点到各中心点的距离,将每个点分配给距离最近的中心点所在的组。可预先设定每组包含的点数S。分组时,若某组分配的点数超过N个,按与中心点距离排序,取前S个点。
3.2.2 Point Feature Interpolation 点特征插值
由于在最远点采样(FPS)之后,点中心点在空间中分布不均匀,这会导致点特征的密度不均衡。我们提出将点特征插值回原始点云。
给定
M
M
M 个点特征
g
i
g_i
gi ,它们与
M
M
M 个组中心点
c
i
c_i
ci 相关联,我们使用逆距离权重法将特征插值到输入点云中的每个点
p
j
p_j
pj(
j
∈
{
1
,
2
,
…
,
N
}
j \in \{1, 2, \ldots, N\}
j∈{1,2,…,N} )。该过程可描述如下:
p
j
′
=
∑
i
=
1
M
α
i
g
i
,
α
i
=
1
∥
c
i
−
p
j
∥
2
+
ϵ
∑
k
=
1
M
∑
t
=
1
N
1
∥
c
k
−
p
t
∥
2
+
ϵ
(
1
)
p'_j = \sum_{i = 1}^{M} \alpha_i g_i, \quad \alpha_i = \frac{\frac{1}{\| c_i - p_j \|_2 + \epsilon}}{\sum_{k = 1}^{M} \sum_{t = 1}^{N} \frac{1}{\| c_k - p_t \|_2 + \epsilon}} \quad (1)
pj′=i=1∑Mαigi,αi=∑k=1M∑t=1N∥ck−pt∥2+ϵ1∥ci−pj∥2+ϵ1(1)
其中
ϵ
\epsilon
ϵ 是一个非常小的常数,用于避免分母为 0 。
3.2.3 Point Feature Projection 点特征投影
插值之后,我们利用点坐标和相机参数将
p
j
′
p'_j
pj′ 投影到二维平面上,投影后的点记为
p
^
\hat{p}
p^ 。
我们注意到点云可能是稀疏的,若二维平面上的某个位置没有对应的点,我们直接将该位置的值设为 0 。我们将投影后的特征图记为
{
p
^
x
y
∣
(
x
,
y
)
∈
D
}
\{ \hat{p}_{xy} | (x, y) \in \mathbb{D} \}
{p^xy∣(x,y)∈D}(
D
\mathbb{D}
D 是 RGB 图像对应的二维平面区域,其大小与输入的 RGB 图像相同 )。最后,我们使用 平均池化操作在二维平面特征图上获取局部特征。
3.3 Unsupervised Feature Fusion 无监督特征融合
多模态特征之间的交互可以产生有助于工业异常检测的新信息。例如,在图1中,我们需要结合黑色以及形状凹陷这两个特征来检测饼干上的孔洞。为了学习训练数据中两种模态之间存在的内在关系,我们设计了无监督特征融合(UFF)模块。
我们提出一种基于图像块的对比损失来训练特征融合模块:给定RGB特征
f
r
g
b
f_{rgb}
frgb 和点云特征
f
p
t
f_{pt}
fpt,我们旨在促使来自不同模态、相同位置的特征具有更多的对应信息,而不同位置的特征具有较少的对应信息。
我们将一个图像块的特征记为
{
f
r
g
b
(
i
,
j
)
,
f
p
t
(
i
,
j
)
}
\{ f_{rgb}^{(i,j)}, f_{pt}^{(i,j)} \}
{frgb(i,j),fpt(i,j)},其中
i
i
i 是训练样本的索引,
j
j
j 是图像块的索引。我们通过 多层感知器(MLP)层
{
χ
r
g
b
,
χ
p
t
}
\{ \chi_{rgb}, \chi_{pt} \}
{χrgb,χpt} 来提取两种模态之间的交互信息,并使用全连接层
{
σ
r
g
b
,
σ
p
t
}
\{ \sigma_{rgb}, \sigma_{pt} \}
{σrgb,σpt} 将处理后的特征映射为查询向量或键向量。我们将映射后的特征记为
{
h
r
g
b
(
i
,
j
)
,
h
p
t
(
i
,
j
)
}
\{ h_{rgb}^{(i,j)}, h_{pt}^{(i,j)} \}
{hrgb(i,j),hpt(i,j)}。然后我们采用InfoNCE [20]损失进行对比学习:
L
c
o
n
=
h
r
g
b
(
i
,
j
)
⋅
h
p
t
(
i
,
j
)
T
∑
t
=
1
N
b
∑
k
=
1
N
p
h
r
g
b
(
t
,
k
)
⋅
h
p
t
(
t
,
k
)
T
(
2
)
\mathcal{L}_{con} = \frac{h_{rgb}^{(i,j)} \cdot h_{pt}^{(i,j)T}}{\sum_{t = 1}^{N_b} \sum_{k = 1}^{N_p} h_{rgb}^{(t,k)} \cdot h_{pt}^{(t,k)T}} \quad (2)
Lcon=∑t=1Nb∑k=1Nphrgb(t,k)⋅hpt(t,k)Thrgb(i,j)⋅hpt(i,j)T(2)
其中
N
b
N_b
Nb 是批量大小,
N
p
N_p
Np 是非零图像块数。UFF是一个统一的模块,使用MVTec - 3D AD的所有类别训练数据进行训练,UFF的架构如图3所示。
在上述文本中,InfoNCE损失( L c o n \mathcal{L}_{con} Lcon )用到点乘来衡量不同模态特征的相似性,以此辅助判断缺陷等异常情况,其意义和作用如下:
衡量特征相似性
公式中分子 h r g b ( i , j ) ⋅ h p t ( i , j ) T h_{rgb}^{(i,j)} \cdot h_{pt}^{(i,j)T} hrgb(i,j)⋅hpt(i,j)T 是RGB模态与点云模态在同一图像块位置 ( i , j ) (i,j) (i,j)处特征向量的点乘。
点乘结果越大,说明这两个来自不同模态的特征向量在方向上越接近,即相似性越高 。
在工业异常检测场景下,正常区域的多模态特征(比如物体表面正常部分的RGB颜色特征和点云形状特征 )在对应位置应该具有较高相似性和一致性 。而如果存在缺陷,例如物体表面有孔洞、裂纹等异常,会使RGB特征(如颜色变化 )和点云特征(如形状突变 )在该位置不再匹配,点乘结果会变小 。
通过衡量这种相似性,模型可以捕捉到特征间的异常变化,从而定位缺陷 。对比学习的依据
分母 ∑ t = 1 N b ∑ k = 1 N p h r g b ( t , k ) ⋅ h p t ( t , k ) T \sum_{t = 1}^{N_b} \sum_{k = 1}^{N_p} h_{rgb}^{(t,k)} \cdot h_{pt}^{(t,k)T} ∑t=1Nb∑k=1Nphrgb(t,k)⋅hpt(t,k)T对批量内所有样本、所有图像块位置的特征点乘结果求和。
分子:代表正样本对之间的相似度得分。
分母:代表所有可能的负样本对相似度得分之和+正样本对之间的相似度得分。
比值:衡量正样本对相对于所有样本对的相对相似度。
对数和负号:确保损失值为正值,并且最小化这个损失意味着最大化正样本对相对于负样本对的相似度比值。
在推理阶段,我们将
f
(
i
,
j
)
f^{(i,j)}
f(i,j) 的多层感知器层输出连接起来,作为融合后的图像块特征,记为
f
f
s
(
i
,
j
)
f_{fs}^{(i,j)}
ffs(i,j):
f
f
s
(
i
,
j
)
=
χ
r
g
b
(
f
r
g
b
(
i
,
j
)
)
⊕
χ
p
t
(
f
p
t
(
i
,
j
)
)
(
3
)
f_{fs}^{(i,j)} = \chi_{rgb}(f_{rgb}^{(i,j)}) \oplus \chi_{pt}(f_{pt}^{(i,j)}) \quad (3)
ffs(i,j)=χrgb(frgb(i,j))⊕χpt(fpt(i,j))(3)
3.4 Decision Layer Fusion 决策层融合
如图1所示,部分工业异常仅出现在单一模态(例如土豆的凸起部分 ),多模态特征之间的对应关系可能并不十分明显。此外,尽管特征融合能够促进多模态特征之间的交互,但我们发现,在融合过程中仍有一些信息会丢失。
为解决上述问题,我们提议利用多个记忆库来存储原始颜色特征、位置特征和融合特征。
我们分别将这三种记忆库记为
M
r
g
b
\mathcal{M}_{rgb}
Mrgb、
M
p
t
\mathcal{M}_{pt}
Mpt、
M
f
s
\mathcal{M}_{fs}
Mfs。我们参考PatchCore [26]来构建这些记忆库,在测试期间,记忆库用于预测异常分数和分割图。然后,我们使用两个可学习的单类支持向量机(OCSVM)[29]
D
a
\mathcal{D}_a
Da 和
D
s
\mathcal{D}_s
Ds ,分别对异常分数
a
a
a 和分割图
S
S
S 做出最终决策。我们将上述过程称为决策层融合(DLF),其过程可描述如下:
a
=
D
a
(
ϕ
(
M
r
g
b
,
f
r
g
b
)
,
ϕ
(
M
p
t
,
f
p
t
)
,
ϕ
(
M
f
s
,
f
f
s
)
)
(
4
)
a = \mathcal{D}_a(\phi(\mathcal{M}_{rgb}, f_{rgb}), \phi(\mathcal{M}_{pt}, f_{pt}), \phi(\mathcal{M}_{fs}, f_{fs})) \quad (4)
a=Da(ϕ(Mrgb,frgb),ϕ(Mpt,fpt),ϕ(Mfs,ffs))(4)
S
=
D
s
(
ψ
(
M
r
g
b
,
f
r
g
b
)
,
ψ
(
M
p
t
,
f
p
t
)
,
ψ
(
M
f
s
,
f
f
s
)
)
(
5
)
S = \mathcal{D}_s(\psi(\mathcal{M}_{rgb}, f_{rgb}), \psi(\mathcal{M}_{pt}, f_{pt}), \psi(\mathcal{M}_{fs}, f_{fs})) \quad (5)
S=Ds(ψ(Mrgb,frgb),ψ(Mpt,fpt),ψ(Mfs,ffs))(5)
其中
ϕ
\phi
ϕ、
ψ
\psi
ψ 是 [26] 中引入的分数函数,具体公式如下:
ϕ
(
M
,
f
)
=
η
∥
f
(
i
,
j
)
,
∗
−
m
∗
∥
2
(
6
)
\phi(\mathcal{M}, f) = \eta \| f^{(i,j),*} - m^* \|_2 \quad (6)
ϕ(M,f)=η∥f(i,j),∗−m∗∥2(6)
ψ
(
M
,
f
)
=
{
min
m
∈
M
∥
f
(
i
,
j
)
−
m
∥
2
∣
f
(
i
,
j
)
∈
f
}
(
7
)
\psi(\mathcal{M}, f) = \left\{ \min_{m \in \mathcal{M}} \| f^{(i,j)} - m \|_2 \big| f^{(i,j)} \in f \right\} \quad (7)
ψ(M,f)={m∈Mmin∥f(i,j)−m∥2
f(i,j)∈f}(7)
f
(
i
,
j
)
,
∗
,
m
∗
=
arg
max
f
(
i
,
j
)
∈
f
arg
min
m
∈
M
∥
f
(
i
,
j
)
−
m
∥
2
(
8
)
f^{(i,j),*}, m^* = \underset{f^{(i,j)} \in f}{\arg\max} \underset{m \in \mathcal{M}}{\arg\min} \| f^{(i,j)} - m \|_2 \quad (8)
f(i,j),∗,m∗=f(i,j)∈fargmaxm∈Margmin∥f(i,j)−m∥2(8)
其中
M
∈
{
M
r
g
b
,
M
p
t
,
M
f
s
}
\mathcal{M} \in \{ \mathcal{M}_{rgb}, \mathcal{M}_{pt}, \mathcal{M}_{fs} \}
M∈{Mrgb,Mpt,Mfs},
f
∈
{
f
r
g
b
,
f
p
t
,
f
f
s
}
f \in \{ f_{rgb}, f_{pt}, f_{fs} \}
f∈{frgb,fpt,ffs},
η
\eta
η是一个重新加权参数。
我们提出一种两阶段训练过程 :在第一阶段,我们构建记忆库;在第二阶段,我们训练决策层。决策层融合的伪代码如算法1所示。
算法1:决策层融合训练
输入:记忆库构建算法 P \mathcal{P} P[26]、决策层 { D a , D s } \{ \mathcal{D}_a, \mathcal{D}_s \} {Da,Ds}、单类支持向量机(OCSVM)损失函数 L o c \mathcal{L}_{oc} Loc[29]
数据:训练集特征 { F r g b , F p t , F f s } \{ \mathbb{F}_{rgb}, \mathbb{F}_{pt}, \mathbb{F}_{fs} \} {Frgb,Fpt,Ffs}
输出:多模态记忆库 { M r g b , M p t , M f s } \{ \mathcal{M}_{rgb}, \mathcal{M}_{pt}, \mathcal{M}_{fs} \} {Mrgb,Mpt,Mfs}、决策层参数 { Θ D a , Θ D s } \{ \Theta_{\mathcal{D}_a}, \Theta_{\mathcal{D}_s} \} {ΘDa,ΘDs}
对于模态 m o d a l modal modal属于 { r g b , p t , f s } \{rgb, pt, fs\} {rgb,pt,fs},执行以下操作:
对于 f m o d a l f_{modal} fmodal 属于 F m o d a l \mathbb{F}_{modal} Fmodal ,执行以下操作:
M m o d a l \mathcal{M}_{modal} Mmodal 存入 f m o d a l f_{modal} fmodal
结束
M m o d a l \mathcal{M}_{modal} Mmodal 变为 P ( M m o d a l ) \mathcal{P}(\mathcal{M}_{modal}) P(Mmodal)
结束
对于 f r g b f_{rgb} frgb 属于 F r g b \mathbb{F}_{rgb} Frgb 、 f p t f_{pt} fpt属于 F p t \mathbb{F}_{pt} Fpt 、 f f s f_{fs} ffs 属于 F f s \mathbb{F}_{fs} Ffs ,执行以下操作:
Θ D a \Theta_{\mathcal{D}_a} ΘDa通过优化 L o c ( D a ; Θ D a ) \mathcal{L}_{oc}(\mathcal{D}_a; \Theta_{\mathcal{D}_a}) Loc(Da;ΘDa) 得到
Θ D s \Theta_{\mathcal{D}_s} ΘDs 通过优化 L o c ( D s ; Θ D s ) \mathcal{L}_{oc}(\mathcal{D}_s; \Theta_{\mathcal{D}_s}) Loc(Ds;ΘDs) 得到
结束
单类支持向量机(One - Class Support Vector Machine,OCSVM )是一种无监督或半监督学习算法,主要用于异常检测和新奇性检测任务,在上述决策层融合(DLF)中发挥关键作用。
OCSVM 则是专门针对单类数据进行建模。它的核心思想是在特征空间中找到一个超曲面(在高维空间中类似超平面的概念 ),将目标类(正常数据 )尽可能紧密地包围起来,而将不在这个超曲面内的数据视为异常数据。
4. Experiments 实验
4.1 Experimental Details 实验细节
4.1.1 Dataset 数据集
三维工业异常检测尚处于起步阶段。MVTec - 3D AD数据集是首个三维工业异常检测数据集。我们的实验是在MVTec - 3D数据集上进行的。
MVTec - 3D AD [3]数据集包含10个类别的样本,共有2656个训练样本和1137个测试样本。这些三维扫描数据由工业传感器采用结构光技术采集,位置信息存储在表示x、y和z坐标的三通道张量中。这三个通道的张量可以单独映射到对应的点云。此外,每个点都记录有RGB信息。由于数据集中的所有样本都是从相同角度观察的,每个样本的RGB信息可以存储在一张图像中。总之,MVTec - 3D AD数据集中的每个样本都包含一个彩色点云。
4.1.2 Data Preprocess 数据预处理
与二维数据不同,三维数据更容易去除背景信息。按照文献[17]的方法,我们使用随机抽样一致性算法(RANSAC)[13]来估计背景平面,距离背景平面0.005以内的任何点都将被移除。同时,我们将RGB图像中对应被移除点的像素值设为0。这一操作不仅加快了训练和推理过程中的三维特征处理速度,还减少了背景对异常检测的干扰。最后,我们将位置张量和RGB图像都调整为224×224大小,以便与特征提取器的输入尺寸相匹配。
4.1.3 Feature Extractors 特征提取器
我们使用两个基于Transformer的特征提取器分别提取RGB特征和点云特征:
- RGB特征提取:我们使用视觉Transformer(ViT)[12] 直接提取每个图像块的特征,为了适应异常检测任务,我们使用ViT-B/8架构来提高效率和检测粒度;为获得更高性能,我们使用在ImageNet [11] 数据集上借助DINO [6] 预训练的ViT - B/8模型,该预训练模型接收224×224大小的图像,为每张图像输出总共784个图像块特征;由于以往研究表明ViT在每个层上都兼顾全局和局部信息,我们将输出的768维最终层特征用于异常检测。
- 点云特征提取:我们使用在ShapeNet [7] 数据集上预训练的Point Transformer [21, 37] 作为三维特征提取器,并将{3, 7, 11}层的输出作为我们的三维特征;Point Transformer首先将点云编码为与ViT图像块类似的组,每组有一个中心点用于确定位置,还有表示组大小的邻居数量。如3.2节所述,我们在PFA操作中分别测试 M = 784 , S = 64 M = 784, S = 64 M=784,S=64 和 M = 1024 , S = 128 M = 1024, S = 128 M=1024,S=128这两种设置。我们分别对28×28和56×56大小的点云特征进行池化。
4.1.4 Learnable Module Details 可学习模块的详细信息
M3DM有两个可学习模块:无监督特征融合模块和决策层融合模块。
- 无监督特征融合(UFF)模块: χ r g b \chi_{rgb} χrgb、 χ p c \chi_{pc} χpc 是两个两层MLP,以4×隐藏层维度作为输入。我们采用AdamW优化器,设置学习率为0.003 ,采用余弦退火热身策略,共250步,批量大小为16 。我们在750步UFF训练步骤下得出最佳异常检测结果。
- 决策层融合(DLF)模块:我们使用两个线性单类支持向量机(OCSVM),采用随机梯度下降(SGD)优化器,学习率设置为 1 × 1 0 − 4 1×10^{-4} 1×10−4,每个类别的训练步数为1000步。
4.1.5 Evaluation Metrics 评估指标
所有评估指标与文献[3]中完全一致。我们使用接收者操作特征曲线下面积(I - AUROC)来评估图像级异常检测性能,I - AUROC值越高,表明图像级异常检测性能越好。对于分割评估,我们使用每区域重叠(AUPRO)指标,该指标定义为二值预测与真实值的每个连通分量的平均相对重叠。与I - AUROC类似,像素级预测的接收者操作特征曲线可用于计算P - AUROC,以评估分割性能。
4.2 Anomaly Detection on MVTec-3D AD MVTec-3D AD的异常检测
我们在MVTec - 3D数据集上,将我们的方法与几种三维、RGB以及RGB + 3D多模态方法进行了比较。表1展示了用图像级异常检测接收者操作特征曲线下面积(I - AUROC)记录的异常检测结果,表2展示了用每区域重叠(AUPRO)指标记录的分割结果,像素级接收者操作特征曲线下面积(P - AUROC)结果在补充材料中给出。
- 纯三维异常检测:我们取得了最高的I - AUROC值,比AST [28]高出4.1%,这表明我们的方法检测性能比之前的方法有大幅提升。并且,通过我们的点特征对齐(PFA)操作以及Point Transformer,它是更适用于此任务的三维特征提取器。在分割方面,我们以AUPRO值0.906取得第二好的结果,因为我们的三维区域分割基于点云,发现点云与真实标签之间存在偏差,我们会在4.7节讨论此问题。
- RGB异常检测:我们的方法与Patchcore [26]的区别在于,我们使用基于Transformer的特征提取器而非宽残差网络(Wide - ResNet),并且在构建记忆库之前去除了池化操作。我们在RGB领域的I - AUROC比原始PatchCore结果高8.0% ,分割方面取得了最高的AUPRO分数,比第二好的结果高出7.6% 。
- RGB + 3D多模态异常检测:我们的方法在I - AUROC和AUPRO指标上均取得最佳结果,I - AUROC比AST高0.8% ,AUPRO比PatchCore + FPFH [17]高0.5% 。这些成果得益于我们的融合策略以及高性能的三维异常检测结果。如表3所示,之前的方法无法同时在检测和分割方面具备出色性能。由于AST [28]未报告AUPRO结果,我们在此用P - AUROC比较分割性能。尽管PatchCore + FPFH方法取得了较高的P - AUROC分数,但其I - AUROC比另外两种方法低。此外,AST的P - AUROC分数比其他两种方法差,这意味着AST在定位异常方面表现较弱。
4.3 Ablation Study 消融实验
我们在多模态设置下进行了消融实验,为展示我们在多模态融合方面的贡献,我们在表4中用以下设置分析我们的方法:
- 仅点云( M p t \mathcal{M}_{pt} Mpt)信息;
- 仅RGB( M r g b \mathcal{M}_{rgb} Mrgb)信息;
- 单个记忆库( M f s \mathcal{M}_{fs} Mfs),直接连接Point Transformer特征和RGB特征;
- 单个记忆库( M f s \mathcal{M}_{fs} Mfs),使用无监督特征融合(UFF)模块融合多模态特征;
- 分别构建记忆库( M r g b \mathcal{M}_{rgb} Mrgb, M p t \mathcal{M}_{pt} Mpt)并直接将分数相加;
- 分别构建两个记忆库( M r g b \mathcal{M}_{rgb} Mrgb, M p t \mathcal{M}_{pt} Mpt)并使用决策层融合(DLF)得到最终结果;
- 构建三个记忆库( M r g b \mathcal{M}_{rgb} Mrgb, M p t \mathcal{M}_{pt} Mpt, M f s \mathcal{M}_{fs} Mfs)。
对比表4中的第3行和第4行,我们可以发现UFF在三项指标(I - AUROC提升4.1% ,AURPO提升1.2% ,P - AUROC提升0.3% )上显著提升了结果,这表明UFF在多模态交互中起到重要作用,并且有助于统一特征分布。对比第5行和第6行,我们证明了DLF模型有助于提升异常检测和分割性能(I - AUROC提升0.3% ,AURPO提升0.6% ,P - AUROC提升0.3% )。我们完整的设置在表4第7行,与第6行相比,I - AUROC提升了1.3% ,AUPRO提升了0.5% ,这进一步表明UFF激活了两种模态之间的交互,并为异常检测创造了新的特征。
4.4 Analysis of PFA Hyper-parameter PFA超参数分析
由于我们是首次将Point Transformer用于三维异常检测,所以我们针对Point Transformer的设置进行了一系列探索性实验:
- 探索超参数:我们首先探索Point Transformer的两个重要超参数:分组数量以及最远点采样过程中每组的点数。分组数量决定了Point Transformer将提取多少特征,而每组的点数等同于感受野的概念。如表5所示,具有1024个点组且每组128个点的模型在该任务中表现更优,我们认为这是因为更多的特征向量有助于模型找到精细的表示,并且合适的邻域数量能提供更多的局部位置信息。
- 关于PFA操作的对比实验:为验证PFA操作的作用,我们使用原始点组特征进行了另一项三维异常检测实验:一个点组可视为一个图像块,此时记忆库存储点组特征;检测方法与基于图像块的方法相同,为得到分割预测结果,我们首先将点组特征投影到二维平面,然后使用反距离插值法获取每个像素的值。如表5第2行所示,基于点组的方法比第4行的同类方法性能更优,不过,当图像块尺寸变小时,基于PFA的方法在三项指标上都取得了最佳结果。
4.5 Analysis of Multimodal Feature distribution 多模态特征分布分析
我们使用直方图和t - SNE [31]对特征分布进行可视化。
在t - SNE图中(图4b),原始点云特征存在两个不相连的区域,这是由非点区域和点云区域边缘的池化操作导致的。两种融合后的特征具有相似的分布(图4a) ,这些特性使得连接后的特征更适合构建记忆库和计算特征距离。原始特征分布更为复杂,这对单域异常检测有帮助。==我们的混合融合方案整合了原始特征和融合特征的优势,因此相比单记忆库方法具有更优的性能。 ==
4.6 Few-shot Anomaly detection 小样本异常检测
我们在少样本学习设置下对方法进行评估,结果见表6。我们从每个类别中随机选取10张和5张图像作为训练数据,并在完整测试数据集上测试少样本模型。我们发现,在10样本或5样本设置下,我们的方法在分割性能上仍优于一些非少样本方法。
4.7 Discussion about the MVTec-3D AD 关于MVTec-3D AD的讨论
在本节中,我们讨论MVTec - 3D AD数据集的一些特性:
- 三维信息有助于检测更多类型异常:在图5第一行中,我们可以看到仅依靠RGB信息时模型无法检测到异常,但利用点云信息就能准确预测异常。这表明在该数据集中,三维信息确实发挥着重要作用。
- 标签偏差会导致分割不准确:如图5所示,第二行的饼干存在一些切口,异常标签标注在缺失区域。然而,对于纯点云方法,非点区域不会被识别,相反,切口边缘会被当作异常区域报告,这在图5中饼干的点云预测结果中可以看到。由于三维点云与二维真实标签之间存在这种偏差,在表2中三维版本的AUPRO分数比RGB版本低。利用RGB信息,缺失区域能更准确地被报告为异常区域。尽管我们利用多模态数据成功预测出更多异常区域,但预测图与真实标签之间仍存在差距。在未来的研究中,我们将专注于解决这个问题。
5. Conclusion 结论
本文提出一种结合点云与RGB图像的多模态工业异常检测方法。该方法基于多个记忆库,我们提出一种混合特征融合方案来处理多模态数据。具体而言,我们提出一种基于逐块对比损失的无监督特征融合方法,以促进多模态交互并统一分布,随后提出决策层融合来融合多个记忆库输出。此外,我们使用预训练的Point Transformer和Vision Transformer作为特征提取器,为将这两个特征提取器在空间位置上对齐,我们提出点特征对齐方法,将三维特征转换到二维平面。我们的方法在MVTec - 3D AD数据集上的结果优于当前最优方法,我们希望该研究能为未来工业异常检测提供帮助。
致谢
本研究得到国家自然科学基金(72192821, 61972157, 62272447)、上海市科技重大专项(2021SHZDZX0102)、上海市科学技术委员会(21511101200)、上海扬帆计划(22YF1420300, 23YF1410500)、CCF - 腾讯犀牛鸟科研基金(RAGR20220121)以及中国科协青年人才托举工程(2022QNRC001)资助。