自动摘要: 链接: DeepLearningfor3DPointClouds:ASurvey[https://gith ……..
链接:
Deep Learning for 3D Point Clouds: A Surveyhttps://github.com/QingyongHu/SoTA-Point-Cloud
介绍
随着3D采集技术的快速发展,3D传感器越来越容易获得,价格也越来越低,包括各种类型的3D扫描仪、激光雷达和RGB-D相机(如Kinect、RealSense和苹果深度相机)[1]。这些传感器采集的3D数据可以提供丰富的几何、形状和尺度信息[2],[3]。3D 数据与 2D 图像相辅相成,为机器更好地了解周围环境提供了机会。3D数据在自动驾驶、机器人、遥感和医疗等不同领域有着广泛的应用[4]。3D 数据通常可以用不同的格式表示,包括深度图像、点云、网格和体素网格。作为一种常用的格式,点云表示在 3D 空间中保留了原始几何信息,而无需任何离散化。因此,它是许多场景理解相关应用(如自动驾驶和机器人)的首选表示。最近,深度学习技术在许多研究领域占据主导地位,例如计算机视觉、语音识别和自然语言处理。然而,基于3D点云的深度学习仍面临数据集规模小、三维点云高维、非结构化等重大挑战[5]。在此基础上,本文重点分析了用于处理三维点云的深度学习方法。点云上的深度学习越来越受到关注,尤其是在过去五年中。还发布了几个公开可用的数据集,例如ModelNet [6], ScanObjectNN [7], ShapeNet [8], PartNet [9],S3DIS [10], ScanNet [11], Semantic3D [12], ApolloCar3D[13],和KITTI 视觉基准套件 [14], [15]. 这些数据集进一步推动了3D点云深度学习的研究,越来越多的方法被提出来解决与点云处理相关的各种问题,包括3D形状分类、3D目标检测和跟踪、3D点云分割、3D点云配准、6自由度位姿估计和3D重建[16]。 [17], [18].关于3D数据深度学习的调查也很少,如[19]、[20]、[21]、[22]。然而,我们的论文是第一个专门关注点云理解的深度学习方法的论文。图 1 显示了现有 3D 点云深度学习方法的分类。
图1:3D点云的深度学习方法分类
与现有文献相比,这项工作的主要贡献可以总结如下:
- 据我们所知,这是第一篇全面涵盖几个重要点云理解任务的深度学习方法的调查论文,包括 3D 形状分类、3D 目标检测和跟踪以及 3D 点云分割。
- 与现有的综述[19],[20]相反,我们特别关注3D点云的深度学习方法,而不是所有类型的3D数据。
- 本文介绍了点云深度学习的最新进展。因此,它为读者提供了最先进的方法。
- 对现有方法的综合比较,提供了几个公开可用的数据集(例如,在表2、3、4、5中),并提供了简短的总结和有见地的讨论。
本文的结构如下。 第 2 节介绍了相应任务的数据集和评估指标。第 3 节回顾了 3D 形状分类的方法。第 4 节介绍了用于 3D 目标检测和跟踪的现有方法。第5节回顾了点云分割的方法,包括语义分割、实例分割和部分分割。最后,第6节结束了本文。我们还提供定期更新的项目页面:https://github.com/QingyongHu/SoTA-Point-Cloud。
背景
数据
已经收集了大量的数据集来评估深度学习算法在不同3D点云应用中的性能。表 1 列出了一些用于 3D 形状分类、3D 目标检测和跟踪以及 3D 点云分割的典型数据集。特别是,还总结了这些数据集的属性。
- 对于3D形状分类,有两种类型的数据集:
- synthetic datasets(合成数据集) [6], [8] and real-world datasets(真实世界数据集)[7]、[11]。
- synthetic datasets中的对象是完整的,没有任何遮挡和背景。相比之下,and real-world datasets中的对象在不同级别被遮挡,并且某些对象被背景噪声污染。
- synthetic datasets(合成数据集) [6], [8] and real-world datasets(真实世界数据集)[7]、[11]。
- 对于3D目标检测和跟踪,有两种类型的数据集:
- indoor scenes (室内场景)[11], [25] 和 outdoor urban scene(室外城市场景)[14]、[28]、[30]、[31]
- indoor scenes 的点云要么从密集深度图转换或从 3D 网格采样。outdoor urban scene专为自动驾驶而设计,其中物体在空间上分离良好,这些点云稀疏。
- indoor scenes (室内场景)[11], [25] 和 outdoor urban scene(室外城市场景)[14]、[28]、[30]、[31]
- 对于3D点云分割,这些数据集由不同类型的传感器获取,
- 包括 Mobile Laser Scanners (MLS)(移动激光扫描仪)[15]、[34]、[36]、 Aerial Laser Scanners (ALS) (航空激光扫描仪)[33]、[38]、static Terrestrial Laser Scanners (TLS)(静态地面激光扫描仪)[12]、RGB-D cameras(RGBD相机)[11]和 other 3D scanners (其他3D扫描仪)[10]。
这些数据集可用于开发应对各种挑战的算法,包括相似的干扰项、形状不完整和类不平衡。
用于3D形状分类的数据集
名称和参考 | 年 | 样本 | 类 | 训练集 | 测试集 | 类型 | Representation |
---|---|---|---|---|---|---|---|
McGill Benchmark [23] | 2008 | 456 | 19 | 304 | 152 | Synthetic | Mesh |
Sydney Urban Objects [24] | 2013 | 588 | 14 | - | - | Real-World | Point Clouds |
ModelNet10 [6] | 2015 | 4899 | 10 | 3991 | 605 | Synthetic | Mesh |
ModelNet40 [6] | 2015 | 12311 | 40 | 9843 | 2468 | Synthetic | Mesh |
ShapeNet [8] | 2015 | 51190 | 55 | - | - | Synthetic | Mesh |
ScanNet [11] | 2017 | 12283 | 17 | 9677 | 2606 | Real-World | RGB-D |
ScanObjectNN [7] | 2019 | 2902 | 15 | 2321 | 581 | Real-World | Point Clouds |
用于3D物体检测和跟踪的数据集
名称和参考 | 年 | 场景 | 类别 | 注释的框架 | 3D Boxes | 场景类型 | 传感器 |
---|---|---|---|---|---|---|---|
KITTI [14] | 2012 | 22 | 8 | 15K | 200K | Urban (Driving) | RGB & LiDAR |
SUN RGB-D [25] | 2015 | 47 | 37 | 5K | 65K | Indoor | RGB-D |
ScanNetV2 [11] | 2018 | 1.5K | 18 | - | - | Indoor | RGB-D & Mesh |
H3D [26] | 2019 | 160 | 8 | 27K | 1.1M | Urban (Driving) | RGB & LiDAR |
Argoverse [27] | 2019 | 113 | 15 | 44K | 993K | Urban (Driving) | RGB & LiDAR |
Lyft L5 [28] | 2019 | 366 | 9 | 46K | 1.3M | Urban (Driving) | RGB & LiDAR |
A*3D [29] | 2019 | - | 7 | 39K | 230K | Urban (Driving) | RGB & LiDAR |
Waymo Open [30] | 2020 | 1K | 4 | 200K | 12M | Urban (Driving) | RGB & LiDAR |
nuScenes [31] | 2020 | 1K | 23 | 40K | 1.4M | Urban (Driving) | RGB & LiDAR |
用于3D点云分割的数据集
名称和参考 | 年 | 顶点 | 类别 | #Scans | 空间大小 | RGB | 传感器 |
---|---|---|---|---|---|---|---|
Oakland [32] | 2009 | 1.6M | 5(44) | 17 | - | N/A | MLS |
ISPRS [33] | 2012 | 1.2M | 9 | - | - | N/A | ALS |
Paris-rue-Madame [34] | 2014 | 20M | 17 | 2 | - | N/A | MLS |
IQmulus [35] | 2015 | 300M | 8(22) | 10 | - | N/A | MLS |
ScanNet [11] | 2017 | - | 20(20) | 1513 | 8×4×4 | Yes | RGB-D |
S3DIS [10] | 2017 | 273M | 13(13) | 272 | 10×5×5 | Yes | Matterport |
Semantic3D [12] | 2017 | 4000M | 8(9) | 15/15 | 250×260×80 | Yes | TLS |
Paris-Lille-3D [36] | 2018 | 143M | 9(50) | 3 | 200×280×30 | N/A | MLS |
SemanticKITTI [15] | 2019 | 4549M | 25(28) | 23201/20351 | 150×100×10 | N/A | MLS |
Toronto-3D [37] | 2020 | 78.3M | 8(9) | 4 | 260×350×40 | Yes | MLS |
DALES [38] | 2020 | 505M | 8(9) | 40 | 500×500×65 | N/A | ALS |
表 1:用于 3D 形状分类、3D 对象检测和跟踪以及 3D 点云分割的现有数据集摘要。 用于评估的类数和带注释的类数(如括号所示)。
评估指标
已经提出了不同的评估指标来测试这些方法是否适用于各种点云理解任务。
- 对于 3D 形状分类,总体精度 (OA) 和平均等级精度 (mAcc) 是最常用的性能标准。
- “OA”表示所有测试实例的平均精度,“mAcc”表示所有形状类的平均精度。
- 对于 3D 目标检测,平均精度 (AP) 是最常用的标准。它被计算为精确召回率曲线下的面积。
- 精确度(Precision)、成功率(Success Rate)通常用于评估 3D 单对象跟踪器的整体性能。平均
- 目标跟踪精度 (AMOTA) 和平均多目标跟踪精度 (AMOTP) 是评估 3D 多目标跟踪最常用的标准。
- 对于 3D 点云分割,OA、平均交并比 (mIoU) 和平均类精度 (mAcc) [10]、[12]、[15]、[36]、[37] 是最常用的性能评估标准。特别是,平均精度(mAP)[39]也用于3D点云的实例分割。
3D形状分类
此任务的方法通常首先学习每个点的嵌入,然后使用聚合方法从整个点云中提取全局形状嵌入。最终通过将全局嵌入馈送到几个全连接层中来实现分类。根据神经网络输入的数据类型,现有的三维形状分类方法可以分为基于多视图的方法、基于体积的方法和基于点的方法。图 2 说明了几种里程碑方法。基于多视图的方法将非结构化点云投影到 2D 图像中,而基于体积的方法将点云转换为 3D 体积表示。然后,利用完善的2D或3D卷积网络实现形状分类。相比之下,基于点的方法直接处理原始点云,无需任何体素化或投影。基于点的方法则不引入显性信息丢失,并变得越来越流行。需要注意的是,本文主要关注基于点的方法,但也包括一些基于多视图和基于体积的完整性方法。
图 2:最相关的基于深度学习的 3D 形状分类方法的时间顺序概述。
基于多视图的方法
这些方法首先将 3D 形状投影到多个视图中并提取视图特征,然后融合这些特征以进行准确的形状分类。如何将多个视图特征聚合为可判别的全局表示是这些方法面临的关键挑战。MVCNN[40]是一项开创性的工作,它只是将多视图特征最大化为一个全局描述符。但是,max-pooling 仅保留特定视图中的最大元素,从而导致信息丢失。MHBN [41]通过协调的双线性池化来整合局部卷积特征,以产生一个紧凑的全局描述符。Yang 等.[42] 首先利用关系网络来利用一组视图的相互关系(例如,区域-区域关系和视图-视图关系),然后聚合这些视图以获得可判别的 3D 对象表示。此外,还提出了其他几种方法[43]、[44]、[45]、[46]来提高识别精度。与之前的方法不同,Wei等[47]在View-GCN中使用了有向图,将多个视图视为grpah节点。然后,将局部图卷积、非局部消息传递和选择性视图采样组成的核心层应用于构建的图中,最后,使用所有级别的最大池化节点特征的串联来形成全局形状描述符。
基于体素的方法
这些方法通常将点云体素化为 3D 网格,然后在体积表示上应用 3D 卷积神经网络 (CNN) 进行形状分类。Maturana等[48]引入了一种名为VoxNet的体积占用网络来实现鲁棒的3D物体识别。Wu 等.[6] 提出了一种基于卷积深度信念的 3D ShapeNets,用于学习各种 3D 形状的点分布(由体素网格上二元变量的概率分布表示)。尽管已经取得了令人鼓舞的性能,但这些方法无法很好地扩展到密集的 3D 数据,因为计算和内存占用会随着分辨率的增加而增加。为此,引入了分层和紧凑的结构(如八叉树),以降低这些方法的计算和内存成本。OctNet [49]首先使用混合网格-八叉树结构对点云进行分层划分,该结构表示沿规则网格具有多个浅八叉树的场景。使用位字符串表示对八叉树的结构进行高效编码,并通过简单的算术对每个体素的特征向量进行索引。Wang等[50]提出了一种基于Octree的CNN用于3D形状分类。在最细叶八分频数中采样的 3D 模型的平均法向量被输入网络,并将 3D-CNN应用于3D形状表面占据的八分之一空间。与基于密集输入网格的基准网络相比,OctNet在处理高分辨率点云时需要更少的内存和运行时间。Le等人提出了一种名为PointGrid的混合网络,它将点和网格表示集成在一起,以实现高效的点云处理。在每个嵌入体素网格单元内采样了一个恒定数量的点,这使得网络能够通过使用3D卷积提取几何细节。Ben-Shabat等人将输入点云转换为3D网格,并通过3D改进的Fisher向量(3DmFV)方法来表示这些网格,然后通过传统的CNN架构学习全局表示。
基于点的方法
根据用于各点特征学习的网络架构,该类别中的方法可分为逐点MLP、基于卷积、基于图、基于分层数据结构的方法和其他典型方法。
逐点MLP方法
这些方法使用多个共享的多层感知器(MLP)对每个点进行独立建模,然后使用对称聚合函数聚合全局特征,如图3所示。
图 3:PointNet 的轻量级架构。n 表示输入点的数量,M 表示每个点的学习特征的维度
典型的 2D 图像深度学习方法由于其固有的数据不规则性而无法直接应用于 3D 点云。作为一项开创性的工作,PointNet[5] 直接将点云作为其输入,并实现了具有对称函数的排列不变性。具体来说,PointNet 使用多个 MLP 层独立学习逐点特征,并使用最大池化层提取全局特征。通过对所有深度集合[53]表示求和并应用非线性变换来实现排列不变性。由于PointNet[5]中每个点的特征都是独立学习的,因此无法捕获点之间的局部结构信息。 因此,Qi等[54]提出了一种分层网络PointNet++,用于捕获每个点的邻域的精细几何结构。作为PointNet++层次结构的核心,其抽象级别集合层由三层组成:采样层、分组层和基于PointNet的学习层。通过堆叠多个设置的抽象级别,PointNet++ 从局部几何结构中学习特征,并逐层抽象局部特征。由于其简单性和较强的表示能力,许多网络都是基于PointNet开发的[5]。Mo-Net [55] 的架构类似于 PointNet [5],但它需要一组有限的矩作为其输入。Point Attention Transformers(点注意力变换器)(PAT)[56]通过每个点自身的绝对位置和相对于相邻点的相对位置来表示每个点,并通过MLP学习高维特征。然后,利用群体随机注意力(GSA)捕获点间关系,开发排列不变、可微分、可训练的端到端Gumbel子集采样(GSS)层来学习层次特征。PointWeb [57] 基于 PointNet++ [54],利用局部邻域的上下文,通过自适应特征调整 (AFA) 来改进点特征。Duan 等.[58] 提出了一种结构关系网络(SRN),以使用MLP学习不同局部结构之间的结构关系特征。Lin等[59]通过为PointNet学习的输入空间和函数空间构建查找表来加速推理过程。ModelNet 和 ShapeNet 数据集的推理时间比中等计算机上的 PointNet 快 1.5 ms,快 32 倍。SRINet[60]首先投射点云以获得旋转不变表示,然后利用基于PointNet的骨干网提取全局特征,利用基于图的聚合提取局部特征。在PointASNL中,Yan等人。[61]利用自适应采样(AS)模块自适应调整最远点采样(FPS)算法采样点的坐标和特征,并提出一个局部-非局部(L-NL)模块来捕获这些采样点的局部和长距离依赖关系。
基于卷积的方法
与在二维网格结构(例如图像)上定义的核相比,由于点云的不规则性,三维点云的卷积核难以设计。根据卷积核的类型,目前的3D卷积方法可以分为连续卷积方法和离散卷积方法,如图4所示。
图 4:点的局部邻居的连续和离散卷积图示。(a) 表示在点 p 处以 qcenter 为中心的局部邻域;(b) 和 (c) 分别表示 3D 连续卷积和离散卷积。
3D 连续卷积方法:
这些方法在连续空间上定义卷积核,其中相邻点的权重与相对于中心点的空间分布相关。3D 卷积可以解释为给定子集的加权和。RSConv作为RS-CNN的核心层[62],以某点周围的局部点子集作为输入,通过学习从低级关系(如欧几里得距离和相对位置)到局部子集中点间高级关系的映射,使用MLP实现卷积。在[63]中,核元素是在单位球体中随机选择的。然后使用基于MLP的连续函数在核元素的位置和点云之间建立关系。在DensePoint[64]中,卷积被定义为具有非线性激活子的单层感知器(SLP)。特征是通过连接所有先前层的特征来学习的,以充分利用上下文信息。Thomas等[65]提出了使用一组可学习核点的3D点云的刚性和可变形核点卷积(KPConv)算子。ConvPoint[66]将卷积核分为空间部分和特征部分。从单位球体中随机选择空间部分的位置,并通过简单的MLP学习加权函数。一些方法还使用现有算法来执行卷积。在PointConv[67]中,卷积被定义为连续3D卷积相对于重要性采样的蒙特卡罗估计。卷积核由加权函数(通过 MLP 层学习)和密度函数(通过核密度估计和 MLP 层学习)组成。为了提高内存和计算效率,将三维卷积进一步简化为矩阵乘法和二维卷积两种运算。在相同的参数设置下,其内存消耗可减少约64倍。在MCCNN [68]中,卷积被认为是一种蒙特卡罗估计过程,依赖于样本的密度函数(通过MLP实现)。然后使用泊松盘采样来构建点云层次结构。该卷积算子可用于在两种或多种采样方法之间执行卷积,并且可以处理不同的采样密度。在SpiderCNN[69]中,SpiderConv被提议将卷积定义为阶跃函数和在k个最近邻上定义的泰勒展开的乘积。阶跃函数通过对局部测地线距离进行编码来捕获粗略几何,泰勒展开通过在立方体的顶点处插值任意值来捕获固有的局部几何变化。此外,还提出了一种基于径向基函数的三维点云卷积网络PCNN[70]。已经提出了几种方法来解决三维卷积网络面临的旋转等变问题。Esteves等[71]提出了3D球面CNN来学习3D形状的旋转等变表示,它以多值球函数为输入。通过在球谐域中锚点对频谱进行参数化来获得局域卷积滤波器。张量场网络[72]被提出将点卷积运算定义为可学习的径向函数和球谐波的乘积,球谐波与三维旋转、平移和排列局部等变。文献[73]中的卷积基于球面互相关定义,并使用广义快速傅里叶变换(FFT)算法实现。SPHNet[74]基于PCNN,通过在体积函数卷积过程中加入球谐核来实现旋转不变性。为了加快计算速度,Flex-Convolution[75]将卷积核的权重定义为k个最近邻的标准标量乘积,可以使用CUDA进行加速。实验结果表明,该算法在参数较少、内存消耗较低的小数据集上具有较强的竞争力。
离散卷积方法:
这些方法在正则网格上定义卷积核,其中相邻点的权重与相对于中心点的偏移量相关。Hua等[76]将非均匀的三维点云转换为均匀网格,并在每个网格上定义卷积核。其中 3D 内核为落入同一网格的所有点分配相同的权重。对于给定点,将根据上一图层计算位于同一格网上的所有相邻点的平均要素。然后,对所有格网的平均要素进行加权和求和,以产生当前图层的输出。Lei 等人。[77] 通过将一个 3D 球形相邻区域划分为多个体积箱,并将每个箱与可学习的加权矩阵相关联,定义了一个球形卷积核。一个点的球面卷积核的输出由其相邻点的加权激活值平均值的非线性激活决定。在GeoConv[78]中,基于六个基础,明确地建模了点与其怕邻点之间的几何关系,每个基础方向上的边缘持征由与该方向相关的可字习矩阵独立加仅。然后,根据拾笔点与其邻点形成的角度,聚合这些与方向相关的待征。对于给定点,其当前层的待征被定义为给定点及其前一相邻边缘持征的总和。
PointCNN [79]通过χ-conv变换(通过MLP实现)将输入点转换为潜在的规范顺序,然后对变换后的特征应用典型的卷积算子。Mao等[80]通过对相邻离散卷积核权坐标进行点特征插值,提出了一种插值卷积算子InterpConv来测量输入点云与核权坐标之间的几何关系。Zhang等. [81]提出了一种RIConv算子来实现旋转不变性,该算子将低级旋转不变几何特征作为输入,然后通过简单的分箱方法将卷积转换为一维。A-CNN [82]通过循环查询点每个环上的邻域数组来定义环形卷积,并学习局部子集中相邻点之间的关系。为了降低3D CNN的计算和内存成本,Kumawat等[83]提出了一种基于3D短期傅里叶变换(STFT)的整流局部相位体积(ReLPV)模块来提取3D局部邻域中的相位,从而显著减少了参数的数量。在SFCNN[84]中,点云被投射到具有对齐球坐标的规则二十面体晶格上。然后,通过卷积-最大池化-卷积结构对球形晶格顶点及其相邻点连接的特征进行卷积。SFCNN 可抵抗旋转和扰动。
基于图的方法
基于图的网络将点云中的每个点视为图的一个顶点,并根据每个点的相邻点为图生成有向边。然后在空间域或光谱域中进行特征学习[85]。典型的基于图的网络如图所示。
图 5:基于图的网络图示。
基于空间域的图方法
这些方法定义空间域的操作(例如卷积和池化)。具体而言,卷积通常通过MLP在空间邻居上实现,并采用池化,通过聚合每个点邻居的信息来生成新的粗图。每个折点处的要素通常被分配有坐标、激光强度或颜色,而每条边上的要素通常被分配两个连接点之间的几何属性。
Simonovsky等[85]将每个点视为图的一个顶点,并通过有向边将每个顶点与其所有相邻点连接起来。然后,使用滤波生成网络(例如MLP)提出EdgeConditioned卷积(ECC)。采用最大池化来聚合邻域信息,并基于VoxelGrid[86]实现图粗化。在DGCNN[87]中,图是在特征空间中构建的,并在网络的每一层之后动态更新。作为EdgeConv的核心层,MLP作为每条边的特征学习函数,将通道对称聚合应用于与每个点的相邻边缘特征相关联。此外,LDGCNN [88]去除了变换网络,并将DGCNN [87]中不同层的分层特征联系起来,以提高其性能并减小模型大小。该文还提出了一种端到端的无监督深度自编码器网络(即FoldingNet [89]),该网络使用矢量化局部协方差矩阵和点坐标的串联作为其输入。受Inception [90]和DGCNN [87]的启发,Hassani和Haley [91]提出了一种无监督的多任务自动编码器来学习点和形状特征。编码器是基于多尺度图构造的。该解码器采用聚类、自监督分类和重构三种无监督任务构建,这些任务与多任务损失联合训练。Liu等. [92]提出了一种基于图卷积的动态点集聚模块(DPAM),将点集聚过程(采样、分组和池化)简化为一个简单的步骤,通过集聚矩阵和点特征矩阵的乘法来实现。基于PointNet架构,通过堆叠多个DPAM构建分层学习架构。与PointNet++[54]的层次策略相比,DPAM动态地利用了语义空间中的点之间的关系和点的聚集。为了利用局部几何结构,KCNet[93]基于核相关性学习特征。具体来说,一组表征局部结构几何类型的可学习点被定义为核。然后,计算核与给定点的邻域之间的亲和力。在G3D[94]中,卷积被定义为邻接矩阵多项式的变体,池化被定义为拉普拉斯矩阵和顶点矩阵乘以粗化矩阵。ClusterNet[95]利用严格的旋转不变模块从每个点的k个最近邻中提取旋转不变特征,并基于无监督的团聚分层聚类方法构造点云的层次结构[96]。每个子集群中的特征首先通过 EdgeConv 块学习,然后通过 max pooling 进行聚合。针对当前数据结构化方法(如FPS、邻点查询等)耗时的问题,Xu等[97]提出将基于体素的方法和基于点的方法的优点结合起来,以提高计算效率。在ModelNet分类任务上的实验表明,所提出的Grid-GCN网络的计算效率平均比其他模型快5X。
基于光谱域的图方法
这些方法方法将卷积定义为谱滤波,其实现为图上的信号与图拉普拉斯矩阵的特征向量相乘[98],[99]。RGCNN [100] 通过将每个点与点云中的所有其他点连接起来来构建图形并更新每层中的拉普拉斯矩阵图。为了使相邻顶点的特征更加相似,在损失函数中添加了图信号平滑性先验。为了解决数据图拓扑结构多样化带来的挑战,AGCN [101]中的SGC-LL层利用可学习的距离度量来参数化图上两个顶点之间的相似性。从图中获得的邻接矩阵使用高斯核和学习距离进行归一化。HGNN [102]通过在超图上应用谱卷积来构建超边缘卷积层。上述方法对完整的图形进行操作。为了利用局部结构信息,Wang等[103]提出了一个端到端的谱卷积网络LocalSpecGCN,用于处理局部图(由k个最近邻构建)。该方法不需要对图拉普拉斯矩阵和图粗化层次结构进行任何离线计算。在PointGCN[104]中,基于来自点云的k个最近邻构建图,并使用高斯核对每条边进行加权。卷积滤波器被定义为图谱域中的切比雪夫多项式。全局池化和多分辨率池化用于捕获点云的全局和局部特征。Pan 等人。[105] 通过对光谱域中的k个最近相邻图应用卷积,提出了3DTI-Net。几何变换的不变性是通过从相对欧几里得距离和方向距离中学习来实现的。
基于层次数据结构的方法
这些网络是基于不同的分层数据结构(例如,octree 和 kd-tree)构建的。在这些方法中,点特征是沿树从叶节点到根节点分层学习的。Lei等[77]提出了一种使用球形卷积核的八叉树引导的CNN(如第3.3.2节所述)。网络的每一层对应于八叉树的一层,并在每一层应用一个球形卷积核。当前层中神经元的值被确定为上一层中所有相关子节点的平均值。与基于八叉树的OctNet [49]不同,Kd-Net [106]使用多个K-d树构建,每次迭代时具有不同的拆分方向。遵循自下而上的方法,使用 MLP 根据其子节点的表示来计算非叶节点的表示。根节点的特征(描述整个点云)最终被馈送到全连接层以预测分类分数。请注意,Kd-Net 根据节点的拆分类型在每个级别共享参数。3DContextNet [107] 使用标准的平衡 K-d 树来实现特征学习和聚合。在每个级别上,首先通过基于局部线索(对局部区域中点之间的相互依赖关系进行建模)和全局上下文线索(对一个位置相对于所有其他位置的关系进行建模)的 MLP 学习点特征。然后,使用 MLP 从其子节点计算非叶节点的特征,并通过最大池化进行聚合。对于分类,重复上述过程,直到到达根节点。通过进行点到节点k最近邻搜索[108]来构建SO-Net网络的层次结构。具体说来, 修正排列不变自组织映射(SOM)用于对点云的空间分布进行建模。单个点要素是通过一系列全连接图层从归一化的点到节点坐标中学习的。SOM 中每个节点的特征都是使用通道最大池化从与该节点关联的点要素中提取的。然后使用类似于 PointNet [5] 的方法从节点特征中学习最终特征。与PointNet++[54]相比,SOM的层次结构更加高效,并充分探索了点云的空间分布。
其他方法
此外,还提出了许多其他方案。RBFNet[113]通过聚合具有可学习核位置和大小的稀疏分布径向基函数(RBF)核的特征,显式地模拟了点的空间分布。3DPointCapsNet [112] 使用逐点 MLP 和卷积层学习与点无关的特征,并使用多个最大池化层提取全局潜在表示。基于无监督动态路由,学习强大的代表性潜胶囊。Qin等[116]提出了一种用于3D点云表示的端到端无监督域自适应网络PointDAN。为了捕捉点云的语义特性,提出了一种自监督的点云重构方法,点云的各个部分被随机重排[117]。Li 等.[118] 提出了一个自动增强框架 PointAugment,用于自动优化和增强点云样本以进行网络训练。具体来说,每个输入样本的形状变换和逐点位移是自动学习的,并且通过交替优化和更新其预兆和分类器的可学习参数来训练网络。受形状上下文[119]的启发,Xie等[109]提出了一种ShapeContextNet架构,将亲和点点选择和紧凑特征聚合结合到使用点积自注意力的软对齐操作中[120]。为了处理3D点云中的噪声和遮挡,Bobkov等[121]将手工制作的基于点对函数的4D旋转不变描述符输入到4D卷积神经网络中。Prokudin 等人。[122] 首先从单位球中随机采样一个分布均匀的基点集,然后将点云编码为到基点集的最小距离。因此,点云被转换为具有相对较小的固定长度的矢量。然后,可以使用现有的机器学习方法处理编码的表示。RCNet[115]利用标准RNN和2D CNN构建了用于3D点云处理的置换不变网络。首先将点云划分为平行光束,并沿特定维度进行排序,然后将每个光束馈入共享的RNN。学习到的特征被进一步输入到高效的 2D CNN 中,以实现分层特征聚合。为了增强其描述能力,提出RCNet-E沿不同的分区和排序方向对多个RCNet进行集成。Point2Sequences [114] 是另一个基于 RNN 的模型,用于捕获点云局部区域中不同区域之间的相关性。它将从多个尺度的局部区域学习的特征视为序列,并将这些序列从所有局部区域馈送到基于 RNN 的编码器-解码器结构中,以聚合局部区域特征。有几种方法还可以从 3D 点云和 2D 图像中学习。在PVNet[110]中,从多视图图像中提取的高级全局特征通过嵌入网络投射到点云的子空间中,并通过软注意力掩码与点云特征融合。最后,对融合特征和多视图特征采用残差连接进行形状识别。后来,PVRNet[111]进一步提出通过关系评分模块来利用3D点云与其多个视图之间的关系。基于关系得分,增强了原有的 2D 全局视图特征,实现了点-单视图融合和点-多视图融合。
总结
ModelNet10/40 [6] 数据集是最常用的 3D 形状分类数据集。表 2 显示了不同基于点的网络所取得的结果。可以得出几个观察结果:
- 逐点 MLP 网络通常用作其他类型网络学习逐点特征的基本构建块。
- 作为一种标准的深度学习架构,基于卷积的网络可以在不规则的 3D 点云上实现卓越的性能。 对于不规则数据,应更加关注离散卷积网络和连续卷积网络。
- 由于其固有的处理不规则数据的强大能力,基于图的网络近年来越来越受到关注。然而,将光谱域中基于图的网络扩展到各种图结构仍然具有挑战性。
方法 | 输入 | 参数量(M) | ModelNet40 (OA) | ModelNet40 (mAcc) | ModelNet10 (OA) | ModelNet10 (mAcc) | |
---|---|---|---|---|---|---|---|
逐点MLP | |||||||
PointNet [5] | 顶点 | 3.48 | 89.2% | 86.2% | - | - | |
PointNet++ [54] | 顶点 | 1.48 | 90.7% | - | - | - | |
MO-Net [55] | 顶点 | 3.1 | 89.3% | 86.1% | - | - | |
Deep Sets [53] | 顶点 | - | 87.1% | - | - | - | |
PAT [56] | 顶点 | - | 91.7% | - | - | - | |
PointWeb [57] | 顶点 | - | 92.3% | 89.4% | - | - | |
SRN-PointNet++ [58] | 顶点 | - | 91.5% | - | - | - | |
JUSTLOOKUP [59] | 顶点 | - | 89.5% | 86.4% | 92.9% | 92.1% | |
PointASNL [61] | 顶点 | - | 92.9% | - | 95.7% | - | |
PointASNL [61] | 顶点+法线 | - | 93.2% | - | 95.9% | - | |
基于卷积 | Pointwise-CNN [76] | 顶点 | - | 86.1% | 81.4% | - | - |
PointConv [67] | 顶点+法线 | - | 92.5% | - | - | - | |
MC Convolution [68] | 顶点 | - | 90.9% | - | - | - | |
SpiderCNN [69] | 顶点+法线 | - | 92.4% | - | - | - | |
PointCNN [79] | 顶点 | 0.45 | 92.2% | 88.1% | - | - | |
Flex-Convolution [75] | 顶点 | - | 90.2% | - | - | - | |
PCNN [70] | 顶点 | 1.4 | 92.3% | - | 94.9% | - | |
Boulch [63] | 顶点 | - | 91.6% | 88.1% | - | - | |
RS-CNN [62] | 顶点 | - | 93.6% | - | - | - | |
Spherical CNNs [71] | 顶点 | 0.5 | 88.9% | - | - | - | |
GeoCNN [78] | 顶点 | - | 93.4% | 91.1% | - | - | |
Ψ-CNN [77] | 顶点 | - | 92.0% | 88.7% | 94.6% | 94.4% | |
A-CNN [82] | 顶点 | - | 92.6% | 90.3% | 95.5% | 95.3% | |
SFCNN [84] | 顶点 | - | 91.4% | - | - | - | |
SFCNN [84] | 顶点+法线 | - | 92.3% | - | - | - | |
DensePoint [64] | 顶点 | 0.53 | 93.2% | - | 96.6% | - | |
KPConv rigid [65] | 顶点 | - | 92.9% | - | - | - | |
KPConv deform [65] | 顶点 | - | 92.7% | - | - | - | |
InterpCNN [80] | 顶点 | 12.8 | 93.0% | - | - | - | |
ConvPoint [66] | 顶点 | - | 91.8% | 88.5% | - | - | |
基于图方法 | ECC [85] | 顶点 | - | 87.4% | 83.2% | 90.8% | 90.0% |
KCNet [93] | 顶点 | 0.9 | 91.0% | - | 94.4% | - | |
DGCNN [87] | 顶点 | 1.84 | 92.2% | 90.2% | - | - | |
LocalSpecGCN [103] | 顶点+法线 | - | 92.1% | - | - | - | |
RGCNN [100] | 顶点+法线 | 2.24 | 90.5% | 87.3% | - | - | |
LDGCNN [88] | 顶点 | - | 92.9% | 90.3% | - | - | |
3DTI-Net [105] | 顶点 | 2.6 | 91.7% | - | - | - | |
PointGCN [104] | 顶点 | - | 89.5% | 86.1% | 91.9% | 91.6% | |
ClusterNet [95] | 顶点 | - | 87.1% | - | - | - | |
Hassani et al. [91] | 顶点 | - | 89.1% | - | - | - | |
DPAM [92] | 顶点 | - | 91.9% | 89.9% | 94.6% | 94.3% | |
Grid-GCN [97] | 顶点 | - | 93.1% | 91.3% | 97.5% | 97.4% | |
基于层次结构方法 | KD-Net [106] | 顶点 | 2.0 | 91.8% | 88.5% | 94.0% | 93.5% |
SO-Net [108] | 顶点 | - | 90.9% | 87.3% | 94.1% | 93.9% | |
SCN [109] | 顶点 | - | 90.0% | 87.6% | - | - | |
A-SCN [109] | 顶点 | - | 89.8% | 87.4% | - | - | |
3DContextNet [107] | 顶点 | - | 90.2% | - | - | - | |
3DContextNet [107] | 顶点+法线 | - | 91.1% | - | - | - | |
其他方法 | 3DmFV-Net [52] | 顶点 | 4.6 | 91.6% | - | 95.2% | - |
PVNet [110] | 顶点+多视图 | - | 93.2% | - | - | - | |
PVRNet [111] | 顶点+多视图 | - | 93.6% | - | - | - | |
3DPointCapsNet [112] | 顶点 | - | 89.3% | - | - | - | |
DeepRBFNet [113] | 顶点 | 3.2 | 90.2% | 87.8% | - | - | |
DeepRBFNet [113] | 顶点+法线 | 3.2 | 92.1% | 88.8% | - | - | |
Point2Sequences [114] | 顶点 | - | 92.6% | 90.4% | 95.3% | 95.1% | |
RCNet [115] | 顶点 | - | 91.6% | - | 94.7% | - | |
RCNet-E [115] | 顶点 | - | 92.3% | - | 95.6% | - |
3D对象检测及跟踪
在本节中,我们将回顾现有的 3D 目标检测、3D 目标跟踪和 3D 场景流估计方法。
3D对象检测
典型的 3D 对象检测器将场景的点云作为其输入,并在每个检测到的对象周围生成一个定向 3D 边界框,如图 6 所示。与图像中的目标检测方法[123]类似,3D目标检测方法可分为两类:基于区域建议的方法和单次方法。图 7 介绍了几种里程碑方法。
图6:3D物体检测示意图。(a)和(b)最初分别出现在[124]和[125]中。
图 7:最相关的基于深度学习的 3D 目标检测方法的时间顺序概述
方法 | 形态(雷达/图片) | 速度(fps) | 汽车 (E/简单) | 汽车(M/中等) | 汽车 (H/困难) | 行人 (E/简单) | 行人 (M/中等) | 行人(H/困难) | 骑单车人(E/简单) | 骑单车人 (M/中等) | 骑单车人 (H/困难) | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
基于区域提议 | 多视图方法 | MV3D [4] | L & I | 2.8 | 74.97 | 63.63 | 54.00 | - | - | - | - | - | - |
AVOD [126] | L & I | 12.5 | 76.39 | 66.47 | 60.23 | 36.10 | 27.86 | 25.76 | 57.19 | 42.08 | 38.29 | ||
ContFuse [127] | L & I | 16.7 | 83.68 | 68.78 | 61.67 | - | - | - | - | - | - | ||
MMF [128] | L & I | 12.5 | 88.40 | 77.43 | 70.22 | - | - | - | - | - | - | ||
SCANet [39] | L & I | 11.1 | 79.22 | 67.13 | 60.65 | - | - | - | - | - | - | ||
RT3D [131] | L & I | 11.1 | 23.74 | 19.14 | 18.86 | - | - | - | - | - | - | ||
基于分割的方法 | IPOD [132] | L & I | 5.0 | 80.30 | 73.04 | 68.73 | 55.07 | 44.37 | 40.05 | 71.99 | 52.23 | 46.50 | |
PointRCNN [133] | L | 10.0 | 86.96 | 75.64 | 70.70 | 47.98 | 39.37 | 36.01 | 74.96 | 58.82 | 52.53 | ||
PointRGCN [134] | L | 3.8 | 85.97 | 75.73 | 70.60 | - | - | - | - | - | - | ||
PointPainting [135] | L & I | 2.5 | 82.11 | 71.70 | 67.08 | 50.32 | 40.97 | 37.87 | 77.63 | 63.78 | 55.89 | ||
STD [138] | L | 12.5 | 87.95 | 79.71 | 75.09 | 53.29 | 42.47 | 38.35 | 78.69 | 61.59 | 55.30 | ||
基于视锥的方法 | F-PointNets [139] | L & I | 5.9 | 82.19 | 69.79 | 60.59 | 50.53 | 42.15 | 38.08 | 72.27 | 56.12 | 49.01 | |
SIFRNet [140] | L & I | - | - | - | - | - | - | - | - | - | - | ||
PointFusion [142] | L & I | - | 77.92 | 63.00 | 53.27 | 33.36 | 28.04 | 23.38 | 49.34 | 29.42 | 26.98 | ||
RoarNet [143] | L & I | 10.0 | 83.71 | 73.04 | 59.16 | - | - | - | - | - | - | ||
F-ConvNet [144] | L & I | 2.1 | 87.36 | 76.39 | 66.69 | 52.16 | 43.38 | 38.80 | 81.98 | 65.07 | 56.54 | ||
Patch Refinement [145] | L | 6.7 | 88.67 | 77.20 | 71.82 | - | - | - | - | - | - | ||
其它方法 | 3D IoU loss [146] | L | 12.5 | 86.16 | 76.50 | 71.39 | - | - | - | - | - | - | |
Fast Point R-CNN [147] | L | 16.7 | 84.80 | 74.59 | 67.27 | - | - | - | - | - | - | ||
PV-RCNN [148] | L | 12.5 | 90.25 | 81.43 | 76.82 | - | - | - | - | - | - | ||
VoteNet [124] | L | - | - | - | - | - | - | - | - | - | - | ||
Feng et al. [149] | L | - | - | - | - | - | - | - | - | - | - | ||
ImVoteNet [150] | L & I | - | - | - | - | - | - | - | - | - | - | ||
Part-Aˆ2 [151] | L | 12.5 | 87.81 | 78.49 | 73.51 | - | - | - | - | - | - | ||
单阶段方法 | 基于BEV的方法 | PIXOR [129] | L | 28.6 | - | - | - | - | - | - | - | - | - |
HDNET [152] | L | 20.0 | - | - | - | - | - | - | - | - | - | ||
BirdNet [153] | L | 9.1 | 13.53 | 9.47 | 8.49 | 12.25 | 8.99 | 8.06 | 16.63 | 10.46 | 9.53 | ||
基于离散化的方法 | VeloFCN [154] | L | 1.0 | - | - | - | - | - | - | - | - | - | |
3D FCN [155] | L | <0.2 | - | - | - | - | - | - | - | - | - | ||
Vote3Deep [156] | L | - | - | - | - | - | - | - | - | - | - | ||
3DBN [157] | L | 7.7 | 83.77 | 73.53 | 66.23 | - | - | - | - | - | - | ||
VoxelNet [136] | L | 2.0 | 77.47 | 65.11 | 57.73 | 39.48 | 33.69 | 31.51 | 61.22 | 48.36 | 44.37 | ||
SECOND [158] | L | 26.3 | 83.34 | 72.55 | 65.82 | 48.96 | 38.78 | 34.91 | 71.33 | 52.08 | 45.83 | ||
MVX-Net [159] | L & I | 16.7 | 84.99 | 71.95 | 64.88 | - | - | - | - | - | - | ||
PointPillars [137] | L | 62.0 | 82.58 | 74.31 | 68.99 | 51.45 | 41.92 | 38.89 | 77.10 | 58.65 | 51.92 | ||
SA-SSD [160] | L | 25.0 | 88.75 | 79.79 | 74.16 | - | - | - | - | - | - | ||
基于点的方法 | 3DSSD [161] | L | 25.0 | 88.36 | 79.57 | 74.55 | 54.64 | 44.27 | 40.23 | 82.48 | 64.10 | 56.90 | |
其他方法 | LaserNet [162] | L | 83.3 | - | - | - | - | - | - | - | - | - | |
LaserNet++ [163] | L & I | 26.3 | - | - | - | - | - | - | - | - | - | ||
OHS-Dense [164] | L | 33.3 | 88.12 | 78.34 | 73.49 | 47.14 | 39.72 | 37.25 | 79.09 | 62.72 | 56.76 | ||
OHS-Direct [164] | L | 33.3 | 86.40 | 77.74 | 72.97 | 51.29 | 44.81 | 41.13 | 77.70 | 63.16 | 57.16 | ||
Point-GNN [125] | L | 1.7 | 88.33 | 79.47 | 72.29 | 51.92 | 43.77 | 40.14 | 78.60 | 63.48 | 57.08 |
表 3:KITTI 测试 3D 检测基准上的比较 3D 目标检测结果。汽车的 3D 边界框 IoU 阈值为 0.7,行人和骑自行车者的阈值为 0.5。模态是激光雷达(L)和图像(I)。“E”、“M”和“H”分别表示简单、中等和困难类别的对象。为简单起见,我们省略了值后面的“%”。符号“-”表示结果不可用。
表 4:KITTI 测试 BEV 检测基准上的比较 3D 物体检测结果。汽车的 3D 边界框 IoU 阈值为 0.7,行人和骑自行车者的阈值为 0.5。模态是激光雷达(L)和图像(I)。“E”、“M”和“H”分别表示简单、中等和困难类别的对象。为简单起见,我们省略了值后面的“%”。符号“-”表示结果不可用。
基于区域提议的方法
这些方法首先提出包含对象的几个可能区域(也称为提议),然后提取区域特征以确定每个建议的类别标签。根据其对象建议生成方法,这些方法可以进一步分为三类:基于多视图的方法、基于分割的方法和基于视锥体的方法。
图8:三类基于区域提案的3D目标检测方法的典型网络。从上到下:(a)基于多视图的方法,(b)基于分割的方法和(c)基于视锥体的方法。
基于多视图的方法
这些方法融合从不同视图图(例如,LiDAR 前视图、鸟瞰图 (BEV) 和图像)中提出建议特征,以获得 3D 旋转框,如图 8(a) 所示。这些方法的计算成本通常很高。
Chen等[4] 从BEV地图生成了一组高精度的3D候选框,并将它们投影到多个视图(如LiDAR前视图图像、RGB图像)的特征图上。然后,他们将这些区域特征从不同角度组合起来,以预测定向的 3D 边界框,如图 8(a) 所示。尽管该方法在仅用 300 个提案即可在 0.25 的交集 (IoU) 下实现了 99.1% 的召回率,但其速度对于实际应用来说太慢了。随后,从两个方面发展了几种改进多视角三维目标检测方法的方法。首先,已经提出了几种方法可以有效地融合不同模态的信息。Ku等[126]提出了一个基于多模态融合的区域建议网络,生成对小物体具有较高召回率的3D提议。他们首先使用裁剪和调整大小操作从 BEV 和图像视图中提取大小相等的特征,然后使用元素均值池化融合这些特征。Liang 等.[127] 利用连续卷积实现不同分辨率的图像和 3D LiDAR 特征图的有效融合。具体来说,他们为BEV空间中的每个点提取了最接近的对应图像特征,然后使用双线性插值,通过将图像特征投影到BEV平面中来获得密集的BEV特征图。实验结果表明,密集BEV特征图比离散图像特征图和稀疏LiDAR特征图更适合3D目标检测。Liang等[128]提出了一种用于端到端训练的多任务多传感器3D目标检测网络。具体来说,利用多个任务(例如,2D 目标检测、地面估计和深度完成)来帮助网络学习更好的特征表示。进一步利用学习到的跨模态表示来产生高度准确的目标检测结果。实验结果表明,该方法在2D、3D和BEV检测任务上取得了显著的改进,在TOR4D基准测试上优于以往最先进的方法[129],[130]。
其次,研究了不同的方法来提取输入数据的鲁棒表示。Lu 等.[39] 通过引入空间通道注意力 (SCA) 模块来探索多尺度上下文信息,该模块捕获场景的全局和多尺度上下文并突出显示有用的特征。他们还提出了一个扩展空间解采样(ESU)模块,通过组合多尺度的低级特征来获得具有丰富空间信息的高级特征,从而生成可靠的三维对象提议。虽然可以实现更好的检测性能,但上述多视图方法需要较长的运行时间,因为它们对每个提案执行特征池。随后,Zeng等[131]使用pre-RoI池化卷积来提高[4]的效率。具体来说,他们将大多数卷积操作移到了 RoI 池化模块之前。因此,对所有对象建议执行一次 RoI 卷积。实验结果表明,该方法可以以11.1fps的速度运行,比MV3D快5倍[4]。
基于分割的方法
这些方法首先利用现有的语义分割技术去除大部分背景点,然后在前景点上生成大量高质量的提案以节省计算量,如图8(b)所示。与多视图方法[4]、[126]、[131]相比,这些方法实现了更高的物体召回率,更适合于物体高度遮挡和拥挤的复杂场景。Yang等[132]使用二维分割网络来预测前景像素,并将其投影到点云中以去除大部分背景点。然后,他们在预测的前景点上生成提案,并设计了一个名为 PointsIoU 的新标准,以减少提案的冗余和模糊性。继[132]之后,Shi等[133]提出了一个PointRCNN框架。具体来说,他们直接分割3D点云以获得前景点,然后融合语义特征和局部空间功能来生产高质量的 3D box。继[133]的区域提议网络(RPN)阶段之后,Jesus等[134]提出了一项利用图卷积网络(GCN)进行3D目标检测的开创性工作。具体来说,介绍了两个模块来使用图卷积来优化对象建议。第一个模块 R-GCN 利用提案中包含的所有点来实现每个提案的特征聚合。第二个模块 C-GCN 融合了来自所有提案的每帧信息,通过利用上下文来回归准确的对象框。Sourabh 等人。[135] 将点云投射到基于图像的分割网络的输出中,并将语义预测分数附加到点上。涂漆点被送入现有的检测器[133]、[136]、[137],以实现显著的性能改进。Yang 等. [138] 将每个点与球形锚点相关联。然后,使用每个点的语义分数来删除多余的锚点。因此,与以前的方法[132],[133]相比,该方法以更低的计算成本实现了更高的召回率。此外,该文还提出了PointsPool层来学习提案中内部点的紧凑特征,并引入了并行IoU分支,以提高定位精度和检测性能。
基于视锥体的方法
这些方法首先利用现有的2D目标检测器生成目标的2D候选区域,然后为每个2D候选区域提取3D视锥体方案,如图8(c)所示。尽管这些方法可以有效地提出 3D 对象的可能位置,但分步管道使其性能受到 2D 图像检测器的限制。F-PointNets [139]是这方面的开创性工作。它为每个 2D 区域生成一个视锥体提议,并应用 PointNet [5](或 PointNet++ [54])来学习每个 3D 视锥体的点云特征,以进行模态 3D 框估计。在后续工作中,Zhao et al. [140] 提出了一个Point-SENet模块来预测一组比例因子,这些比例因子进一步用于自适应地突出有用的特征并抑制无信息的特征。他们还将PointSIFT[141]模块集成到网络中,以捕获点云的方向信息,从而实现了强大的形状缩放鲁棒性。与F-PointNets[139]相比,该方法在室内和室外数据集上都取得了显著的改进[14],[25]。Xu等[142]利用2D图像区域及其对应的视锥点来精确地回归3D box。为了融合点云的图像特征和全局特征,他们提出了一个全局融合网络,用于直接回归箱形角位置。他们还提出了一个密集的融合网络,用于预测每个角的逐点偏移。Shin等[143]首先从二维图像中估计了物体的二维边界框和三维姿态,然后提取了多个几何上可行的候选物体。这些 3D 候选对象被输入到 box 回归网络中,以预测准确的 3D 对象box。Wang等[144]为每个2D区域生成了沿视锥轴的视锥体序列,并应用PointNet[5]提取了每个视锥体的特征。对视锥体级特征进行重构以生成 2D 特征图,然后将其输入到全卷积网络中进行 3D box估计。该方法在基于2D图像的方法中实现了最先进的性能,并在KITTI官方排行榜上名列前茅。Johannes 等人。[145] 首先在BEV地图上获得初步的检测结果,然后根据BEV预测提取小点子集(也称为部分区域)。应用局部细化网络来学习部分区域的局部特征,以预测高精度的三维边界框。
其他方法。
Zhou等[146]将两个3D旋转边界框的IoU集成到几个最先进的检测器[133]、[137]、[158]中,以达到一致的性能改进。Chen 等.[147]提出了一种两阶段网络架构,同时使用点云和体素表示。首先,将点云进行体素化并馈送到 3D 骨干网络以产生初始检测结果。其次,进一步利用初始预测的内点特征进行箱体细化;虽然这种设计在概念上很简单,但它实现 以16.7 fps 的速度性能。Shi等[148]提出了PointVoxel-RCNN(PV-RCNN)来利用3D卷积网络和基于PointNet的集合抽象来学习点云特征。具体来说,首先对输入点云进行体素化,然后输入到3D稀疏卷积网络中,以生成高质量的提议。然后,通过体素集抽象模块将学习到的体素特征编码为一小组关键点。此外,他们还提出了一个关键点到网格的ROI抽象模块,以捕获丰富的上下文信息以进行盒子细化。实验结果表明,该方法的性能明显优于以往方法,在KITTI 3D检测基准的Car类中排名第一。受Hough基于投票的2D目标检测器的启发,Qi等[124]提出了VoteNet,直接从点云中对物体的虚拟中心点进行投票,并通过聚合投票特征生成一组高质量的3D对象提议。VoteNet 明显优于以前仅使用几何信息的方法,并实现了在两个大型室内基准测试(即 ScanNet [11] 和 SUN RGB-D [25])上的最新性能。然而,对于部分遮挡的物体,虚拟中心点的预测是不稳定的。此外,Feng 等人。[149] 增加了方向向量的辅助分支,以提高虚拟中心点和三维候选框的预测精度。此外,还构建了提议之间的 3D 对象-对象关系图,以强调对准确目标检测有用的特征。Qi等[150]提出了一种ImVoteNet检测器,将2D目标检测线索(例如,几何和语义/纹理线索)融合到3D投票流程中。Shi等[151]受到3D对象的真实值框提供物体内部部件的准确位置的观察的启发,提出了Part-A Net,它由部分感知阶段和部分聚集阶段组成。部件感知阶段应用具有稀疏卷积和稀疏反卷积的类似 UNet [165] 的网络来学习逐点特征,以预测和粗略生成对象内部部件位置。部件聚合阶段采用 RoI 感知池化来聚合预测的部件位置以进行box细化。
单阶段方法
这些方法使用单级网络直接预测类概率并回归对象的 3D 边界框。它们不需要区域提案生成和后处理。因此,它们可以高速运行。根据输入数据的类型,单次方法可分为三类:基于BEV的方法、基于离散化的方法和基于点的方法。
基于 BEV 的方法:
这些方法主要以 BEV 表示作为输入。Yang等[129]将具有等间距单元的场景的点云离散化,并以类似的方式对反射率进行编码,从而产生正则表示。然后应用全卷积网络 (FCN) 网络来估计物体的位置和航向角。该方法在以 28.6 fps 的速度运行时优于大多数单次拍摄方法(包括 VeloFCN [154]、3D-FCN [155] 和 Vote3Deep [156])。后来,Yang et al.[152] 利用高清 (HD) 地图提供的几何和语义先验信息来提高 [129] 的鲁棒性和检测性能。具体来说,他们从高精地图中获取地面点的坐标,然后使用相对于地面的距离进行BEV表示,以弥补道路坡度引起的平移方差。另外他们将二元道路掩模与沿通道维度的 BEV 表示连接起来,以专注于移动物体。由于高清地图并非随处可见,他们还提出了一个在线地图预测模块,用于从单个LiDAR点云中估计地图先验。这种地图感知方法在TOR4D [129]、[130]和KITTI [14]数据集上的表现明显优于其基线。然而,其对不同密度点云的泛化性能较差。为了解决这个问题,Beltr’ an et al.[153]提出了一种归一化图,以考虑不同LiDAR传感器之间的差异。归一化地图是一个 2D 网格,其分辨率与 BEV 地图相同,它对每个单元格中包含的最大点数进行编码。结果表明,该归一化图显著提高了基于BEV的探测器的泛化能力。
基于离散化的方法
这些方法将将点云转换为规则的离散表示,然后应用 CNN 来预测对象的类别和 3D 框。Li等[154]提出了第一种使用FCN进行3D目标检测的方法。 他们将点云转换为2D点图,并使用2D FCN来预测对象的边界框和置信度。后来,他们[155]将点云离散化为具有长、宽、高和通道维度的4D张量,并将基于2D FCN的检测技术扩展到3D域进行3D目标检测。与[154]相比,基于3D FCN的方法[155]在精度上获得了超过20%的增益,但由于3D卷积和数据的稀疏性,不可避免地会消耗更多的计算资源。为了解决体素的稀疏性问题,Engelcke等人。[156] 利用以特征为中心的投票方案为每个非空体素生成一组选票,并通过累积选票获得卷积结果。它的计算复杂度与占用的体素数量成正比。Li 等.[157] 通过堆叠多个稀疏的 3D CNN 构建了 3D 骨干网络。该方法旨在通过充分利用体素的稀疏性来节省内存并加速计算。该 3D 骨干网络可提取丰富的 3D 特征用于目标检测,而不会带来沉重的计算负担。Zhou等[136]提出了一个基于体素的端到端可训练框架VoxelNet。他们将点云划分为等间距的体素,并将每个体素中的特征编码为4D张量。然后连接区域建议网络以生成检测结果。虽然其性能很强,但由于体素和 3D 卷积的稀疏性,这种方法非常慢。后来,Yan等[158]利用稀疏卷积网络[166]提高了[136]的推理效率。他们还提出了正弦误差角损失来解决 0 和 π 方向之间的模糊性。Sindagi等[159]通过在早期阶段融合图像和点云特征来扩展VoxelNet。具体来说,他们将[136]生成的非空体素投影到图像中,并使用预先训练的网络来提取每个投影体素的图像特征。然后,将这些影像要素与体素要素连接起来,以生成精确的 3D 框。与[136]、[158]相比,该方法可以有效地利用多模态信息来减少误报和假负。Lang等[137]提出了一种名为PointPillars的3D目标检测器。该方法利用 PointNet [5] 来学习以垂直列(支柱)组织点云的特征并编码学习的特征作为 Pesudo 图像。然后应用 2D 对象检测管道来预测 3D 边界框。PointPillars在平均精度(AP)方面优于大多数融合方法(包括MV3D [4]、RoarNet [143]和AVOD [126])。此外,PointPillars 可以在 3D 和 BEV KITTI [14] 基准测试中以 62 fps 的速度运行,使其非常适合实际应用。受到观察到点云的部分空间信息不可避免地在现有单次探测器逐渐缩小的特征图中丢失的启发,He 等人。[160] 提出了一种SA-SSD检测器,利用细粒度结构信息来提高定位精度。具体来说,他们首先将点云转换为张量,并将其输入骨干网络以提取多阶段特征。此外,采用点级监督辅助网络来引导特征学习点云结构。实验结果表明,SA-SSD在KITTI BEV检测基准测试中排名第一。
基于点的方法
这些方法直接将原始点云作为输入。3DSSD [161]是这方面的开创性工作。在[133]中,它引入了一种距离-FPS(D-FPS)和特征-FPS(F-FPS)的融合采样策略,以去除耗时的特征传播(FP)层和细化模块。然后,使用候选生成 (CG) 层来充分利用代表性点,这些代表性点被进一步馈送到带有 3D 中心度标签的无锚回归头中,以预测 3D 对象框。实验结果表明,3DSSD在保持25 fps速度的同时,性能优于两阶段基于点的方法PointRCNN [133]。
其他方法
Meyer等[162]提出了一种名为LaserNet的高效3D目标检测器。此方法预测每个点的边界框上的概率分布,然后将这些每点分布组合在一起以生成最终的 3D 对象框。此外,该文还以点云的密集距离视图(RV)表示为输入,并提出了一种快速均值偏移算法来降低每点预测产生的噪声。LaserNet 在 0 至 50 米范围内实现了最先进的性能,其运行时间明显低于现有方法。Meyer等[163]随后扩展了LaserNet[162],以利用RGB图像(例如50至70米)提供的密集纹理。具体来说,他们通过将 3D 点云投影到 2D 图像上来将 LiDAR 点与图像像素相关联,并利用这种关联将 RGB 信息融合到 3D 点中。他们还考虑将3D语义分割作为学习更好表示的辅助任务。该方法在保持LaserNet高效率的同时,在远距离(例如50至70米)目标检测和语义分割方面都取得了显着改善。Chen等[164]观察到孤立物体部位上的点可以提供有关物体位置和方向的丰富信息,受到这一观察的启发,提出了一种新的热点表示和第一个基于热点的无锚点检测器, 具体来说,首先将原始点云体素化,然后输入骨干网络以生成 3D 特征图。这些特征图用于对热点进行分类,同时预测 3D 边界框。注意,热点被分配在骨干网络的最后一个卷积层。实验结果表明,该方法具有相当的性能,并且对稀疏点云具有鲁棒性。Shi et el.[125] 提出了一种图神经网络Point-GNN,用于检测激光雷达点云中的3D物体。他们首先将输入点云编码为具有固定半径的近邻图,然后将该图输入Point-GNN以预测物体的类别和框。
3D 对象跟踪
给定一个物体在第一帧中的位置,物体跟踪的任务是估计它在随后的帧中的状态[167],[168]。由于3D目标跟踪可以使用点云中丰富的几何信息,因此有望克服基于图像的跟踪面临的几个缺点,包括遮挡、照明和比例变化。受到Siamese网络[169]在基于图像的目标跟踪方面的成功启发,Giancola等[170]提出了一种具有形状完成正则化的3D Siamese网络。具体来说,他们首先使用卡尔曼滤波器生成候选者,并使用形状正则化将模型和候选者编码为紧凑的表示。然后,余弦相似度用于搜索被跟踪对象在下一帧中的位置。该方法可以用作目标跟踪的替代方法,并且明显优于大多数2D目标跟踪方法,包括STAPLE[171]和SiamFC [169]。为了有效地搜索目标对象,Zarzar 等人。[172] 利用 2D Siamese 网络在 BEV 表示上生成大量粗略候选对象。然后,他们通过利用3D Siamese网络中的余弦相似性来完善候选者。该方法在精度(即18%)和成功率(即12%)方面都明显优于[170]。Simon等[173]提出了一种用于语义点云的3D目标检测和跟踪架构。他们首先通过融合2D视觉语义信息生成体素化语义点云,然后利用时间信息提高多目标跟踪的准确性和鲁棒性。此外,他们还引入了一个强大而简化的评估指标(即标度-旋转-平移分数 (SRF))来加速训练和推理。ComplexerYOLO实现了令人鼓舞的跟踪性能,并且仍然可以实时运行。此外,Qi 等人。[174]提出了点对盒(P2B)网络。他们将模板和搜索区域输入骨干以获得种子。搜索区域种子被增强为特定于目标的特征,然后通过 Hough 投票回归潜在的目标中心。实验结果表明,当以40 fps的速度运行时,P2B的性能比[170]高出10%以上。
3D 场景流估计
给定两个点云
和
,3D 场景流
, 使得
,图9 显示了两个KITTI点云之间的3D场景流,类似2d视觉中的光流估计,已经有几种方法开始从一系列点云中学习有用的信息(例如.3D场景流,空间临时信息).
图9:两个KITTI点云之间的3D场景流,最初如图[175]所示。点云 X、Y 和 X 的平移点云分别以红色、绿色和蓝色突出显示。
Liu等[175]提出FlowNet3D直接从一对连续的点云中学习场景流。FlowNet3D 通过流嵌入层学习点级特征和运动特征。但是,FlowNet3D 存在两个问题。首先,一些预测的运动矢量在方向上与真实值有很大不同。其次,FlowNet难以应用于非静态场景,尤其是以可变形物体为主的场景。为了解决这个问题,Wang等人。[176] 引入了余弦距离损失,以最小化预测与真实值之间的角度。此外,他们还提出了点到平面距离损失,以提高刚性和动态场景的准确性。实验结果表明,这两个损失项将FlowNet3D的准确率从57.85%提高到63.43%,加快并稳定了训练过程。顾等.[177] 提出了一种分层变面体晶格流网(HPLFlowNet)来直接估计大规模点云的场景流。提出了几个双边卷积层,用于从原始点云中恢复结构信息,同时降低计算成本。为了有效地处理序列点云,Fan和Yang[178]提出了PointRNN、PointGRU和PointLSTM网络和序列到序列模型,用于跟踪移动点。PointRNN、PointGRU 和 PointLSTM 能够捕获空间临时信息并对动态点云进行建模。同样,Liu et al.[179] 提出MeteorNet直接从动态点云中学习表示。此方法学习聚合来自时空相邻点的信息。进一步引入直接分组和链流分组来确定时间邻域。然而,上述方法的性能受到数据集规模的限制。Mittal等[180]提出了两种自监督损失,以在大型未标记数据集上训练他们的网络。他们的主要思想是,鲁棒的场景流估计方法应该在前向和后向预测中都有效。由于场景流注释不可用,预测变换点的最近邻点被视为 pesudo 真值。但是,真正的地面实况可能与最近的点不同。为了避免这个问题,他们计算了相反方向的场景流,并提出了一个循环一致性损失,以将点平移到原始位置。实验结果表明,这种自监督方法超越了基于监督学习的方法的最新性能。
总结
KITTI [14] 基准测试是自动驾驶领域最具影响力的数据集之一,在学术界和工业界都得到了广泛应用。表 3 和表 4 显示了不同探测器在 KITTI 测试 3D 基准测试中取得的结果。可以进行以下观察:
- 基于区域提案的方法是这两个类别中最常研究的方法,并且在 KITTI 测试 3D 和 BEV 基准测试中都大大优于单次方法。
- 现有的 3D 对象检测器有两个限制。首先,现有方法的远距离检测能力相对较差。其次,如何充分利用图像中的纹理信息仍然是一个悬而未决的问题。
- 多任务学习是 3D 目标检测的未来发展方向。例如,MMF [128]学习跨模态表示,通过合并多个任务来实现最先进的检测性能
- 3D目标跟踪和场景流估计是新兴的研究课题,自2019年以来逐渐受到越来越多的关注。
3D点云分割
3D 点云分割需要了解全局几何结构和每个点的细粒度细节。根据分割粒度,3D点云分割方法可分为语义分割(场景级)、实例分割(对象级)和部分分割(部分级)三大类。
3D语义分割
给定一个点云,语义分割的目标是根据点的语义含义将其分成几个子集。与 3D 形状分类的分类法(第 3 节)类似,语义分割有四种范式:基于投影、基于离散化、基于点和混合方法。基于投影和离散化方法的第一步是将点云转换为中间正则表示,例如多视图[181]、[182]、球面[183]、[184]、[185]、体积[166]、[186]、[187]、变面体晶格[188]、[189]和混合表示[190]、[191],如图11所示。然后将中间分割结果投影回原始点云。相比之下,基于点的方法直接在不规则的点云上工作。几种具有代表性的方法如图10所示。
图 10:最相关的基于深度学习的 3D 语义分割方法的时间顺序概述。
图 11:中间表示的图示。(a)和(b)最初分别出现在[182]和[183]中。a是多视图表示,b是球面表示,c是密集离散化表示,d是稀疏离散化表示。
基于投影的方法
这些方法通常将 3D 点云投影到 2D 图像中,包括多视图和球面图像。
多视图表示
Lawin等[181]首先将3D点云从多个虚拟相机视图投射到2D平面上。然后,使用多流 FCN 来预测合成图像的像素分数。通过将重新投影的分数融合到不同视图上,可以得到每个点的最终语义标签。类似地,Boulch等[182]首先使用多个相机位置生成了点云的几个RGB和深度快照。然后,他们使用2D分割网络对这些快照进行像素级标记。使用残差校正进一步融合从RGB和深度图像预测的分数[192]。Tatarchenko等[193]基于点云是从局部欧几里得曲面采样的假设,引入了用于密集点云分割的切线卷积。此方法首先将每个点周围的局部曲面几何投影到虚拟切平面。然后直接在曲面几何上操作切线卷积。该方法具有很强的可扩展性,能够处理具有数百万个点的大规模点云。总体而言,多视图分割方法的性能对视点选择和遮挡很敏感。此外,这些方法没有充分利用底层的几何和结构信息,因为投影步骤不可避免地会引入信息丢失。
球形表示
为了实现快速、准确的三维点云分割,Wu等[183]提出了一种基于SqueezeNet[194]和条件随机场(CRF)的端到端网络。为了进一步提高分割精度,引入SqueezeSegV2[184],利用无监督的域适应流水线解决域偏移问题。Milioto等[185]提出了用于LiDAR点云实时语义分割的RangeNet++。首先将2D距离图像的语义标签传输到3D点云中,进一步使用基于GPU的基于KNN的高效后处理步骤,以缓解离散化误差和推理输出模糊的问题。与单视图投影相比,球面投影保留了更多的信息,适用于LiDAR点云的标注。 但是,这种中间表示不可避免地会带来一些问题,例如离散化错误和遮挡。
基于离散化的方法
这些方法通常将点云转换为密集/稀疏离散表示,例如体素和稀疏的排列晶格。
密集离散化表示
这种方法通常将点云体素化为密集网格,然后利用标准的 3D 卷积。Huang等[195]首先将点云划分为一组占用体素,然后将这些中间数据馈送到全3D CNN进行体素分割。最后,体素内的所有点都分配了与体素相同的语义标签。该方法的性能受到体素粒度和点云分区导致的边界伪影的严重限制。此外,Tchapmi 等人。[196] 提出SEGCloud实现细粒度和全局一致的语义分割,该方法引入确定性三线性插值,将3D-FCNN[197]生成的粗体素预测映射回点云,然后使用全连接CRF(FCCRF)来加强这些推断的每点标签的空间一致性。Meng 等.[186] 引入了一种基于内核的插值变分自动编码器架构,用于对每个体素内的局部几何结构进行编码。对每个体素使用 RBF 来获取连续表示并捕获每个体素中点的分布,而不是二进制占用表示。VAE进一步用于将每个体素内的点分布映射到紧凑的潜在空间。然后,使用对称群和等价CNN来实现鲁棒的特征学习。由于 3D CNN 的良好可扩展性,基于体积的网络可以自由地在具有不同空间大小的点云上进行训练和测试。在全卷积点网络(FCPN)[187]中,首先从点云中分层抽象出不同层次的几何关系,然后使用三维卷积和加权平均池化来提取特征并纳入长程依赖关系。该方法可以处理大规模点云,在推理过程中具有良好的可扩展性。Dai等[198]提出了ScanComplete来实现3D扫描完成和每体素语义标记。该方法利用了全卷积神经网络的可扩展性,可以在训练和测试期间适应不同的输入数据大小。使用从粗到细的策略来分层提高预测结果的分辨率。总体而言,体积表示自然地保留了 3D 点云的邻域结构。其常规数据格式还允许直接应用标准 3D 卷积。这些因素导致了该领域性能的稳步提高。然而,体素化步骤本身就引入了离散化伪影和信息丢失。通常,高分辨率会导致高内存和计算成本,而低分辨率会导致细节丢失。在实践中,选择合适的网格分辨率并非易事。
稀疏离散化表示
体素表示自然是稀疏的,因为非零值的数量只占很小的百分比。因此,在空间稀疏数据上应用密集卷积神经网络是低效的。为此,Graham 等人。[166] 提出了基于索引结构的子流形稀疏卷积网络。这种方法通过将卷积的输出限制为仅与占用的体素相关,从而显着降低了内存和计算成本。同时,其稀疏卷积也可以控制提取特征的稀疏性。这种子流形稀疏卷积适用于高维和空间稀疏数据的高效处理。此外,Choy等人。[199] 提出了一种名为MinkowskiNet的4D时空卷积神经网络,用于3D视频感知。该文提出一种广义稀疏卷积法,用于有效处理高维数据。进一步应用三边-稳态条件随机场来强制一致性。另一方面,Su等[188]提出了基于双边卷积层(BCL)的稀疏格子网络(SPLATNet)。该方法首先将原始点云插值到稀疏排列晶格上,然后应用BCL对稀疏晶格的占用部分进行卷积。然后将滤波后的输出插值回原始点云。此外,该方法允许对多视图图像和点云进行灵活的联合处理。此外,Rosu等[189]提出了LatticeNet来实现大型点云的高效处理。此外,还引入了一个名为 DeformsSlice 的数据相关插值模块,用于将晶格特征反向投影到点云。
混合方法
为了进一步利用所有可用信息,已经提出了几种从3D扫描中学习多模态特征的方法。Dai 和 Nießner [190] 提出了一个联合 3D 多视图网络,将 RGB 特征和几何特征结合起来。使用3D CNN流和多个2D流提取特征,并提出可微背投影层,将学习到的2D嵌入和3D几何特征共同融合。此外,Chiang et al.[200] 提出了一个统一的基于点的框架,用于从点云中学习 2D 纹理外观、3D 结构和全局上下文特征。该方法直接应用基于点的网络从稀疏采样的点集中提取局部几何特征和全局上下文,而无需任何体素化。Jaritz 等人。[191] 提出了多视图点网络(MVPNet)来聚合来自规范点云空间中二维多视图图像和空间几何特征的外观特征。
基于点的方法
基于点的网络直接在不规则的点云上工作。然而,点云是无序和非结构化的,因此无法直接应用标准 CNN。为此,提出了开创性的工作PointNet [5],即使用共享MLP学习每点特征,并使用对称池化函数学习全局特征。基于PointNet,最近提出了一系列基于点的网络。总的来说,这些方法可以大致分为逐点MLP方法、点卷积方法、基于RNN的方法和基于图的方法。
逐点 MLP 方法
这些方法通常使用共享MLP作为其网络中的基本单元,以实现其高效率。然而,共享MLP提取的逐点特征无法捕获点云中的局部几何形状以及点之间的相互相互作用[5]。为了捕获每个点的更广泛上下文并学习更丰富的局部结构,引入了几个专用网络,包括基于相邻特征池化、基于注意力的聚合和局部-全局特征串联的方法。
相邻要素池化
捕获局部几何模式,这些方法通过聚合来自本地相邻点的信息来学习每个点的特征。特别是,PointNet++ [54] 对点进行分层分组,并逐步从更大的局部区域学习,如图所示。 第12条(a)款。为了克服点云不均匀和密度变化带来的问题,还提出了多尺度分组和多分辨率分组的方法。后来,Jiang等[141]提出了PointSIFT模块来实现方向编码和尺度感知。该模块通过三阶段有序卷积对来自八个空间方向的信息进行堆叠和编码。将多尺度特征串联起来,以实现对不同尺度的适应。与PointNet++中使用的分组技术(即球查询)不同,Engelmann等[204]利用K-means聚类和KNN分别定义了世界空间和特征空间中的两个邻域。基于同一类的点在特征空间中预计更接近的假设,引入了成对距离损失和质心损失,以进一步规范化特征学习。为了模拟不同点之间的相互作用,Zhao等人. [57]提出PointWeb,通过密集构建局部全链接网络来探索局部区域中所有点对之间的关系。该文提出一种自适应特征调整(AFA)模块,实现信息交换和特征细化。此聚合操作有助于网络学习判别性特征表示。Zhang等[205]基于同心球壳的统计量,提出了一种称为Shellconv的排列不变卷积。该方法首先查询一组多尺度同心球体,然后在不同壳体中使用max-pooling操作对统计量进行汇总,利用MLP和一维卷积得到最终的卷积输出。胡等.[206] 提出了一种高效且轻量级的网络,称为 RandLA-Net,用于大规模点云分割。该网络利用随机点采样在内存和计算方面实现了非常高的效率。进一步提出一种局部特征聚合模块,用于捕获和保留几何特征。
基于注意力的聚合
在点云分割中引入一种注意力机制[120]进一步改善细分市场, Yang 等.[56] 提出了一种群体洗牌注意力来模拟点之间的关系,并提出了一种排列不变、与任务无关和可微分的 Gumbel 子集采样 (GSS) 来取代广泛使用的 FPS 方法。该模块对异常值不太敏感,可以选择具有代表性的点子集。为了更好地捕捉点云的空间分布,Chen等人。[207] 提出了一种基于空间布局和点云局部结构的局部空间感知(LSA)层来学习空间感知权重。与CRF类似,Zhao等人。[208] 提出了一个基于注意力的分数细化(ASR)模块,用于对网络产生的分割结果进行后处理。通过将相邻点的分数与学习到的注意力权重合并来优化初始分割结果。该模块可以很容易地集成到现有的深度网络中,以提高分割性能。
局部-全局串联
Zhao等[112]提出了一种排列不变的PS-Net,以整合点云的局部结构和全局上下文。Edgeconv[87]和NetVLAD [209]反复堆叠,以捕获局部信息和场景级全局特征。
点卷积方法
这些方法倾向于为点云提出有效的卷积算子。Hua等[76]提出了一种逐点卷积算子,将相邻点分箱到核单元中,然后与核权重进行卷积。如图12(b)所示,Wang等[201]提出了一种基于参数化连续卷积层的PCCN网络。该层的核函数由MLP参数化,并跨越连续向量空间。托马斯等人。[65]提出了一种基于核点卷积(KPConv)的核点全卷积网络(KP-FCNN)。具体来说,KPConv的卷积权重由到核点的欧几里得距离决定,核点的数量不是固定的。核点的位置被表述为球体空间中最佳覆盖的优化问题。请注意,半径邻域用于保持一致的感受野,而网格子采样用于在每一层中实现不同密度点云下的高鲁棒性。在[211]中,Engelmann等人。提供了丰富的消融实验和可视化结果,以显示感受野对基于聚集的方法性能的影响。他们还提出了一种扩张点卷积 (DPC) 操作来聚合扩张的相邻特征,而不是 K 个最近邻。这种操作被证明在增加感受野方面非常有效,并且可以很容易地集成到现有的基于聚合的网络中。
基于 RNN 的方法
为了从点云中捕获固有的上下文特征,循环神经网络 (RNN) 也被用于点云的语义分割。基于PointNet [5],Engelmann等人。[213] 首先将点块转换为多尺度块和网格块,以获得输入级上下文。然后,将 PointNet 提取的按块特征依次馈送到合并单元 (CU) 或循环合并单元 (RCU) 中,以获得输出级上下文, 实验结果表明,结合空间环境对分割性能的提高具有重要意义。Huang 等.[212] 提出了一个轻量级的局部依赖建模模块,并利用切片池化层将无序点特征集转换为有序的特征向量序列。如图12(c)所示,Ye等人。[202]首先提出了一个逐点金字塔池化(Pointwise Pyramid Pooling,3P)模块来捕获从粗到细的局部结构,然后利用双向分层RNN进一步获得长程空间依赖性。然后应用 RNN 来实现端到端学习。然而,这些方法在将局部邻域特征与全局结构特征聚合时,会丢失点云中丰富的几何特征和密度分布[220]。为了缓解刚性和静态池化操作带来的问题,Zhao et al.[220]提出了一种动态聚合网络(DARNet)来考虑全局场景复杂性和局部几何特征。使用自适应感受野和节点权重动态聚合中型特征。Liu等.[221] 提出了3DCNN-DQN-RNN,用于大规模点云的高效语义解析。该网络首先使用3D CNN网络学习空间分布和颜色特征,DQN进一步用于定位属于特定类别的对象。最终的级联特征向量被送入残差RNN以获得最终的分割结果。
基于图的方法
为了捕获 3D 点云的底层形状和几何结构,有几种方法求助于图形网络。如图12(d)所示,Landrieu等人。[203] 将点云表示为一组相互连接的简单形状和超点,并使用属性有向图(即超点图)来捕获结构和上下文信息。然后,将大规模点云分割问题分解为3个子问题,即几何齐次分割、超点嵌入和上下文分割。为了进一步改进分割步骤,Landrieu和Boussaha[214]提出了一个监督框架,将点云过度分割为纯超点。这个问题被表述为一个由邻接图构建的深度度量学习问题。此外,还提出了一种图结构的对比损失来帮助识别物体之间的边界。为了更好地捕捉高维空间中的局部几何关系,Kang等[222]提出了一种基于图嵌入模块(GEM)和金字塔注意力网络(PAN)的PyramNet。GEM模块将点云表述为有向无环图,并利用协方差矩阵代替欧氏距离来构建相邻相似矩阵。PAN模块中使用了四种不同大小的卷积核来提取具有不同语义强度的特征。在文献[215]中,提出了图注意力卷积(GAC)从局部相邻集选择性地学习相关特征。该操作是通过根据不同的相邻点和特征通道的空间位置和特征差异动态地为其分配注意力权重来实现的。GAC可以学习捕获判别特征进行分割,并且具有与常用的CRF模型相似的特征。Ma等[223]提出了一种点全局上下文推理(PointGCR)模块,使用无向图表示用于沿通道维度捕获全局上下文信息。PointGCR 是一个即插即用的端到端可训练模块。它可以很容易地集成到现有的分段网络中,以实现性能改进。此外,最近的几项工作试图在弱监督下实现点云的语义分割。Wei等[224]提出了一种两阶段方法来训练具有子云级标签的分割网络。徐, 等.[225] 研究了几种用于点云语义分割的不精确监督方案。他们还提出了一个网络,该网络只能使用部分标记的点(例如10%)进行训练。
实例分割
与语义分割相比,实例分割更具挑战性,因为它需要更准确、更细粒度的点推理。特别是,它不仅需要区分具有不同语义意义的点,还需要区分具有相同语义含义的单独实例。总体而言,现有方法可以分为两组:基于提案的方法和无提案的方法。图 13 说明了几种里程碑方法。
图 13:最相关的基于深度学习的 3D 实例分割方法的时间顺序概述。
基于提案的方法
这些方法将实例分割问题转换为两个子任务:3D 对象检测和实例掩码预测。Hou等[226]提出了一种3D全卷积语义实例分割(3D-SIS)网络,用于实现RGB-D扫描的语义实例分割。该网络从颜色和几何特征中学习。与 3D 对象检测类似,3D 区域建议网络 (3DRPN) 和 3D 感兴趣区域 (3D-RoI) 图层用于预测边界框位置、对象类标签和实例掩码。Yi等[227]遵循边合成分析策略,提出了生成形状提案网络(GSPN)来生成高对象性的3D提案。这些建议由基于区域的 PointNet (R-PointNet) 进一步完善。通过预测每个类标签的每个点的二进制掩码来获得最终标签。与点云中三维边界框的直接回归不同,该方法通过强制几何理解去除了大量无意义的提议。成田等[228]通过将二维全景分割扩展到三维映射,提出了一种在线体积三维映射系统,共同实现大规模三维重建、语义标注和实例分割。他们首先利用 2D 语义和实例分割网络来获得像素级全景标签,然后将这些标签集成到体积图中。进一步使用全连接的CRF来实现准确的分割。这种语义映射系统可以实现高质量的语义映射和判别性目标识别。Yang等[229]提出了一种单阶段、无锚点和端到端的可训练网络,称为3D-BoNet,用于在点云上实现实例分割。该方法直接回归所有潜在实例的粗略 3D 边界框,然后利用点级二元分类器来获取实例标签。特别地,将边界框生成任务表述为最优赋值问题。此外,还提出了一种多准则损失函数来对生成的边界框进行正则化。这种方法不需要任何后处理,并且计算效率很高。Zhang等.[230] 提出了一种用于大规模室外LiDAR点云分割的网络。该方法使用自注意力块在点云的鸟瞰图上学习特征表示。最终实例标签是根据预测的水平中心和高度限制获得的。Shi等[231]提出了一种层次感知变分去噪递归自编码器(VDRAE)来预测室内三维空间的布局。对象建议通过递归上下文聚合和传播以迭代方式生成和优化。总体而言,基于提案的方法[226]、[227]、[229]、[232]直观明了,实例分割结果通常具有较好的客观性。但是,这些方法需要多阶段的训练和对冗余提案的修剪。因此,它们通常耗时且计算成本高昂。
基于无提案的方法
无提案方法 [233]、[234]、[235]、[236]、[237]、[238]、[239]、[240] 没有目标检测模块。相反,他们通常将实例分割视为语义分割之后的后续聚类步骤。特别是,大多数现有方法都基于属于同一实例的点应具有非常相似的特征的假设。因此,这些方法主要集中在判别特征学习和点分组上。Wang等[233]在一项开创性的工作中,首先引入了相似性组提案网络(SGPN)。该方法首先学习每个点的特征和语义图,然后引入相似度矩阵来表示每个配对特征之间的相似度。了解更多判别特征,他们使用双铰链损失来相互调整相似性矩阵和语义分割结果。最后,采用启发式和非极大值抑制方法将相似点合并为实例。由于相似矩阵的构建需要大量的内存消耗,因此该方法的可扩展性受到限制。同样,Liu et al.[237]首先利用子流形稀疏卷积[166]来预测每个体素的语义分数和相邻体素之间的亲和力。然后,他们引入了一种聚类算法,根据预测的亲和力和网格拓扑将点分组到实例中。Mo 等人。[241] 在PartNet中引入了一个按分割检测网络来实现实例分割。PointNet++ 作为主干,用于预测每个点的语义标签和不相交的实例掩码。此外,Liang 等人。[238] 提出了一种结构感知损失,用于学习判别嵌入。这种损失既考虑了要素的相似性,也考虑了点之间的几何关系。基于注意力的图CNN进一步用于通过聚合来自邻居的不同信息来自适应地细化学习的特征。
由于一个点的语义类别和实例标签通常是相互依赖的,因此提出了几种方法将这两个任务耦合到一个任务中。Wang等.[234] 通过引入端到端且可学习的关联分割实例和语义 (ASIS) 模块来集成这两个任务。实验表明,语义特征和实例特征可以相互支持,通过该ASIS模块实现性能提升。类似地,Zhao等[242]提出了JSNet来实现语义和实例分割。此外,Pham 等人。[235]首先引入了多任务逐点网络(MT-PNet)为每个点分配一个标签,并通过引入判别损失来规范特征空间中的嵌入[243]。然后,他们将预测的语义标签和嵌入融合到多值条件随机场(MV-CRF)模型中,以进行联合优化。最后,使用平均场变分推理来生成语义标签和实例标签。胡等. [244]首先提出了一种动态区域增长(DRG)方法,将点云动态地分离成一组不相交的补丁,然后使用无监督的Kmeans++算法对所有这些补丁进行分组。然后,在补丁之间的上下文信息的指导下执行多尺度补丁分割。最后,将这些标记的补丁合并到对象级别,以获得最终的语义和实例标签。
为了实现全3D场景的实例分割,Elich等[236]提出了一种混合2D-3D网络,从BEV表示和点云的局部几何特征中联合学习全局一致的实例特征。然后将学习到的特征组合起来,实现语义和实例分割。请注意,与启发式的GroupMerging算法[233]不同,而是使用更灵活的Meanshift [245]算法将这些点分组到实例中。或者,还引入了多任务学习来进行实例分割。Lahoud等[246]学习了每个实例的独特特征嵌入和方向信息来估计目标的中心。提出特征嵌入损失和方向损失来调整潜在特征空间中学习的特征嵌入。采用均值偏移聚类和非最大值抑制将体素分组到实例中. 该方法在 ScanNet [11] 基准测试中实现了最先进的性能。此外,预测的方向信息对于确定实例的边界特别有用。Zhang等. [247] 将概率嵌入引入点云的实例分割。该方法还结合了不确定性估计,并提出了一种新的聚类步骤损失函数。Jiang 等. [240] 提出了一种PointGroup网络,该网络由语义分割分支和偏移预测分支组成。进一步利用双集聚类算法和ScoreNet来获得更好的分组结果。总之,无提案方法不需要计算成本高昂的区域提案组件。但是,由于这些方法不显式检测对象边界,因此由这些方法分组的实例段的对象性通常较低。
部件分割
3D 形状零件分割的困难是双重的。首先,具有相同语义标签的形状部分具有较大的几何变化和模糊性。其次,具有相同语义的对象中的部件数量可能不同。
VoxSegNet[248]提出在有限的解决方案下对3D体素化数据进行细粒度的零件分割。该文提出一种空间密集提取(SDE)模块(由堆叠残差块组成),用于从稀疏体积数据中提取多尺度判别特征。通过逐步应用注意力特征聚合 (AFA) 模块,进一步重新加权和融合学习到的特征。Kalogerakis等[249]将FCN和基于表面的CRF相结合,实现了端到端的3D部件分割。他们首先从多个视图生成图像以实现最佳表面覆盖,并将这些图像输入 2D 网络以生成置信度图。然后,这些置信度图由基于表面的 CRF 聚合,该 CRF 负责对整个场景进行一致的标记。Yi等[250]引入了一种同步光谱CNN(SyncSpecCNN)对不规则和非同构形状图进行卷积处理。引入膨胀卷积核的谱参数化和谱变换器网络,解决了零件多尺度分析和形状间信息共享的问题。
Wang等[251]首先通过引入形状全卷积网络(SFCN)并采用3个低级几何特征作为输入,对3D网格进行了形状分割。然后,他们利用基于投票的多标签图切割来进一步完善分割结果。Zhu等[252]提出了一种用于3D形状共分割的弱监督CoSegNet。该网络将一组未分割的 3D 点云形状作为输入,并通过迭代最小化组一致性损失来生成形状部分标签。与CRF类似,提出了一种预训练的部件细化网络,以进一步细化和去噪部件方案。Chen等[253]提出了一种分支自编码器网络(BAE-NET),用于无监督、单次和弱监督的3D形状协同分割。该方法将形状共分割任务表述为表示学习问题,旨在通过最小化形状重构损失来找到最简单的部分表示。基于编码器-解码器架构,该网络的每个分支都可以学习特定零件形状的紧凑表示。然后,将从每个分支和点坐标中学习到的特征馈送到解码器以生成二进制值(指示该点是否属于该部分)。该方法具有良好的泛化能力,可以处理大型3D形状集合(最多5000+形状)。然而,该方法对初始参数敏感,且未将形状语义纳入网络,这阻碍了该方法在每次迭代中获得鲁棒稳定的估计。Yu 等.[254] 提出了一种自上而下的递归部分分解网络(PartNet),用于分层形状分割。与现有的将形状分割为固定标签集的方法不同,该网络将零件分割表述为级联二值标记问题,并根据几何结构将输入点云分解为任意数量的部件。Luo 等.[255] 引入了一个基于学习的分组框架,用于零镜头 3D 部件分割任务。为了提高跨类别泛化能力,该方法倾向于学习分组策略,该策略限制网络在部分局部上下文中学习部分级特征。
总结
表 5 显示了现有方法在公共基准测试上取得的结果,包括 S3DIS [10]、Semantic3D [12]、ScanNet [39] 和 SemanticKITTI [15]。以下问题需要进一步调查:
- 由于具有常规的数据表示,基于投影的方法和基于离散化的方法都可以利用其二维图像对应物的成熟网络架构。然而,基于投影的方法的主要局限性在于3D-2D投影导致的信息丢失,而基于离散化的方法的主要瓶颈是分辨率的提高导致的计算和内存成本的立方增加。为此,基于索引结构构建稀疏卷积将是一个可行的解决方案,值得进一步探索。
- 基于点的网络是最常研究的方法。然而,点表示自然没有明确的邻域信息,大多数现有的基于点的方法都诉诸于昂贵的邻域搜索机制(例如,KNN [79]或球查询[54])。这固有地限制了这些方法的效率,最近提出的点-体素联合表示[256]将是进一步研究的一个有趣方向。
- 在不平衡的数据中学习仍然是点云分割中一个具有挑战性的问题。尽管有几种方法[65]、[203]、[205]取得了显著的整体表现,但它们在少数群体中的表现仍然有限。例如,RandLA-Net [206] 在 Semantic3D 的 reduced-8 子集上实现了 76.0% 的总体 IoU,但在硬景观类上实现了 41.1% 的非常低的 IOU
- 大多数现有方法[5]、[54]、[79]、[205]、[207]适用于小点云(例如,1m×1m,4096个点)。在实践中,深度传感器获取的点云通常是巨大且大规模的。因此,需要进一步研究大规模点云的高效分割问题。
- 一些工作[178]、[179]、[199]已经开始从动态点云中学习时空信息。预计时空信息有助于提高后续任务的性能,例如3D目标识别、分割和完成。
表 5:S3DIS(包括 Area5 和 6 倍交叉验证)[10]、Semantic3D(包括语义 8 和简化 8 子集)[12]、ScanNet [11] 和 SemanticKITTI [15] 数据集上的语义分割结果比较结果。总体准确度 (OA)、平均交集与并集 (mIoU) 是主要的评估指标。为简单起见,我们省略了值后面的“%”。符号“-”表示结果不可用。
结论
本文介绍了最先进的 3D 理解方法的当代综述,包括 3D 形状分类、3D 目标检测和跟踪以及 3D 场景和对象分割。已经提出了这些方法的综合分类和性能比较。还涵盖了各种方法的优缺点,并列出了潜在的研究方向。
引用
1 | [1] Z. Liang, Y. Guo, Y. Feng, W. Chen, L. Qiao, L. Zhou, J. Zhang,and H. Liu, “Stereo matching using multi-level cost volume andmulti-scale feature constancy,” IEEE TPAMI, 2019. |