BACK TO THE FEATURE: CLASSICAL 3D FEATURES ARE (ALMOST) ALL YOU NEED FOR 3D ANOMALY DETECTION 论文精读

题目:BACK TO THE FEATURE: CLASSICAL 3D FEATURES ARE (ALMOST) ALL YOU NEED FOR 3D ANOMALY DETECTION

论文地址:IEEE 2023 2203

ABSTRACT 摘要

  尽管图像异常检测与分割取得了显著进展,但利用三维(3D)信息的方法却很少。我们利用一个近期推出的三维异常检测数据集,评估利用三维信息是否是一个被忽视的机会。首先,我们有一个惊人的发现:标准的仅基于颜色的方法,在性能上超过了所有当前专为利用三维信息而设计的方法。这看似有悖直觉,因为即便对该数据集进行简单检查,也会发现仅基于颜色的方法,难以处理包含几何异常的图像。这就引出了一个问题:异常检测方法如何才能有效利用三维信息?我们研究了一系列形状表示方法,包括手工设计的和基于深度学习的,发现旋转不变性对性能起着主导作用。我们发现了一种简单的仅基于三维的方法,在不使用深度学习、外部预训练数据集或颜色信息的情况下,胜过所有近期的方法。由于仅基于三维的方法无法检测颜色和纹理异常,我们将其与基于颜色的特征相结合,显著超越了之前的最优水平。我们的方法名为BTF(回归特征),在MVTec 3D - AD数据集上,逐像素ROCAUC达到99.3% ,PRO(平均相对重叠)达到96.4% 。

1 Introduction 引言

1.1 MVTec 3D - AD数据集的发布,推动三维遗产检测和分割

  尽管三维理解是计算机视觉的基础内容,但由于缺乏合适的数据集,图像异常检测与分割(AD&S)方法通常未考虑这一方面。
  为了推动三维异常检测与分割(3D AD&S)的研究,MVTec 3D - AD数据集[6]近期被引入,同时还发布了几种用于三维异常检测与分割的基准方法。然而,即便已有三维异常检测与分割数据集,与仅基于颜色的信息相比,三维信息的作用仍不明确

1.2 四个问题针对三维信息的作用

  我们开展了细致的研究,试图回答以下几个问题:

  1. 当前的三维异常检测与分割方法在三维数据上是否真能显著优于最先进的二维方法
  2. 三维信息对三维异常检测与分割是否有潜在用处
  3. 成功的三维异常检测与分割表示的关键特性是什么?
  4. 同时使用三维形状和颜色模态是否有互补优势
1.2.1 目前的三维方法在三维数据上是否能优于二维方法

  由于以往仅有极少数图像异常检测与分割方法利用过三维信息,我们在MVTec - 3D数据集上对基准方法进行了初步研究。或许令人惊讶的是,仅基于颜色的方法(如PatchCore[34])大幅优于所有当前的三维方法

1.2.2 三维信息对异常检测和分割是否有潜在用处

  接下来,我们探究三维信息对三维异常检测与分割是否有潜在用处。在进行三维渲染时,我们发现仅使用颜色信息会遗漏多种类型的异常(见图1最左侧两列,第一行)。在第二行,我们呈现了同一物体的另一视角,利用三维点云渲染,此时异常很容易被检测到[1]。
在这里插入图片描述

1.2.3 通过比较手工涉及和深度表示,确认有效的三维表示

  既然已经表明三维信息对于三维异常检测与分割往往是必需的,我们的目标就是确定用于该任务的有效三维表示。我们研究了广泛的手工设计表示和深度表示,发现旋转不变性是三维异常检测与分割的关键。我们令人惊讶的研究结果是:一种经典的手工设计三维点云描述符的性能优于所有其他当前方法,包括基于学习的表示。

1.2.4 颜色信息有帮助,BTF:三维+颜色

  尽管有上述研究结果,但显然颜色信息也有帮助。例如,我们展示MVTec 3D - AD数据集中的一些示例,其中颜色模态下的异常比形状模态下清晰得多(图1最右侧两个示例)。这促使我们提出最终方法BTF(回归特征),它结合了三维和颜色信息,在MVTec 3D - AD数据集上以极大优势取得了有记录以来的最佳结果(99.3%的逐像素ROCAUC、96.4%的PRO以及87.3%的图像ROCAUC)。

1.3 本文的主要贡献

  我们在本文中的主要贡献如下:

  • 对结合颜色和三维信息的图像异常检测与分割这一重要且尚未充分探索的领域开展全面分析
  • 发现当前的二维表示在三维数据上显著优于三维表示
  • 确定旋转不变表示是三维异常检测与分割的关键。
  • 提出BTF方法,该方法结合手工设计的三维表示(FPFH)与基于颜色的深度方法(PatchCore),大幅优于当前最先进的方法。

在这里插入图片描述

2 Related Work 相关工作

2.1 Anomaly detection and segmentation 异常检测与分割

  异常检测方法的研究已有数十年历史,大多数方法基于密度估计分布外泛化的思路。

2.1.1 经典方法

  经典方法包括:k近邻(kNN)[15]、核密度估计(KDE)[25]、高斯混合模型(GMM)[19]、主成分分析(PCA)[24]、一类支持向量机(OCSVM)[40]以及孤立森林[27] 。

2.1.2 深度学习扩展经典方法

  随着深度学习的发展,这些方法借助深度表示得以扩展,比如:DAGMM[48]扩展了PCA,DeepSVDD[35]扩展了OCSVM 。

2.1.3 自监督学习

  新的研究方向则将自监督学习应用于异常检测,包括Golan和El - Yaniv[20] 、Hendrycks等人[23](扩展了RotNet[18] )以及CSI[42](扩展了对比学习方法[21,22,10] ) 。

2.1.4 假设存在预训练表示 记忆库

  我们遵循另一类研究思路,即假设存在预训练表示,并将其与kNN评分函数相结合。这类工作包括Pereira和Patel[29]以及PANDA[32] 。这些方法已被扩展用于异常分割,相关工作有SPADE[11]、PADIM[13]和PatchCore[34] 。

2.1.5 更先进的密度估计模型替代KNN

  非常近期的研究在提取的自编码器表示上使用了更先进的密度估计模型,FastFlow[44]就是一个例子。

2.1.6 其它方法:师生网络 或 合成异常的自监督

  异常分割的其他方法还包括Student - Teacher自监督方法[5] ,以及合成异常的自监督方法,如CutPaste[26]和NSA[39] 。

2.2 Anomaly detection and segmentation with 3D information 结合三维信息的异常检测与分割

  与二维异常检测方法的大量研究工作相比,三维异常检测尚未得到广泛研究。在医学影像研究中,已有工作尝试将异常检测方法适配于体素数据
  ①Simarro等人[41]将f - Anogan[38,37]扩展到三维
  ②Bengs等人[3]提出了一种针对医学体素数据的三维自动编码器方法。体素数据与点云三维数据有很大不同。
  ③Bergmann等人[6]意识到三维点云数据中缺少用于异常分割的数据集,于是引入了MVTec 3D - AD[6] 。
  ④我们期望这对三维异常检测与分割的发展能起到关键推动作用。与我们的工作同期,Bergmann和Sattlegger[7]引入了一种基于三维点云的方法,名为3D - ST₁₂₈,用于异常检测,我们在研究中纳入了这项工作 。

3 Problem Definition 问题定义

3.1 Setting 设定

训练集均正常,测试集有异常
  我们假设存在一组输入训练样本 x 1 , x 2 … x N x_1, x_2 \dots x_N x1,x2xN,且这些样本均为正常样本。在测试阶段,会给定一个测试样本 y y y
异常检测的目标
  异常检测的目标是学习一个样本级评分函数 σ a \sigma_a σa,使得对于异常样本有 σ a ( y ) > 0 \sigma_a(y)>0 σa(y)>0,对于正常样本有 σ a ( y ) ≤ 0 \sigma_a(y) \leq 0 σa(y)0
异常分割的目标
  异常分割的目标是学习一个像素级评分函数 σ s \sigma_s σs,使得若样本 y y y的像素 i i i是异常的,则 σ s ( y , i ) > 0 \sigma_s(y, i)>0 σs(y,i)>0;若为正常像素,则 σ s ( y , i ) ≤ 0 \sigma_s(y, i) \leq 0 σs(y,i)0
现有方法:提取局部表示+估计正常区域局部表示的概率密度
  当前许多最先进的方法(如 SPADE [11]、PatchCore [34] )遵循以下步骤:
   i)提取局部区域的表示
   ii)估计正常局部区域的概率密度
  例如,PatchCore 和 SPADE 通过计算到正常训练数据集的最近邻距离来进行密度估计。

3.1.1 Representation 表示

  我们首先为每个可能包含一个或多个像素的局部区域计算一种表示。图像 x x x的区域 j j j的表示记为 ϕ ( x , j ) \phi(x, j) ϕ(x,j)
学习得到的表示&手工设计的表示
  在本文中,我们聚焦于表示层面,具体而言,我们的目标是为三维异常检测与分割(3D AD&S )找到经学习得到的或手工设计的表示

3.1.2 Anomaly scoring 异常评分

  给定每个训练图像 x x x的每个局部区域 j j j的表示,我们可以训练一个模型 σ s ( y , j ) \sigma_s(y, j) σs(y,j)用于计算新表示 ϕ ( y , j ′ ) \phi(y, j') ϕ(y,j)的似然性
有参:为表示的密度训练参数化模型
  尽管一些方法会为表示的密度训练参数模型,但这些参数方法要简单得多,且无需训练。
无参:直接计算到训练表示集合的k近邻距离
  具体来说,我们使用表示 ϕ ( y , j ′ ) \phi(y, j') ϕ(y,j)到所有训练表示集合 S = { ϕ ( x , j )   ∀ x   ∀ j } S = \{\phi(x, j)\ \forall x\ \forall j\} S={ϕ(x,j) x j} k k k近邻距离。尽管这些方法很简单,但却非常准确,无需训练,并且可显著加速。
在这里插入图片描述

3.2 3D Representations 三维表示

包含三维信息的表示
  尽管RGB图像是默认的模态,但它们缺乏明确的三维信息。其他表示包含直接的三维信息,例如深度图有组织点云无组织点云以及体素

3.2.1 有组织点云

  ①有组织点云和无组织点云都表示三维空间中点的XYZ位置。然而,有组织点云保留了空间关系,因此可被当作图像处理,从而能够使用基于RGB的方法(如卷积神经网络(CNN) )。

有序点云一般是由深度图还原的点云,有序点云按照图方阵,一行一行的,从左上角到右下角排列,也会出现一些无效点。
Iamge[X,Y]=Z

3.2.2 无组织点云

  ②相比之下,无组织点云不保留空间关系 ,因此需要特定的方法和模型。

无序点云的话就是其中点的集合,点排列之间没有任何顺序,点的顺序交换后也没有任何影响,是比较普遍的点云形式。
{(x1,y1,y1),(x2,y2,y2), …}

3.2.3 体素

  ③最后,体素由点云派生而来,可被视为像素的三维扩展。

3.2.4 下文:使用“像素”一词代指

  为简洁起见,我们在整篇论文中使用“像素”一词,不过根据上下文,它可能指上述任何一种表示。

3.3 Benchmark 基准测试

3.3.1 MVTec 3D数据集:RGB+D

  我们的研究使用了近期发布的MVTec 3D异常检测数据集[6] 。该数据集包含对10个类别、工业制造产品的4000多个高分辨率3D扫描
  每个样本由一个有组织点云对应的RGB图像表示,点云中的像素与RGB图像中的像素存在一一映射关系。
  数据集中有5个类别呈现自然变化(百吉饼、胡萝卜、饼干、桃子和土豆 )。“电缆接头”(cable gland )和“销子”(dowel )类别属于刚体 ,而“泡沫”(foam )、“绳索”(rope )和“轮胎”(tire )类别是 “人造的”但可变形

3.3.2 基准方法

  Bergmann等人[6]为该数据集引入了三种基准方法:基于生成对抗网络(GAN)的方法、基于自动编码器(AE)的方法,以及变异模型(VM)—— 一种基于逐像素均值和标准差的简单基准方法

  GAN由生成器和判别器组成。在异常检测场景里,生成器学习正常数据的分布模式,试图生成与正常数据相似的样本;判别器则负责判断输入样本是真实的正常数据,还是由生成器生成的 “假” 数据。
  自动编码器由编码器和解码器两部分构成。编码器将输入数据压缩成低维的特征表示(编码),解码器再把这个低维特征表示还原回原始数据的近似(解码)。它基于正常数据进行训练,学习正常数据的关键特征。
  VM是一种基于逐像素均值和标准差的简单基准方法。它通过计算正常数据中每个像素的均值和标准差,来建立正常数据的统计模型,刻画正常情况下像素值的分布范围。

  这些模型要么在深度图像上运行,要么在体素空间中运行,还有一些变体可在3D + RGB信息上运行。

3.4 Evaluation Metrics 评估指标

  我们使用多种评估指标。

3.4.1 图像级异常检测:I-ROC

  图像级异常检测通过图像级 ROCAUC(记为 I - R O C I\text{-}ROC I-ROC)进行衡量 。

3.4.2 像素级异常分割

  异常分割使用两个像素级指标

3.4.2.1 逐像素 ROCAUC:P-ROC

  这是标准 ROCAUC 在像素级的扩展,简单地将数据集中的每个像素视为一个样本计算数据集中所有像素的 ROCAUC(记为 P - R O C P\text{-}ROC P-ROC)。

3.4.2.2 PRO 指标:P-PR

  定义为二值预测 P P P与每个真实标注连通组件 C k C_k Ck的平均相对重叠,其中 K K K表示真实标注组件的数量。
  最终指标是通过在一定假阳性率范围内对该曲线进行积分并归一化计算得到的,计算公式为:
PRO = 1 K ∑ k = 1 K ∣ P ∩ C k ∣ ∣ C k ∣ \text{PRO} = \frac{1}{K} \sum_{k = 1}^{K} \frac{|P \cap C_k|}{|C_k|} PRO=K1k=1KCkPCk
  按照常规做法,除非另有说明,我们使用 0.3的积分限制 。
在这里插入图片描述

4 An Empirical Investigation of 3D AD&S 三维异常检测与分割(3D AD&S)的实证研究

4.1 Do current 3D methods beat 2D methods? 当前的三维方法是否优于二维方法?

  我们的研究从评估当前三维异常检测与分割方法应用于三维数据是否真的优于最先进(SoTA)的二维方法开始
  为了代表三维方法,我们测试了两种方法:

4.1.1 Voxel GAN 体素生成对抗网络 [6]

  一种作为三维异常检测与分割基准提出的生成式方法。它有多种变体,我们选用性能最佳的,即“体素(Voxel)”和“体素 + RGB(Voxel + RGB)” 。

4.1.2 3D - ST [8] 点云学生-教师模型:

  一种同期方法,使用点云学生 - 教师模型来学习三维表示
  我们用PatchCore [34] 代表基于颜色的图像异常检测与分割方法。

4.1.2.1 PatchCore使用在ImageNet [14] 数据集上预训练的特征:RGB

  重要的是,PatchCore使用在==ImageNet ==[14] 数据集上预训练的特征,该数据集已被证明对图像异常检测与分割非常有效。

4.1.2.3 3D - ST使用在ModelNet10[43]数据集上预训练的特征:PC

  相比之下,3D - ST使用ModelNet10 [43] 对其教师模型进行预训练 。我们在图4a中呈现结果。
在这里插入图片描述

4.1.2.4 PatchCore优于3D - ST !!!

  令人惊讶的是,不使用三维信息的PatchCore,性能优于之前所有方法

4.1.3 Conclusion 结论:2D>3D & 2D>3D+2D

  目前,仅使用颜色信息的最先进图像异常检测与分割方法优于使用三维或三维 + 颜色信息的三维异常检测与分割方法

4.2 Is 3D information potentially useful for AD&S? 三维信息对异常检测与分割(AD&S)是否有潜在用处?

  基于4.1节的结果,我们面临第二个问题:“三维信息对异常检测与分割是否有潜在用处?”
  下面我们介绍两种三维信息确实对异常检测与分割有用的情况。

4.2.1 Ambiguous geometry 模糊几何

  通常,仅通过观察物体的颜色信息,我们无法确定物体的基础几何形状。在这类情况下,三维信息可能揭示真实的几何形状。
仅靠颜色无法检测的异常
  我们在图1上半部分的左侧呈现了几个这样的例子,仅依靠颜色信息无法检测到每个物体中的异常。
利用颜色呈现物体的另一个视角,使得异常可见
  在下半部分,利用三维信息,我们呈现了同一物体的另一个视角,此时异常很容易被检测到
以饼干为例,颜色无法推断凹痕,但是利用三维从不同视角查看,可以推断凹痕
  以饼干为例,仅看彩色图像时,孔洞与其他巧克力碎片混在一起,很难从视觉上识别出该图像存在异常。利用三维信息,我们从不同角度可视化饼干,就能轻松发现异常。再看土豆的图像,仅通过阴影和纹理很难推断出凹痕的几何形状。然而,利用三维信息从不同角度查看土豆时,不同的纹理就能揭示出凹痕。

4.2.2 Background variation 背景变化

利用三维信息,进行背景分割
  经过整理的数据集通常包含诸如物体居中背景干净等合成条件,但现实情况很少如此简单。许多方法会错误地将杂乱的图像背景分类为异常。尽管背景分割并非易事,但在提供三维信息的情况下会容易得多。
MVTec - 3D数据集存在背景中干扰物产生误报
  我们在MVTec - 3D数据集中发现了一些案例,背景中的干扰物会触发误报。我们在图4b中展示这样一个案例,背景布料包含类似 “波浪” 的图案,在深色背景颜色下很难检测到

4.2.3 Conclusion 结论

  即便有颜色信息,识别异常往往也需要三维信息

4.3 What are the key properties of successful 3D AD&S representations? 成功的三维异常检测与分割(3D AD&S)表示的关键特性是什么?

  我们已经表明当前方法对三维信息利用不足,且确立了三维信息对图像异常检测与分割的必要性,现在我们要回答第三个问题:“成功的三维异常检测与分割表示的关键特性是什么?” 我们将区分几类不同的情况展开分析 。

4.3.1 Learning-based representations designed for images. 为图像设计的基于学习的表示

  我们将两种最流行的基于学习的图像异常检测与分割(AD&S)范式适配到三维数

  • ImageNet预训练特征
  • 自监督方法
4.3.1.1 Depth-only ImageNet features 仅限深度图像的ImageNet特征

  受ImageNet预训练特征在彩色图像上取得的出色结果(4.1节)启发,我们将PatchCore应用于深度图像

4.3.1.2 NSA

  另一类基于学习的方法从生成视角处理异常检测与分割任务
通过生成方法来模拟异常
  CutPaste和NSA [26, 39] 是近期的研究工作,它们通过在图像不同位置粘贴图像块来模拟异常
  具体而言,NSA使用泊松融合[30] 让这些数据增强操作显得更自然。

4.3.1.3 结果:把PatchCore和NSA分别应用于深度图像都不如仅应用于RGB

  在深度图像上,ImageNet预训练特征的表现显著优于NSA(表1)。
  不过,这两种方法的表现都不如应用于彩色图像的PatchCore
在这里插入图片描述

4.3.2 Handcrafted Image Representations. 手工设计的图像表示

深度图-深度表示
  深度模式通常比颜色模式简单得多。我们假设一个简单的手工设计描述符就足够了。以下深度表示不需要外部数据或训练

4.3.2.1 Raw Depth Values 原始深度值

  在此,我们测试可能是最简单的表示,即一个图像块的原始深度值

4.3.2.2 Histogram of Oriented Gradients(HoG)方向梯度直方图

  HoG [12] 会考虑图像梯度,并使用直方图来捕捉一个图像块中梯度方向的分布
优点:
①对小的平移具有不变性
  作为一种描述符,它对小的平移具有不变性,同时对数据的空间结构进行编码,因此可能比原始值更强大。
缺点:
①不具有全局旋转不变性
  但另一方面,HoG 对全局旋转不具有不变性,而全局旋转不变性是三维表示非常需要的一种属性。
②HoG的小上下文使其对局部几何变化不敏感
  此外,此外,HoG的小上下文使其对局部几何变化不敏感。这与我们检测异常(通常表现为局部几何变化)的目标背道而驰。

4.3.2.3 Dense Scale-Invariant Feature Transform (D-SIFT) 密集尺度不变特征变换

旋转、尺度和平移不变性
  与 HoG 不同,SIFT [28] 具有旋转尺度平移不变性,因为它会旋转以将最主要的方向与基准方向对齐
  这减少了旋转模糊性,允许在旋转后的图像之间进行匹配

4.3.2.4 结果

  HoG显著提高了像素级准确率,取得了比原始特征和基于学习的特征更好的结果。尽管 HoG 并非专门为三维信息设计,但仍得到了这些出色的结果。
  最后,D-SIFT描述符能够在所有三个指标上超越之前所有基于深度的结果(包括基于学习的结果 )。

4.3.3 3D rotation-Invariant Representations 三维旋转不变表示

三维点云-三维表示
  旋转不变特征在深度图上效果非常好。我们现在要问:旋转不变的三维特征能否表现得更好?

4.3.3.1 Fast Point Feature Histograms 快速点特征直方图 [36]

  该方法首先计算区域中心点的k近邻点。然后,根据表面法向量以及到最近邻点的向量距离函数,计算一种基于直方图的表示
  由于其经时间检验的出色性能,我们选它作为代表方法。

4.3.4 Point-cloud specific learning-based representations. 基于点云特定学习的表示方法
4.3.4.1 PointNeXt [31]

  一种U - Net [33]架构,其中编码器对提取的点云特征进行分层抽象解码器则逐步对抽象后的特征进行插值

4.3.4.2 SpinNet [1]

  一种旋转不变的、基于学习的表示学习方法。通过变换体素化阶段使模型具备旋转不变性。

4.3.4.3 结果

  与上述大多数方法相比,PointNeXt存在不足SpinNet的表现优于PointNeXt(这从另一方面表明了旋转不变性的重要性),但仍未能超越所提出的旋转不变的手工制作方法
  相关结果见表格2、图6a及附录C。
在这里插入图片描述

4.3.5 Conclusion. 结论
4.3.5.1 FPFH(3D)优于RGB,RGB+D

  FPFH的表现优于所有使用颜色、深度或两者结合的方法(见表1)。结果表明,当有3D信息可用时,强大的、手工制作的、旋转不变的3D表示对于异常检测与分割(AD&S)极为有效。

4.3.5.2 异常局部且细粒度,使用点的小子集会降低性能

  此外,由于 异常通常是局部且 “细粒度” 的,仅 使用点的小子集(如许多基于深度学习的方法所要求的) 会降低性能。

4.4 Are there complimentary benefits from using both 3D and color modalities? 同时使用三维和颜色模态是否有互补优势?

  尽管最优的仅基于深度的表示优于现有的仅基于颜色的表示,但我们推测,将二者结合或许能兼顾两者的优势
  在某些情况下,仅靠几何信息不足以检测异常。两个例子是精细纹理和基于颜色的异常。
精细纹理
  图1最右侧的 “电缆接头” 有轻微刮痕。虽然这种异常纹理在彩色图像中清晰可见,但以当前三维信息的分辨率,几乎无法检测到。
颜色
  在泡沫的例子中这一点更为明显,其异常表现为颜色变化
  由于我们仅聚焦于三维信息无法解释某些异常,因此有必要结合三维和颜色信息。

4.4.1 BTF - A Combined color + 3D Approach BTF——一种颜色 + 三维的组合方法

ImageNet提取颜色表示+FPFH提取三维表示
  我们采用颜色 + 三维的组合方法。
  具体而言,使用4.1节讨论的基于ImageNet的方法提取颜色表示使用4.3节讨论的FPFH提取三维表示
  我们将这两种表示拼接,形成一种颜色 + 三维的表示,称之为BTF(回归特征)。

4.4.2 Results 结果
4.4.2.1 与之前结合三维和RGB的最优方法相比:体素生成对抗网络 + RGB

  与之前结合三维和RGB的最优方法(“体素生成对抗网络 + RGB” )相比,我们的BTF在PRO(即异常分割)指标上提升了32.5% ,在I-ROC(即异常检测)指标上提升了33.6% 。

4.4.2.2 仅使用三维信息:FPFH

  与仅使用三维信息相比,我们的BTF在PRO指标上比FPFH提升了3.6% ,在I-ROC指标上提升了12% 。此外,在P-ROC指标上,它取得了99.3%的分数,比FPFH提升了1.3%(表2、图6a )。
在这里插入图片描述

4.4.2.3 其它组合的扩展结果

  其他颜色和三维的组合以及扩展结果见附录D和附录A。

4.4.3 Conclusion 结论

  通过结合颜色和三维信息,我们的BTF表示利用了两种模态的互补属性,在MVTec 3D-AD数据集上取得了目前最优的结果。

4.5 Implementation Details 实现细节

下采样
  除非另有说明,原始点云和彩色图像会下采样到 224 × 224 224 \times 224 224×224
  对于点云,我们使用最近邻插值有组织点云(即图像下采样)进行下采样,使用双线性插值彩色图像 进行下采样。
  对于无组织点云,我们将有组织点云从 n × m × 3 n \times m \times 3 n×m×3重塑为 n ⋅ m × 3 n \cdot m \times 3 nm×3
  我们使用组织好的点云的 Z Z Z通道作为深度图。
特征表示
  我们从每个样本中提取 28 ⋅ 28 = 784 28 \cdot 28 = 784 2828=784个图像块(特征 ),特征维度根据所使用的表示而变化。当以不同分辨率提取表示时,我们使用平均池化以匹配 28 ⋅ 28 = 784 28 \cdot 28 = 784 2828=784
零填充
  对于非矩形类别(即绳索和轮胎 ),我们用零填充彩色和三维图像。
PointNeXt的预训练架构
  对于PointNeXt,我们使用在S3DIS [2] 上预训练、以分割为目标的PointNeXt-XL架构,我们报告在区域1上的结果,因为它表现最佳。更多细节见附录E。

4.5.1 Establishing a 3D-based preprocessing protocol 建立基于三维的预处理协议
4.5.1.1 RANSAC:去除背景

  预处理有时用于去除干扰伪影
为应对这类情况,我们开发了一种简单的预处理方法。我们首先对基于点云的数据应用RANSAC [17] 来去除背景平面

4.5.1.2 基于连通组件:去除离群点和远离平面的区域

去  除背景平面后,我们通过应用基于连通组件的算法丢弃离群点远离平面的区域(实现细节见附录F )。

4.5.1.3 为什么?对RGB无影响,对深度有明显帮助,对三维略微降低

  此预处理阶段对仅基于颜色的方法的结果几乎没有影响。更有趣的是,它极大地改进了基于深度的方法的结果,而对于基于三维的方法(如FPFH ),它会略微降低结果
  我们推测,这是由于深度方法和三维方法处理缺失传感器信息的方式不同¹ 。
点云缺失值在原点,不在有效点的上下文信息中
  对于点云,这些缺失值都位于原点(因为它们的值为0 ),很容易被忽略(因为它们不在其他点的空间上下文中 )。
深度图像缺失值在周围点的空间上下文中
  相反,对于深度图像,这些值处于其他点的空间上下文中,因此会被考虑在内。
  去除这些平面会创建与点云类似的情况,从而使基于深度的方法受益使用预处理后的数据时,即使是最简单的特征(如原始特征 )也能优于原始基准 [6] ,结果如图6b所示。

4.6 Limitations. 局限性

  我们提出的BTF方法存在以下几个局限性:

4.6.1 Feature fusion 特征融合

  对于所有基于深度的方法而言,“电缆接头(cable gland)” 和 “泡沫(foam)” 这两类的表现都很差(见表2、附录A和附录B )。虽然这些类别中的异常通过颜色比通过三维更容易检测(见图1 ),但我们原本期望两种模态的融合能提升性能。
  遗憾的是,对于这些类别,融合后的特征表现不如仅基于颜色的方法。未来的工作应解决这一问题。

4.6.2 Image-level accuracy 图像级准确率

  尽管BTF在所有指标上都创造了新的最优水平,但图像级检测准确率仍远非完美
  它的I-ROC(图像级接收者操作特征曲线下面积)达到了86.5% ,相较于以往方法有大幅提升,但分数仍然相对较低。由于我们在大多数实验中使用PatchCore作为基础架构,I-ROC分数由与所有训练图像块距离最远的图像块决定
  我们期望能为三维数据设计出更优的指标,这方面的研究留待未来工作开展。

  这句话要结合PatchCore方法的原理来理解,核心是在说 图像级检测(I-ROC)的计算逻辑,可以拆成3层意思:

1. PatchCore的核心思路:“找不同”
  PatchCore 是一种异常检测方法,核心逻辑是:

  • 步骤1:先在训练阶段,把所有“正常图像”切成小图像块(Patch),提取这些块的特征,形成一个“正常特征库”。
  • 步骤2:在检测阶段,对新输入的图像,同样切成小图像块,提取特征后,和“正常特征库”对比,找最不像正常块的那个(距离最远的块),用它判断整幅图像是否异常。

2. I-ROC的计算:由“最异常的块”决定
   I-ROC(图像级检测的 AUC 指标)的分数,取决于整幅图像中“最异常的那个图像块”

  • 如果一幅图像里,有一个块和正常库的距离特别远(特别不像正常块),哪怕其他块都正常,这幅图像也会被判定为“异常图像”。
  • 所以,I-ROC 的分数本质是由所有测试图像中,“最异常的那个块”的分布决定的

3. 为什么会这样?
  PatchCore 的设计逻辑是 “以块代图”:只要图像里有一个异常块(比如缺陷、病变),整幅图就该被检测为异常。这种逻辑在工业检测、医学影像里很实用(只要有一个小缺陷,产品/组织就不合格)。
  但副作用是:I-ROC 对“极端异常块”特别敏感,如果数据里有一些块本身容易“误判为异常”(比如正常数据里的特殊纹理),就会拉低I-ROC 分数,导致“图像级检测准确率仍远非完美”。

举个例子
  比如检测“手机屏幕划痕”:

  • 训练时,用大量无划痕的正常屏幕图,切成小块存特征库。
  • 测试时,输入一张正常但纹理特殊的屏幕图(比如边缘有个正常反光纹理),PatchCore 可能会把这个纹理块判断为“距离正常库很远”,导致整幅图被判定为“异常”,拉低 I-ROC 分数。

  简单说,这句话是在解释:PatchCore方法里,图像级检测的结果(I-ROC),由图像中“最不像正常块的那个块”决定,这种机制导致分数容易受极端块影响,也是当前方法的局限性之一。

5 Conclusion 结论

  我们的研究源于在MVTec 3D - AD数据集上,仅基于颜色的方法优于所有现有三维方法这一现象
  我们对三维表示进行了广泛研究,发现旋转不变的三维表示在三维异常检测中性能最佳。
  我们提出了BTF方法,它结合了三维颜色特征,创造了新的最优性能。由于我们的方法简单,期望它能成为未来工作的有力基准

6 Acknowledgements 致谢

  本工作得到了甲骨文研究计划(Oracle for Research program)提供的甲骨文云积分及相关资源的部分支持。

附录

A Detailed I-ROC Results

在这里插入图片描述

B Detailed P-ROC Results

在这里插入图片描述

C Detailed PointNext Results

  表5、表6和表7包含PointNext [31]在S3DIS [2]数据集上结果的完整细分。所有结果均基于PointNext - XL模型。PointNext 针对S3DIS中的六个区域 ,每个区域都训练了一个不同的模型 。
在S3DIS(Stanford 3D Indoor Scenes Dataset,斯坦福三维室内场景数据集 )中,“六个区域”指的是该数据集中对室内场景的一种划分方式,具体说明如下:

1.数据集背景
  S3DIS是一个用于研究三维室内场景理解的大型数据集,包含了多个室内空间(如办公室、教室、会议室等)的点云数据, 其采集自不同的建筑物,涵盖了丰富的室内环境和物体类别,可用于三维目标检测、语义分割等多种任务。
2.六个区域的划分
  为了更细致地研究和评估算法在不同室内环境下的性能,S3DIS数据集将采集到的室内场景点云数据,按照空间位置或者功能等因素,划分成了六个不同的区域。比如,可能根据房间的用途(会议室、办公室、休息室等 ),或者建筑物的楼层、方位等进行划分 。
3.对研究的意义

  • 评估模型泛化性:PointNext针对这六个区域分别训练不同模型,是因为不同区域的点云数据具有不同特点,如物体布局、密度、种类等。通过在不同区域训练模型,可以评估模型在多样化室内场景下的泛化能力,即模型是否能在不同环境中都表现良好,准确地提取特征、完成分割等任务。
  • 分析区域差异影响: 还能分析特定区域的特征对模型性能的影响,比如某个区域可能存在更多遮挡、物体摆放更杂乱,通过对比不同区域模型的训练结果,能了解模型在应对这些复杂情况时的优势和不足,从而有针对性地改进模型。
    在这里插入图片描述
    在这里插入图片描述

D Additional Method Combinations 其他方法组合

  表8、表9和表10包含了结合其他方法的深度(信息)与RGB(信息)时的结果,这些结果未在主论文中展示。
在这里插入图片描述

E Method Specific Implementation Details 方法特定的实现细节

  以下,我们将呈现所研究的每种方法的额外实现细节

E.1 RGB-only ImageNet Features 仅基于RGB的ImageNet特征

  我们使用PatchCore,将RGB图像输入到以在ImageNet [14] 上预训练的WideResNet50 [45] 为骨干网络的特征提取器中。为了实现局部化分割,我们从第2块和第3块的聚合输出中提取图像块级特征,得到特征维度为1536 。

E.2 Depth-only ImageNet Features 仅基于深度的ImageNet特征

  与仅基于RGB的情况类似,我们使用PatchCore,且深度图依据ImageNet统计数据进行归一化

  这里的“归一化”,在深度图依据 ImageNet 统计数据进行归一化的语境里,核心是让深度数据的分布,尽可能贴近 ImageNet数据集的特征分布规律,方便模型复用预训练能力。可以拆成 3 层理解:
1. 归一化的通用目的:
  “统一数据分布” 不管什么数据(图像、深度图、点云…),归一化的核心都是 “让数据的分布更规整、更统一”,解决 2 个问题:

  • 不同样本差异大:比如深度图里,有的场景整体偏亮(深度值大)、有的偏暗(深度值小),模型难学规律。
  • 模型对数据敏感:很多模型(尤其是预训练模型,比如 ImageNet 上训好的)对输入数据的分布有“习惯”,如果输入分布差异大,模型效果会崩。

2. 结合 ImageNet 的特殊目的:
  “对齐预训练分布” ImageNet 是计算机视觉领域最经典的图像数据集,上面训了大量预训练模型(比如 PatchCore 用的 WideResNet50 )。这些模型 “习惯”了 ImageNet 数据的分布(比如像素值范围、均值、方差等)
  当 深度图 替代 RGB 图 时,深度数据的原始分布(比如深度值范围可能是 0 - 10 米,而 RGB 是 0 - 255 )和 ImageNet 差异很大。如果直接喂给模型,模型可能“不适应”,效果变差。
  所以,“深度图依据 ImageNet 统计数据归一化” 的操作,就是让深度数据的分布,尽量贴近 ImageNet 的 RGB数据分布。比如:

  • 调整深度值的范围,让它接近 RGB 的 0 - 255。
  • 计算深度图的均值、方差,让它和 ImageNet 的均值、方差对齐。

3. 具体咋做的?(常见操作)
  虽然原文没说具体方法,但通常有 2 种思路:

  • 线性变换:比如把深度值的最小值、最大值,映射到 0 - 255(和 RGB 范围对齐)。公式大概长这样: 归一化深度值 = 原始深度值 − min深度 max深度 − min深度 × 255 \text{归一化深度值} = \frac{\text{原始深度值} - \text{min深度}}{\text{max深度} - \text{min深度}} \times 255 归一化深度值=max深度min深度原始深度值min深度×255
  • 统计量对齐:计算 ImageNet RGB 数据的均值(mean)和标准差(std),然后让深度图的均值、标准差,通过缩放、平移逼近这些值。公式大概: 归一化深度值 = 原始深度值 − 深度均值 深度标准差 × RGB标准差 + RGB均值 \text{归一化深度值} = \frac{\text{原始深度值} - \text{深度均值}}{\text{深度标准差}} \times \text{RGB标准差} + \text{RGB均值} 归一化深度值=深度标准差原始深度值深度均值×RGB标准差+RGB均值

  简单说,“归一化” 就是 让深度图的数据分布,尽可能贴近 ImageNet 的 RGB分布,方便复用预训练模型的能力,让模型在深度图上也能稳定工作。

E.3 Raw Depth Values 原始深度值

  我们将深度图像划分为 8 × 8 8 \times 8 8×8像素的图像块,得到 28 × 28 28 \times 28 28×28个图像块。描述符由每个图像块的 8 × 8 8 \times 8 8×8像素组成,展平为长度为64的一维列表

E.4 NSA

  我们未能找到CutPaste [26] 的官方实现,且公开的非官方实现与报告结果相比,性能相差高达10% 。因此,我们将我们的方法与NSA [39] 进行比较,NSA是CutPaste的后续方法,它使用泊松融合 [30] 来实现更逼真的增强
  为了在新数据集上测试NSA,我们修改了其官方实现以处理深度图像。当前实现要求图像表示为整数,因此,深度图像被离散化为 [0, 255] 范围
  此外,NSA使用大量与类别相关的超参数。我们通过将MVTec 3D-AD的类别与原始类别进行视觉对比,为其分配超参数,并为最相似的类别赋予对应值。
  我们使用深度图像进行这些实验。NSA的性能有可能通过针对每个类别特定的增强来提升,不过,这需要预先了解异常情况

E.5 HoG

  我们以深度图像作为输入。为了与特征图分辨率对齐,我们每个单元格使用8个像素,每个块使用1个单元格。我们使用8个区间(bins),得到32维的表示。

E.6 D-SIFT

  我们以深度图像作为输入。我们对所有像素应用密集SIFT(Dense SIFT ),为了降低分辨率,我们应用平均池化。遵循标准SIFT实践,我们使用128维的特征

E.7 FPFH

  为了加快FPFH的计算速度,我们在运行算法之前对点云进行下采样。下采样在有组织点云上进行(即图像下采样 );然后将其展平为无组织点云
  使用开源库Open3D [47] 中的实现,我们为每个点提取描述符。然后,我们将这些描述符重新塑形为有组织点云,并通过对它们进行平均池化来降低其分辨率
  FPFH运行时需要法向量,我们使用Open3D估计法向量。FPFH算法的半径设为0.25, m a x _ n n max\_nn max_nn参数设为100。得到的特征维度为33 。

E.8 PointNext

  我们使用PointNeXt-XL变体来提取特征。为了克服使用非常少点数(1024或2048 )的限制,我们使用在S3DIS [2] 上预训练的模型。也就是说,该模型使用RGB+XYZ数据针对分割任务进行了预训练。使用这些变体允许我们向模型输入更多的点。具体而言,样本下采样到 224 × 224 224 \times 224 224×224,然后将其重新塑形为无组织点云(包含对应的RGB值 )。对于每个点,返回64维的特征。然后将其重新塑形为有组织的特征点云。与其他方法一样,我们将特征池化为 28 × 28 28 \times 28 28×28个图像块,每个图像块为 8 × 8 8 \times 8 8×8像素。我们使用官方GitHub仓库中的代码。

E.9 SpinNet

  我们使用在3DMatch [46] 上预训练的模型。在将点输入网络之前,我们将其下采样到 224 × 224 224 \times 224 224×224。然后,我们将每个样本划分为 28 × 28 28 \times 28 28×28个图像块,每个图像块为 8 × 8 8 \times 8 8×8像素。这些图像块随后被输入到模型中,模型输出32维的特征。我们使用官方GitHub仓库中的代码。

F Preprocessing Implementation Details 预处理实现细节

F.1 Plane Removal 平面移除

  根据设计,数据集中的物体在图像中居中。因此,我们做一个简化假设:图像的所有边缘都位于同一平面上。为此,我们从有组织点云中提取图像边界周围10像素宽的条带。在移除所有空值(即噪声)后,我们使用RANSAC [17] 来近似最能描述该边界的平面。计算点云中每个点到该平面的距离,距离在0.005以内的点会被移除。
  在实际操作中,我们不是移除这些点,而是将这些点的XYZ坐标和RGB值置零
  这样可确保保留原始分辨率。我们使用Open3D [47] 的 “Segment Plane” 实现来执行RANSAC步骤,设置ransac_n = 50num_iterations = 1000 ;对于实际的平面移除,我们使用返回的平面方程并手动将对应值置零

F.2 Clustering Based Outlier Removal 基于聚类的离群点移除

  尽管平面移除步骤能够识别并移除大部分平面,但在某些情况下,这些平面并非严格的平面(见图7 )这些区域中的点可能因此被标记为异常
  通过将DB-Scan [16] 作为连通组件方法运行,每个聚类被视为一个连通组件。我们保留最大的组件,并移除其他组件中的所有点(和之前一样,将这些点的XYZ坐标和RGB值置零 )。
  我们使用Open3D [47] 的DB-Scan实现,设置ε = 0.006min_points = 30
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值