3D点云异常检测数据集 | Real3D-AD: A Dataset of Point Cloud Anomaly Detection

论文:https://openreview.net/pdf?id=zGthDp4yYe

github:https://github.com/M-3LAB/Real3D-AD

目录

论文目的

摘要

1.介绍

2.相关工作

3.Real3D-AD数据集

3.1数据采集

3.2数据统计

3.3与其他数据集的比较

4.基准测试/基线方法

4.1问题定义与挑战

4.2基准测试与结果

4.3Reg3D-AD

4.3.1双特征表示与训练

4.3.2异常检测与得分

5.局限性

6.总结与感悟

论文目的

提出首个高精度、无盲点的3D点云异常检测数据集(用于研究高精度点云异常检测问题)。

摘要

本文介绍了Real3D-AD,一个旨在解决高精度点云异常检测领域现有限制的挑战性数据集。尽管高精度点云异常检测被认为是识别先进加工和精密制造缺陷的黄金标准,但数据集的稀缺和缺乏系统性基准测试阻碍了该领域的发展。Real3D-AD通过提供1,254个高分辨率3D物品(每个物品从四万到数百万个点)成为迄今为止最大的高精度3D工业异常检测数据集,其点云分辨率(0.0010mm-0.0015mm)、360度全覆盖和完美原型等特性超越了现有的3D异常检测数据集。此外,论文还提出了Real3D-AD的全面基准测试,揭示了高精度点云异常检测缺乏基线方法的问题。为解决这一问题,提出了一种基于注册的3D异常检测方法Reg3D-AD,该方法采用了一个新颖的特征记忆库来保存局部和全球表示。通过在Real3D-AD数据集上进行的广泛实验突显了Reg3D-AD的有效性。

1.介绍

Real3D-AD,首个高分辨率的3D异常检测数据集,旨在提高异常检测的精度,进而将点云异常检测的功能带到工厂生产线。在高级加工和精密制造行业,整个检查流程中的“无盲点”要求尤为关键,然而目前学术界所发布的3D异常检测数据集大多为RGBD(2.5D)格式,无法满足工业制造的高标准需求。相对于这些存在的局限性,Real3D-AD数据集通过采用高分辨率激光扫描技术,提供了更为精细和全面的点云数据,从而确保了在产品缺陷检测过程中覆盖每一个可能的角度和细节。这也揭示了Real3D-AD与其他数据集相比的主要特点:高精度、无盲点、以及逼真的原型

图一 蓝色为训练数据集中的正常图像,红色为异常图像

同时文章构建了一个全面的大规模基准测试ADBENCH-3D,并提出了一个基于注册的3D异常检测方法Reg3D-AD (在第四部分重点解析),通过全面的实验验证了Real3D-AD的有效性。

2.相关工作

3D-AD的资源和研究成果都十分有限,相较于2D异常检测(2D-AD)的雄厚研究基础,众多数据集和广泛的研究工作,3D-AD领域直到2021年才有第一个3D-AD数据集出现。

在本文发布之前,在3D-AD只有MVTec 3D-AD(3D点云异常检测数据集)和Eyecandies(包含不同种类糖果的正常样本和异常样本)两个数据集。这两个数据集均为RGBD格式,限于单视图信息,未能充分利用空间信息进行异常检测。当前,缺少有效利用点云信息进行异常检测的方法。

因此,引入Real3D-AD数据集的目的是吸引更多的关注和研究投入到3D-AD领域,旨在解决现有方法的局限性,充分利用3D点云信息进行更高效、更准确的异常检测。

3.Real3D-AD数据集

3.1数据采集

数据的采集使用一种名为 PMAX-S130 的高分辨率双目 3D 扫描仪。

图2 PMAX-S130与其他设备的参数比较

PMAX-S130的光学系统由一对低失真特性的镜头、高亮度LED灯和蓝光滤镜组成。这种蓝光扫描器通过镜头滤镜,仅允许特定波长的蓝光通过,有效地过滤掉大多数自然和人造光源中的蓝光。该设备能够在车间环境中常遇到的复杂照明条件下进行扫描操作,通过使用高亮度LED的冷光源,延长设备使用寿命,减少热量发射,同时确保扫描精度的一致性。

与MVTec 3D-AD使用的Zivid相机相比,PMAX-S130在点精度方面表现更佳,Real3D-AD在点精度和每个点云的空间距离上都超过了MVTec 3D-AD,分别提高了10倍和4.28倍。

图3 训练集中的原型由两个或多个扫描结果组成

图3展示了原型的制作过程,首先,静止的物体在转盘完成 360°旋转的同时进行扫描,使扫描仪能够捕捉到物体各方面的图像。随后,物体反转,重复旋转和扫描过程。在对前后扫描结果进行手动校准后,算法会对拼接过程进行精确校准。如果结果中存在任何缝隙,扫描拼接过程将重复进行,直至点云呈现。

图4 Real3D-AD 中的异常注释

图4展示了Real3D-AD的异常标注过程:第一步是将 pcd 文件导入 CloudCompare 软件(用于3D点云和网格处理的开源软件),修改角度视图和点云文件大小。 然后分离异常区域和非异常区域,并为每个点云分配相应的标签。最终结果以txt文件的形式呈现。

然而,采集数据仍存在问题:其过长的采集时间以及期间耗费的大量劳动力,其中每个异常样本的标记就需要多人团队花费五个小时。整个Real3D-AD项目的数据集采集由七人组成的团队,在四个月的时间里才完成,也足见其工作量之大。因此,如何高效的采集高精度数据,也是3D-AD领域亟需解决的问题。

3.2数据统计

Real3D-AD数据集包含1,254个样本,分布在12个不同的类别中,每个特定类别的训练集仅包含四个样本,类似于2D异常检测中的少样本(few-shot)场景。所有这些类别均为如飞机,宝石等来自制造线的玩具。

图5 Real3D-AD 的统计数据。∆ 指的是异常样本中异常点的比例

下图所展示的盒须图展示了 Real3D-AD 数据集中所有样本中数据点的分布情况,由于训练样本提供了3D物体的完整原型,而测试样本只扫描一侧。因此训练样本的数量远大于测试样本的数量。同时,图中不难看出其中正常测试样本与异常样本在点数上的差异不会非常显著,这可能增加了检测异常的难度。

图6 以对数标度表示的所有样本的点数,用盒须图表示

3.3与其他数据集的比较

图7 主要数据集的比较结果

Real3D-AD的点分辨率和精度分别达到了0.04mm和0.011mm,这比MVTec 3D-AD分别提高了4.28倍和9倍。另外,Real3D-AD采用多视角扫描技术,消除了潜在的盲点个人感觉与其他数据集相比最重要的改进),从而增强了其异常检测能力。

4.基准测试/基线方法

4.1问题定义与挑战

文中在这部分给出了对ADBENCH-3D基准测试的正式定义:给定一组训练样例  T = \{t_i\}_{i=1}^{N},每个样例 t_{i} 是一个无异常的训练原型,并且每个类别的原型数量有限(不超过4个)。每个训练样例都属于一个特定的类别 c_{j},其中 C 是所有类别的集合。在测试时,给定一个目标类别 c_{j} 的正常或异常样本(这里测试样本只有某个面),3D异常检测(AD)模型的任务是预测测试的3D对象是否异常,并在预测结果为异常时定位异常区域。

下图很好的展示了训练样本和测试样本的区别:即训练原型经过 360◦ 扫描,确保不存在可见度受限的区域,而为了模拟真实世界的条件,测试样本只扫描了一面。

图8 Real3D-AD 中的训练和测试样本示例

简单来讲,以宝石这个类别为例,其中训练样本可能包含蓝色圆形宝石和红色方形宝石两种原型(原型数应该<=4),并使用有限的训练样本来教会3D异常检测模型如何识别正常和异常的宝石(通过3.1中提到的异常注册注释方法进行异常标记,再使用标记后的数据进行训练)。然后在测试阶段,模型将会接收到可能只有单面扫描的宝石样本,并需要判断这些宝石是否有异常,如果有异常,还需要指出异常位于哪里。

文章由此提到了存在的三个挑战:

(1) 每个类别的训练数据集只包含普通原型,即没有对象或点级注释。

(2) 训练集的正常原型很少,在 ADBENCH-3D 的设置中训练原型通常少于 4 个。

(3) 测试集与训练集样本之间存在不可避免的差异,需要加以解决。

4.2基准测试与结果

为了标准化3D异常检测的评估,使用了包括接收者操作特征曲线下面积(AUROC)和精确率-召回率曲线下面积(AUPR/AP)在内的指标。

下图将Reg3D-AD(本文提出的一种3D异常检测方法,4.3中解释其原理)与BTF 、M3DM 、PatchCore及这三种方法的变体进行比较,(3D异常检测方法主要集中在RGBD异常检测上,而不是点云异常检测任务。因此,选择了BTF和M3DM作为基准方法)并得出结果。

图9 不同3D异常检测方法在Real3D-AD数据集上的性能评估结果

4.3Reg3D-AD
4.3.1双特征表示与训练

为了满足Real3D-AD的需求,文章设计了一种灵感来源于PatchCore的通用的基于配准的点云异常检测方法(Reg3D-AD),这个方法通过采用双特征表示方法来保留训练原型的局部和全局特征,进而能够更准确的定位到测试原型中的异常。

双重特征表示:

1.每个点云的坐标值,即x、y、z值,包含了每个点的定位属性。

2.PointMAE特征 ,这里先介绍一下PointMAE,这是一个基于自监督学习的特征学习框架,其核心思想是通过遮蔽(masking)一部分输入数据,然后让网络预测这些遮蔽的数据,从而迫使网络学习输入数据的内在结构和特征(masking貌似在图像分割中也很常见)

采用这种方法的优点(个人理解):

1.通过预测遮蔽部分的任务,PointMAE被迫学习更深层次的点云结构。这种自监督能够实现对原型的内在结构与模式的学习,特别是异常检测这种需要对微小差别进行识别的任务,能够增强对随机且微小的差异进行识别。

2.在数据量有限的情况下,这种方法能够很好的提升模型的泛化能力。

xyz位置信息为原型的局部特征,而PointMAE提供了对训练原型整体的描述(这里pointMAE处理的数据同样为点云数据)

在训练阶段,目标是建立一个包含所有正常原型的邻域敏感特征的仓库,这个仓库将作为一个记忆库。在将新功能加入到记忆库之前,采用Coreset抽样技术来控制记忆库的大小。

4.3.2异常检测与得分

下图展示了异常检测的完整过程:

图10 Reg3D-AD方法的点云异常检测过程

1.在进行异常检测之前,通过RANSAC算法对测试的3D对象进行配准,以便于和记忆库中的对象进行比较。

2.通过特征提取器对齐后的测试样本的特征提取出来(黄色框)。

3.将提取出的特征(黄色框)与之前正常原型训练得到的记忆库M(蓝色框),进行比对,并通过公式计算得出其异常得分,最后根据得分标识出测试样本中的异常区域。

异常得分计算公式:

公式(1)展示了两个特殊点m^{test,*}m^{l*}的计算方式,其中m^{test,*}为测试点云的所有点P(x^{test})中,与他们的最近邻点m^{l}在记忆库M^{l}之间的欧氏距离最大的那个点,即m^{test,*}最有可能成为异常点的点。

m^{l*}则为记忆库M^{l}中与测试点m^{test}最近的点,也就是在正常的点云特征集合中最接近m^{test,*}的点。

公式(2)通过计算得到的m^{test,*}m^{l*}之间的欧氏距离,作为最后的异常得分s^{l*}得分越高意味着测试点与正常点云之间的偏差越大,越有可能为异常点。

公式(3)为文章提供的一种加强异常检测模型鲁棒性的重要加权方法,公式通过一个软性加权机制,减少一个单独的点异常得分的影响,以此来减少噪声和偶然因素造成的误报(看不懂😕)。

全局异常得分s^{g}的计算方式与s^{l}类似,只不过是通过全局特征记忆库M^{g}实现。最后,每个点云的总异常得分 s^{t} 是局部特征异常得分和全局特征异常得分的平均值,即s^{t}=(s^{l}+s^{g})/2

文章给出的测试总结(原文翻译):

图9中的ADBENCH-3D测试结果表明大多数3D异常检测算法并不满足Real3D-AD数据集的需求。回顾第4.1节中的设定,我们发现它与少样本(few-shot)异常检测的设定有着显著的相似之处,这主要是因为每个类别的训练数据集只由四个原型组成。当前大部分先进的3D异常检测算法并没有特别为少样本情况下的异常检测任务设计。要解决这个挑战,至关重要的是优化对原型数据的利用,并确保获取的点云数据不受空间相对位置的影响。从表 4 中可以清楚地看出,在 Real3D-AD 数据集上,我们的基准方法 Reg3D-AD 优于最先进的 3D 异常检测方法

5.局限性

文章中提到目前方法仍存在一些局限性和未来改进的可能:

(1)当前数据仅来源于3D扫描器且只包含空间信息,这是工业生产的常规做法,但缺乏其他类型的数据如RGB信息。

(2)尚未探索如何从不同角度生成深度图像并利用它们进行异常检测。

(3)尽管基线方法性能良好,但测试点云边缘被截断可能导致误检,需要通过更先进的模型来解决。

但尽管如此,本文的作者们仍然对3D-AD领域的探索做出了重大贡献,对于全视角点云异常检测的首次尝试,将激发该领域的进一步探索。

6.总结与感悟

论文总结(原文翻译):

在这项工作中,我们提出了Real3D-AD数据集,用以研究高精度点云异常检测问题,旨在促进先进加工和精密制造领域的缺陷识别研究。作为迄今为止最高精度的3D工业异常检测数据集,Real3D-AD包含了1,254个高分辨率的3D项目(每个项目至少包含一百万个点云),覆盖了12种现实世界中可应用的对象。在点云分辨率(0.0010mm-0.0015mm)、360度全覆盖和完美原型方面,Real3D-AD超越了当前可用的3D异常检测数据集。此外,我们对Real3D-AD数据集进行了全面评估,强调了缺乏能够支持高精度点云异常检测应用的基准方法。我们提出了一种基于配准的通用3D异常检测技术(Reg3D-AD)以及3D特征耦合单元,该单元保留了局部特征和全局表示。在Real3D-AD数据集上的实验表明,Reg3D-AD的性能显著优于次优方法。

个人感悟:

一开始读文章的时候还是有很多不理解的地方的,如为什么采用双重特征表示,以及复杂的公式含义,但随着反复解读其中的关键信息(查资料+GPT)还是能够理解其中的绝大部分内容,我感觉也正是在学习的过程中那种每次理解新内容时醍醐灌顶的感受,支撑着我读下去的吧。

至于对本文的内容有什么感想,大部分都写在了读文章的过程中,总结起来也只有:👍。

相关推荐

  1. HO-3D 数据

    2024-03-22 13:24:02       32 阅读
  2. 异常检测】MVTec AD数据介绍

    2024-03-22 13:24:02       58 阅读
  3. 使用Python写简单的harris 3D关键检测

    2024-03-22 13:24:02       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-22 13:24:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-22 13:24:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-22 13:24:02       87 阅读
  4. Python语言-面向对象

    2024-03-22 13:24:02       96 阅读

热门阅读

  1. Redis常见原理和数据结构

    2024-03-22 13:24:02       38 阅读
  2. 生活电子产品拆解分析~汇总目录

    2024-03-22 13:24:02       42 阅读
  3. linux安装mysql8.x

    2024-03-22 13:24:02       33 阅读
  4. 编程生活day2--念数字、求整数段和、大笨钟

    2024-03-22 13:24:02       42 阅读
  5. 前端与后端具备能力的区别

    2024-03-22 13:24:02       42 阅读