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 Related Work 相关工作

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

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={(Ii,Zi)}i=1N\mathcal{T} = \{(I_i, Z_i)\}_{i = 1}^NT={(Ii,Zi)}i=1N,其中IiI_iIiZiZ_iZi分别是第iiiRGB图像深度图像。我们的目标是从这些样本中开发一个双模态异常检测器。在测试阶段呈现正常或异常样本时,该检测器应能够判断物体是否包含异常,若检测到异常,还需识别出异常的位置 。

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

  如图2所示,所提出的方法由一个双模态异常生成器两个重建子网络(分别用于RGB图像和深度图像重构的FIF_IFIFZF_ZFZ)以及一个双模态判别器DDD组成。
  ①给定一对正常的RGB图像和深度图像,我们的双模态异常生成器能够生成异常样本,这些样本可有效模拟自然的3D缺陷,且能被高效处理。为增强合成样本对的多样性,我们采用一个增强丢弃模块来随机舍弃增强操作。
  ②利用这些合成的异常样本,重构子网络会分别进行训练,通过对正常的RGB图像和深度图像进行重构,以隐式地检测这些合成异常。
  ③同时,双模态判别器学习联合的双模态重构 - 异常嵌入,并从拼接后的双模态重构特征中生成准确的异常分割图 。
在这里插入图片描述

3.2 Dual-modal Augmentation 双模态增强

  给定一对正常的RGB图像和深度图像(I,Z)(I, Z)(I,Z),我们的目标是生成异常样本(Ia,Za)(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所示,我们首先使用阈值tft_ftf从深度图像中提取前景掩码MfM_fMf,该阈值可通过对背景区域的深度取平均来估计。
在这里插入图片描述

3.2.1.2 三值掩码

  按照一种基于RGB的随机掩码生成方法 [46],我们使用Perlin噪声生成器 [33] 生成噪声图像PPP,然后使用阈值tpt_ptp对该噪声图像进行二值化(这里实际是三值化,生成 -1、0、1 三种值 )以获得三值掩码
Mp[i,j]={−1,P[i,j]<−tp1,P[i,j]>tp0,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)
  三值掩码MpM_pMp中的值实际上指示了后续增强过程中的凹凸表面值为 -1 的区域用于凹面增强,显示为蓝色;值为 1 的区域用于凸面增强,显示为红色,如图3所示。

3.2.1.3 前景区域内的增强掩码

  将三值异常掩码MpM_pMp 与前景掩码MfM_fMf相乘,以提取前景区域内的增强掩码,记为MtM_tMt
Mt=Mf⊙Mp(2)M_t = M_f \odot M_p \tag{2} Mt=MfMp(2)
  其中⊙\odot表示逐元素矩阵乘法

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

  为了模拟实际物体缺陷(通常表现为凸面或凹面 ),我们引入偏态高斯滤波器来平滑掩码MtM_tMt的边缘。
A.文献[1]中二维偏态正态分布的概率密度函数
  为了形式化该滤波器,我们首先给出文献 [1] 中二维偏态正态分布的概率密度函数(PDF):
fs(x;α,Σ)=2ϕ2(x;0,Σ)Φ(αTx),x∈R2(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),xR2(3)
  其中ϕ2(x;0,Σ)\phi_2(\mathbf{x}; 0, \Sigma)ϕ2(x;0,Σ)表示均值为零、相关矩阵为Σ\SigmaΣ的二元正态密度。这里,Φ(αTx)\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,Σ)=12π∣Σ∣exp⁡(−12xTΣ−1x)\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)
    • 作用:让滤波器的“主体”符合正态分布,保证边缘平滑的自然性。
  • Φ(αTx)\Phi(\alpha^{\mathrm{T}}\mathbf{x})Φ(αTx)单变量高斯分布的累积分布函数(CDF),负责给分布“加偏态”。

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

B.本文的偏态高斯滤波器定义
  我们的偏态高斯滤波器定义为:
Gs,h×h[i,j]=fs((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((ih/2,jh/2);α,Σ)(4)
  其中 hhh是偏态高斯滤波器的核大小,由Σ\SigmaΣ确定 。偏态系数α\alphaα从均匀分布U(−0.5,0.5)U(-0.5, 0.5)U(0.5,0.5)中随机采样。

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

在这里插入图片描述

3.2.1.4 最终的缺陷

  最终的缺陷ΔZ\Delta_ZΔZ定义为:
ΔZ=norm(Gs,h×h)∗Mt(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对MtM_tMt进行卷积

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

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

  最终合成的异常深度图像ZaZ_aZa定义为:
Za=Z+pzΔZ(6)Z_a = Z + p_z\Delta_Z \tag{6} Za=Z+pzΔZ(6)
将合成缺陷ΔZ\Delta_ZΔZ视为深度的变化,联合变化幅度pzp_zpz,得到最终异常深度图像
  其中pzp_zpz(U(pmin,pmax)(U(p_{\text{min}}, p_{\text{max}})(U(pmin,pmax)中采样,表示缺陷幅度的范围。我们并非用合成缺陷替换原始深度,而是将合成缺陷视为深度的变化并添加到原始深度中。这种方法隐式地考虑了不同物体在不同表面上的实际几何属性,并增加了合成缺陷的多样性。
卷积导致深度变化的区域与原始区域不对齐,优化掩码
  由于公式5中的卷积操作,深度变化的实际区域与公式2中的原始异常掩码MtM_tMt不对齐。因此,我们将异常掩码优化为:
M∗[i,j]={0,pz∣ΔZ[i,j]∣<th1,其他情况(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图像的对应像素区域,我们首先从一个与我们的训练集无关的预构建图像数据集中采样一个纹理图像IuI_uIu(见文献[10] )。我们可以生成一个简单的异常RGB图像,公式为(1−M∗)⊙I+M∗⊙Iu(1 - M^*) \odot I + M^* \odot I_u(1M)I+MIu

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

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

3.3 Dual-modal Discriminator 双模态判别器

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

3.3.1 基本架构

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

3.3.1.1 深度重构:① L2损失

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

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

  对于RGB重构,除了 L2L_2L2 损失外,我们还使用 结构相似性(SSIM) 损失来最小化感知差异。因此,我们的RGB重构损失函数定义为:
LrecI(I,Ia)=∥I−FI(Ia)∥22+LSSIM(I,FI(Ia))(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)=IFI(Ia)22+LSSIM(I,FI(Ia))(10)

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

  借助两个重构网络,我们可以分别提取RGB图像和深度图像的特征,用于训练异常判别器。
  具体来说,我们选择前两层特征后两层特征。这些特征被上采样到相同分辨率,然后拼接成我们的融合特征,记为ffusef_{\text{fuse}}ffuse

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

  我们的判别器也是一个类UNet网络,经训练以预测准确的异常图。由于缺陷区域通常较小,我们使用焦点损失(Focal loss )[28] 来减小判别器预测与真实标签之间的差异,公式如下:
Ldis(ffuse,M∗)=LFocal(D(ffuse),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,pd)B(1, p_d)B(1,pd)中采样两个丢弃信号dId_IdIdZd_ZdZ,其中pdp_dpd是丢弃概率。

3.3.2.3 异常样本和异常掩码

  因此,我们的异常样本和异常掩码可以重新定义为:
I~a=dII+(1−dI)Ia,Z~a=dZZ+(1−dZ)Za,M~∗=(1−dIdZ)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+(1dI)Ia,Z~a=dZZ+(1dZ)Za,M~=(1dIdZ)M(12)
  上述等式意味着,只有当两种模态(RGB和深度)都正常时,物体才被视为正常

3.3.3 最终的损失函数

  我们的最终损失函数定义为:
L=LrecZ(Z,Z~a)+LrecI(I,I~a)+Ldis(ffuse,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 定量结果
4.2.1.1 MVTec 3D - AD

  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 所示,不使用我们的合成方法时,我们通过简单地将增强掩码MtM_tMt(在公式 2 中定义 )添加到正常深度来生成异常深度
  若没有增强丢弃机制,双模态判别器始终会从增强的异常样本中学习,此时深度图像和 RGB 图像均为异常
  如表 6 所示,两个模块(合成方法和增强丢弃机制 )均有助于提升性能,且两个模块相结合时,DAS3D 取得了最佳性能 。
在这里插入图片描述

5 Conclusion 结论

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/88505.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/88505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EasyCVR视频汇聚平台国标接入设备TCP主动播放失败排查指南

部分客户现场的下级平台通过国标级联接入安防监控系统EasyCVR后&#xff0c;只能通过TCP主动的播放方式进行播放&#xff08;并不是所有下级平台都支持tcp主动播放&#xff0c;模式需下级平台支持&#xff09;&#xff0c;但是有些平台刚接入的时候发现不能播放。核心原因分析&…

linux打包指令和移动指令

在Linux中&#xff0c;常用的文件夹打包命令是 tar&#xff0c;它可以将文件夹压缩打包成 .tar、.tar.gz、.tar.bz2 等格式的文件。以下是具体用法&#xff1a; 1. 基础打包&#xff08;不压缩&#xff0c;生成 .tar 文件&#xff09; 将文件夹 folder 打包为 folder.tar&#…

神经符号AI:结合深度学习和符号逻辑的下一代AI

神经符号AI&#xff1a;结合深度学习和符号逻辑的下一代AI当AI医生解释诊断时&#xff0c;它不仅能指出医学影像中的异常像素模式&#xff0c;还能引用临床指南中的第三条第二款&#xff0c;推演病理发展的逻辑链条——这正是神经符号AI赋予机器的“理性之光”。2025年初&#…

SpringBoot JWT

jsonwebtoken 引依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.12.3</version></dependency> 测试一下&#xff0c;jwt是2个带逗号的3段字符串 官网参考&#xff1a;JSON …

读取QPS 10万,写入QPS 1000,如何设计系统架构?

你是否也曾深陷在臃肿的领域模型&#xff08;Domain Model&#xff09;的泥潭&#xff0c;一个 User 或 Order 实体类&#xff0c;既要处理复杂的业务逻辑和数据校验&#xff0c;又要承载各种为前端展示而生的DTO转换&#xff0c;导致模型越来越胖&#xff0c;读写性能相互掣肘…

UE5 Rotate 3 Axis In One Material

首先没有用旋转矩阵&#xff0c;我用过旋转矩阵&#xff0c;传进去的角度旋转的角度和欧拉角传进去角度旋转出来的不一样&#xff0c;就没有用最后用的RotateAboutAxis&#xff0c;这个玩意儿研究老半天&#xff0c;只能转一个轴&#xff0c;角度和欧拉角的一样的最后研究出Rot…

计算机网络实验——访问H3C网络设备

一、实验目的1. 熟悉H3C路由器的开机界面&#xff1b;2. 通过Console端口实现对上电的H3C路由器的第一次本地访问&#xff1b;3. 掌握H3C设备命名等几个常用指令&#xff1b;4. 掌握如何将H3C设备配置为Telnet服务器&#xff1b;5. 掌握如何将H3C设备配置为Telnet客户端并实现访…

【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(四)

&#x1f525;个人主页&#xff1a;艾莉丝努力练剑 ❄专栏传送门&#xff1a;《C语言》、《数据结构与算法》、C语言刷题12天IO强训、LeetCode代码强化刷题 &#x1f349;学习方向&#xff1a;C/C方向 ⭐️人生格言&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为…

Vim 指令

Vim 是一款功能强大但学习曲线陡峭的文本编辑器&#xff0c;核心在于其模式化操作。掌握常用指令能极大提升效率。以下是指令分类整理&#xff1a;一、核心模式切换 (必须掌握&#xff01;)i&#xff1a;在光标前进入 插入模式 (Insert Mode)a&#xff1a;在光标后进入 插入模式…

vue2中使用xgplayer播放流视频

1、官网 2、安装后无法播放时&#xff0c;经测试&#xff0c;需要降低版本 "xgplayer-hls": "2.2.2","xgplayer": "2.31.6"改为以上版本可以正常播放 3、完整使用 &#xff08;1&#xff09;引入 import xgplayer import hlsjsPlayer…

Jmeter进阶篇(35)完美解决Jmeter转换HTML报告报错“Begin size 0 is not equal to fixed size 5”

今天博主在使用Jmeter运行完压测,使用生成的csv文件,运行以下命令: C:\apache-jmeter-5.2.1\bin>jmeter -g C:\res.csv -o C:\report生成HTML报告时,发现报错“Begin size 0 is not equal to fixed size 5”。 问题原因 原因是我:本地用的是JDK17,但Jmeter5.2.1仅支…

linux中tcpdump抓包中有组播数据,应用程序收不到数据问题

问题描述服务器运行正常&#xff0c;维保需要&#xff0c;重启服务器后应用程序无法收到组播的媒体数据。百思不得其解。原因分析最终的定位原因是 linux系统的自我保护机制导致的。rp_filter&#xff08;反向路径过滤&#xff09;是Linux内核的一个安全特性&#xff0c;用于防…

人工智能-基础篇-29-什么是低代码平台?

低代码平台&#xff08;Low-Code Development Platform, LCDP&#xff09;是一种通过可视化界面和少量代码&#xff08;或无需代码&#xff09;快速构建应用程序的开发工具。它的核心目标是通过简化开发流程&#xff0c;降低技术门槛&#xff0c;使企业能够更高效地响应业务需求…

PyTorch随机擦除:提升模型抗遮挡能力

PyTorch中内置的随机擦除&#xff08;Random Erasing&#xff09;数据增强通过torchvision.transforms.RandomErasing实现&#xff0c;以下是原理和用法的详细说明&#xff1a;核心原理正则化作用&#xff1a; 随机擦除在训练图像上随机遮盖一个矩形区域&#xff0c;模拟遮挡场…

微信小程序交互精髓:点击操作与状态管理实战

目录 一、点击事件绑定&#xff1a;bindtap 与 catchtap 的正确使用 基础语法对比 事件对象详解 二、点击切换选中状态&#xff1a;数据驱动视图的实现 1. 单元素状态切换 2. 多元素单选状态 3. 多元素多选状态 三、样式动态切换&#xff1a;数据绑定与 CSS 的完美结合 …

Language Models are Few-Shot Learners: 开箱即用的GPT-3(二)

接上一篇 Approach 前面的摘要和Introduction做了一些概要性的介绍,论文在第二章,也就是approach中,介绍了模型的设计,zero,one,few-shot的设计等等。 这一章一开头就说,GPT-3的结构和GPT-2的结构一样,只是在相应的把模型尺寸,数据规模,训练时间等增加了。Our bas…

【养老机器人】核心技术

1. 毫米波雷达如何检测心跳和呼吸&#xff1f;毫米波雷达&#xff08;通常工作在60GHz或77GHz频段&#xff09;可以探测到人体胸腔的微米级位移&#xff0c;而心跳和呼吸会引起胸腔的周期性运动&#xff1a;呼吸&#xff1a;幅度较大&#xff08;约5-10毫米&#xff09;&#x…

二 Javascript 入门

我们 从已经知道了 Javascript的历史以及什么是Javascript&#xff0c;那实际编写的时候在哪里编写&#xff1f; script 标签 HTML 为我们提供了无数的标签来做无数的事情。例如&#xff0c; 用于为段落添加边距&#xff0c; 用于使文本加粗&#xff0c; 用于在网页上嵌入音…

《信息技术服务监理 第5部分:软件工程监理规范》(GB/T 19668.5-2018)标准解读

《信息技术服务监理 第 5 部分&#xff1a;软件工程监理规范》&#xff08;GB/T 19668.5-2018&#xff09;是规范软件工程监理服务的国家标准&#xff0c;旨在为软件工程监理的规划设计、招标、设计、实施、验收等阶段及相关支持过程提供明确的监理要求、服务内容和实施要点。 …

RedisJSON 路径语法深度解析与实战

一、两种路径语法概览语法类型触发标志简介JSONPath以 $ 开头全功能路径&#xff0c;支持递归 (..)、通配符 (*)、切片 ([start:end:step])、过滤 (?())、脚本表达式等Legacy以 . 或键名开头早期版本&#xff08;v1&#xff09;遗留语法&#xff0c;只支持简单的点式和中括号&…