题目:R3D-AD: Reconstruction via Diffusion for 3D Anomaly Detection
题目:R3D - AD:基于扩散的三维异常检测重建方法
Reconstruction 重建
via 通过
Diffusion 扩散
Diffusion for 3D Anomaly Detection 基于扩散的三维异常检测
Abstract 摘要
三维异常检测在监测精密制造中局部固有缺陷方面起着至关重要的作用。基于嵌入和基于重建的方法是最受欢迎且成功的方法之一。然而,实际应用中存在两大挑战:其一,基于嵌入的模型因内存限制而遭受严重的计算和存储问题;其二,基于重建的模型采用移动平均误差(MAE)机制,无法检测未掩码区域中的异常。在本文中,我们提出R3D - AD,一种通过扩散模型重建异常点云以进行三维异常检测的方法。我们的方法利用数据分布转换过程中完全隐藏的输入异常几何形状的扩散,系统地学习点级位移行为,从而修正异常点。为提高模型的泛化能力,我们进一步提出一种名为Patch - Gen的新型三维异常模拟策略,以生成逼真多样的缺陷形状,这缩小了训练和测试之间的领域差距。我们的R3D - AD确保了统一的空间变换,能够直接生成异常结果进行距离比较。大量实验表明,我们的R3D - AD优于先前的先进方法,在Shape3D数据集上达到73.4%的图像级AUROC,在Anomaly - RealNet数据集上达到74.9%的图像级AUROC,展现出卓越的检测效率。
Keywords: 3D anomaly detection, industrial applications, 3D reconstruction, self-supervised learning
关键词:三维异常检测;工业应用;三维重建;自监督学习
1. Introduction 介绍
1 引言
1.1 三维异常检测的难点
异常检测旨在识别包含异常的实例,并精确确定缺陷的具体位置。这项任务广泛应用于多个领域,在工业质量控制中起着至关重要的作用。由于其在先进加工和精密制造中避免盲点方面具有内在的模态优势,三维异常检测 [19] 应运而生。
①:然而,点云数据离散且无序的形式,使其与其他数据形式相比更难获取特征。
随着异常样本的稀缺,三维异常检测还面临领域偏移问题,因为训练过程中仅提供正常数据。
②:这些问题的存在凸显了设计一种高效的三维异常检测框架的必要性和紧迫性。
1.2 三维异常检测的方法归类
与传统的二维异常检测 [29, 43] 类似,当前的三维异常检测主要可分为基于嵌入和基于重建的方法,如图1所示。
基于嵌入的方法
基于嵌入的方法涉及从预训练编码器中提取特征,该编码器基于正常分布进行学习。不属于该区间分布的被归类为异常。
现有的大多数三维异常检测方法基于内存库机制 [3, 11, 19, 37] ,在训练阶段存储代表性特征,以隐式构建特征分布。
在测试阶段,通过计算输入对象与所有模板点云之间的欧几里得距离来确定异常的存在。
基于重建的方法
基于重建的方法则训练一个网络,使其能够在异常点云在训练期间不被有效重建的假设下,准确重建正常点云。
通过比较输入点云与其重建之间的差异来生成异常图。
IMRNet [18] 和PointMAE [26] 旨在在多次迭代中重建输入,通过计算点云的显式空间坐标差异和隐式深度特征差异来最终生成异常图。
1.3 三维异常检测方法的现有问题
然而,现有方法面临两个关键问题:高资源成本和不可修复的重建问题。
首先,基于内存库的方法 [3, 11, 19, 37] 在训练阶段存储所有特征。由于每个点云都需要与内存库中的所有样本进行比较,这会显著增加内存开销和推理时间成本。这使得此类方法在实际工业生产线中因效率低下而几乎无法应用。
其次,掩码自动编码器(MAE)机制 [9, 26, 39] 仅重建输入的掩码部分,未掩码部分的缺陷可能会保留下来。这与通过将原始含缺陷点云与重建的无异常版本进行比较来检测异常的基本假设相矛盾。
这些方法不可避免地会导致重建错误,从而削弱了它们准确定位缺陷的有效性。
1.4 文章提出的R3D-AD
我们提出R3D - AD,这是一种新型的三维异常检测方法,它既不存在基于内存的嵌入模型中的空间负担和时间损耗问题,也没有基于MAE的重建模型中异常未掩码概率的问题。
1.4.1 通过噪声扩散机制对三维对象进行统一编码***
与PointMAE相比,我们的一个关键创新是通过噪声扩散机制对3D对象进行无差别掩蔽,从而最大限度地保留无异常形状并重建异常区域。
1.4.2 在扩散过程中,通过转换点云分布来实现单步编码和重建
在重新参数化扩散过程中,通过转换点云分布而不是多次迭代方法来实现一步one-step全掩模和重建[18]。
1.4.3 具体过程
我们假设异常检测通过学习点移动来验证重建形状和阳性样本之间的差距。
①:具体而言,对于带有任意异常的输入模型,我们将其编码为潜在形状嵌入,作为解码条件,并通过逐步位移(SWD)解码显式控制点云重建过程。
形状嵌入包含丰富的全局特征,使网络训练更容易,而无需考虑引入局部异常细节。
②:我们方法的另一个关键在于在扩散过程中引入可控的逐点位移,以迭代优化点云变形。我们提议在反向去噪过程的每一步注入形状嵌入,引导异常区域收敛到平滑表面。
③:我们还采用了一种名为Patch - Gen的三维异常模拟策略来解决数据集的局限性,该策略生成大量忠实于真实场景的空间不规则数据,包括凸起、凹陷等。
这种点云数据增强策略增强了自监督模型在面对实际异常时重建更逼真无异常形状的能力。
1.4.5 文章的主要贡献
据我们所知,这是首次在基于重建的三维异常检测中探索扩散方法。
我们的主要贡献总结如下:
- (i) 我们引入了一种名为R3D - AD的新型框架,它可进行一步全掩码和无异常重建,以实现快速、准确的三维异常检测。
- (ii) 我们提议学习反向扩散过程中的逐步位移,以显式控制异常形状的重建。
- (iii) 我们引入了一种名为Patch - Gen的三维异常模拟策略,以解决数据异常模式的局限性,并提高监督环境中的重建性能。
- (iv) 大量实验表明,我们的R3D - AD在Real3D - AD和Anomaly - ShapeNet数据集上均取得了领先的性能。
2. Related work 相关工作
2.1 2D Anomaly Detection 二维异常检测
近年来,异常检测受到了研究人员越来越多的关注,并且已经提出了许多新方法来解决该问题。
2.1.1 方法的种类
基于流的方法 [8, 30, 36, 40] 利用学习到的分布以及流的双射性质来发现缺陷;
而基于内存的方法 [1, 14, 29] 通过将测试样本特征与内存库中存储的范数进行对比来衡量异常分数。
基于重建的方法 [2, 42, 43] 通过将输入与它们的在线重建进行比较来标记异常。
2.1.2 数据集的扩充和增强
最近的研究 [12, 16, 33, 44] 用生成的合成异常扩充异常检测数据集,以解决负样本稀缺的问题。
2.2 3D Anomaly Detection 三维异常检测
这一领域的发展落后于二维异常检测,因为三维数据更难获取,且点云数据比图像数据更稀疏,噪声也更多。
2.2.1 相关方法
BTF [11] 将手工设计的三维描述符与经典二维方法PatchCore [29] 相结合,构建了三维异常检测的基本框架。
M3DM [37] 通过分别分析点云和RGB图像的特征,然后合并这些特征以改进决策,从而推动了该领域的发展
CPMF [3] 从多个角度将点云转换为二维图像,通过预训练的网络从这些图像中提取额外的特征,并通过信息融合增强检测能力。
Reg3D - AD [19] 开发了一种基于配准的方法,在测试阶段将每个样本与存储的模板进行比较之前,使用RANSAC算法对其进行对齐。
IMRNet [18] 训练PointMAE [26] 来重建无异常样本,并通过将重建的点云与初始输入进行对比来识别异常。
2.2.1 本文的方法
这些方法中的许多都使用内存库来存储训练样本的特征,或者需要多次迭代来恢复点。
与之前的方法不同,我们的方法仅需一步重建,在时间和空间效率上具有显著优势。
2.3 Diffusion Models 扩散模型
2.3 扩散模型
扩散模型已在图像生成[32]、语音生成[15]和视频生成[10]等多种生成任务中证明了其有效性。去噪扩散概率模型(DDPMs)[13, 34, 35]采用正向噪声机制,将高斯噪声逐步添加到图像中,同时通过一个经过精心训练的反向过程来抵消正向机制。
Denoise AD [22]使用DDPM在特征空间内进行重建,生成噪声更少的图像。
近年来,许多研究[6, 17, 20, 25]尝试利用扩散模型探索三维重建任务。
DPM[23]引入了一个形状潜在变量来封装3D形状的几何复杂性,它利用归一化流对该变量的分布进行了独特的建模[7,28]。
PVD [45]使用PVCNNs [21]对三维形状进行点 - 体素表示,并将结构化局部特性整合到点云中。这种创新方法利用了点和体素表示的优势,优化了模型捕捉三维对象复杂空间层次结构和局部几何形状的能力。
基于扩散的重建从完整的噪声样本中恢复目标形状,解决了基于MAE [9]的机制仅恢复掩码区域而不恢复未掩码区域的困境。
3. Method 方法
3.1 Overview 概述
我们将异常检测问题建模为把异常点云
P
a
∈
R
N
×
3
\mathcal{P}_a \in \mathbb{R}^{N \times 3}
Pa∈RN×3映射到与之匹配的正向形状。
②:R3D - AD的框架如图2所示,在训练阶段,模拟的异常形状(the simulated anomalous shapes?)在自监督设置下进行重建,然后与原始输入进行比较以检测异常。
③:重建的无异常模型与输入对齐,从而能够通过条件距离函数直接计算异常分数并分割异常区域。
①:同时,异常模拟策略能真实地生成逼真的缺陷,并在正常样本有限的情况下随机合成多样的异常形状,提高了模型在有限异常样本情况下的泛化能力。
3.2 Preliminary of denoising diffusion probabilistic models 去噪扩散概率模型的初步措施
去噪扩散概率模型(Denoising Diffusion Probabilistic Model, DDPM)的灵感来源于不断演化的热力学系统中的热扩散过程,该过程由正向扩散过程和反向过程组成。
3.2.1 The forward Markovian process 正向马尔可夫过程
正向马尔可夫过程是从数据分布
q
(
x
(
0
)
)
q(\boldsymbol{x}^{(0)})
q(x(0))中的干净样本
x
(
0
)
\boldsymbol{x}^{(0)}
x(0)开始,逐步添加高斯噪声,将其转变为高斯噪声
x
(
T
)
\boldsymbol{x}^{(T)}
x(T) 。其定义为:
q
(
x
(
0
)
,
.
.
.
,
x
(
T
)
)
=
∏
t
=
1
T
q
(
x
(
t
)
∣
x
(
t
−
1
)
)
q(\boldsymbol{x}^{(0)},...,\boldsymbol{x}^{(T)}) = \prod_{t = 1}^{T} q(\boldsymbol{x}^{(t)}|\boldsymbol{x}^{(t - 1)})
q(x(0),...,x(T))=t=1∏Tq(x(t)∣x(t−1))
其中
q
(
x
(
t
)
∣
x
(
t
−
1
)
)
=
N
(
x
(
t
)
;
1
−
β
t
x
(
t
−
1
)
,
β
t
I
)
q(\boldsymbol{x}^{(t)}|\boldsymbol{x}^{(t - 1)}) = \mathcal{N}(\boldsymbol{x}^{(t)}; \sqrt{1 - \beta_t}\boldsymbol{x}^{(t - 1)}, \beta_t \boldsymbol{I})
q(x(t)∣x(t−1))=N(x(t);1−βtx(t−1),βtI)是马尔可夫扩散核,
t
=
1
,
.
.
.
,
T
t = 1, ..., T
t=1,...,T 是扩散步数,
β
t
\beta_t
βt是方差调度。
通过重参数化
α
t
=
1
−
β
t
\alpha_t = 1 - \beta_t
αt=1−βt,
α
ˉ
t
=
∏
s
=
0
t
α
s
\bar{\alpha}_t = \prod_{s = 0}^{t} \alpha_s
αˉt=∏s=0tαs ,可得
q
(
x
(
t
)
∣
x
(
0
)
)
=
N
(
x
(
t
)
;
α
ˉ
t
x
(
0
)
,
(
1
−
α
ˉ
t
)
I
)
q(\boldsymbol{x}^{(t)}|\boldsymbol{x}^{(0)}) = \mathcal{N}(\boldsymbol{x}^{(t)}; \sqrt{\bar{\alpha}_t}\boldsymbol{x}^{(0)}, (1 - \bar{\alpha}_t)\boldsymbol{I})
q(x(t)∣x(0))=N(x(t);αˉtx(0),(1−αˉt)I) ,
x
(
t
)
\boldsymbol{x}^{(t)}
x(t)可通过下式采样得到:
x
(
t
)
=
α
ˉ
t
x
(
0
)
+
ϵ
1
−
α
ˉ
t
\boldsymbol{x}^{(t)} = \sqrt{\bar{\alpha}_t}\boldsymbol{x}^{(0)} + \epsilon \sqrt{1 - \bar{\alpha}_t}
x(t)=αˉtx(0)+ϵ1−αˉt
这里
ϵ
\epsilon
ϵ是标准高斯噪声,
ϵ
∼
N
(
0
,
I
)
\epsilon \sim \mathcal{N}(0, \boldsymbol{I})
ϵ∼N(0,I) 。当
T
T
T足够大时,
x
(
T
)
\boldsymbol{x}^{(T)}
x(T)最终会变成高斯噪声。
3.2.2 The reverse process 反向过程
反向过程同样是马尔可夫过程,它通过一系列步骤去噪,从目标分布
q
(
x
(
0
)
)
q(\boldsymbol{x}^{(0)})
q(x(0))生成有意义的数据。
反向过程从分布
p
(
x
(
T
)
)
p(\boldsymbol{x}^{(T)})
p(x(T))中对噪声
x
(
T
)
\boldsymbol{x}^{(T)}
x(T)进行去噪,定义为:
p
θ
(
x
(
0
)
,
.
.
.
,
x
(
T
−
1
)
∣
x
(
T
)
,
c
)
=
∏
t
=
1
T
p
θ
(
x
(
t
−
1
)
∣
x
(
t
)
,
c
)
p_{\theta}(\boldsymbol{x}^{(0)},...,\boldsymbol{x}^{(T - 1)}|\boldsymbol{x}^{(T)}, \boldsymbol{c}) = \prod_{t = 1}^{T} p_{\theta}(\boldsymbol{x}^{(t - 1)}|\boldsymbol{x}^{(t)}, \boldsymbol{c})
pθ(x(0),...,x(T−1)∣x(T),c)=t=1∏Tpθ(x(t−1)∣x(t),c)
其中
p
θ
(
x
(
t
−
1
)
∣
x
(
t
)
,
c
)
=
N
(
x
(
t
−
1
)
;
μ
θ
(
x
(
t
)
,
t
,
c
)
,
σ
t
2
I
)
p_{\theta}(\boldsymbol{x}^{(t - 1)}|\boldsymbol{x}^{(t)}, \boldsymbol{c}) = \mathcal{N}(\boldsymbol{x}^{(t - 1)}; \mu_{\theta}(\boldsymbol{x}^{(t)}, t, \boldsymbol{c}), \sigma_t^2 \boldsymbol{I})
pθ(x(t−1)∣x(t),c)=N(x(t−1);μθ(x(t),t,c),σt2I) ,均值
μ
θ
(
x
(
t
)
,
t
,
c
)
\mu_{\theta}(\boldsymbol{x}^{(t)}, t, \boldsymbol{c})
μθ(x(t),t,c)由以
θ
\theta
θ为参数的神经网络估计,
c
\boldsymbol{c}
c是潜在条件编码,
σ
t
2
\sigma_t^2
σt2是与步骤相关的方差 。
μ
θ
\mu_{\theta}
μθ可重参数化为:
μ
θ
(
x
(
t
)
,
t
,
c
)
=
1
α
t
(
x
(
t
)
−
β
t
1
−
α
ˉ
t
ϵ
θ
(
x
(
t
)
,
t
,
c
)
)
\mu_{\theta}(\boldsymbol{x}^{(t)}, t, \boldsymbol{c}) = \frac{1}{\sqrt{\alpha_t}} (\boldsymbol{x}^{(t)} - \frac{\beta_t}{\sqrt{1 - \bar{\alpha}_t}} \epsilon_{\theta}(\boldsymbol{x}^{(t)}, t, \boldsymbol{c}))
μθ(x(t),t,c)=αt1(x(t)−1−αˉtβtϵθ(x(t),t,c))
这里
ϵ
θ
(
x
(
t
)
,
t
,
c
)
\epsilon_{\theta}(\boldsymbol{x}^{(t)}, t, \boldsymbol{c})
ϵθ(x(t),t,c)是用于对来自
x
(
T
)
\boldsymbol{x}^{(T)}
x(T)的高斯噪声去噪的神经网络。
3.2.3 训练目标
通过训练
ϵ
θ
(
x
(
t
)
,
t
,
c
)
\epsilon_{\theta}(\boldsymbol{x}^{(t)}, t, \boldsymbol{c})
ϵθ(x(t),t,c)去逼近
ϵ
\epsilon
ϵ来最小化训练目标。训练目标定义为:
L
=
E
t
∼
[
1
:
T
]
,
x
(
0
)
∼
q
(
x
(
0
)
)
,
ϵ
∼
N
(
0
,
I
)
∥
ϵ
−
ϵ
θ
(
α
ˉ
t
x
(
0
)
+
1
−
α
ˉ
t
ϵ
,
t
,
c
)
∥
\mathcal{L} = \mathbb{E}_{t \sim [1:T], \boldsymbol{x}^{(0)} \sim q(\boldsymbol{x}^{(0)}), \epsilon \sim \mathcal{N}(0, \boldsymbol{I})} \left\lVert \epsilon - \epsilon_{\theta}(\sqrt{\bar{\alpha}_t}\boldsymbol{x}^{(0)} + \sqrt{1 - \bar{\alpha}_t} \epsilon, t, \boldsymbol{c}) \right\rVert
L=Et∼[1:T],x(0)∼q(x(0)),ϵ∼N(0,I)
ϵ−ϵθ(αˉtx(0)+1−αˉtϵ,t,c)
其中
t
t
t从1到
T
T
T的均匀分布中采样,
q
(
x
(
0
)
)
q(\boldsymbol{x}^{(0)})
q(x(0))是
x
(
0
)
\boldsymbol{x}^{(0)}
x(0)的分布,
ϵ
\epsilon
ϵ是高斯噪声。
3.3 Diffusion-based 3D anomaly reconstruction 基于扩散的三维异常重建
我们将无异常模型的点云重建任务表述为条件生成任务,该任务根据目标分布
q
(
P
r
∣
P
a
(
T
)
,
c
)
q(\mathcal{P}_r|\mathcal{P}_a^{(T)}, \boldsymbol{c})
q(Pr∣Pa(T),c) 对明确的位移进行解码,其中
c
\boldsymbol{c}
c 是解码条件 。
本文中异常检测的核心问题是如何在输入点云具有不同空间变换的情况下,以输入点云为参考对无异常形状进行条件重建 。
由于异常样本和正常样本之间存在高度相似的全局特征,最直接的方法是从输入中提取有效的全局特征,作为去噪函数
ϵ
θ
\epsilon_{\theta}
ϵθ 的辅助条件嵌入。
我们实现了潜在形状嵌入
c
\boldsymbol{c}
c 的编码作为条件输入,以指导反向扩散过程中的重建。
3.3.1 Latent shape embedding 潜在形状嵌入
特征编码器旨在将点云编码为具有高级特征的潜在形状嵌入
c
\boldsymbol{c}
c,以用于条件生成过程。
与其他全局 - 局部特征提取方法(文献[38, 41])不同,我们更侧重于提取全局特征,这些特征在点云中表征无异常区域的语义信息以及形状和姿态,同时抑制异常区域。
特征编码器主要由基于PointNet的级联多层感知器(MLP)组成 [5]。在将
P
a
(
0
)
\mathcal{P}_a^{(0)}
Pa(0) 映射到不同维度后,它采用最大池化操作来提取形状嵌入。
3.3.2 Step-wise displacement decoding 逐步位移解码
为了在保持非异常区域结构的同时,实现具有变换一致性的点云重建,我们的方法在反向扩散过程的每一步都将潜在形状嵌入
c
\boldsymbol{c}
c 注入到解码器中,如图2所示。
原则上,在训练阶段,
ϵ
θ
\epsilon_{\theta}
ϵθ 通过解码器学习正向扩散过程中添加的高斯噪声。
通过从
N
×
3
N\times3
N×3 的高斯噪声生成目标形状来对条件概率分布进行建模是一种直接的方法,但它存在点云细节重建和变换一致性方面的问题。
学习异常对象的相对变形更为高效。考虑到普通自动编码器在重建训练阶段的映射退化问题 [2],我们利用正向扩散过程中的高斯噪声来直接整体掩盖点云对象,避免解码过程接收到负状态形状。
被掩码的点
P
a
(
T
)
\mathcal{P}_a^{(T)}
Pa(T) 和潜在形状嵌入
c
∈
R
256
\boldsymbol{c} \in \mathbb{R}^{256}
c∈R256 作为基于滑动窗口去噪器(SWD)的输入。因此,迭代过程每一步生成的噪声向量和期望的无异常形状可以区分开来,反向过程可以根据公式3和位移向量
Δ
(
t
)
\Delta^{(t)}
Δ(t) 进行定义。
Δ
(
t
−
1
)
\Delta^{(t - 1)}
Δ(t−1) 可表示为:
Δ
(
t
−
1
)
=
1
α
t
(
Δ
(
t
)
−
β
t
1
−
α
ˉ
t
ϵ
θ
(
Δ
(
t
)
,
β
t
,
c
)
)
+
σ
ϵ
\Delta^{(t - 1)} = \frac{1}{\sqrt{\alpha_t}} \left( \Delta^{(t)} - \frac{\beta_t}{\sqrt{1 - \bar{\alpha}_t}} \epsilon_{\theta}(\Delta^{(t)}, \beta_t, \boldsymbol{c}) \right) + \sigma \epsilon
Δ(t−1)=αt1(Δ(t)−1−αˉtβtϵθ(Δ(t),βt,c))+σϵ
①:其中
σ
\sigma
σ 是方差。采用PointwiseNet来让
ϵ
θ
\epsilon_{\theta}
ϵθ 根据上一步的
Δ
(
t
−
1
)
\Delta^{(t - 1)}
Δ(t−1) 和
c
\boldsymbol{c}
c 进行解码 。
②:
β
t
\beta_t
βt 用于生成三角函数位置嵌入
e
p
t
=
(
β
t
,
sin
(
β
t
)
,
cos
(
β
t
)
)
\boldsymbol{e}_{p_t}=(\beta_t, \sin(\beta_t), \cos(\beta_t))
ept=(βt,sin(βt),cos(βt)) 。
③:
e
p
t
\boldsymbol{e}_{p_t}
ept 与
c
\boldsymbol{c}
c 连接,然后输入到PointwiseNet和残差函数中。
④:在第
t
t
t 步重建的输出点云是
P
r
(
t
)
=
P
r
(
t
+
1
)
+
Δ
(
t
)
\mathcal{P}_r^{(t)} = \mathcal{P}_r^{(t + 1)} + \Delta^{(t)}
Pr(t)=Pr(t+1)+Δ(t) 。
配准后的原始点云和重建对象通过无异常形状和异常分数之间的距离函数来区分。
3.4 3D anomaly simulation strategy 三维异常模拟策略
鉴于少量的正常样本不利于模型学习多样且关键的特征,我们提出Patch - Gen策略,从无异常形状中模拟缺陷,以扩充训练数据。
Patch - Gen策略
Patch - Gen策略助力重建模型学习不规则性,具体做法是将无异常点云及其对应的异常点云组成训练样本对,用于学习正常表面与异常表面之间的判别特征。
其核心思路是,丰富多样的模拟负样本能促使网络学习重建无异常形状,而非单纯记住完整的输出结果。
随机模拟旋转
如图3所示,输入的正常点云首先会进行随机空间旋转。这种随机旋转旨在提高模型对具有不同空间变换的测试样本的泛化能力,其表达式为:
P
a
=
P
⋅
R
\mathcal{P}_a = \mathcal{P} \cdot \mathcal{R}
Pa=P⋅R
其中,
P
\mathcal{P}
P为正常样本,
R
∈
R
3
×
3
\mathcal{R} \in \mathbb{R}^{3\times3}
R∈R3×3 是通过对三个轴随机选取旋转角度得到的旋转矩阵。
对异常进行细粒度模拟
除了通过随机旋转增强模型对整体形状的感知外,我们还对异常进行细粒度模拟。从表面立方体中随机选取一个视点
P
v
\mathcal{P}_v
Pv ,据此可确定
P
a
\mathcal{P}_a
Pa中距离
P
v
\mathcal{P}_v
Pv最近的
N
N
N个点组成的点集
P
n
\mathcal{P}_n
Pn。形状增强方案Patch - Gen定义如下:
P
n
=
P
n
+
S
⋅
normalize
(
P
n
−
P
v
)
⊙
T
\mathcal{P}_n = \mathcal{P}_n + S \cdot \text{normalize}(\mathcal{P}_n - \mathcal{P}_v) \odot \mathcal{T}
Pn=Pn+S⋅normalize(Pn−Pv)⊙T
其中,
normalize
\text{normalize}
normalize表示对向量的归一化操作,
S
S
S是预定义的超参数,用于控制补丁点的缩放,
T
\mathcal{T}
T 是源自高斯分布的平移矩阵。最终得到
P
a
\mathcal{P}_a
Pa的方式是仅更新补丁区域
P
n
\mathcal{P}_n
Pn,其余点保持不变 。
生成异常
借助所提出的Patch - Gen策略,我们能够模拟多种异常。凸起或凹陷等异常可通过从分布中采样后对
T
\mathcal{T}
T进行排序生成,破损等异常则可通过直接叠加生成,无需额外操作。图7进一步展示了生成的异常与实际异常的对比,表明我们的方法能够高度逼真地模拟现实场景。
3.5 Training objective 训练目标
在对具有
N
N
N个点的对象进行重建任务时,网络学习一个具有
R
N
×
3
→
R
N
×
3
\mathbb{R}^{N\times3} \to \mathbb{R}^{N\times3}
RN×3→RN×3映射关系的扩散模型。
在点嵌入的语义条件下进行迭代去噪,以实现点偏移的预测。
具体而言,训练网络是为了学习需要消除的噪声,从而恢复无异常形状的点。
使用真实值与去噪后重建点之间的
L
2
L_2
L2距离,我们将均方误差(MSE)损失作为主要的重建损失,用于评估
P
a
(
0
)
\mathcal{P}_a^{(0)}
Pa(0)与
P
r
(
0
)
\mathcal{P}_r^{(0)}
Pr(0)之间逐元素距离的均方误差。
MSE训练损失公式如下:
L
P
a
,
P
r
=
1
N
∑
i
=
1
N
∑
p
a
∈
P
a
,
p
r
∈
P
r
∥
p
a
−
p
r
∥
2
\mathcal{L}_{\mathcal{P}_a, \mathcal{P}_r} = \frac{1}{N} \sum_{i = 1}^{N} \sum_{p_a \in \mathcal{P}_a, p_r \in \mathcal{P}_r} \| p_a - p_r \|^2
LPa,Pr=N1i=1∑Npa∈Pa,pr∈Pr∑∥pa−pr∥2
4. Experiments 实验
4.1 Datasets 数据集
4.1.1 Real3D-AD
Real3D - AD [19] 是一个基于真实样本的三维异常检测数据集,每个点云具有更高的点精度和空间距离。每个类别包含4个训练样本和100个测试样本。训练集包含360°完整的物体表面点云,这些点云通过手动校准和拼接物体多个面的扫描获得。测试样本仅为单面扫描,与训练集差异巨大。在总共12个类别中,点云的分布也各不相同,这进一步增加了与二维场景相比的检测难度。
4.1.2 Anomaly-ShapeNet
Anomaly - ShapeNet [18] 是一个三维异常检测数据集,通过对ShapeNetCorev2 [4] 中的合成样本进行修改而构建。它包含40个不同类别,拥有超过1600个完整表面点云样本。每个类别的训练集仅包含4个样本,而测试集旨在评估模型在正常样本和各种异常样本上的性能。它在保持点的数量与先前研究相同的情况下,大幅增加了异常类型,这对所提出算法的稳健性和泛化性提出了更高要求。
4.2 Evaluation metrics 评估指标
对于图像级别的异常检测,按照既定惯例使用受试者工作特征曲线下面积(AUROC) 。对于像素级别的异常评估,在点分割精度的背景下同样应用AUROC指标。AUROC值为0.5表示无判别能力(等同于随机猜测),而值为1.0则表明能完美区分正类和负类。
4.3 Implementation details 实施细节
我们的方法使用PyTorch [27] 实现,对整个网络进行端到端训练。
使用Adam优化器进行优化,初始学习率为0.001。训练过程共包含128个epoch,4000次迭代,以进行全面学习。
所有输入点云都要经过预处理步骤,即随机下采样到固定大小。在Real3D - AD和Anomaly - ShapeNet数据集上,分别有4096个和2048个点。
我们对这些点云进行归一化处理,将质心作为坐标原点,并将维度缩放至 - 1到1的范围,以优化扩散过程。
4.4 Main results 主要结果
我们在基于真实采样的Real3D - AD [19] 和基于模拟的Anomaly - ShapeNet [18] 上进行实验。
4.4.1 Real3D - AD数据集验证
仅使用原始点云数据 性能最佳
如表1所示,我们首先在Real3D - AD上,将图像级AUROC指标与当前先进的三维异常检测模型进行比较。结果表明,仅使用原始点云数据,我们的方法就取得了最佳性能,而现有的大多数方法使用Fast Point Feature Histogram(FPFH)算子 [31] 或在ShapeNet [4] 上预训练的PointMAE [26] 作为特征提取器。
所有类别均衡表现都最佳
由于Real3D AD中不同类别的点云在数量、大小和分布上存在显著差异,因此使用其他方法时,不同类别的评分差异更为明显。例如,许多方法在某些类别中的性能低于0.5,这表明它们在面对具有挑战性的样本时,在提取有意义的特征方面存在不足。相比之下,我们的方法不仅在大多数类别中展现出卓越的三维异常检测性能,而且在所有类别中都达到了最佳的总体平均值。
强大的泛化能力 和 稳健性
这证明了我们的方法在所有方法中具有强大的泛化能力和稳健性。
4.4.2 Anomaly - ShapeNet数据集验证
我们在表2中进一步在Anomaly - ShapeNet上评估我们的方法,该数据集涵盖了更广泛的类别和更多样化的缺陷类型。
与Real3D - AD相比,Anomaly - ShapeNet显著增强了缺陷的多样性,其中增加的缺陷类型进一步提升了检测任务的复杂性。
结果突显了我们的方法在所有评估类别中的卓越性能,与之前使用的方法相比,AUROC平均提高了9%。
4.5 Ablation study 消融研究
为了深入研究单个组件的影响,我们在Real3D - AD数据集上进行了消融实验。为全面展示和比较模型的性能,我们分别报告了图像级和像素级的结果以及相应的P - AUROC值。
4.5.1 Main component 主要组件
表3比较了R3D - AD不同变体的性能,涉及去噪条件嵌入、基于位移的重建方式以及Patch - Gen数据增强策略的影响。
①:模型A作为我们的基线,是一个用于点云重建的普通扩散模型。
②:引入去噪条件嵌入(模型B)显著提升了性能,尤其是在图像级AUROC方面,从0.677提升到0.785,增幅达13.8% 。
③:模型C 基于条件扩散预测点位移 ,在保留详细结构信息的同时兼顾点的位移,相较于模型B,在像素级AUROC上有6.0%的显著提升。
④:模型D在结合形状嵌入和Patch - Gen策略的条件下训练。
考虑到缺陷部分在原始点云中占比很小,我们尝试以保留尽可能多细节的方式重建相对位移,这对三维异常检测和分割都很有效。
4.5.2 Patch-Gen
表4分析了Patch - Gen中两个关键参数的影响:选择点比例和缩放点因子。
The selection points ratio 选择点比率
表4a中的选点比例决定了点云中被选作变换的点的比例。
我们的研究结果表明,1/32的选点比例能实现最佳性能。这似乎是因为该比例在维持足够结构以进行异常检测和引入足够变化以有效模拟异常之间取得了平衡。值得注意的是,随着该比率增加到1/16以上,图像级和像素级的AUC分数都显著下降,因为实际缺陷在整个点云中仅占很小一部分,大量选点不仅会破坏原始点云的结构,还会使训练集和测试集的分布不一致。
The scaling points factor 缩放点因子
缩放点因子是应用于所选点的随机变换强度,具体见表4b。
当缩放因子为0.1时可观察到最佳性能,这意味着较小的变换在不显著改变原始数据分布的情况下,能更有效地模拟异常。较大的缩放因子会导致性能持续下降,这凸显了适度变换对于保持模拟异常在检测任务中的效用的重要性。
4.5.3 Memory and time cost 内存和时间成本
如图4所示,我们在相同实验条件下,将我们模型的存储消耗和推理时间与现有方法进行了评估对比。
在内存使用方面,我们的方法通过使用原始坐标特征而非快速点特征直方图(FPFH)或PointMAE特征,展现出显著优势,大幅减少了内存占用。由于不使用内存库存储特征,与同样使用原始特征的PatchCore相比,我们的方法在空间效率上也更高。
此外,我们的方法无需比较内存库中的所有特征,从而极大地提高了运算效率。Patch - Gen的实现为我们的模型赋予了卓越的鲁棒性,使其能够从不同角度精确重建点云,而无需像Reg3D - AD那样进行耗时的点云对齐过程。
4.6 Qualitative results 定性结果
图5展示了一些定性结果,不同的颜色深浅表示不同程度的异常分数。
我们选取了几个具有代表性的缺陷样本,以展示我们算法的稳健性(鲁棒性)。左四列展示的是来自Real3D - AD的样本,而右侧四列是来自Anomaly - ShapeNet的样本。
结果表明,我们的R3D-AD算法在各种样本中都能精确重建点云的缺陷部分,如在Seahorse海马样本中的深度凹陷、Bag袋子样本中的凹形以及Jar罐子样本中的凹陷。
利用精确重建的点云,还生成了最终的点云分割图,进一步证明了我们方法的有效性。
5. Conclusion 结论
在这项工作中,我们提出了R3D - AD,一种基于条件扩散的新型重建式三维异常检测模型。
我们的目标是克服当前三维异常检测方法所面临的局限性,例如因内存瓶颈模块导致的效率低下,以及由不正确重建(如MAE )引发的性能不佳问题。
为解决这些挑战,我们利用扩散过程进行完整重建,然后直接比较输入与重建点云,以得出最终的异常分数。
通过跨解码过程的嵌入潜在变量,逐步生成从噪声到目标无异常样本的点级位移。
我们还提出了Patch - Gen,这是一种针对点云异常模拟量身定制的数据增强方法。
在三维异常检测基准上进行的大量实验验证了R3D - AD相较于现有先进方法,在准确性和通用性方面的优越性。
Acknowledgements 致谢
本研究工作部分得到了浙江省“尖兵”“领雁”研发攻关计划(项目编号:2022C01051 )的资助,部分得到了国家自然科学基金(项目编号:52375271、52275274 )的资助,还部分得到了浙江省自然科学基金(项目编号:LY23E050011 )的资助。
A Appendix 附录
A.1 Additional implement details 附加实施细节
A.1.1 Patch-Gen pseudocode Patch-Gen的伪代码
我们在算法1中阐述了所提出的三维异常模拟策略Patch - Gen(补丁-生成)的过程。
该过程首先将初始点云
P
\mathcal{P}
P作为输入,目标是生成一个增强点云
P
a
\mathcal{P}_a
Pa,以反映异常的添加。
通过将任意旋转角度应用于所有旋转轴来获得旋转矩阵
R
\mathcal{R}
R。
平移矩阵
T
\mathcal{T}
T从高斯分布中采样,经过归一化和缩放后,它表示最近点向视点的位移,而点云的其余部分保持不变。
表示损坏类型的异常点云可通过直接操作从随机采样过程派生的矩阵
T
\mathcal{T}
T获得。通过对矩阵
T
\mathcal{T}
T进行排序,我们可以进一步模拟如凸起和凹陷等缺陷。这个视角可以比作一个充当锚的引力,对域内的补丁点施加影响。
算法1 Patch - Gen解析
输入:
- P \mathcal{P} P:输入点云,是算法处理的基础数据对象。
- N N N:要选择的点的数量,用于确定后续处理中参与变换的点的规模。
- S S S:变换的缩放因子,控制对选定的点进行变换时的幅度大小。
输出:
- P a \mathcal{P}_a Pa,即增强点云,是经过一系列操作后,添加了异常特征的点云结果。
步骤解析:
- R ← \mathcal{R} \leftarrow R← random rotation matrix:生成一个随机旋转矩阵 R \mathcal{R} R ,用于后续对点云进行旋转操作,改变点云的空间朝向。
- P a = P ⋅ R \mathcal{P}_a = \mathcal{P} \cdot \mathcal{R} Pa=P⋅R:将输入点云 P \mathcal{P} P乘以旋转矩阵 R \mathcal{R} R,实现对整个点云的旋转,更新点云的空间位置关系。
- P v ← \mathcal{P}_v \leftarrow Pv← random viewpoint:确定一个随机视点,作为后续选择邻近点的参照中心。
- P n = N N ( P a , P v , N ) \mathcal{P}_n = NN(\mathcal{P}_a, \mathcal{P}_v, N) Pn=NN(Pa,Pv,N) :根据旋转后的点云 P a \mathcal{P}_a Pa和随机视点 P v \mathcal{P}_v Pv ,通过最近邻算法( N N NN NN)选择距离视点 P v \mathcal{P}_v Pv最近的 N N N个点,得到点集 P n \mathcal{P}_n Pn 。
- T ← \mathcal{T} \leftarrow T← random translation matrix:从合适的分布(文中提到从高斯分布采样 )生成一个随机平移矩阵 T \mathcal{T} T ,用来描述点的位移。
- P n = P n + S ⋅ normalize ( P n − P v ) ⊙ T \mathcal{P}_n = \mathcal{P}_n + S \cdot \text{normalize}(\mathcal{P}_n - \mathcal{P}_v) \odot \mathcal{T} Pn=Pn+S⋅normalize(Pn−Pv)⊙T :
- normalize ( P n − P v ) \text{normalize}(\mathcal{P}_n - \mathcal{P}_v) normalize(Pn−Pv):先计算选定的点集 P n \mathcal{P}_n Pn与视点 P v \mathcal{P}_v Pv的差值,再对差值进行归一化处理,使向量长度为1,用于确定位移方向。
- S ⋅ normalize ( P n − P v ) ⊙ T S \cdot \text{normalize}(\mathcal{P}_n - \mathcal{P}_v) \odot \mathcal{T} S⋅normalize(Pn−Pv)⊙T :将归一化后的方向向量与缩放因子 S S S相乘,再与平移矩阵 T \mathcal{T} T按元素相乘( ⊙ \odot ⊙
),得到最终的位移量。- 最后将位移量加到选定的点集 P n \mathcal{P}_n Pn上,实现对这 N N N个点的位置更新,且仅更新这部分选定的点,而点云中其他点保持不变
,从而模拟出异常效果,得到增强点云 P a \mathcal{P}_a Pa 。
A.1.2 R3D-AD pseudocode R3D-AD的伪代码
为进一步阐明所提出的R3D - AD网络的整体架构,我们分别在算法2和算法3中简洁呈现其训练和测试迭代过程。
During training 训练过程
训练时,通过Patch - Gen策略模拟异常,并按照高斯分布人为添加噪声。
模型对该噪声进行预测,并计算出一个位移量来修正它。
通过比较原始点云和经过修正的点云来度量重建损失。
这样做的目的是让模型学习如何识别和修正模拟的异常与噪声,提升其在三维点云数据上检测和处理异常的能力。在这个过程中,模型不断调整自身参数,以最小化重建损失,从而优化对异常和噪声的处理效果。
算法2 R3D - AD训练迭代解析
输入:
P \mathcal{P} P,即输入点云,是训练过程的起始数据。
输出:
L \mathcal{L} L,代表重建损失,用于衡量模型重建效果与原始数据的差异程度。
步骤解析
- P ′ ∼ Uniform ( normalize ( P ) ) \mathcal{P}' \sim \text{Uniform}(\text{normalize}(\mathcal{P})) P′∼Uniform(normalize(P)) :
- 对输入点云 P \mathcal{P} P进行归一化处理,使其数据处于合适范围。
- 然后通过均匀分布采样,对归一化后的点云进行下采样操作,得到新的点云 P ′ \mathcal{P}' P′ ,目的是减少数据量并规范数据分布,便于后续处理。
- P a ( 0 ) = Patch-Gen ( P ′ ) \mathcal{P}_a^{(0)} = \text{Patch-Gen}(\mathcal{P}') Pa(0)=Patch-Gen(P′) :
- 将下采样后的点云 P ′ \mathcal{P}' P′输入到Patch - Gen算法(三维异常模拟策略 ) 中,生成模拟了异常的点云 P a ( 0 ) \mathcal{P}_a^{(0)} Pa(0) ,为模型训练引入异常数据。
- c = PointNet ( P a ( 0 ) ) \mathbf{c} = \text{PointNet}(\mathcal{P}_a^{(0)}) c=PointNet(Pa(0)) :
- 使用PointNet网络对模拟异常后的点云 P a ( 0 ) \mathcal{P}_a^{(0)} Pa(0)进行特征提取,得到特征向量 c \mathbf{c} c
,这些特征用于后续模型的计算和学习。- P a ( 0 ) ∼ q ( P a ( 0 ) ) P_a^{(0)} \sim q(P_a^{(0)}) Pa(0)∼q(Pa(0)) :
- 对模拟异常后的点云 P a ( 0 ) \mathcal{P}_a^{(0)} Pa(0) ,按照某种分布 q q q进行采样,可能是为了进一步规范点云数据分布或增加数据随机性。
- t ∼ Uniform ( { 1 , … , T } ) t \sim \text{Uniform}(\{1, \ldots, T\}) t∼Uniform({1,…,T}) :
- 从整数集合 { 1 , … , T } \{1, \ldots, T\} {1,…,T}中通过均匀分布随机采样一个时间步长 t t t , T T T是设定的时间步长上限,时间步长在一些基于扩散模型等相关方法中用于控制噪声添加和数据处理的阶段。
- ϵ ∼ N ( 0 , I ) \boldsymbol{\epsilon} \sim \mathcal{N}(0, \mathbf{I}) ϵ∼N(0,I) :
- 从标准正态分布(均值为0,单位协方差矩阵 I \mathbf{I} I )中采样噪声向量 ϵ \boldsymbol{\epsilon} ϵ ,为点云添加噪声,模拟真实场景中的干扰因素。
- μ = e θ ( α ˉ t P a ( 0 ) + 1 − α ˉ t ϵ , c , t ) \boldsymbol{\mu} = \mathbf{e}_\theta(\sqrt{\bar{\alpha}_t}\mathcal{P}_a^{(0)} + \sqrt{1 -\bar{\alpha}_t}\boldsymbol{\epsilon}, \mathbf{c}, t) μ=eθ(αˉtPa(0)+1−αˉtϵ,c,t) :
- 通过模型中的 e θ \mathbf{e}_\theta eθ函数(可能是神经网络 ),结合当前时间步长 t t t、模拟异常点云 P a ( 0 ) \mathcal{P}_a^{(0)} Pa(0)、噪声向量 ϵ \boldsymbol{\epsilon} ϵ以及特征向量 c \mathbf{c} c,预测出噪声的均值 μ \boldsymbol{\mu} μ ,这是模型对噪声进行估计的关键步骤。
- Δ = 1 α ˉ t ( α ˉ t P a ( 0 ) + 1 − α ˉ t ( ϵ − μ ) ) \boldsymbol{\Delta} = \frac{1}{\sqrt{\bar{\alpha}_t}}(\sqrt{\bar{\alpha}_t}\mathcal{P}_a^{(0)}+ \sqrt{1 - \bar{\alpha}_t}(\boldsymbol{\epsilon} - \boldsymbol{\mu})) Δ=αˉt1(αˉtPa(0)+1−αˉt(ϵ−μ)) :
- 根据前面得到的结果,计算出位移量 Δ \boldsymbol{\Delta} Δ ,该位移量用于对模拟异常点云进行修正,以尝试恢复到原始状态。
- L = ∥ P ′ − ( P a ( 0 ) + Δ ) ∥ 2 \mathcal{L} = \| \mathcal{P}' - (\mathcal{P}_a^{(0)} + \boldsymbol{\Delta}) \|^2 L=∥P′−(Pa(0)+Δ)∥2 :
- 计算相对重建损失 L \mathcal{L} L ,通过求原始下采样点云 P ′ \mathcal{P}' P′与修正后的点云( P a ( 0 ) + Δ \mathcal{P}_a^{(0)} + \boldsymbol{\Delta} Pa(0)+Δ
)之间的欧几里得距离的平方,衡量模型重建的准确性。模型训练过程中会不断调整参数,以最小化该损失值,提升重建效果。
During testing 测试过程
在测试时,从模拟的带噪点云版本中逐步去除噪声,目标是重建出无异常的点云形态。通过比较原始点云和重建点云经K近邻(KNN)算法处理后得到的聚类结果,来评估异常分数 。
算法3 R3D - AD测试迭代解析
输入:
P \mathcal{P} P,即输入点云,是测试过程的起始数据。
输出:
A A A,代表异常分数,用于衡量输入点云的异常程度。
步骤解析
- P ′ ∼ Uniform ( normalize ( P ) ) \mathcal{P}' \sim \text{Uniform}(\text{normalize}(\mathcal{P})) P′∼Uniform(normalize(P)) :
- 对输入点云 P \mathcal{P} P进行归一化处理,使数据处于合适范围。
- 然后通过均匀分布采样,对归一化后的点云进行下采样操作,得到新的点云 P ′ \mathcal{P}' P′ ,减少数据量并规范数据分布,方便后续计算。
- c = PointNet ( P ′ ) \mathbf{c} = \text{PointNet}(\mathcal{P}') c=PointNet(P′) :
- 使用PointNet网络对下采样后的点云 P ′ \mathcal{P}' P′进行特征提取,得到特征向量 c \mathbf{c} c ,这些特征用于后续迭代计算。
- Δ ( T ) ∼ N ( 0 , I ) \boldsymbol{\Delta}^{(T)} \sim \mathcal{N}(0, \mathbf{I}) Δ(T)∼N(0,I) :
- 初始化一个服从标准正态分布(均值为0,单位协方差矩阵 I \mathbf{I} I )的向量 Δ ( T ) \boldsymbol{\Delta}^{(T)} Δ(T) ,作为迭代计算的起始值,这里的 T T T是设定的最大时间步长。
- 循环部分(for循环):
- 从 t = T t = T t=T开始,递减到 t = 1 t = 1 t=1 。
- 对于每次迭代:
- 当 t > 1 t > 1 t>1时, z ∼ N ( 0 , I ) z \sim \mathcal{N}(0, \mathbf{I}) z∼N(0,I) ,即采样一个新的标准正态分布噪声向量 z z z ;当 t = 1 t = 1 t=1时, z = 0 z = \mathbf{0} z=0 。
- 计算 Δ ( t − 1 ) = 1 α ˉ t ( Δ ( t ) − 1 − α ˉ t 1 − α ˉ t e θ ( Δ ( t ) , c , t ) ) + σ t z \boldsymbol{\Delta}^{(t - 1)} = \frac{1}{\sqrt{\bar{\alpha}_t}}(\boldsymbol{\Delta}^{(t)} - \frac{1 - \bar{\alpha}_t}{\sqrt{1 - \bar{\alpha}_t}}\mathbf{e}_\theta(\boldsymbol{\Delta}^{(t)}, \mathbf{c}, t)) + \sigma_t \mathbf{z} Δ(t−1)=αˉt1(Δ(t)−1−αˉt1−αˉteθ(Δ(t),c,t))+σtz
。这里结合当前的 Δ ( t ) \boldsymbol{\Delta}^{(t)} Δ(t) 、特征向量 c \mathbf{c} c 、时间步长 t t t,通过 e θ \mathbf{e}_\theta eθ函数(可能是神经网络 )进行计算,并引入噪声向量 z z z,逐步更新位移量 Δ \boldsymbol{\Delta} Δ ,目的是逐步去除噪声并修正点云。- P ~ = P ′ + Δ ( 0 ) \widetilde{\mathcal{P}} = \mathcal{P}' + \boldsymbol{\Delta}^{(0)} P =P′+Δ(0) :
- 根据最后一次迭代得到的位移量 Δ ( 0 ) \boldsymbol{\Delta}^{(0)} Δ(0) ,=对下采样点云 P ′ \mathcal{P}' P′进行修正,得到重建后的点云= P ~ \widetilde{\mathcal{P}} P 。
- cluster ~ = KNN ( P ~ , k ) \widetilde{\text{cluster}} = \text{KNN}(\widetilde{\mathcal{P}}, k) cluster =KNN(P ,k) :
- 对重建后的点云 P ~ \widetilde{\mathcal{P}} P 应用K近邻(KNN)算法, k k k是设定的近邻数量,通过KNN算法将点云划分为不同的聚类,得到重建点云的聚类结果 cluster \text{cluster} cluster。
- cluster ′ = KNN ( P ′ , k ) \text{cluster}' = \text{KNN}(\mathcal{P}', k) cluster′=KNN(P′,k) :
- 对原始下采样点云 P ′ \mathcal{P}' P′同样应用KNN算法,得到原始点云的聚类结果 cluster ′ \text{cluster}' cluster′ 。
- A = ∥ cluster ′ − cluster ~ ∥ 2 A = \| \text{cluster}' - \widetilde{\text{cluster}} \|^2 A=∥cluster′−cluster ∥2 :
- 计算重建点云聚类结果 cluster \text{cluster} cluster与原始点云聚类结果 cluster ′ \text{cluster}' cluster′之间的欧几里得距离的平方,得到异常分数 A A A。距离越大,说明重建点云与原始点云差异越大,即输入点云的异常程度越高。
A.2 Additional experiments 附加实验
A.2.1 Quality of the generated anomalies 生成异常的质量
所提出的三维异常模拟策略Patch - Gen旨在解决训练阶段三维异常样本不足的问题。
T-distributed Stochastic Neighbor Embedding (t-SNE) T分布随机邻域嵌入
T分布随机邻域嵌入(t - SNE)[24] 在可视化高维样本方面特别有效,它通过在低维映射中为每个数据点赋予相应位置,使复杂数据能一目了然。我们遵循文献[16],使用t - SNE来验证我们生成的异常样本的质量和有效性。如图6所示,生成的异常与正常样本有明显区别,并与真实的异常样本重叠,这增强了我们模型对未知异常进行良好重建的能力。
Peak Signal-to-Noise Ratio (PSNR) 峰值信噪比
峰值信噪比(PSNR)是一个用于量化信号重建质量的工程术语。PSNR通常以分贝(dB)为单位测量,并基于原始信号与重建信号之间的均方误差来计算。PSNR值越高,重建质量越好。
在表5中,通过将生成的样本与真实异常样本进行比较来计算PSNR。我们随机选择两个正常样本计算它们的PSNR,并对多次随机计算得到的PSNR求平均值,以获得每个类别的PSNR上限。理想PSNR值可作为生成质量的参考。
数值越接近理想 PSNR 值,说明生成样本质量越好,越能模拟真实异常样本的特征
A.2.2 Generalization on unseen data 对未知数据的泛化
为评估我们所提出模型的稳健性和泛化能力,我们对来自不同数据集的不同类别进行了一系列实验,具体见表6 。oracle理想结果代表了模型性能的上限,它是通过在与测试类别相同的类别上进行训练得到的。
For known categories 对于已知类别
对于已知类别,我们重点关注备受认可的ShapeNetCore.v2数据集 [4],该数据集包含诸如飞机和汽车等类别,这些类别也在Real3D - AD数据集 [19] 中出现。
值得注意的是,ShapeNetCore.v2不是一个异常检测数据集,它不包含异常样本。因此,在表6的第一行和第二行中,无法使用AUROC指标。相反,我们通过倒角距离(CD)指标评估在Real3D - AD上训练的相同类别模型在ShapeNetCore.v2上的泛化性能。
从ShapeNetCore.v2过渡到Real3D AD时,性能明显下降,反之亦然,这说明了数据集之间不一致所带来的障碍。
这突显了我们的重建方法的重要性,该方法有效地学习了inductive biases归纳偏差,从而可以在不同的数据分布中更好地进行泛化
For unknown categories 对于未知类别
对于未知类别,我们使用Anomaly - ShapeNet数据集 [18],如表6的最后一行所示。模型在Bowl的一个子集上进行训练,并在训练期间从未遇到过的一个类别上进行测试。
值得注意的是,尽管缺乏先验接触,我们的模型仍取得了令人印象深刻的0.715图像级AUROC。这一性能超过了所有仅在“bowl4”上训练和测试的其他方法,从而证明了我们方法卓越的泛化能力。
总结
这些结果不仅验证了我们的方法在处理已知和未知类别方面的有效性,还强调了它在数据多样性和未知场景司空见惯的现实世界应用中的潜力。
A.3 Additional main results 附加主要结果
Anomaly - ShapeNet [18] 总共包含40个类别。在正文表2中,由于篇幅限制,我们将外观不同但属于同一类别的物体归为同一类别(例如,bottle0、bottle1、bottle3都归类为“瓶子”类别 )。在此,我们给出了具体的图像级AUROC,如表7所示。
A.4 Additional qualitative results 附加定性结果
为进一步证明和比较我们提出的三维异常模拟策略Patch - Gen的效果,我们在Real3D - AD数据集和Anomaly - ShapeNet数据集上进行了额外的定性分析。
图7的第一行展示了测试集中的异常样本,第二行展示了训练集中的正常样本,第三行展示了由Patch - Gen模拟的异常样本。
从图7中可以看出,我们的方法能够充分模拟不同类别中存在的缺陷,证明了该方法能够很好地弥补仅使用正样本进行三维异常检测训练所产生的域差距。
“the domain gap”常见释义为“领域差距” ,在三维异常检测等相关研究中,它指的是不同数据集或不同模态数据之间存在的差异。这些差异会导致模型在一个数据集或模态上训练后,在另一个数据集或模态上应用时性能下降 。
比如在三维异常检测里,不同的点云数据集采集和构建方式不同,像点云质量、场景布局、物体尺寸等方面存在差异,这就是一种领域差距,会让模型难以泛化 。还有图像和点云等不同模态数据,在特征表示、数据分布上的差异也构成领域差距 。
为提升模型在不同场景下的适应性和鲁棒性,研究中常需采取域适应等技术来减小这种差距 。