Towards Scalable 3D Anomaly Detection and Localization.....论文精读

题目:Towards Scalable 3D Anomaly Detection and Localization: A Benchmark via 3D Anomaly Synthesis and A Self-Supervised Learning Network

论文地址 CVPR 2024 2311

题目:迈向可扩展的三维异常检测与定位:基于三维异常合成和自监督学习网络的基准测试

Scalable:可扩展的 Benchmark:基准;标准检查程序
3D Anomaly Synthesis:三维异常合成
A Self-Supervised Learning Network:一个自监督学习网络
所以题目:基于三维异常合成和一个自监督学习网络的基准测试

Abstract 摘要

  近来,三维异常检测作为一项涉及精细几何判别能力的关键问题,正受到越来越多的关注。然而,真实三维异常数据的匮乏限制了当前模型的可扩展性。为实现大规模异常数据采集,文章提出一种三维异常合成流程,以使现有的大规模三维模型适用于三维异常检测。
  具体而言,文章基于ShapeNet构建了一个合成数据集,即Anomaly - ShapeNet。Anomaly - ShapeNet由40个类别下的1600个点云样本组成,提供了丰富多样的数据集合,有助于高效训练并增强对工业场景的适应性。
  同时,为实现可扩展的三维异常定位表征学习,文章提出一种自监督方法,即迭代掩码重建网络(IMRNet)。在训练过程中,文章提出一个几何感知采样模块,以在点云下采样时保留潜在的异常局部区域。然后,文章随机掩码点云块,并将其输入到基于重建的自监督变换器中。在测试时,点云会反复通过掩码重建网络,每次迭代的输出作为下一次的输入。通过将最终重建的点云与初始输入进行融合和对比,文章的方法成功定位了异常。

几何感知采样模块:提出的几何感知采样模块在点云下采样时发挥关键作用。三维点云数据量往往较大,直接处理计算成本高。下采样能减少数据量 。此模块通过设置阈值 τ \tau τ (设为 0.3 )等方式,在减少数据量的同时,有针对性地保留潜在的异常局部区域 。

  实验表明,IMRNet的表现优于先前的先进方法,在Anomaly - ShapeNet数据集上I - AUC达到66.1% ,在Real3D - AD数据集上I - AUC达到72.5% 。文章的数据集在https://github.com/Chopper-233/AnomalyShapeNet发布。

1. Introduction 介绍

  三维异常检测任务在以物体为中心的工业质量检测中至关重要,这类检测通常要求高精度和高检测率。其目标是在三维环境中识别异常区域并定位异常点云。基于固定视角的图像异常检测算法 [1,7,14 - 16,18,24,26,32 - 35,35,42,45] 由于存在盲区而具有局限性在以物体为中心的场景中无法达到预期效果。因此,研究人员越来越关注利用三维信息进行异常检测 [2]。

1.1 现有的数据集

  随着三维传感器技术的进步,MvtecAD - 3D [2]、Real3D - AD [25] 和MAD [44] 等多个数据集应运而生,以满足对三维异常检测日益增长的需求。MvtecAD - 3D专为单相机场景下的异常检测而设计,而MAD数据集侧重于多姿态异常检测。只有Real3D - AD专门针对完整点云的异常检测。由于从三维扫描仪获取的三维点云通常比来自多个相机的数据包含更多的形态信息,文章的主要目标是推进基于点云的异常检测任务领域的发展

1.2 现有数据集和算法的问题

  在点云异常检测领域,有两个主要问题亟待解决:缺乏分布多样的数据集,以及需要更有效的基于深度学习的方法。首先,目前高质量的真实世界三维点云异常检测数据集Real3D - AD,在正常样本和异常样本的多样性以及点云数量大小的过度变化方面存在局限性。这些因素使得基于重建的算法 [3] 或基于深度学习特征提取的算法 [1] 难以广泛应用。其次,现有的点云异常检测方法严重依赖传统的特征处理算子,以及经过预训练来提取特征或将数据转换为二维进行处理的模型[1,8]。 这种方法未能充分挖掘点云数据的潜力,导致显著的特征域错位。

1.3 解决数据集的局限性

  为解决当前数据集的局限性,文章基于ShapeNet [11](一个广泛用于点云处理的数据集 )合成数据,创建了Anomaly - ShapeNet数据集。Anomaly - ShapeNet数据集由属于40个类别的1600个样本组成。它包含六种典型的异常类型:凸起、凹陷、孔洞、断裂、弯曲和裂纹。每个样本的点云数量在8000到30000之间。异常部分占整个点云的1%到10%。重要的是,文章的合成异常数据集捕捉到了现实且多样的异常情况。图1展示了Anomaly - ShapeNet数据集中的一些示例。
在这里插入图片描述

1.4 解决三维点云异常检测中的挑战

  为应对三维点云异常检测中的挑战,文章提出一种基于迭代掩码重建的自监督方法,名为IMRNet。IMRNet主要由三个部分构成:(1)几何感知采样模块(GPS);(2)点块掩码重建网络(PMR);(3)密集特征拼接与比较模块(DFC)
  在IMRNet框架中,将异常点云输入重建网络之前,文章会使用GPS模块基于点云的几何结构提取关键点。这确保文章尽可能全面地对异常点进行采样。然后,通过K近邻(KNN)操作将这些采样的关键点转换为点块组,并以迭代的方式输入到PMR网络中。PMR网络对这些点块组执行掩码重建过程。经过PMR网络处理后,重建的正常样本和输入点云都被输入到DFC模块。DFC模块会比较重建的正常样本和输入点云的特征,从而得出异常分数。这种比较在特征空间和点空间中都进行,以便对异常情况进行全面评估。
  总体而言,IMRNet方法将GPS模块、PMR网络和DFC模块相结合,通过迭代掩码重建和特征比较,实现了有效的自监督三维点云异常检测。

1.5 总结

  通过结合Anomaly - ShapeNet数据集和IMRNet方法,文章的工作旨在为可扩展的三维异常检测领域做出贡献。文章将贡献总结如下:

  • 文章展示了一个多样且高质量的合成三维异常数据集Anomaly - ShapeNet,其具备精确的三维标注。
  • 文章提出了IMRNet,一种新颖的三维点云异常检测方法,该方法包含几何感知点云采样模块、迭代点块掩码重建网络以及密集特征比较模块,在Anomaly - ShapeNet和Real3D - AD数据集上的表现优于当前最优方法。
  • 文章证明了所提出的几何感知点云采样模块能够更有效地提取三维点云中重要的异常点,并且所提出的PMR网络能够更好地学习三维异常数据集的特征表示。

2. Related works 相关工作

2.1 2D Anomaly Detection 二维异常检测

  在二维数据(如RGB或灰度图像 )的无监督异常检测方面,近期已取得显著进展 [17,27,40]。传统方法通常依赖自动编码器 [3,19,38] 以及生成对抗网络(GANs) [10,29,37],通常采用随机权重初始化。另外,利用预训练网络描述符进行异常检测的方法,通常会超过从头开始训练的方法[1,6,7,14 - 16,18,24,26,32 - 35,35,41,42,45]。值得注意的示例包括自学异常检测(ST) [1],它将预先训练的教师网络的特征与随机初始化的学生网络对齐,以识别异常;Patch - Core [35],利用存储库方法对正常数据分布进行建模;以及Cutpaste [24],它引入了一种新的数据增强策略,用于自监督的异常检测。大规模基础模型 [23,31] 的出现催生了新的方法,这些方法利用了这些模型在异常检测任务中强大的零样本泛化能力[9,13,22]。
  在文章的工作中,作者将基于重建的自监督学习原理从二维拓展到三维场景。文章引入一种新型自监督网络,采用掩码重建机制,以推进可扩展的三维异常检测。

2.2 3D Anomaly Detection 三维异常检测

  与二维异常检测领域相比,三维异常检测领域的发展相对滞后受到数据稀疏、维度增加和普遍存在噪声等固有挑战的阻碍。Bergmann等人 [4] 提出了一种开创性的方法,在训练过程中采用师生网络范式来对齐点云特征,然后在测试时通过比较这些特征来识别异常。 Horwitz等人 [20] 利用经典的三维描述符结合K近邻(KNN)算法进行异常检测。虽然AST [36] 在某些场景中证明了其有效性,但其主要关注深度信息的背景抑制,导致遗漏更细微的异常细节。M3DM框架 [39] 创新性地将三维点数据与传统成像相结合,以辅助决策。CPMF [8] 引入了一种新方法,将存储库方法与KNN相结合,并通过将3D数据渲染为多视图2D图像来丰富检测过程。相反,EasyNet [12] 提出了一种简单直接的三维异常检测机制,无需预训练。
  尽管如此,鲁棒的三维异常检测数据集的稀缺 [2,25,44] 限制了这些模型在各种三维异常检测场景中的可扩展性和泛化性。有鉴于此,文章的工作旨在设计一种三维异常合成流程,增加必要的数据量和多样性,以促进更通用的三维异常检测模型的开发。
在这里插入图片描述

3. Anomaly-ShapeNet 3D Dataset Synthesis Anomaly-ShapeNet 三维数据集合成

3.1 Pipeline Overview 流程概述

  如图 2 所示,构建文章的Anomaly-ShapeNet数据集的整个流程由个部分组成:网格细分 mesh subdivision缺陷雕刻 defects carving真实标注生成 ground truth generation
在这里插入图片描述

3.2 Normal Data Sampling 正常数据采样

  为了生成文章数据集的原始正常样本,作者使用了 ==ShapeNet 数据集 ==[11],该数据集以其多样性和高质量而闻名,常用于point cloud segmentation 点云分割、completion 补全和classification 分类等任务。对于文章的数据源,作者专门从 ShapeNet 的子数据集 ShapeNetcoreV2 中选择正常样本

3.3 Anomaly Data Synthesis 异常数据合成

  1. 文章开发了 a point cloud refinement module 一种点云细化模块以增强 ShapeNet 数据集中某些点云所含点数和面数有限的问题
  2. 为了引入更逼真的缺陷,文章使用了 Blender,这是一款在工业设计领域广泛使用的软件,用于雕刻各种缺陷。Blender 是一款开源工业设计软件,具备雕刻、细化、裁剪以及多种编辑模式等丰富功能,这使其在该领域广受欢迎。
  3. 在获取异常样本后,文章使用点编辑软件 CloudCompare 来获取真实标注

3.4 Dataset Statistics 数据集统计

  Anomaly-ShapeNet数据集包含训练文件夹和测试文件夹。训练文件夹中每个类别有四个正常样本with four normal samples per class测试文件夹中有28到40个样本with 28 to 40 samples,涵盖正常和异常实例including both normal and abnormal instances样本点云的点数在8000到30000之间,与主流点云模型prevalent point cloud models兼容,并最大限度的减少了下采样的需要。
  与Real3D - AD[39](==?唯一 :一个源自3D扫描的三维点云异常检测数据集 ==)相比,该数据集提供了更广泛的类别多样性,和更便于应用的点数。它拓展了Real3D - AD的范畴,增加了多样性和更广泛的异常类型范围。它与先前算法偏好的数据量相符,从而推动了异常检测的发展并减少计算开销。与领先的三维异常检测数据集的对比详见表1

4. Self-Supervised Representation Learning for 3D Anomaly Detection: IMRNet 用于三维异常检测的自监督表示学习:IMRNet

在这里插入图片描述

  图3展示了文章IMRNet的整体架构。文章的IMRNet由个模块组成:GPSPMRDFC,它能够成功检测并定位异常样本中的异常情况。每个模块的详细细节将在以下章节中阐述。

4.1 Geometry-aware Point Cloud Sampling 几何-感知 点云采样

  在点云处理中,通常使用均匀采样 uniform sampling 或最远点采样 farthest point sampling。然而,在点云异常检测时,任意的采样方法可能会导致异常结构的表示不清晰 ambiguous representations。在文章的几何感知采样模块中,作者通过首先计算点的几何特征来自适应地采样点云,从而解决这个问题。

4.1.1 Geometry feature extraction 几何特征提取

① 计算点云中一个点的法向量
  给定一个点云 ( P ) (P) (P)作为输入,文章将某点 P i P_{i} Pi在半径 r r r内的邻域点集定义为 N i \mathcal{N}_i Ni(其中 ∣ N i ∣ = N |\mathcal{N}_i| = N Ni=N ,这里 ∣ ⋅ ∣ |\cdot| 表示集合的基数 集合中的基数是指集合中元素的个数)。为计算每个点 ( P i ) (P_i) (Pi)the normal vector法向量 N i \mathbf{N}_i Ni,文章采用局部曲面拟合方法。法向量 N i \mathbf{N}_i Ni 可通过求解以下方程得到:
min ⁡ N i ∑ P j ∈ N i ∣ N i ⋅ v j − d ∣ 2 \begin{align*} \min_{\mathbf{N}_i} \sum_{P_j \in \mathcal{N}_i} |\mathbf{N}_i \cdot \mathbf{v}_j - d|^2 \tag{1} \end{align*} NiminPjNiNivjd2(1)
  其中 v j \mathbf{v}_j vj是从 P i P_i Pi P j P_j Pj的向量, N i ⋅ v j \mathbf{N}_i \cdot \mathbf{v}_j Nivj表示法向量 N i \mathbf{N}_i Ni与向量 v j \mathbf{v}_j vj的点积 , d d d表示由法向量 N i \mathbf{N}_i Ni所确定的平面到点 P j P_j Pj的有向距离。
② 计算点云中一个点的曲率
  一个点的曲率 curvature可以使用其邻域点 N i \mathcal{N}_i Ni的法向量以及协方差矩阵 C i \mathbf{C}_i Ci的特征值来计算。曲率值 ( K i ) (K_i) (Ki)由下式给出:
K i = min ⁡ ( λ 1 , λ 2 ) λ 1 + λ 2 + ϵ (2) K_i = \frac{\min(\lambda_1, \lambda_2)}{\lambda_1 + \lambda_2 + \epsilon} \tag{2} Ki=λ1+λ2+ϵmin(λ1,λ2)(2)
  其中 ( λ 1 ) (\lambda_1) (λ1) ( λ 2 ) (\lambda_2) (λ2) C i \mathbf{C}_i Ci的特征值, ϵ \epsilon ϵ是一个小的正常数,用于避免除以零。

  假设对于点 P i P_i Pi的邻域点集 N i \mathcal{N}_i Ni,其中包含 N N N个点,这些点可表示为 { P j } j = 1 N \{P_{j}\}_{j = 1}^{N} {Pj}j=1N,每个点在三维空间中坐标为 ( x j , y j , z j ) (x_{j}, y_{j}, z_{j}) (xj,yj,zj)计算协方差矩阵 C i \mathbf{C}_i Ci 步骤如下

  1. 计算每个维度均值: 分别计算邻域点集在(x)、(y)、(z)三个维度坐标的均值 x ˉ \bar{x} xˉ y ˉ \bar{y} yˉ z ˉ \bar{z} zˉ
    x ˉ = 1 N ∑ j = 1 N x j , y ˉ = 1 N ∑ j = 1 N y j , z ˉ = 1 N ∑ j = 1 N z j \bar{x}=\frac{1}{N}\sum_{j =1}^{N}x_{j}, \quad \bar{y}=\frac{1}{N}\sum_{j = 1}^{N}y_{j}, \quad\bar{z}=\frac{1}{N}\sum_{j = 1}^{N}z_{j} xˉ=N1j=1Nxj,yˉ=N1j=1Nyj,zˉ=N1j=1Nzj
  2. 数据中心化: 将每个点的坐标减去对应维度均值进行中心化,得到中心化后的坐标 ( x j − x ˉ , y j − y ˉ , z j − z ˉ ) (x_{j}-\bar{x}, y_{j}-\bar{y}, z_{j}-\bar{z}) (xjxˉ,yjyˉ,zjzˉ)
  3. 计算协方差矩阵元素: 协方差矩阵 C i \mathbf{C}_i Ci 3 × 3 3\times3 3×3矩阵,其元素 C m n ( m , n ∈ { 1 , 2 , 3 } C_{mn}(m,n\in\{1,2,3\} Cmn(m,n{1,2,3},分别对应 x x x y y y z z z维度 )计算公式为:
    C m n = 1 N − 1 ∑ j = 1 N ( x j m − x ˉ m ) ( x j n − x ˉ n ) C_{mn}=\frac{1}{N - 1}\sum_{j =1}^{N}(x_{j}^{m}-\bar{x}^{m})(x_{j}^{n}-\bar{x}^{n}) Cmn=N11j=1N(xjmxˉm)(xjnxˉn)
    其中 x j m x_{j}^{m} xjm x ˉ m \bar{x}^{m} xˉm是点 P j P_j Pj和均值在第 m m m维度坐标 。

例子:
比如,计算 x x x x x x维度协方差(即方差 ) C 11 C_{11} C11
C 11 = 1 N − 1 ∑ j = 1 N ( x j − x ˉ ) ( x j − x ˉ ) C_{11}=\frac{1}{N -1}\sum_{j = 1}^{N}(x_{j}-\bar{x})(x_{j}-\bar{x}) C11=N11j=1N(xjxˉ)(xjxˉ)
计算 x x x y y y维度协方差 C 12 C_{12} C12
C 12 = 1 N − 1 ∑ j = 1 N ( x j − x ˉ ) ( y j − y ˉ ) C_{12}=\frac{1}{N - 1}\sum_{j =1}^{N}(x_{j}-\bar{x})(y_{j}-\bar{y}) C12=N11j=1N(xjxˉ)(yjyˉ)
最终得到的协方差矩阵
C i = ( C 11 C 12 C 13 C 21 C 22 C 23 C 31 C 32 C 33 ) \mathbf{C}_i = \begin{pmatrix} C_{11}&C_{12}&C_{13}\\ C_{21}&C_{22}&C_{23}\\C_{31}&C_{32}&C_{33} \end{pmatrix} Ci= C11C21C31C12C22C32C13C23C33
它是对称矩阵,即 C m n = C n m C_{mn}=C_{nm} Cmn=Cnm

③ 量化两点间法向量和曲率的变换率
  为了量化两点 ( P i 和 P j ) (P_i 和P_j) PiPj)之间法向量和曲率的变化率,作者定义以下公式:
R norm ( P i , P j ) = ∣ N i − N j ∣ ∣ v i j ∣ (3) R_{\text{norm}}(P_i, P_j) = \frac{|\mathbf{N}_i - \mathbf{N}_j|}{|\mathbf{v}_{ij}|} \tag{3} Rnorm(Pi,Pj)=vijNiNj(3)
R curv ( P i , P j ) = ∣ K i − K j ∣ (4) R_{\text{curv}}(P_i, P_j) = |K_i - K_j| \tag{4} Rcurv(Pi,Pj)=KiKj(4)
  其中 v i j \mathbf{v}_{ij} vij是从 P i P_i Pi P j P_j Pj的向量, N i \mathbf{N}_i Ni N j \mathbf{N}_j Nj是各点处的法向量, K i K_i Ki K j K_j Kj是各点处的曲率值。

4.1.2 Geometry-aware sampling 几何感知 采样

  在输入点云的采样过程中,文章采用一种几何感知点云采样方法。为此,作者引入一个变化率存储单元 M \mathcal{M} M,它用于捕捉点云的局部和全局变化率。对于每个点 P i P_i Pi,存储单元会存储根据相邻点之间法向量和曲率值差异计算出的变化率值 R i R_i Ri。给定法向量变化率 R norm R_{\text{norm}} Rnorm和曲率变化率 R curv R_{\text{curv}} Rcurv ,整体变化率值 R R R通过取其与相邻点的变化率值的平均值来计算
R i = 1 ∣ N i ∣ ∑ P j ∈ N i ( R norm ( P i , P j ) + R curv ( P i , P j ) ) (5) R_i = \frac{1}{|\mathcal{N}_i|} \sum_{P_j \in \mathcal{N}_i} (R_{\text{norm}}(P_i, P_j) + R_{\text{curv}}(P_i, P_j)) \tag{5} Ri=Ni1PjNi(Rnorm(Pi,Pj)+Rcurv(Pi,Pj))(5)
  为了优先选取高变化率的点,文章根据存储单元 M \mathcal{M} M中的值对这些点进行排序较低的等级表示变化率较高,捕获了显著的异常结构。文章选择变化率较大的点,设定一个阈值 τ \tau τ 。通过对排名在 1 1 1 ⌊ τ ⋅ N ⌋ \lfloor \tau \cdot N \rfloor τN之间的点进行采样(其中 N N N是点的总数 ),文章能获取更多具有显著变化率的点。得到最终采样点集 ( S ) (S) (S)的采样过程可以用以下方程表示:
S = { P k ∣ Rank ( P k ) ≤ ⌊ τ ⋅ N ⌋ } (6) S = \{P_k | \text{Rank}(P_k) \leq \lfloor \tau \cdot N \rfloor\} \tag{6} S={PkRank(Pk)τN⌋}(6)
  通过采用这种几何感知点云采样策略,文章通过确保采样点以其独特的几何特征表示潜在的异常结构,提高了点云异常检测的准确性和有效性。

4.2 Iterative Mask Reconstruction 迭代掩码重建

  在二维异常检测领域,常见的做法是将正常图像分割成相同大小的图像块对这些图像块进行随机掩码处理然后将掩码后的图像块重建回正常状态。其基本思路是,重建网络在训练期间仅接收正常图像块,并仅学习正常特征分布。在测试时,输入的异常图像会被掩码,然后尝试恢复成正常图像。(在测试阶段,对异常图像做同样的掩码操作后输入网络,网络就按照训练学到的知识去重建,通过重建效果来判断图像是否异常,如果重建效果差,就说明图像可能存在异常部分。)
  与图像不同,点云无法像图像那样被划分为规则的图像块。此外,由于点云的无序性,不能直接使用均方误差(MSE)或结构相似性(SSIM)来计算重建误差。基于这些特性,文章提出了PMR模块,该模块主要由个组件构成:点云块生成 point-patch generation随机掩码和嵌入 random masking and embedding 以及重建目标 reconstruction target

4.2.1 Point-patch generation 点云-块 生成

  遵循Point - MAE [28]的方法,通过文章的几何感知点采样(GPS)和K近邻(KNN)算法,将输入点云划分为不规则的重叠块。具体来说,给定一个包含 N N N个点的点云 P i P_i Pi,其中 P i ∈ R N × 3 P_i \in \mathbb{R}^{N×3} PiRN×3 ,应用GPS算法采样 C C C个点作为块中心。基于这些中心 C C C,KNN算法在每个中心周围选择 k k k个最近的点,从而构成点块 P P P C C C P P P的形式化表示如下:
C = G P S ( P i ) , C ∈ R n × 3   (7) C = GPS(P_i), C \in \mathbb{R}^{n×3} \tag{7} \ C=GPS(Pi),CRn×3 (7)
P = K N N ( P i , C ) , P ∈ R n × k × 3 (8) P = KNN(P_i, C), P \in \mathbb{R}^{n×k×3} \tag{8} P=KNN(Pi,C),PRn×k×3(8)
  需要注意的是,在文章的点块point patches中,每个中心点center point就像二维块核心2D patchcore [35]一样代表其邻域。这不仅有助于更好地收敛,还能促进异常的检测和定位。

4.2.2 Random masking and embedding 随机掩码和嵌入

  以 40 % 40\% 40%的掩码率 m m m ,文章随机选择一组掩码块 M ∈ R m n × k × 3 M \in \mathbb{R}^{mn×k×3} MRmn×k×3,该掩码块也用作重建的真实值。随机掩码后,可见点可表示为:
P v i s = P ⊙ ( 1 − M ) (9) P_{vis} = P \odot (1 - M) \tag{9} Pvis=P(1M)(9)
  其中 ⊙ \odot 表示空间逐元素乘积。
  为了将可见块和掩码块转换为标记(tokens),文章采用PointNet [30] ,它主要由多层感知机(MLPs)和最大池化层组成考虑到文章的点块由其坐标表示,通过简单的位置嵌入(PE)将中心点 C C C映射到嵌入 P c P_c Pc。设维度为 d d d ,可见标记 T v T_{v} Tv定义为:
T v i s = P o i n t N e t ( P v i s ) , T v i s ∈ R ( 1 − m ) n × d (10) T_{vis} = PointNet(P_{vis}), T_{vis} \in \mathbb{R}^{(1 - m)n×d} \tag{10} Tvis=PointNet(Pvis),TvisR(1m)n×d(10)

  在点云处理场景下,由于点云本身缺乏像图像那样天然的位置信息(比如像素在图像中的固定行列位置 ),全局位置嵌入 P c P_{c} Pc 就是为了给点云数据赋予一定的位置相关信息,帮助网络更好地理解点与点之间的空间关系等,提升网络对数据的处理能力 。

4.2.3 Reconstruction target 重建目标

  文章的重建主干网络完全基于Point - Transformer(PT)[43] ,采用非对称编码器 - 解码器架构。为了预测被掩码的点,文章在解码器的最后一层添加一个带有简单全连接层的预测头
   在训练阶段,可见标记 T v i s T_{vis} Tvis 和 掩码标记 T m T_{m} Tm,连同全局位置嵌入 P c P_{c} Pc ,都被输入到Transformer网络PT中。在解码器的最后一层,预测头 F c F_{c} Fc尝试输出重建点 P p r e P_{pre} Ppre 。该过程可表示为:
P p r e = F c { P T ( T v i s , T m , P c ) } , P p r e ∈ R m n × k × 3 (11) P_{pre} = F_{c}\{PT(T_{vis}, T_{m}, P_{c})\}, P_{pre} \in \mathbb{R}^{mn×k×3} \tag{11} Ppre=Fc{PT(Tvis,Tm,Pc)},PpreRmn×k×3(11)

  最终输出重建点块 P p r e P_{pre} Ppre ,也就是网络尝试恢复出的被掩码部分的点云数据 ,通过这样的流程来实现对被掩码点云的重建预测

  文章重建网络的目标是恢复被掩码的点块 M M M ,也称为 P g t P_{gt} Pgt在得到预测点块 P p r e P_{pre} Ppre和真实值 P g t P_{gt} Pgt后,文章使用 l 2 l_2 l2 倒角距离(Chamfer Distance)作为重建损失
L = 1 ∣ P p r e ∣ ∑ a ∈ P p r e min ⁡ b ∈ P g t ∥ a − b ∥ 2 2 + 1 ∣ P g t ∣ ∑ b ∈ P g t min ⁡ a ∈ P p r e ∥ a − b ∥ 2 2 (12) L = \frac{1}{|P_{pre}|} \sum_{a \in P_{pre}} \min_{b \in P_{gt}} \|a - b\|_2^2 + \frac{1}{|P_{gt}|} \sum_{b \in P_{gt}} \min_{a \in P_{pre}} \|a - b\|_2^2 \tag{12} L=Ppre1aPprebPgtminab22+Pgt1bPgtaPpreminab22(12)
在这里插入图片描述

算法1 迭代掩码重建
要求:点Transformer网络 P T PT PT,预测头 F c F_{c} Fc,几何特征提取器 G G G,特征相关采样函数 S S S,掩码率 m m m,迭代次数 I I I,数据加载器 D \mathcal{D} D

  1. 加载模型 P T PT PT
  2. P T PT PT设置为评估模式
  3. 对于数据加载器 D \mathcal{D} D中的每个异常样本 P ∗ P^* P ,执行以下操作:
  4.    ( P , C ) ← G P S ( P ∗ ) (P, C) \leftarrow GPS(P^*) (P,C)GPS(P) (通过GPS算法处理异常样本 P ∗ P^* P ,得到点块 P P P和点块中心 C C C
  5.   对于从 1 1 1 I I I的每个索引(即进行 I I I次迭代 ),执行以下操作:
  6.      P v i s ← P ( 1 − m ) P_{vis} \leftarrow P(1 - m) PvisP(1m) (根据掩码率 m m m得到可见点块 P v i s P_{vis} Pvis
  7.      T ← P T ( P v i s , C ) T \leftarrow PT(P_{vis}, C) TPT(Pvis,C) (将可见点块 P v i s P_{vis} Pvis和点块中心 C C C输入到 P T PT PT网络,得到特征表示 T T T
  8.      P p r e ← F c ( T , C ) P_{pre} \leftarrow F_{c}(T, C) PpreFc(T,C)(通过预测头 F c F_{c} Fc,根据特征表示 T T T和点块中心 C C C得到预测点块 P p r e P_{pre} Ppre
  9.      P = P p r e ⊕ P v i s P = P_{pre} \oplus P_{vis} P=PprePvis(将预测点块 P p r e P_{pre} Ppre和可见点块 P v i s P_{vis} Pvis连接起来得到新的点块 P P P
  10.   结束迭代
  11. 结束对每个异常样本的处理
  12. 函数 G P S ( P ) GPS(P) GPS(P)
  13.    M ← G ( P ) M \leftarrow G(P) MG(P) (通过几何特征提取器 G G G处理点云 P P P,得到特征相关信息 M M M
  14.    C ← S ( M , P ) C \leftarrow S(M, P) CS(M,P) (通过特征相关采样函数 S S S,根据特征信息 M M M和点云 P P P得到点块中心 C C C
  15.    P ← K N N ( C , P , k ) P \leftarrow KNN(C, P, k) PKNN(C,P,k) (通过K近邻算法,围绕点块中心 C C C在点云 P P P中选取 k k k个最近点,得到点块 P P P
  16.   返回 ( P , C ) (P, C) (P,C)
  17. 结束函数定义

  在测试阶段,每个恢复后的点块将与可见点块连接,并多次送回Transformer网络,直到异常部分被掩码并恢复为正常表面。给定异常样本为 P ∗ P^* P ,迭代重建伪代码如算法1所示。

4.3 Dense feature concatenation and comparision 密集特征连接与比较

  在迭代重建模块之后,通过将重建后的点云原始输入点云进行比较来确定异常分数。为了增强对细微异常的检测,文章结合了来自输入点云和重建点云的特征。此外,为了减少在正常点云生成中因过度迭代导致的误报,文章在训练阶段使用单个模板来规范输出

4.3.1 Point-Patch comparision 点-块 比较

  受PatchCore [35]启发,文章采用点块划分方法,通过促进重建点云与原始点云之间的逐块比较,来应对点云无序性带来的挑战。每个点的异常分数,是通过转换其对应点块基于倒角距离的比较分数得到的,这些比较分数在训练阶段直接计算得出。比较过程形式化表示如下:
P i = K N N ( p i , k ) , P i ∈ R n × k × 3 (13) P_i = KNN(p_i, k), P_i \in \mathbb{R}^{n×k×3} \tag{13} Pi=KNN(pi,k),PiRn×k×3(13)
P o = K N N ( p o , k ) , P o ∈ R n × k × 3 (14) P_o = KNN(p_o, k), P_o \in \mathbb{R}^{n×k×3} \tag{14} Po=KNN(po,k),PoRn×k×3(14)
A p = L c ( P i , P o ) (15) A_p = \mathcal{L}_c(P_i, P_o) \tag{15} Ap=Lc(Pi,Po)(15)
  其中 p i p_i pi p o p_o po分别表示输入点云和输出点云, n n n表示围绕每个点的邻域点聚合数量 P i P_i Pi P o P_o Po是对应的点块。 L c \mathcal{L}_c Lc表示倒角损失, A p A_p Ap是点域中的异常分数

4.3.2 Feature fusion and comparision 特征融合与比较

  人们普遍认识到,从神经网络不同层提取的特征代表着不同层次的信息。因此,融合来自不同层的信息能够有效增强异常检测的能力。在文章的DFC(密集特征连接与比较)模块中,作者将先前用于重建的Transformer解码器用作特征提取器。在对输入点云和重建点云进行解码后,文章提取它们的第1层、第2层和第3层的特征( f 1 , f 2 , f 3 f^1,f^2,f^3 f1f2f3),然后对这些特征进行融合与比较,从而得到特征级异常分数。特征级异常分数 A f A_f Af的形式化表示如下:
f 1 , f 2 , f 3 = ϕ ( p ) (16) f^1, f^2, f^3 = \phi(p) \tag{16} f1,f2,f3=ϕ(p)(16)
F = f 1 ⊕ f 2 ⊕ f 3 (17) F = f^1 \oplus f^2 \oplus f^3 \tag{17} F=f1f2f3(17)
A f = F i Θ F o (18) A_f = F_i \Theta F_o \tag{18} Af=FiΘFo(18)
  其中 p p p为输入点云和重建点云, f f f为提取的特征。 ⊕ \oplus 表示融合操作, F F F为融合后的特征。 Θ \Theta Θ为比较操作, A f A_f Af为特征异常分数。

4.3.3 Template Regularization 模板正则化

  过度的迭代重建可能会引发“正常点漂移normal point drift”,这有可能提高误报率。为缓解该问题,文章使用在训练阶段保存的特征模板 T f T_f Tf,来对重建点云的特征 F o F_o Fo进行正则化。对于 F o F_o Fo 中的每个向量 z i z_i zi ,文章计算它与模板中对应向量 z ^ i \hat{z}_i z^i 的距离,并将该距离存储到存储库 M M M 中。
∀ z i ∈ F O , M = ∥ z ^ i ( l ) − z i ( l ) ∥ (19) \forall z_i \in F_O, M = \|\hat{z}_i^{(l)} - z_i^{(l)}\| \tag{19} ziFO,M=z^i(l)zi(l)(19)
  通过设置距离阈值 τ \tau τ,文章检查存储库 M M M 中的每个距离 d i d_i di 。如果 d i d_i di 超过 τ \tau τ ,文章就 z ^ i \hat{z}_i z^i替换对应的向量 z i z_i zi。若使用模板正则化,经过正则化的 F o F_o Fo 将用于计算 A f A_f Af
   在得到点域异常分数 A p A_p Ap和特征级异常分数 A f A_f Af后,文章将它们插值到统一维度。最终的异常分数是将这两个分数连接起来的结果。
A = A p ⊕ A f (20) A = A_p \oplus A_f \tag{20} A=ApAf(20)

5. Experiments 实验

5.1 Datasets 数据集

5.1.1 Anomaly-ShapeNet

  Anomaly - ShapeNet是文章新提出的三维合成点云异常检测数据集。该数据集涵盖40个类别,包含1600多个正负样本。每个训练集针对一个类别仅包含四个样本,这类似于小样本学习场景。每个测试集包含正常样本和各种有缺陷的样本。同时,作者在文章设计的该Anomaly-ShapeNet数据集上对M3DM [39]、RegAD [21] 等方法进行了评估,为后续研究人员提供了基准。

5.1.2 Real3D - AD

  Real3D - AD是一个新的大规模三维点云异常检测数据集,由PMAX - S130高分辨率双目三维扫描仪采集。它包含1254个样本,分属12个类别,并将Reg - AD作为基线。

5.2 Evaluation metrics 评估指标

  图像级异常检测使用图像级接受者操作特征曲线下面积(I - AUROC )来衡量,数值越高表明检测能力越强P-AUROC(Pixel Level AUROC)像素级异常通过相同的曲线评估分割精度。此外,附录中还提供每区域重叠(AUPRO )指标以及测试时间结果作为补充指标。

I - AUROC 衡量的是模型对整幅图像是否存在异常的判别能力,聚焦图像级别。
P - AUROC 关注的是模型在像素层面识别异常的本领。

5.3 Implementation details 实施细节

  文章实验中使用的骨干架构直接取自Point - MAE [28]。文章没有直接在自己的数据集上进行训练,而是首先使用点云数量为8192的ShapeNet - 55 [11] 来训练骨干网络。对于几何感知采样模块,文章将阈值 τ \tau τ 设置为0.3 ,显著区域的采样点数是非显著区域的两倍。
  当在Anomaly - ShapeNet和Real3D - AD数据集上对模型进行微调时,文章将点云转换为 256 × 64 256×64 256×64的点块结构。这里,256表示采样的中心点数量,64表示通过K近邻(KNN)算法选择的邻域点数量。
  在训练和测试过程中,文章将掩码率设置为0.4 ,测试的迭代次数设置为3。对于异常评分,文章利用骨干解码器的第一、第二和第三中间层进行比较

5.4 Anomaly detection on Anomaly-ShapeNet and Real3D-AD Datasets :在Anomaly - ShapeNet和Real3D - AD数据集上的异常检测

  Anomaly - ShapeNet和Real3D - AD数据集上的异常检测结果分别见表2表3。与其他方法相比,文章的IMR - Net在平均图像级AUROC(I - AUROC)指标上表现更优,在Real3D - AD数据集上达到了72.5% ,在Anomaly - ShapeNet数据集上达到了66.1% 。在表3中,文章的IMR - Net在40个类别中有19个类别取得了最高成绩。文章在图4中可视化了Anomaly - ShapeNet数据集中一些具有代表性的样本,用于展示异常检测和定位的情况
在这里插入图片描述
在这里插入图片描述

5.5 Ablation study 消融实验

5.5.1 Effectiveness of geometry aware sampling 几何感知采样的有效性

  最远点采样(FPS)随机采样(RS)在三维点云处理中应用广泛。然而,当采样率过低时,最远点采样和随机采样可能导致采集到的缺陷过于轻微而难以检测。因此,文章采用几何感知采样。为证明几何感知采样(GPS)算法在异常检测中的优越性,文章将其与随机采样、最远点采样和体素下采样方法一同进行消融实验。如表4所示,使用文章的GPS算法时,取得了更高的图像级AUC(0.66)和像素级AUC(0.65)。
在这里插入图片描述

5.5.2 Analysis of masking ratio 掩码率分析

  图5展示了掩码率的影响。最佳掩码率为0.4,该比率对重建和特征表示均有益。当掩码率降低时,异常区域可能无法在迭代过程中被完全覆盖反之,当掩码率升高时,有限的数据可能会阻碍模型收敛。图5b分析了异常区域大小与掩码率的关系,文章发现异常区域较大的点云需要更高的掩码率
在这里插入图片描述

5.5.3 Feature Discrimination ability特征区分能力

  先前的方法,如M3DM [39]和RegAD [21],主要使用在其他数据集上预训练的模型来提取特征,这导致与实际异常检测数据集相比,提取的特征存在领域偏差。相比之下,文章的IMR - Net作为自监督网络,能有效地从Real3D - AD和Anomaly - ShapeNet这两个实际使用的数据集中提取异常点云和正常点云的特征。这一点在图6中得到了直接证明。文章提取的特征具有更紧凑的特征空间,这一特性使得这些特征更适合构建存储库和计算特征距离。
在这里插入图片描述

6. Conclusion 结论

  在本研究中,文章提出了Anomaly - ShapeNet,这是一个用于异常检测的合成三维点云数据集,其中包含逼真且具有挑战性的样本。Anomaly - ShapeNet中多样的点云具有高精度和合理数量,使其更适用于各种三维算法。此外,文章首次引入了IMRNet,这是一个基于三维点云掩码重建的自监督模型,在Anomaly - ShapeNet和Real3D - AD数据集上均取得了领先的性能。

### HP Localization Support Documentation or Resources To address the query regarding **HP localization support**, it is essential to understand how localization works within software environments and its associated resources. The process involves adapting products for specific locales while ensuring linguistic accuracy and appropriate resource management. In terms of providing resources, one may refer to arbitrary XML files that can be accessed during runtime using `Resources.getXML()` methods[^1]. This includes various configurations like searchable options stored under an XML format which might also apply when dealing with localized versions of applications from vendors such as HP. For compiled codes specifically tailored towards Windows systems utilizing Java technologies (as seen through references pointing toward J2SE sources), these could potentially include properties related to AWT components adapted according to regional preferences defined via property files located inside directories structured similarly across different platforms including those provided by hardware manufacturers like Hewlett Packard Enterprise[^2]. When considering introducing new languages into existing frameworks—whether they pertain directly to printer drivers offered by companies similar to HP—it's crucial first develop globally compatible programs before moving onto actual translations performed later on down this pipeline where testers verify both terminological correctness alongside other attribute checks pertinent only after full globalization has been achieved successfully prior thereto][^[^34]. While direct links aren't available based solely off given citations above without further context about exact product lines being referenced against known databases maintained internally per organization standards; general guidelines suggest looking up official developer portals hosted either publicly online accessible freely OR restricted access areas designated exclusively members belonging respective communities interested primarily technical aspects surrounding said topic matter most relevantly applicable hereunder discussion today! ```java // Example Code Snippet Showing How To Load Locale-Specific Properties In Java Applications. Properties prop = new Properties(); try { InputStream input = null; try { input = getClass().getClassLoader().getResourceAsStream("localization.properties"); if(input == null){ System.out.println("Sorry, unable to find localization.properties"); } prop.load(input); String titleKey = "application.title"; String messageKey = "greetings.message"; ResourceBundle bundle = ResourceBundle.getBundle("messages", Locale.getDefault()); System.out.println(bundle.getString(titleKey)); System.out.println(prop.getProperty(messageKey)); } finally{ if( input !=null ) {input.close();} } } catch(IOException ex){ ex.printStackTrace(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值