题目:Real3D-AD: A Dataset of Point Cloud Anomaly Detection
题目:Real3D - AD:一个点云异常检测数据集
Abstract 摘要
高精度点云异常检测是识别先进机械加工和精密制造缺陷的黄金标准。尽管该领域在方法上取得了一些进展,但数据集的稀缺以及缺乏系统的基准阻碍了其发展。我们引入Real3D - AD,这是一个具有挑战性的高精度点云异常检测数据集,旨在解决该领域的局限性。Real3D - AD包含1254个高分辨率三维对象(每个对象包含4万到数百万个点 ),是目前最大的高精度三维工业异常检测数据集。在点云分辨率(0.0010 - 0.0015毫米 )、360度全方位覆盖和精准原型方面,Real3D - AD超越了现有的三维异常检测数据集。
此外,我们为Real3D - AD提供了一个全面的基准,揭示了高精度点云异常检测缺乏基线方法的现状。为解决这一问题,我们提出Reg3D - AD,这是一种基于配准的三维异常检测方法,引入了新型特征记忆库以保留局部和全局表征。在Real3D - AD数据集上的大量实验突显了Reg3D - AD的有效性。
为保证可重复性和可获取性,我们在网站https://github.com/M - 3LAB/Real3D - AD上提供Real3D - AD数据集、基准源代码和Reg3D - AD。
1 Introduction 简介
1.1 Real 3D-AD Motivation: 3D > 2.5D Real 3D - AD动机:3D优于2.5D 。
迫切需要提出一个高分辨率点云异常检测数据集,以弥合学术界和工业界之间的差距,将点云异常检测能力应用到工厂车间。点云异常检测在实际生产线中得到广泛应用。然而,学术界发布的三维异常检测数据集是RGBD(2.5D) 的,这不符合工业制造的需求。先进机械加工和精密制造要求在检测过程中不存在盲点。然而,由于 RGBD数据集是通过单视角扫描获得的,所以存在盲点。缺乏真正的点云异常检测数据集阻碍了三维异常检测的进一步发展。正因如此,提出一个满足工业制造需求的点云异常检测数据集至关重要且十分迫切。
1.2 Limitation of current 3D-AD dataset and Real3D-AD advantage 当前三维异常检测数据集的局限性与Real3D - AD的优势
为解决这一问题,我们提出了一个大规模、高分辨率的三维异常检测数据集Real3D - AD,以支持三维异常检测方法的研究与开发。
尽管已经有两个三维异常检测数据集(MVTec 3D - AD [20]和 Eyescandies[3] )被提出,但仍存在一些局限性:
1.2.1 高精度
1)MVTec 3D - AD的精度不足以满足高精度点云异常检测的要求。具体而言,MVTec 3D - AD 每个物体提供的点云数量有限,仅为4147个,点精度为0.11毫米。相比之下,Real3D - AD每个物体提供的点云数量显著更多,估计约为130万个,大约是MVTec 3D - AD的100倍。此外,Real3D - AD的点精度高达0.010毫米,比MVTec 3D - AD先进10倍。详细分析见表1。
1.2.2 无盲点
2)如果采用RGBD相机收集三维数据,如MVTec 3D和Eyescandies,三维异常检测数据集会存在盲点。仅依靠单视角进行检测时,识别缺陷可能具有挑战性。Real3D - AD使用高分辨率激光扫描进行采集,能够完美地检测产品各处的缺陷,如图1所示。
1.2.3 真实
3)模拟数据集(Eyescandies )难以扩展到真实场景。由于真实产品的商业隐私问题,很难收集到实际产品的CAD模型。因此,大多数研究人员采用模拟软件,如Blender框架[9] 。然而,合成的纹理和异常细节都无法达到高保真度。
1.2.4 总结
Real3D - AD从实际应用中收集产品,并通过高分辨率三维扫描仪获取出色的原型。因此,如表3所示,我们可以得出Real3D - AD相对于先前三维异常检测数据集工作的三个关键特征:高精度、无盲点和真实的高准确度原型。
1.3 Benchmark & Baseline 基准与基线
为加快对通用高精度点云异常检测方法的研究,我们构建了一个全面且结构化的大规模基准,称为ADBENCH - 3D。此外,我们开发了一种基于配准的基线方法,该方法符合高分辨率三维异常检测的前提条件。
1.3.1 实际限制:小样本训练集
鉴于实际限制,每个类别的可用训练数据集数量有限(小于或等于4个),因为为每个类别创建高精度原型是一个耗时的过程(每个类别可能需要长达两天 )。
1.3.2 ADBENCH - 3D的配置
ADBENCH - 3D的配置与当前三维领域的无监督异常检测任务不同。4.1节对该设置进行了全面描述。具体来说,训练样本有限(≤4个),测试样本仅从一侧扫描。这样做的目的是模拟实际应用:生产线上的扫描位置是固定的,一个位置只能扫描产品一侧的结果。此外,为便于业内精确比较性能并确保可重复性,ADBENCH - 3D框架包含一个全面的端到端流程,包括数据预处理、三维异常检测算法、评估脚本、指标和可视化工具包。
1.3.3 ADBENCH - 3D中的AD方法
ADBENCH - 3D 包含一组8种基本的三维异常检测方法,这些方法已在Real3D - AD数据集上实现并测试。而且,表4中的结果表明,当前大多数三维异常检测技术在Real3D - AD中无法取得令人满意的性能,其物体级AUROC分数低于50%即证明了这一点。因此,我们提出一种基于配准的三维异常检测方法(Reg3D - AD),作为满足Real3D - AD数据集需求的通用解决方案。
1.3.4 本文提出的Reg3D - AD模型
Reg3D - AD模型引入了一种新型特征记忆库,如图8所示,旨在保留局部和全局特征。在推理过程中,测试物体与训练原型进行配准,并从局部和全局提取其特征。通过评估测试物体特征与训练原型特征之间的距离来识别缺陷。
1.3.5 总结
因此,Real3D - AD和ADBENCH - 3D朝着整合三维异常检测研究中的分散工作迈出了一步,并为更深入理解三维异常检测模型铺平了道路。
1.4 The Main Contributions of This Paper 本文的主要贡献
总体而言,本文的主要贡献如下:
- 我们创建了首个高分辨率三维异常检测数据集(Real3D - AD),支持高分辨率三维异常检测算法的设计并公开可用。Real3D - AD具有三个主要属性,使其区别于先前关于三维异常检测数据集的研究。这些属性包括高精度、无盲点以及真实且高准确度的原型。
- ADBENCH - 3D提供的端到端流程涵盖数据准备、数据划分、评估指标和脚本以及可视化工具包。ADBENCH - 3D对Real3D - AD数据集上的8种主要算法进行了大规模系统评估。
- 我们提出了一种基于配准的通用三维异常检测方法(Reg3D - AD)。通过在Real3D - AD数据集上的全面实验,证明了Reg3D - AD的有效性,其性能大幅超越了其他次优方法。
2 Related work 相关工作
2.1 3D-AD Datasets 三维异常检测数据集
2.1.1 二维异常检测 数据集和方法
二维异常检测(2D - AD)数据集十分丰富,其历史可追溯至2007年[29] 。目前有超过20种不同的二维异常检测数据集可供使用[11, 25, 17, 31] 。大量的二维异常检测数据集催生了许多相关研究。一些研究从图像重建[35, 8]、特征提取[12, 4, 27]和特征比较[22]的角度展开。也有一批研究聚焦于小样本异常检测[30, 36, 7]和含噪异常检测[16]等特定场景。
2.1.2 三维异常检测 数据集
相比之下,三维异常检测(3D - AD)数据集的数量极为有限。首个三维异常检测数据集于2021年推出,目前仅有两个三维异常检测数据集,即MVTec 3D - AD数据集[20]和Eyescandies数据集[3] 。
2.1.2.1 MVTec 3D - AD
MVTec 3D - AD [20]是一个专为三维点云异常检测设计的新数据集,也是唯一用于异常检测的点云数据集。它包含2656对图像作为训练集,294对图像作为验证集,249对正常图像和948对异常图像构成测试集。该数据集总共包含41种不同类型的异常,异常区域合计1148个。每对图像由RGB图像和表示每个像素空间坐标的tiff图像组成。图像分辨率从400×400到900×900不等。
2.1.2.2 Eyescandies数据集
Eyescandies数据集[3]是一个新型合成数据集,包含在受控环境中渲染的十种不同类别的糖果。它由13250对正常样本和2250对异常样本组成。每个深度图像对应六种不同光照条件下的RGB图像。
2.1.2.3 本文提出的Real 3D - AD数据集
MVTec 3D - AD和Eyescandies都是RGBD数据集,局限于单视角信息。为进一步探索空间信息在异常检测任务中的价值,我们提出Real 3D - AD数据集,将物体信息扩展到三维空间。Real 3D - AD训练集中的原型涵盖了来自不同视角的全面物体信息。测试集也包含物体的多视角信息,从而能够更广泛地探索三维信息在异常检测任务中的价值。
2.2 3D-AD methods 三维异常检测方法
近年来,二维异常检测领域涌现出许多高质量论文[33, 37, 32, 26] 。MVTec 3D - AD数据集的发布也引发了人们对三维异常检测方法的关注[15, 23, 5, 28, 8] 。然而,与二维异常检测相比,三维异常检测仍需开展更多研究。一些方法仅利用深度信息去除背景噪声,这限制了深度信息的应用。同时,在不降低性能的前提下融合RGB和深度信息仍是一项挑战。
2.2.1 Bergmann[1]:基于师生模型的点云特征提取网络
Bergmann等人[1]提出一种基于师生模型的点云特征提取网络。训练过程中,学生网络和教师网络保持特征一致,并在测试时利用提取特征的差异定位异常。
2.2.2 Horwitz[5]:手工设计的三维描述符+KNN
Horwitz等人[15]将手工设计的三维描述符与经典异常检测方法KNN框架相结合。尽管这两种方法都有一定效果,但性能欠佳。
2.2.3 AST[23]:仅利用深度信息去除背景+二维异常检测方法检测异常
AST[23]在MVTec 3D - AD数据集上表现良好,但仅利用深度信息去除背景。AST仍采用二维异常检测方法检测异常,忽略了物体的深度信息。
2.2.4 M3DM[28]:融合点云和RGB特征:严重依赖预训练的大型模型和记忆库
M3DM [28]分别从点云和RGB图像中提取特征并进行融合,以做出更好的决策。该方法优于BTF,但严重依赖预训练的大型模型和记忆库。
2.2.5 CPMF[6]:从不同角度将点云投影为二维图像
CPMF [6]也采用KNN范式。不过,它从不同角度将点云投影为二维图像,显著降低了特征提取的复杂度和计算成本,并融合所得信息进行检测。
2.2.6 总结:缺乏充分利用点云信息的异常检测方法
总之,现有的三维异常检测模型要么性能不佳,要么严重依赖预训练模型和记忆库。目前,缺乏充分利用点云信息的异常检测方法,且该领域研究可用的数据集仅有包含深度信息的MVTec 3D - AD数据集和人工合成的Eyescandies[3]数据集。为引起对该领域的关注并推动相关研究,我们引入了Real3D - AD数据集。
3 Real3D-AD dataset3 Real3D-AD 数据集
3.1 Data Collection 数据收集
我们概述了生成Real3D - AD数据集的流程,包括对高分辨率扫描仪的描述、原型的构建、异常的生成,以及对该过程所需劳动力和时间的评估。
3.1.1 Description of high-resolution and high-precision 3D scanner 高分辨率和高精度的3D扫描仪介绍
3.1.1.1 扫描仪:PMAX - S130的高分辨率双目3D扫描仪
为获取精确的3D异常检测数据,我们采用了一款名为PMAX - S130的高分辨率双目3D扫描仪,如图2所示。
PMAX - S130光学系统由一对具有低畸变的透镜,一个高亮度LED和一个蓝光相机组成。蓝光相机配备的滤光片可仅允许蓝光波段的特定波长通过。该滤光片能有效屏蔽大部分蓝光,使其在自然和人工照明下的相对含量较低。不过,在这种情况下,使用蓝光发射光源可在物体上形成光斑。图像传感器可以使用透镜孔径收集光线。因此,环境光的影响大幅降低。
该设备能够在车间环境中经常遇到的复杂照明条件下执行扫描操作。通过采用冷光源高亮度LED实现了这一目标。这种方法延长了设备使用寿命,减少了热量散发,同时确保一致的扫描精度。此外,通过集成失真最小的镜头,提高了设备扫描的精度。
3.1.1.2 与MVTec 3D-AD使用的Zivid相机的比较
表1中的数据表明,PMAX-S130的性能优于Zivid相机(MVTec 3D-AD使用),特别是在点精度方面。Real3D - AD在点云密度和空间距离方面分别比MVTec 3D - AD高10倍和2.8倍,更高的点精度和每云空间距离。因此,Real3D - AD为提升高精密点云异常检测的全面性提供了途径。
表头参数
- Scanner:扫描仪,代表进行数据采集所使用的设备名称 。
- PMAX - S130:一种高分辨率双目3D扫描仪,用于生成Real3D - AD数据集 。
- Zivid One - Plus:另一种3D扫描仪,用于生成MVTec 3D - AD数据集.
对比参数
- Dataset:数据集,表明该扫描仪所应用生成的数据集名称 。Real3D - AD (Ours) 是使用PMAX - S130扫描仪生成的本文研究中的数据集;MVTec 3D - AD [1] 是使用Zivid One - Plus扫描仪生成的已有的数据集,
[1] 是参考文献编号 。- FOV(Field of View):视场,指扫描仪能够观测或扫描的空间范围 。PMAX - S130的视场为100cm到400cm ,意味着它能扫描该距离范围内的物体;Zivid One - Plus的视场是60cm到200cm,扫描范围相对较窄 。
- Point Precision:点精度,描述扫描仪在采集点云数据时,点的位置精确程度。PMAX - S130的点精度为0.011mm - 0.015mm ,即它确定点位置的误差在这个毫米级范围内;Zivid One -Plus的点精度是0.11mm ,相比之下PMAX - S130的点精度更高 。
- Spatial Distance:空间距离,可能指扫描仪采集的点云数据中点与点之间在空间上的平均距离等相关度量 。PMAX - S130的空间距离为0.04mm - 0.07mm ,Zivid One - Plus为0.37mm ,反映出PMAX - S130采集的点云在空间分布上更为密集 。
- 3D Format:==三维格式,指扫描仪输出点云数据所支持的文件格式 ==。PMAX - S130支持ASC、PLY、STL、OBJ、IGES等多种格式,方便与不同软件和系统进行数据交互;Zivid One -Plus仅支持TIFF格式 。
3.1.2 Prototype construction 原型构建
原型构建过程如图3所示。
①最初,静止的物体在转台完成360° 全旋转的同时进行扫描,使扫描仪能够捕获物体的各种图像。
②随后,物体进行翻转,并进行旋转和扫描的重复过程。
③接着,手动校准前后扫描结果,精确校准拼接算法,直到拼接点云。
④如果结果中有任何空白,则重复扫描拼接过程,直到渲染点云。
一开始,物体在转台上固定好进行扫描,转台旋转360°,扫描仪采集物体各个角度的数据。但物体有些面此时是被遮挡的,没法被扫描到。所以要把物体翻转过来,让原本朝下或者被遮挡的面朝上露出来,然后再次进行旋转和扫描的过程。这样就能把物体各个面的信息都采集到,方便后续完整地拼接点云数据,构建出完整的物体原型。就好比给一个盒子建模,只扫描盒子上面和侧面,底面信息获取不到,把盒子翻过来,就能扫描到底面了 。
3.1.3 Anomalies types and labeling异常类型与标注
点云相关的异常可分为两类:不完整性 incompleteness和冗余性 redundancy。
我们使用CloudCompare(2016)[10] 来标注点云数据。标注过程如图4所示。
①第一步是将.pcd文件导入CloudCompare软件,并调整角度视图和点云文件大小。
②之后,将异常区域和非异常区域进行分割,并为点云中的每个区域分配相应的标签。
③最终结果以文本文件形式呈现。
图中展示了点云标注的流程:
- 原始点云(Original point clouds):最初获取的未处理点云数据。
- 使用边界框进行标注(Using bound - box to annotation):利用边界框工具对原始点云进行处理,划分不同区域。
- 异常点云区域(Abnormal point cloud area):从点云中识别出存在异常的部分。
- 正常点云区域(Normal point cloud area):点云中不存在异常的部分。
- 标注(Annotation):对异常和正常点云区域分别进行标注操作。
- 标注后的点云(Annotated point clouds):经过标注处理后的点云数据,其中不同区域(图中以蓝色和红色区分 )被赋予相应标签。
- 真值文件(Ground truth file):最终生成记录标注信息的真值文件,用于后续验证、分析等工作 。
3.1.4 Labor and time-consuming 人力与时间成本
采集和标注Real3D - AD数据集的过程对人力需求极大。
构建每个原型时,一个三人团队需花费1.2天来完成单个物体的相关工作。其中,第一个人负责进行扫描,第二个人专注于手动校准,第三个人主要负责标注工作。
生成异常样本时,需四人团队来完成任务。最初的人将注意力集中在点云异常的不足上,而随后的人则承担点云异常多余的责任(第一个人负责生成点云异常,第二个人负责检查点云异常的冗余性)。第三个人主要关注异常标注过程。
每个非典型样本需要5个小时才能完成。Real3D - AD项目需要一个七人团队,耗时四个月,从而处理大量的工作量。
3.2 Data Statistics 数据统计
Real3D - AD数据集的统计信息见表2。该表包含数据集类别、训练原型数量、测试集中正常和异常样本数量,以及测试中异常点的平均比例。
类别 | 实际尺寸(mm) | 属性 | 训练集(正常样本数) | 测试集 | 总数 | 异常点比例Δ | |||
---|---|---|---|---|---|---|---|---|---|
长度 | 宽度 | 高度 | 正常样本数 | 异常样本数 | |||||
飞机 | 34.0 | 14.2 | 31.7 | 透明 | 4 | 50 | 50 | 104 | 1.18% |
汽车 | 35.0 | 29.0 | 12.5 | 透明 | 4 | 50 | 50 | 104 | 1.99% |
糖果棒 | 33.0 | 20.0 | 8.0 | 透明 | 4 | 50 | 50 | 104 | 2.37% |
鸡肉 | 25.0 | 14.0 | 20.0 | 白色 | 4 | 52 | 54 | 110 | 4.39% |
钻石 | 29.0 | 29.0 | 18.7 | 透明 | 4 | 50 | 50 | 104 | 5.41% |
鸭子 | 30.0 | 22.2 | 29.4 | 透明 | 4 | 50 | 50 | 104 | 2.00% |
鱼 | 37.7 | 24.0 | 4.0 | 透明 | 4 | 50 | 50 | 104 | 2.86% |
宝石 | 22.5 | 18.8 | 17.0 | 透明 | 4 | 50 | 50 | 104 | 2.06% |
海马 | 38.0 | 11.2 | 3.5 | 透明 | 4 | 50 | 50 | 104 | 4.57% |
贝壳 | 21.7 | 22.0 | 7.7 | 透明 | 4 | 52 | 48 | 104 | 2.25% |
海星 | 27.4 | 27.4 | 4.8 | 透明 | 4 | 50 | 50 | 104 | 4.47% |
太妃糖 | 38.0 | 12.0 | 10.0 | 透明 | 4 | 50 | 50 | 104 | 2.46% |
平均值 | 30.9 | 20.3 | 13.9 | - | 4 | 50 | 50 | 104 | 3.00% |
总计 | - | - | - | - | 48 | 604 | 602 | 1254 | - |
3.2.1 类似少样本场景
Real3D - AD共有1254个样本,分布在12个不同类别中。每个特定类别的训练集仅包含4个样本, 类似于二维异常检测中的少样本场景 。这些类别包括但不限于飞机、糖果、鸡肉、钻石、鸭子、鱼、宝石、海马、贝壳、海星和太妃糖。所有这些类别均为生产线上的玩具。
3.2.2 较低的异常点比例,大多数属性与透明度有关
表2中的数据表明,较低的异常点比例给异常检测带来了挑战。该类别中的大多数属性与透明度 transparency有关,这表明Real3D - AD数据集非常适合涉及点云异常检测的任务。
3.2.3 所有样本的数据点分布情况箱线图
此外,如图6所示,箱线图表示了Real3D - AD数据集中所有样本的数据点分布情况。从图6的图示中可以得出两个结论。观察到点云内不同物品类别之间的点数变异性差异,显示出显著的不同。具体而言,训练样本提供了三维物体的完整原型,而测试样本仅从一侧进行扫描。因此,训练样本的数量远大于测试样本的数量。其次,可以观察到在每个测试集中,正常样本和异常样本之间的点值差异相对较小。
3.3 Real3D-AD and other datasets Real3D AD和其他数据集
表3中的结果表明,与MVTec 3D - AD [20]和Eyescandies [3]相比,Real3D - AD表现出更优越的性能,特别是在点分辨率、点密度和距离方面。
3.3.1 点分辨率和点精度高
Real3D - AD的平均点分辨率和密度分别为0.04mm和0.011mm,明显高于MVTec 3D - AD,优势因子为4.28和9。在精度方面同样如此。
3.3.2 全视角(无盲点)
此外,Real3D - AD系统受益于多视角扫描,消除了潜在的盲点,从而提高了其异常检测能力。因此,Real3D - AD更适合在点云异常检测中实现高精度,并且能够满足工业制造要求。
数据集 | MVTec 3D - AD | Eyescandies | Real 3D - AD(本文) |
---|---|---|---|
点分辨率 | 0.37mm | 不适用 | 0.04mm |
点精度 | 0.11mm | 不适用 | 0.011mm |
全视角(无盲点) | ✗ | ✗ | ✓ |
真实/合成 | 真实 | 合成 | 真实 |
4 Benchmark and Baseline 基准和基线
4.1 Problem Definition and Challenges 问题定义和挑战
4.1.1 Problem definition问题定义
ADBENCH - 3D设置可正式表述如下。
给定一组训练样本
T
=
{
t
i
}
i
=
1
N
\mathcal{T}=\{t_i\}_{i = 1}^N
T={ti}i=1N ,其中
{
t
1
,
t
2
,
⋯
,
t
N
}
\{t_1, t_2, \cdots, t_N\}
{t1,t2,⋯,tN} 为训练原型。在Real3D - AD中,每个类别的原型数量有限(
≤
4
\leq 4
≤4 )。此外,
T
n
\mathcal{T}_n
Tn 属于某一特定类别
c
j
∈
C
c_j \in \mathcal{C}
cj∈C ,其中
C
\mathcal{C}
C 表示所有类别的集合。
在测试时,给定来自目标类别
c
j
c_j
cj 的正常或异常样本,异常检测(AD)模型应预测测试的三维物体是否为异常,并且如果预测结果为异常,需定位异常区域。
4.1.2 Training and test samples visualization 训练和测试样本可视化
图7展示了训练原型和测试数据集。
图7中蓝色框内标记为(a)-(d)的图像代表训练原型。训练原型经过360°扫描,确保不存在可视受限区域。
橙色框内(e)-(h)的图像代表测试样本。为模拟现实世界条件,测试样本仅从一侧进行扫描。
因为我们希望遵循实际应用场景:生产线的工人或质量检测设备会随机检查产品的一侧,通过将扫描数据与原型进行匹配来识别缺陷。
4.1.3 Challenges 挑战
以下是三个挑战。
(1) 每个类别的训练数据集仅包含正常原型,即不存在物体级或点级标注。
(2) 训练集可用的正常原型较少。在ADBENCH - 3D设置中,训练原型少于四个。
(3) 测试集和训练集样本之间存在不可避免的差异,需要加以解决。
4.2 ADBENCH-3D
4.2.1 Metrics 评估指标
我们使用为三维异常检测设计的评估指标进行标准化评估,包括受试者工作特征曲线下面积(AUROC) 和精确率 - 召回率曲线下面积(AUPR/AP)。指标的详细信息在补充材料中介绍。
4.2.2 Methods 方法
如第2节所讨论,三维异常检测方法主要聚焦于RGBD异常检测(RGB+D深度图像),而非点异常检测任务。
因此,我们采用BTF [15]和M3DM [28]作为基准方法。针对我们提出的Real3D - AD数据集,我们构建了一个系统基准ADBENCH - 3D,如表4所示。
4.2.2.1 BTF
①在表4中,BTF(Raw) 指的是我们仅将坐标特征(xyz)纳入BTF流程。
②BTF(FPFH) 表示我们将快速点特征直方图(FPFH)[24]纳入BTF流程。
- BTF(Raw) :BTF(Raw)是BTF方法的一种应用形式,只把点云数据里每个点的坐标信息(用xyz表示三维空间中的位置 )提取出来,输入到BTF方法的流程中去进行后续计算和分析,以此来检测异常 。比如在检测一个零件点云数据是否存在异常时,只依据点的空间位置信息,不考虑其他特征。
- BTF(FPFH) :这是BTF方法的另一种应用形式。FPFH(Fast Point Feature Histogram ,快速点特征直方图)是一种描述点云局部几何特征的方式。BTF(FPFH)是将点云数据中每个点的FPFH特征提取出来,融入BTF方法的流程中。FPFH能更全面反映点云局部形状、方向等几何特性,相比只使用坐标信息,这种方式能让BTF方法利用更丰富的点云特征进行异常检测。例如在分析一个复杂机械部件点云时,除了点的位置,还能依据局部形状等特征判断是否有异常。
4.2.2.2 M3DM:忽略RGB分支
①M3DM(PointMAE) 表示使用PointMAE [19]作为点云特征提取器,并且忽略RGB分支的M3DM。
②M3DM(PointBERT) 表示使用PointBert [34]作为点云特征提取器并忽略RGB分支的M3DM。
4.2.2.3 PatchCore
①PatchCore+FPFH表示我们用FPFH替换ResNet [14]作为特征提取器,并将其融入PathCore [21]。
②PatchCore+FPFH+Raw表示我们使用FPFH和每个点云的坐标特征,并将它们注入PatchCore流程。
③PatchCore+PointMAE表示我们采用PointMAE特征提取器并融入核心架构。
4.2.3 Toolkit 工具包
为补充ADBENCH - 3D,我们发布了一个全面的工具包,作为高精度点云异常检测的入门代码。
该工具包实现了8种核心方法,涵盖:
(1)数据预处理、
(2)评估脚本和指标,
以及(3)可视化工具包。
由于篇幅限制,该工具包已上传至GitHub。
4.3 Reg3D-AD
4.3.1 Reg3D-AD方法
4.3.1.1 受PatchCore启发的基于配准的检测方法
受PatchCore [22]启发,我们开发了一种基于配准的通用型点云异常检测方法(Reg3D - AD),如图8所示,该方法极大地满足了Real3D - AD的需求。Reg3D - AD 利用双特征表示方法来保留训练原型的局部和全局特征。
训练流程(蓝色箭头 )
- 左下角多个蓝色海星代表训练用的原型点云数据(Prototype point clouds )。这些点云数据输入到特征提取器(Feature Extractor )中。
- 特征提取器分别提取坐标特征(橙色三角形表示 )和PointMAE特征(蓝色方块表示 ),并将这些提取的特征存储到记忆库(Memory bank (M) )中。记忆库存储了训练数据中最具代表性的特征,用于后续对比。
测试流程(黄色箭头 )
- 左上角的蓝色海星代表测试点云,与黄色海星(原型点云 )先进行配准(Registration )操作,确保两者在同一坐标系下便于比较。
- 配准后的测试点云同样经过特征提取器,得到测试样本的坐标特征和PointMAE特征(即Features of test samples )。
- 将测试样本的特征与记忆库中的特征进行搜索和比较,根据它们之间的距离计算异常分数(Search and compute anomaly score )。最终识别出异常部分(Anomaly part ,图中黄色海星上的红点标识 )。
训练时从训练集提取特征并采样到记忆库;推理时以原型校准测试样本,提取测试样本特征与记忆库对比,依据特征距离计算每个点的异常分数。
4.3.1.2 两种特征:xyz坐标值和PointMAE特征
在考虑的数据集中存在两种不同特征。
①第一种特征与每个点云的坐标值有关,即x、y和z值。
②第二种特征是PointMAE特征,它从整体上对训练原型进行表征。
坐标值包含了单个点的定位属性,而PointMAE模型则侧重于获取训练原型的全面表征。
4.3.1.3 记忆库:Coreset采样技术控制大小
训练阶段旨在从所有正常原型中建立一个邻域敏感特征库,作为记忆库。在将新功能纳入记忆库之前,我们采用Coreset采样技术来控制记忆库的大小。
4.3.2 Anomaly score calculation 异常分数计算
4.3.2.1 对点云中的某个点怎么计算异常分数:某个点的局部特征的异常分数;某个点的全局特征的异常分数
在计算异常分数之前,测试的三维物体需要通过随机抽样一致算法(RANSAC)[2]进行配准。配准完成后,如果至少有一个点云是异常的,那么该测试三维物体将被预测为异常,并且通过点级特征和全局特征的平均分数来计算点级异常分割。
具体来说,利用局部特征库
M
l
\mathcal{M}^l
Ml和全局特征库
M
g
\mathcal{M}^g
Mg ,测试物体
x
t
e
s
t
x^{test}
xtest 的对象级异常分数
s
s
s 由局部特征异常分数
s
l
s^l
sl 和全局特征异常分数
s
g
s^g
sg 的平均值计算得出。
4.3.2.2 某个点的局部特征的异常分数
4.3.2.2.1 普通版本
局部特征异常分数是测试三维物体的点级特征
P
(
x
t
e
s
t
)
\mathcal{P}(x^{test})
P(xtest) 与其在
M
l
\mathcal{M}^l
Ml 中最邻近特征
m
l
∗
m^{l*}
ml∗ 之间的最大分数
s
l
∗
s^{l*}
sl∗ :
m
t
e
s
t
,
∗
=
arg
max
m
t
e
s
t
∈
P
(
x
t
e
s
t
)
min
m
l
∈
M
l
∥
m
t
e
s
t
−
m
l
∥
2
,
m
l
∗
=
arg
min
m
l
∈
M
l
∥
m
t
e
s
t
−
m
l
∥
2
(
1
)
m^{test,*}=\underset{m^{test}\in\mathcal{P}(x^{test})}{\arg\max}\underset{m^l\in\mathcal{M}^l}{\min}\|m^{test}-m^l\|_2, \quad m^{l*}=\underset{m^l\in\mathcal{M}^l}{\arg\min}\|m^{test}-m^l\|_2 \quad (1)
mtest,∗=mtest∈P(xtest)argmaxml∈Mlmin∥mtest−ml∥2,ml∗=ml∈Mlargmin∥mtest−ml∥2(1)
s
l
∗
=
∥
m
t
e
s
t
,
∗
−
m
l
∗
∥
2
(
2
)
s^{l*}=\|m^{test,*}-m^{l*}\|_2\quad (2)
sl∗=∥mtest,∗−ml∗∥2(2)
4.3.2.2.2 增强异常检测模型的鲁棒性:重加权方法
为增强异常检测模型的鲁棒性,PatchCore采用一种重要的重新加权方法[18]来调整异常分数:
s
l
=
(
1
−
exp
∥
m
t
e
s
t
,
∗
−
m
∗
∥
2
∑
m
∈
N
b
(
m
∗
)
exp
∥
m
t
e
s
t
,
∗
−
m
∥
2
)
⋅
s
l
∗
(
3
)
s^l=\left(1 - \frac{\exp\|m^{test,*}-m^*\|_2}{\sum_{m\in\mathcal{N}_b(m^*)}\exp\|m^{test,*}-m\|_2}\right)\cdot s^{l*} \quad (3)
sl=(1−∑m∈Nb(m∗)exp∥mtest,∗−m∥2exp∥mtest,∗−m∗∥2)⋅sl∗(3)
其中,
N
b
(
m
∗
)
\mathcal{N}_b(m^*)
Nb(m∗) 表示在
M
\mathcal{M}
M 中测试块特征
m
∗
m^*
m∗ 的
b
b
b 个最邻近块特征。
4.3.2.3 某个点的全局特征的异常分数
全局特征异常分数 s g s^g sg 的计算与 s l s^l sl 类似,通过全局特征记忆库 M g \mathcal{M}^g Mg 实现。
4.3.2.4 某个点的总的异常分数
最后,每个点云的总异常分数 s t = ( s l + s g ) / 2 s^t=(s^l + s^g)/2 st=(sl+sg)/2 。
4.3.3 Analysis of ADBENCH-3D ADBENCH - 3D分析
表4中的结果表明,大多数三维异常检测算法无法满足Real3D - AD的要求。回顾4.1节中概述的设置,该设置与小样本异常检测的设置有显著相似性。这是因为每个类别的训练数据集仅包含4个原型。当前大多数先进的三维异常检测算法并非专门为小样本场景下的异常检测任务设计。
为应对这一挑战,优化原型数据的利用并确保获取的点云数据不受空间相对位置影响至关重要。从表4中可以清楚地看出,我们的基准方法Reg3D - AD在Real3D - AD数据集上的表现优于先进的三维异常检测方法。
5 Limitations & Potential negative societal impacts 局限性与潜在的社会负面影响
5.1 Limitation 局限性
5.1.1 数据的问题
5.1.1.1 仅包含点云
基于我们的工作,仍有广泛的改进和探索空间。例如,我们的数据来自三维扫描仪,仅包含空间信息,这在工业生产中是常见做法。
5.1.1.2 可以RGB+点云
然而,通过校准和拼接多个RGBD图像或使用建模软件渲染,可能获取标准化的RGB点云模板。RGB点云模板可同时应用于RGB图像(二维)异常检测和点云(三维)异常检测。
5.1.1.3 可以+深度图像
此外,我们的数据可通过控制渲染条件从不同角度生成深度图像,从而实现从该角度进行异常检测,这一点尚待探索。
5.1.2 基准方法的问题
再者,尽管我们的基准方法优于现有的异常检测方法,但由于测试点云边缘被截断,它仍易受误检影响。因此,期望有更先进的模型能更有效地解决这些问题。
5.1.3 总结:全视角点云异常检测的首次尝试
我们的工作作为全视角点云异常检测的首次尝试,将激发该领域的进一步探索。
5.2 Potential negative societal impacts 潜在的社会负面影响
我们的数据通过扫描工业产品获得,因此不会产生负面社会影响。
6 Conclusion 结论
在这项工作中,我们提出Real3D - AD数据集,以研究高精度点云异常检测问题,旨在助力先进机械加工和精密制造领域的缺陷识别研究。
Real3D - AD是目前最为出色的高精度三维工业异常检测数据集,包含1254个高分辨率三维对象(每个对象包含不少于一百万个点云 ),涵盖12种具有实际应用价值的物体。在点云分辨率(0.0010 - 0.0015毫米 )、360°全方位覆盖以及精准原型方面,Real3D - AD超越了现有的三维异常检测数据集。
此外,我们对Real3D - AD数据集进行了全面评估,指出目前缺乏能够实现高精度点云异常检测应用的基线方法。我们提出了一种通用的基于配准的三维异常检测技术(Reg3D - AD)以及保留局部特征和全局表征的三维特征耦合单元。在Real3D - AD数据集上的实验表明,Reg3D - AD的性能显著优于其他次优方法。
7 Acknowledgments 致谢
本工作得到了国家重点研发计划(项目编号:2022YFF1202903 )和国家自然科学基金(项目编号:62122035、62206122 )的资助。
8 附录
A Experiment setup 实验设置
由于GPU内存的限制,我们对基准方法进行了下采样。
①对于BTF [15]方法,我们以100:1的比例对训练样本的点进行采样并存储,对于测试样本,我们以500:1的比例对点进行采样。在计算出每个点的异常分数后,我们使用k近邻(KNN)算法[13]来估计未采样点的异常分数。
②对于M3DM [28]方法,我们将点变换器(point transformer )的点组数量设置为16384。
③在基于PatchCore [22]的实验中,我们统一将记忆库的大小设置为10000。
B Experiments 实验
B.1 对比试验
由于篇幅限制,我们在正文中仅给出了物体级的AUROC结果,此处我们在表5中展示物体级的AU - PR结果,在表6中展示点级的AUROC结果,在表7中展示点级的AU - PR结果。
在所有方法中,就点级AUROC而言,我们的Reg3D - AD仅略逊于BTF(Raw);就点级AUPR而言,Reg3D - AD仅略逊于我们自行设计的PatchCore( FPFH +Raw )。
总体而言,Reg3D - AD仍是可靠的基线方法。
B.2 消融实验
此外,我们调整了不同的记忆库大小和PointMAE点组数量进行对比。如表8所示,较大的PointMAE点组数量可提升模型性能,而较大的记忆库大小并不总是能带来性能提升。