DAS3D: Dual-modality Anomaly Synthesis for 3D Anomaly Detection 论文精读

题目:DAS3D: Dual-modality Anomaly Synthesis for 3D Anomaly Detection

题目:DAS3D:用于三维异常检测的双模态异常合成

论文地址:ECCVW 2024 2410

Dual-modality 双模态

Anomaly Synthesis 异常合成

for 3D Anomaly Detection 用于三维异常检测

Abstract 摘要

合成异常样本已被证明是自监督2D工业异常检测的有效策略。然而,这种方法在多模态异常检测中鲜有探索,特别是涉及3D和RGB图像的情况。在本文中,我们提出一种用于3D异常合成的新颖双模态增强方法,该方法简单且能够模拟3D缺陷的特征。结合我们的异常合成方法,我们引入一个基于重构的判别性异常检测网络,其中采用双模态判别器来融合两种模态的原始嵌入和重构嵌入,以进行异常检测。此外,我们设计了一种增强丢弃机制,以提升判别器的泛化能力。大量实验表明,我们的方法在检测精度上优于当前最先进的方法,并且在MVTec 3D - AD和Eyescandies数据集上均实现了具有竞争力的分割性能。代码可https://github.com/SunnierLee/DAS3D获取 。

1 Introduction 引言

工业异常检测专注于识别产品的异常区域,在工业制造系统中对检验产品质量起着关键作用。

1.1 异常数据收集困难

由于收集异常数据存在难度,大量研究工作投入到设计无监督异常检测方法中。

1.1.1 无监督的学习

这些方法大多依赖于通过重构网络学习正常分布模型[23,24,35],或者基于从预训练网络中提取的嵌入相似性来估计正常分布[12,17,36,44]。近年来,知识蒸馏范式[3,13,16]被提出,通过灵活调整学生分布以适应正常样本下的教师分布来解决异常检测问题。这些方法的一个常见局限在于,它们仅从无异常数据中学习模型,且并非专门针对有判别性的异常检测进行优化。

1.1.2 合成异常:从无监督任务转换为有监督学习问题

为解决这一问题,已有一些尝试[25,40]对原始无异常样本进行增强,将无监督异常检测任务转化为有监督学习问题。借助合成异常样本,一些研究[46,48]利用重构网络和基于有监督的判别网络,在异常检测任务中取得了更优性能,尤其是在精准定位方面。

1.2 高效的3D异常合成方法

虽然基于合成的异常检测已针对2D图像数据进行了全面研究,但其在3D异常检测中的潜力尚未得到充分探索。这主要归因于缺乏高效的3D异常合成方法。除了RGB纹理格式,点云和深度是两种常用于3D异常检测的格式。

1.2.1 现有的异常合成

直接对3D点云格式的数据进行增强以合成3D异常,是一项复杂且成本高昂的任务。例如,在3D异常检测数据集Eyescandies[7]中,异常是通过网格编辑手动合成的。

相比之下,EasyNet[8]通过采用2D图像的合成方法对深度进行增强来创建3D异常,但这种方法忽视了深度数据的物理意义,导致结果不尽如人意。

1.2.2 本文的双模态异常合成方法

为解决这一问题,我们引入一种用于3D异常检测的简单且高效的双模态异常合成方法(DAS3D),该方法同时利用深度和RGB格式。此方法不仅考虑了3D表面的空间特征,还同时增强双模态数据,以创建异常位置对齐良好的异常对。

深度驱动的异常合成过程如图1所示。我们通过对深度数据进行数学操作来合成异常,从而经济地创建各种形状和尺度的异常用于训练。

1.3 判别性异常检测网络

借助所提出的用于异常合成的双模态增强方法,我们引入一个判别性异常检测网络,该网络在合成双模态数据上进行端到端训练。

具体而言,给定一对正常的RGB和深度图像,我们的双模态异常生成器会创建模拟自然3D缺陷的异常样本。

重构子网络分别从对应的合成异常图像中重构正常的RGB和深度图像。

同时,双模态判别器经过训练,学习联合的双模态重构 - 异常嵌入,并从拼接的原始特征和重构特征中生成准确的异常分割图。

1.4 增强丢弃机制

需要注意的是,3D异常检测中一个普遍的挑战是有效融合来自两种模态的信息以提升检测结果。

ShapeGuided[9]仅对来自两种模态的异常图进行加权以整合结果。M3DM[42]训练两个特征变换网络,将可用的双模态特征转换为更相似的形式以进行特征融合。然而,双模态结果的性能有时不如对应的单模态结果,这表明这些双模态融合可能并未对最终检测过程起到积极作用。为了充分利用来自每个模态的信息并有效利用其提升异常检测性能,我们设计了一种增强丢弃机制,有时聚焦于单一模态,确保两种模态更有效的整合。

1.5 本文的贡献

得益于3D异常合成和增强丢弃机制的设计,我们的方法在MVTec 3D - AD和Eyescandies数据集上,在图像级AUROC方面达到了最先进的性能,并且在定位精度方面也取得了有竞争力的表现,生成的异常图边界更清晰、噪声更少。我们将这项工作的贡献总结如下:

  1. 我们提出一种多模态缺陷合成方法,能够经济地为基于3D合成的异常检测生成多种3D异常。我们的合成方法直接且有效,可与基于重构和基于蒸馏的方法集成,以进一步深入研究3D异常检测。
  2. 我们开发了一种增强丢弃机制,以提升双模态判别器的泛化能力。通过在端到端训练过程中随机引入单模态增强实例,我们进一步丰富了训练数据的分布,进而提升异常检测性能。
  3. 与现有基于嵌入的方法相比,我们基于合成的异常检测网络更轻量化,在MVTec 3D - AD数据集上取得了0.982的图像级AUROC新纪录,在Eyescandies数据集上取得了0.915的成绩,达到了最先进水平。

异常检测指的是分析正常数据中的模式和特征,以识别与正常数据不同的异常数据的过程。现有异常检测方法可根据其学习正常数据模式和识别偏差的方式,分为基于合成的方法、基于嵌入的方法、基于重构的方法和基于知识蒸馏的方法 。

2.1 2D Industrial Anomaly Detection 2D工业异常检测

2.1.1 Synthesizing-based Methods 基于合成的方法

基于合成的方法在异常检测中经常被使用,这类方法通过增强原始无异常样本,将无监督异常检测任务转化为有监督学习问题。

先前的研究尝试通过引入随机噪声模式到正常样本中创建异常图像,并使用卷积自动编码器(AE)进行基于重构的异常检测。当代研究努力创建逼真的缺陷图像,而不是仅仅使用无意义的黑白补丁图像[9,25,40,46]。Li等人[25]引入了从原始图像中裁剪一个无缺陷区域,并将其以随机角度粘贴到新图像上的方法来生成异常图像。更复杂的方法利用背景融合技术来模拟缺陷,通过选择具有不同尺寸、亮度和形状的各种背景图像。例如,Schlüter等人[40]使用泊松融合,Zavrtanik等人[46]选择不同的纹理图像作为缺陷背景,Haselmann和Gruber [19]借用数据增强中的样本合成方法。

理论上,合成的缺陷越接近真实缺陷,图像重构和判别器的泛化能力就越强。

2.1.2 Reconstruction-based Methods 基于重构的方法

基于重构的方法基于这样一种假设:在正常数据上训练的模型无法准确重构异常样本[5,50]。它们通常使用生成对抗网络(GAN)[24]、自动编码器(AE)[35]或变分自动编码器(VAE)[23]从训练数据的流形中重构样本。

如果自动编码器能很好地生成异常模式,异常区域可能会像正常区域一样被重构,从而无法区分异常。为了解决这个问题,RIAD[47]将输入数据划分为不相交的集合,抑制异常泛化。SCADN [43]设计修复框架,并在掩蔽的正常数据上训练模型,以使用异常检测的上下文来恢复看不见的区域。OCRGAN[27]将图像分解为不同的频率,并使用GAN进行重构。EdgeIce[30]首先合成异常,然后从图像中提取灰度边缘信息,最终将其输入到重构网络中,取得了良好的重构效果。

2.1.3 Embedding-based Methods 基于嵌入的方法

假设在大型数据集上预训练的网络能生成可区分的训练特征,许多研究在异常检测方面展现出了良好的前景[1,18,39]。

SPADE[11]存储补丁级别的训练特征,通过测量与测试图像特征的距离来推导异常分数。PathCore通过使用贪心核心集下采样[34]减少内存使用。与使用内存库的方法不同,PaDiM[2]摒弃了缓慢的k近邻(kNN)算法,使用马氏距离度量作为异常分数。后续的方法[22,49]继续基于距离改进正常特征的有效性。

2.1.4 Distillation-based Methods 基于知识蒸馏的方法

近年来,基于知识蒸馏的方法在异常检测中得到了很好的应用,它根据在大型数据集上预训练的教师网络和仅包含正常样本的学生网络之间的特征差异来识别异常。

Bergmann等人[3]首先提出了用于异常检测的蒸馏范式,它集成了多个感受野模型。Salehi等人[38]还通过在蒸馏期间使用多级特征的差异来检测异常。GCAD[2]采用了两对教师-学生检测器来检测结构异常和逻辑异常,这进一步改进了S-T。RD4AD[13]采用了反向蒸馏框架,该框架将编码器作为教师,解码器作为学生,学生解码器接收教师编码器的信息以恢复教师特征。

2.2 3D Industrial Anomaly Detection 3D工业异常检测

随着工业检测设备的迅速发展,3D异常检测领域已成为一个相对较新的研究方向,并受到关注。

2.2.1 数据集

Bergmann等人引入了首个公开的3D工业异常检测数据集MVTec 3D - AD[4],该数据集同时包含RGB信息和同一种制造产品的点云信息。随后,Bontigoli等人引入了一个用于无监督3D异常检测的合成数据集Eyescandies [7]。Liu等人引入了Real - 3D[29],该数据集在点云分辨率和360度覆盖方面对MVTec 3D - AD进行了补充。

2.2.2 现有方法

鉴于在基于RGB的异常检测中已经提出了众多方法,近期的研究工作聚焦于探索如何将这些已确立的概念适配并应用于3D异常检测。

对于基于蒸馏的方法,Bergmann等人 [6] 引入了一种来自师生模型的点云特征提取网络。Rudolph等人 [37] 认为上述方法存在学生与教师架构不匹配的问题,并提出了非对称师生网络(AST)。

对于基于重构的方法,Li等人 [26] 使用掩码修补网络(MRN)来重构异常区域,然而,这种方法使用随机掩码,在推理阶段难以完美重构异常区域。

对于基于嵌入的方法,Wang等人提出了多3D记忆(MDM),其中构建了3D RGB记忆、3D记忆和融合记忆以检测缺陷。他们使用主要的特征提取器,如ViT和PointMAE,分别提取RGB和3D特征,并通过额外训练的特征变换网络获得融合记忆。

尽管在基于RGB的异常检测任务中,基于合成的方法取得了显著成功,但近期,Chen等人 [8] 和Zavrtanik等人 [45] 提出了新颖的异常生成方法,然而,他们的方法未考虑真实3D缺陷的属性,从而导致预测和定位精度欠佳。

2.2.3 本文的方法

在本文中,我们提出一种基于深度图像的新颖3D异常生成方法。此外,我们引入一种增强丢弃机制,以促使我们的判别器做出更精准的预测。

3 Methods 方法

①在本节中,我们首先在3.1节详细介绍DAS3D的总体概述。

②接下来,在3.2节中,我们详细阐述所提出的异常合成流程,以及针对深度图像和RGB图像的实现细节。

③最后,在3.3节中,我们介绍双模态判别器。

进入下一节之前,我们先给出问题定义。给定一组无异常的训练样本集 T = { ( I i , Z i ) } i = 1 N \mathcal{T} = \{(I_i, Z_i)\}_{i = 1}^N T={(Ii,Zi)}i=1N,其中 I i I_i Ii和 Z i Z_i Zi分别是第 i i i对RGB图像和深度图像。我们的目标是从这些样本中开发一个双模态异常检测器。在测试阶段呈现正常或异常样本时,该检测器应能够判断物体是否包含异常,若检测到异常,还需识别出异常的位置 。

3.1 Dual-modal Anomaly Detection Framework 双模态异常检测框架

如图2所示,所提出的方法由一个双模态异常生成器、两个重建子网络(分别用于RGB图像和深度图像重构的 F I F_I FI和 F Z F_Z FZ)以及一个双模态判别器 D D D组成。

①给定一对正常的RGB图像和深度图像,我们的双模态异常生成器能够生成异常样本,这些样本可有效模拟自然的3D缺陷,且能被高效处理。为增强合成样本对的多样性,我们采用一个增强丢弃模块来随机舍弃增强操作。

②利用这些合成的异常样本,重构子网络会分别进行训练,通过对正常的RGB图像和深度图像进行重构,以隐式地检测这些合成异常。

③同时,双模态判别器学习联合的双模态重构 - 异常嵌入,并从拼接后的双模态重构特征中生成准确的异常分割图 。

3.2 Dual-modal Augmentation 双模态增强

给定一对正常的RGB图像和深度图像 ( I , Z ) (I, Z) (I,Z),我们的目标是生成异常样本 ( I a , Z a ) (I_a, Z_a) (Ia,Za),尝试模拟自然的3D缺陷。与RGB异常生成不同,深度异常生成需要仔细考量3D缺陷的特性以及3D与RGB之间的一致性。

在增强深度数据时,我们主要关注三个方面:

a) 3D数据中的缺陷通常表现为凹凸表面,分别对应深度值的增加和减少。

b) 从物理角度来看,大多数异常表面呈现出连续性。

c) 异常表面的多样性会影响凹凸表面的幅度和曲率。

3.2.1 Depth Augmentation 深度增强
3.2.1.1 前景掩码

如图3所示,我们首先使用阈值 t f t_f tf从深度图像中提取前景掩码 M f M_f Mf,该阈值可通过对背景区域的深度取平均来估计。

3.2.1.2 三值掩码

按照一种基于RGB的随机掩码生成方法 [46],我们使用Perlin噪声生成器 [33] 生成噪声图像 P P P,然后使用阈值 t p t_p tp对该噪声图像进行二值化(这里实际是三值化,生成 -1、0、1 三种值 )以获得三值掩码。
M p [ i , j ] = { − 1 , P [ i , j ] < − t p 1 , P [ i , j ] > t p 0 , others (1) M_p[i,j] = \begin{cases} -1, & P[i,j] < -t_p \\ 1, & P[i,j] > t_p \\ 0, & \text{others} \end{cases} \tag{1} Mp[i,j]=⎩ ⎨ ⎧−1,1,0,P[i,j]<−tpP[i,j]>tpothers(1)

三值掩码 M p M_p Mp中的值实际上指示了后续增强过程中的凹凸表面,值为 -1 的区域用于凹面增强,显示为蓝色;值为 1 的区域用于凸面增强,显示为红色,如图3所示。

3.2.1.3 前景区域内的增强掩码

将三值异常掩码 M p M_p Mp 与前景掩码 M f M_f Mf相乘,以提取前景区域内的增强掩码,记为 M t M_t Mt。
M t = M f ⊙ M p (2) M_t = M_f \odot M_p \tag{2} Mt=Mf⊙Mp(2)

其中 ⊙ \odot ⊙表示逐元素矩阵乘法。

3.2.1.4 偏态高斯滤波器平滑掩码边缘

为了模拟实际物体缺陷(通常表现为凸面或凹面 ),我们引入偏态高斯滤波器来平滑掩码 M t M_t Mt的边缘。
A.文献[1]中二维偏态正态分布的概率密度函数

为了形式化该滤波器,我们首先给出文献 [1] 中二维偏态正态分布的概率密度函数(PDF):
f s ( x ; α , Σ ) = 2 ϕ 2 ( x ; 0 , Σ ) Φ ( α T x ) , x ∈ R 2 (3) f_s(\mathbf{x}; \alpha, \Sigma) = 2\phi_2(\mathbf{x}; 0, \Sigma)\Phi(\alpha^{\mathrm{T}}\mathbf{x}), \quad \mathbf{x} \in \mathbb{R}^2 \tag{3} fs(x;α,Σ)=2ϕ2(x;0,Σ)Φ(αTx),x∈R2(3)

其中 ϕ 2 ( x ; 0 , Σ ) \phi_2(\mathbf{x}; 0, \Sigma) ϕ2(x;0,Σ)表示均值为零、相关矩阵为 Σ \Sigma Σ的二元正态密度。这里, Φ ( α T x ) \Phi(\alpha^{\mathrm{T}}\mathbf{x}) Φ(αTx)是单变量高斯分布的累积分布函数(CDF), α \alpha α是偏态系数。

这个公式表示的是 二维偏态正态分布(2D Skew Normal Distribution)的概率密度函数(PDF)

,是构建"偏态高斯滤波器"的核心。

  • x \mathbf{x} x :输入的二维坐标(比如图像中像素的位置 (i,j) ),代表你要计算"偏态高斯分布"的点。

  • α \alpha α偏态系数,控制分布的"偏斜方向和程度"(比如让滤波器更左偏/右偏,模拟不同缺陷的边缘)。

  • Σ \Sigma Σ协方差矩阵,控制分布的"形状和方向"(比如让滤波器更"扁"或更"圆",影响边缘平滑的范围)。

  • ϕ 2 ( x ; 0 , Σ ) \phi_2(\mathbf{x}; 0, \Sigma) ϕ2(x;0,Σ) :基础的 二元正态分布(2D Normal Distribution),负责给滤波器提供一个"平滑的基底"。

    • 公式: ϕ 2 ( x ; 0 , Σ ) = 1 2 π ∣ Σ ∣ exp ⁡ ( − 1 2 x T Σ − 1 x ) \phi_2(\mathbf{x}; 0, \Sigma) = \frac{1}{2\pi\sqrt{|\Sigma|}} \exp\left(-\frac{1}{2}\mathbf{x}^{\mathrm{T}}\Sigma^{-1}\mathbf{x}\right) ϕ2(x;0,Σ)=2π∣Σ∣ 1exp(−21xTΣ−1x)
    • 作用:让滤波器的"主体"符合正态分布,保证边缘平滑的自然性。
  • Φ ( α T x ) \Phi(\alpha^{\mathrm{T}}\mathbf{x}) Φ(αTx)单变量高斯分布的累积分布函数(CDF),负责给分布"加偏态"。

    • 公式: Φ ( t ) = 1 2 π ∫ − ∞ t exp ⁡ ( − u 2 2 ) d u \Phi(t) = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^t \exp\left(-\frac{u^2}{2}\right) du Φ(t)=2π 1∫−∞texp(−2u2)du
    • 作用:通过 α \alpha α调整分布的"偏斜度",让滤波器能模拟真实缺陷的"不规则边缘"。

B.本文的偏态高斯滤波器定义

我们的偏态高斯滤波器定义为:
G s , h × h [ i , j ] = f s ( ( i − h / 2 , j − h / 2 ) ; α , Σ ) (4) G_{s, h \times h}[i,j] = f_s\left((i - h/2, j - h/2); \alpha, \Sigma\right) \tag{4} Gs,h×h[i,j]=fs((i−h/2,j−h/2);α,Σ)(4)

其中 h h h是偏态高斯滤波器的核大小,由 Σ \Sigma Σ确定 。偏态系数 α \alpha α从均匀分布 U ( − 0.5 , 0.5 ) U(-0.5, 0.5) U(−0.5,0.5)中随机采样。

得到一个h*h的矩阵

最终的偏态高斯滤波器,是一个 h × h h \times h h×h大小的矩阵

3.2.1.4 最终的缺陷

最终的缺陷 Δ Z \Delta_Z ΔZ定义为:
Δ Z = norm ( G s , h × h ) ∗ M t (5) \Delta_Z = \text{norm}(G_{s, h \times h}) * M_t \tag{5} ΔZ=norm(Gs,h×h)∗Mt(5)

先把G归一化,然后再利用归一化的h*h大小的G对 M t M_t Mt进行卷积

其中 norm ( ⋅ ) \text{norm}(\cdot) norm(⋅)和 ∗ * ∗分别表示归一化和卷积操作。

3.2.1.5 最终合成的异常深度图像

最终合成的异常深度图像 Z a Z_a Za定义为:
Z a = Z + p z Δ Z (6) Z_a = Z + p_z\Delta_Z \tag{6} Za=Z+pzΔZ(6)
将合成缺陷 Δ Z \Delta_Z ΔZ视为深度的变化,联合变化幅度 p z p_z pz,得到最终异常深度图像

其中 p z p_z pz从 ( U ( p min , p max ) (U(p_{\text{min}}, p_{\text{max}}) (U(pmin,pmax)中采样,表示缺陷幅度的范围。我们并非用合成缺陷替换原始深度,而是将合成缺陷视为深度的变化并添加到原始深度中。这种方法隐式地考虑了不同物体在不同表面上的实际几何属性,并增加了合成缺陷的多样性。
卷积导致深度变化的区域与原始区域不对齐,优化掩码

由于公式5中的卷积操作,深度变化的实际区域与公式2中的原始异常掩码 M t M_t Mt并不对齐。因此,我们将异常掩码优化为:
M ∗ [ i , j ] = { 0 , p z ∣ Δ Z [ i , j ] ∣ < t h 1 , 其他情况 (7) M^*[i,j] = \begin{cases} 0, & p_z|\Delta_Z[i,j]| < t_h \\ 1, & \text{其他情况} \end{cases} \tag{7} M∗[i,j]={0,1,pz∣ΔZ[i,j]∣<th其他情况(7)

3.2.2 Image Augmentation 图像增强

对于RGB缺陷生成,我们期望RGB图像上的缺陷与深度图像上的缺陷保持一致。因此,我们使用公式7中优化后的异常掩码 M ∗ M^* M∗来确定RGB图像的缺陷区域。

3.2.2.1 简单的异常:非缺陷掩码部分用原文+缺陷掩码部分用采样的纹理图像

为了修改正常RGB图像的对应像素区域,我们首先从一个与我们的训练集无关的预构建图像数据集中采样一个纹理图像 I u I_u Iu(见文献[10] )。我们可以生成一个简单的异常RGB图像,公式为 ( 1 − M ∗ ) ⊙ I + M ∗ ⊙ I u (1 - M^*) \odot I + M^* \odot I_u (1−M∗)⊙I+M∗⊙Iu。

3.2.2.2 平滑异常:随机混合系数,混合采样的纹理图像和原文,再用于缺陷掩码部分

然而,这种变化通常过于突兀。我们从均匀分布 U ( 0 , 0.8 ) U(0, 0.8) U(0,0.8)中生成一个随机混合系数 β \beta β,可用于平滑这种变化。最终增强后的RGB图像定义为:
I a = ( 1 − M ∗ ) ⊙ I + M ∗ ⊙ ( ( 1 − β ) I u + β I ) (8) I_a = (1 - M^*) \odot I + M^* \odot ((1 - \beta)I_u + \beta I) \tag{8} Ia=(1−M∗)⊙I+M∗⊙((1−β)Iu+βI)(8)

3.3 Dual-modal Discriminator 双模态判别器

利用合成的异常样本,我们需要训练一个异常判别器来进行异常分数预测和异常定位。

3.3.1 基本架构

我们首先引入两个重构模块 F I F_I FI和 F Z F_Z FZ,它们是类UNet网络。我们训练这两个网络,以将RGB图像和深度图像的异常区域分别重构为正常状态,同时保留其他正常区域。

3.3.1.1 深度重构:① L2损失

对于深度重构,我们采用经典的 L 2 L_2 L2损失 来最小化正常深度图像 Z Z Z与重构深度图像 F Z ( Z a ) F_Z(Z_a) FZ(Za)之间的差异,公式如下:
L r e c Z ( Z , Z a ) = ∥ Z − F Z ( Z a ) ∥ 2 2 (9) L_{recZ}(Z, Z_a) = \left\lVert Z - F_Z(Z_a) \right\rVert_2^2 \tag{9} LrecZ(Z,Za)=∥Z−FZ(Za)∥22(9)

3.3.1.2 RGB重构:② L2损失+结构相似性损失

对于RGB重构,除了 L 2 L_2 L2 损失外,我们还使用 结构相似性(SSIM) 损失来最小化感知差异。因此,我们的RGB重构损失函数定义为:
L r e c I ( I , I a ) = ∥ I − F I ( I a ) ∥ 2 2 + L SSIM ( I , F I ( I a ) ) (10) L_{recI}(I, I_a) = \left\lVert I - F_I(I_a) \right\rVert_2^2 + L_{\text{SSIM}}(I, F_I(I_a)) \tag{10} LrecI(I,Ia)=∥I−FI(Ia)∥22+LSSIM(I,FI(Ia))(10)

3.3.1.3 融合RGB和深度图像特征,用于训练判别器

借助两个重构网络,我们可以分别提取RGB图像和深度图像的特征,用于训练异常判别器。

具体来说,我们选择前两层特征和后两层特征。这些特征被上采样到相同分辨率,然后拼接成我们的融合特征,记为 f fuse f_{\text{fuse}} ffuse。

3.3.1.4 训练判别器生成预测异常图:③ 焦点损失

我们的判别器也是一个类UNet网络,经训练以预测准确的异常图。由于缺陷区域通常较小,我们使用焦点损失(Focal loss )[28] 来减小判别器预测与真实标签之间的差异,公式如下:
L d i s ( f fuse , M ∗ ) = L Focal ( D ( f fuse ) , M ∗ ) (11) L_{dis}(f_{\text{fuse}}, M^*) = L_{\text{Focal}}(D(f_{\text{fuse}}), M^*) \tag{11} Ldis(ffuse,M∗)=LFocal(D(ffuse),M∗)(11)

3.3.2 Augmentation Dropout Mechanism 增强丢弃机制

我们使用上述提到的三个损失函数来联合训练重构网络和异常判别器。

3.3.2.1 异常仅在一种模态存在的情况

我们的3D异常生成器生成成对样本,其中RGB图像和深度图像均呈现异常。然而,在现实场景中,我们经常遇到这样的情况:物体存在缺陷,但它的深度图像或RGB图像看起来正常。例如,一个土豆可能有污渍,而这些污渍在其深度图像中通常不可见。

3.3.2.2 增强丢弃机制,利用丢弃信号

为了创建更多样化的异常数据并提高双模态判别器的泛化能力,我们设计了一种增强丢弃机制,以促使异常判别器处理此类情况。具体来说,我们从伯努利分布 B ( 1 , p d ) B(1, p_d) B(1,pd)中采样两个丢弃信号 d I d_I dI 和 d Z d_Z dZ,其中 p d p_d pd是丢弃概率。

3.3.2.3 异常样本和异常掩码

因此,我们的异常样本和异常掩码可以重新定义为:
I ~ a = d I I + ( 1 − d I ) I a , Z ~ a = d Z Z + ( 1 − d Z ) Z a , M ~ ∗ = ( 1 − d I d Z ) M ∗ (12) \tilde{I}_a = d_I I + (1 - d_I) I_a, \tilde{Z}_a = d_Z Z + (1 - d_Z) Z_a, \tilde{M}^* = (1 - d_I d_Z) M^* \tag{12} I~a=dII+(1−dI)Ia,Z~a=dZZ+(1−dZ)Za,M~∗=(1−dIdZ)M∗(12)

上述等式意味着,只有当两种模态(RGB和深度)都正常时,物体才被视为正常。

3.3.3 最终的损失函数

我们的最终损失函数定义为:
L = L r e c Z ( Z , Z ~ a ) + L r e c I ( I , I ~ a ) + L d i s ( f fuse , M ~ ∗ ) (13) L = L_{recZ} \left(Z, \tilde{Z}a\right) + L{recI} \left(I, \tilde{I}a\right) + L{dis} \left(f_{\text{fuse}}, \tilde{M}^*\right) \tag{13} L=LrecZ(Z,Z~a)+LrecI(I,I~a)+Ldis(ffuse,M~∗)(13)

4 Experiments 实验

4.1 Experimental Setup 实验设置

4.1.1 Datasets 数据集

我们在 MVTec 3D - AD [4] 和 Eyescandies [7] 数据集上评估我们的方法。

MVTec 3D - AD 数据集是首个 3D 工业异常检测数据集,包含 10 个类别,共 2656 个训练样本和 1137 个测试样本。

Eyescandies 数据集是用于 3D 异常检测和定位的新型合成数据集,也包含 10 个类别,共 50,000 个训练样本和 2,500 个测试样本。

如需更详细了解这两个数据集,可参考补充材料。

4.1.2 Data Preprocess 数据预处理

我们通过 3D 数据去除背景信息。遵循先前的方法 [9, 42],使用 RANSAC [15] 估计背景平面,距离在 0.005 以内的点会被移除。被移除点的深度设为剩余点中的最大深度,其在 RGB 图像中对应的像素值设为 0。

我们将深度图像和 RGB 图像的尺寸调整为 256×256,并将其归一化到 (0,1) 范围。

4.1.3 Metrics 指标

我们使用接收者操作特征曲线下面积(图像级,I - AUROC)评估图像级异常检测性能,I - AUROC 值越高表示图像级异常检测性能越好。

与 I - AUROC 类似,像素级预测的接收者操作特征曲线可用于计算P - AUROC,以评估分割性能。

我们还使用每区域重叠(AUPRO)指标评估分割性能,其定义为二值预测与真实标签的每个连通组件的平均相对重叠度。

4.2 Main Results 主要结果

4.2.1 Quantitative Results 定量结果

MVTec 3D - AD 数据集上的异常检测结果见表 1 和表 2 。与最先进(SOTA)方法 [9] 相比,我们的方法在图像级检测的 AUROC 指标上实现了 3.4% 的绝对增益。

此外,我们的方法在分割性能方面也具有竞争力,仅比 ShapeGuided 低 0.3% 。

关于 AUPRO 指标的更多对比结果见补充材料。

4.2.1.2 Eyescandies

表 3 展示了在 Eyescandies 数据集上的检测结果。我们的方法仍取得了最佳检测性能,较 M3DM [42] 领先 1.8% 。更多定量分割结果可在补充材料中查看。

4.2.1.3 RGB vs 3D vs RGB+3D

在两个数据集上,我们的方法在检测结果方面均达到了新的最先进水平,大幅超越其他方法。值得注意的是,与仅使用 RGB 或 3D 信息相比,我们的方法结合 RGB 和 3D 信息实现了更优的检测和分割性能,这验证了我们的方法充分利用了两种模态的信息以增强检测效果。

4.2.2 Visualization Results 可视化结果

图 5 展示了现有方法未能准确定位所有缺陷的四个具有挑战性的案例。这些实例涉及极小缺陷或存在多个缺陷的情况。
小缺陷不明显,表面不平整误导

由于小缺陷通常不明显,物体表面的不平整很容易误导异常图预测。例如,在百吉饼案例(第一行)中,由于缺陷尺寸小,M3DM 和 3DSR 更多地关注物体左上方部分的不平整区域。然而,得益于我们多样化的合成异常样本,我们的方法准确预测了异常图。
多种缺陷,不能仅从RGB信息中检测出

颜色缺陷通常仅能从 RGB 信息中检测到,而切割缺陷在具有复杂纹理的 RGB 图像中难以检测。在泡沫案例(第三行)中,缺陷包含一个颜色缺陷(中心)、一个切割缺陷(左上方)和一个污染缺陷(右下方)。由于泡沫形状复杂,ShapeGuided 无法提供有效预测。M3DM 识别出了颜色和污染缺陷,但遗漏了切割缺陷。3DSR 仅识别出污染缺陷,遗漏了另外两个。
增强丢弃机制,有效保留不同模态的有用信息

受益于增强丢弃机制,我们的判别器有效地保留了来自不同模态的有用信息,从而实现了更优的预测。

4.2.3 Complexity Analysis 复杂度分析

推理速度更快,检测精度更优

在工业应用中,推理速度和内存使用至关重要。我们的方法仅包含三个类 UNet 网络,且推理可通过单次前向传播完成。如表 5 所示,我们的方法推理速度更快,分别比 M3DM [42] 快 60 倍、比 ShapeGuided [9] 快 140 倍,同时在检测精度上更优,分割结果也具有竞争力。尽管 3DSR [45] 的推理时间和内存使用与我们的方法相当,但相比之下,其检测和分割性能显著更差。

4.3 Ablation Study 消融实验

我们在 MVTec 3D - AD 数据集上开展消融实验。如表 6 所示,不使用我们的合成方法时,我们通过简单地将增强掩码 M t M_t Mt(在公式 2 中定义 )添加到正常深度来生成异常深度。

若没有增强丢弃机制,双模态判别器始终会从增强的异常样本中学习,此时深度图像和 RGB 图像均为异常。

如表 6 所示,两个模块(合成方法和增强丢弃机制 )均有助于提升性能,且两个模块相结合时,DAS3D 取得了最佳性能 。

5 Conclusion 结论

在本文中,我们提出了一种新颖的3D异常缺陷合成方法,该方法简单且有效。我们的方法从基于合成的RGB异常检测方法中汲取灵感,利用佩林噪声(Perlin noise)生成有用的缺陷区域。为了有效地融合来自不同模态的特征,我们设计了增强丢弃机制以提高判别器的泛化能力。我们的方法在MVTec 3D - AD和Eyescandies数据集上超越了最先进的(SOTA)检测结果,同时保持了较快的推理速度。我们期望我们的工作能够为未来3D异常检测任务的研究提供有价值的见解。

相关推荐
Dymc2 小时前
【目标检测之Ultralytics预测框颜色修改】
人工智能·yolo·目标检测·计算机视觉
m0_743106462 小时前
【论文笔记】BlockGaussian:巧妙解决大规模场景重建中的伪影问题
论文阅读·计算机视觉·3d·aigc·几何学
昵称是6硬币4 小时前
(DETR)End-to-End Object Detection with Transformers论文精读(逐段解析)
人工智能·深度学习·目标检测·计算机视觉·transformer
AndrewHZ4 小时前
【图像处理基石】如何检测到画面中的ppt并对其进行增强?
图像处理·人工智能·pytorch·opencv·目标检测·计算机视觉·图像增强
通街市密人有6 小时前
PanTS: The Pancreatic Tumor Segmentation Dataset
人工智能·深度学习·计算机视觉
千宇宙航8 小时前
闲庭信步使用图像验证平台加速FPGA的开发:第七课——获取RAW图像
图像处理·计算机视觉·fpga开发
格林威8 小时前
Baumer工业相机堡盟工业相机如何通过DeepOCR模型识别判断数值和字符串的范围和相似度(C#)
开发语言·人工智能·python·数码相机·计算机视觉·c#·视觉检测
presenttttt9 小时前
用Python和OpenCV从零搭建一个完整的双目视觉系统(五)
开发语言·python·opencv·计算机视觉
金山几座9 小时前
Opencv探索之旅:从像素变化到世界轮廓的奥秘
opencv·计算机视觉