深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

                             深度学习在三维点云上的应用

摘要

        最近,点云由于在计算机视觉、自动驾驶和机器人技术等许多领域的广泛应用而受到越来越多的关注。深度学习作为一种主要的人工智能技术,已经成功地用于解决各种二维视觉问题。由于使用深度神经网络处理点云所面临的独特挑战,因此点云上应用深度学习仍处于起步阶段。近来点云上深度学习变得更加受欢迎,许多方法被提出来解决这一领域的多种问题。为了促进未来的研究,本文对点云深度学习方法的最新进展进行了全面的综述。它涵盖了三维形状分类、三维目标检测与跟踪、三维点云分割三大任务。它还提供了几个公开数据集的比较结果,以及深刻的观察和启发未来的研究方向。

1. 介绍

        3D采集技术的发展,使得传感器获取的三维数据可以提供丰富的几何、形状和尺度信息。与2D图像相辅相成,3D数据为机器更好地了解周围环境提供了机会。3D数据在不同领域有很多应用,包括自动驾驶、机器人、遥感和医疗。3D数据通常可以用不同的格式表示,包括深度图像、点云、网格和体积网格。点云表示是一种常用的格式,在三维空间中保留了原始的几何信息,不进行离散化。因此,它是许多场景理解相关应用如自动驾驶和机器人的首选表示。最近,深度学习技术已经主导了许多研究领域,如计算机视觉、语音识别和自然语言处理。然而,三维点云的深度学习仍然面临着数据集规模小、三维点云的高维性和非结构化等重大挑战。在此基础上,本文重点分析了用于处理三维点云的深度学习方法。

        点云的深度学习越来越受到人们的关注,尤其是在过去的五年里。一些公开的数据集也被发布,如ModelNet、ScanObjectNN、ShapeNet、PartNet、S3DIS、ScanNet、Semantic3D、ApolloCar3D和KITTI Vision基准套件。这些数据集进一步推动了研究深度学习的3d点云,也有越来越多的方法被提出解决各种问题点云处理,包括三维形状分类,三维对象检测和跟踪、三维点云分割、三维点云注册、6*度姿态估计和三维重建。关于3D数据深度学习的调查也很少,然而,我们的论文是第一个专门关注点云理解的深度学习方法的。现有的三维点云深度学习方法分类如图1所示。与现有文献相比,这项工作可以概括的主要贡献如下:

  1. 这是第一个调查论文——全面覆盖深度学习几个重要的点云的任务包括三维形状分类、三维对象检测和跟踪和三维点云分割。
  2. 与现有的综述不同,我们特别关注3D点云的深度学习方法,而不是所有类型的3D数据。
  3. 介绍了点云深度学习的最新进展,为读者提供了最先进的方法。
  4. 对几个公开数据集上的现有方法进行了综合比较(如表2、表3、表4、表5),并进行了简短的总结和有见地的讨论

深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

        本文的结构如下:第2节介绍了各自任务的数据集和评估指标;第3节回顾了三维形状分类的方法;第4节对现有的3D对象检测和跟踪方法进行了综述;第5节介绍了点云分割的方法,包括语义分割、实例分割和零件分割。最后,第6节对全文进行总结。我们还提供定期更新的项目页面

2. 背景

        我们收集了大量的数据集来评估深度学习算法在不同三维点云应用中的性能。表1列出了一些用于三维形状分类、三维物体检测与跟踪、三维点云分割的典型数据集。特别地,这些数据集的属性也被总结。对于三维形状分类,有两种类型的数据集:合成数据集和真实数据集,合成数据集中的对象是完整的,没有遮挡和背景;与之相反,真实数据集中的对象被不同层次的遮挡,一些对象被背景噪声污染。对于三维物体检测与跟踪,数据集分为室内场景和室外城市场景,室内数据集中的点云要么从密集的深度地图转换而来,要么从三维网格采样而来,户外城市数据集是为自动驾驶设计的,对象在空间上很好地分离,这些点云是稀疏的;对于三维点云分割,这些数据集由不同类型的传感器获取,包括移动激光扫描器(MLS)、航空激光扫描器(ALS)、静态地面激光扫描器(TLS)、RGBD摄像机和其他三维扫描器。这些数据集可以用来开发各种挑战的算法,包括类似的干扰,形状不完整,和类不平衡等。

        针对不同的点云理解任务,提出了不同的评估指标来测试这些方法。对于三维形状分类,总体精度(OA)和平均分类精度(mAcc)是最常用的性能标准。“OA”表示所有测试实例的平均精度,“mAcc”表示所有形状类的平均精度。在三维物体检测中,平均精度(AP)是最常用的标准,它被计算为精确-召回曲线下的面积。精度和成功通常被用来评估一个三维单目标跟踪器的整体性能。平均多目标定位精度(AMOTA)和平均多目标定位精度(AMOTP)是评价三维多目标跟踪的最常用标准。对于三维点云分割,OA、平均交并(mIoU)和平均类精度(mAcc)是最常用的性能评价标准。其中,平均平均精度(mean Average Precision, mAP)也被用于三维点云的实例分割。

深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

3. 三维形状分类

          完成该任务的方法通常先学习每个点的嵌入,然后使用聚合方法从整个点云中提取一个全局的嵌入形状。最后通过将全局嵌入输入到几个全连接的层来实现分类。根据神经网络输入的数据类型,现有的三维形状分类方法可以分为基于多视图、基于体积和基于点的方法。图2说明了几种里程碑方法:

深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

        基于多视图的方法将非结构化点云投影到二维图像中,而基于体素的方法则将点云转换为三维体素表示。然后利用完善的2D或3D卷积网络来实现形状分类。相反,基于点的方法直接工作在原始点云上,不需要任何体素化或投影。基于点的方法不引入显式信息丢失,并且越来越流行。注意,本文主要关注基于点的方法,但为了完整性,也较少包含基于多视图和基于体素的方法。

3.1 基于多视图的方法

        这些方法首先将一个三维形状投影到多个视图中,提取视图特征,然后将这些特征融合起来进行精确的形状分类。如何将多个视图特征聚合成一个有区别的全局表示是这些方法面临的一个关键挑战。MVCNN是一个开创性的工作,它只是将多视图特性maxpools到一个全局描述符中。但是max-pooling只保留特定视图中的最大元素,从而导致信息丢失。MHBN通过协调双线性池集成局部卷积特性,生成一个紧凑的全局描述符。Yang等人首先利用关系网络来利用一组视图之间的相互关系(例如区域-区域关系和视图-视图关系),然后聚合这些视图来获得有区别的3D对象表示。此外其他一些方法也被提出来提高识别精度。与之前的方法不同,View-GCN中使用了一个有向图,将多个视图考虑为graph节点。将由局部图卷积、非局部消息传递和选择性视图采样组成的核心层应用于构造的图。将所有级别的最大汇聚节点特征串联起来,最终形成全局形状描述符。

3.2 基于体素的方法

        这些方法通常将点云体素化到三维网格中,然后在体积表示上应用三维卷积神经网络(CNN)进行形状分类。Maturana等人引入了名为VoxNet的体素网络,以实现健壮的3D对象识别。Wu等人提出了一种基于卷积深度信任的三维shapenet,用于从各种三维形状(由二元变量在体素网格上的概率分布表示)中学习点的分布。虽然已经取得了令人鼓舞的性能,但这些方法无法很好地扩展到密集的3D数据,因为计算量和内存占用是立方增长的分辨率。为此,引入了一种层次结构和紧凑的结构(如八叉树)来降低这些方法的计算和内存开销。OctNet首先使用混合网格八叉树结构对点云进行分层划分,它用几个沿规则网格的浅八叉树来表示场景。利用位串表示对八叉树结构进行了有效编码,并通过简单的算法对每个体素的特征向量进行了索引。Wang提出了一种基于十元树的CNN用于三维形状分类。将采样于最细叶八分点上的三维模型的平均法向量输入到网络中,将3D- cnn应用于三维形状表面所占据的八分点上。与基于密集输入网格的基准网络相比,OctNet对于高分辨率点云需要的内存和运行时要少得多。Le等人提出了一种混合网络PointGrid,该网络集成了点和网格表示,用于高效的点云处理。在每个嵌入的体积网格单元内采样恒定数量的点,这允许网络通过使用3D卷积来提取几何细节。Ben-Shabat等将输入点云转化为三维网格,再用3DmFV方法表示,通过传统CNN架构学习全局表示。

3.3 基于点的方法

        根据每个点的特征学习所使用的网络架构,这类方法可以分为点光滑的MLP、基于卷积的方法、基于图形的方法、基于层次数据结构的方法等典型方法。

3.3.1 点光滑的MLP

        这些方法使用多个共享的多层感知器(MLPs)对每个点独立建模,然后使用对称聚合函数聚合一个全局特征,如图3所示。典型的二维图像深度学习方法由于其固有的数据不规则性,不能直接应用于三维点云。作为一项开创性工作,PointNet直接以点云作为输入,并通过对称函数实现置换不变性。具体来说,PointNet使用几个MLP层独立地学习点态特征,并使用最大池化层提取全局特征。Deep sets通过对所有表示进行总结并应用非线性变换实现置换不变性。由于PointNet中每个点的特征都是独立学习的,因此无法获取点之间的局部结构信息。因此,Qi等提出了一种层次网络pointnet++来从每个点的邻域中捕捉精细的几何结构。作为PointNet++层次结构的核心,其集合抽象层由三层组成:采样层、分组层和基于PointNet的学习层。通过叠加多个集合抽象层次,pointnet++从局部几何结构中学习特征,并逐层抽象局部特征。

                               深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

        由于其简单性和较强的表示能力,许多基于点的网络被开发出来。Mo-Net的体系结构与PointNet类似,但它以有限的矩集作为输入。PATs其自身的绝对位置和相对于相邻点的相对位置表示每个点,并通过MLPs学习高维特征。在此基础上,利用GSA来获取点间的关系,并提出一种置换不变、可微、可训练的端到端GSS层来学习层次特征。pointweb基于pointnet++,利用局部邻域的上下文,通过自适应特征调整(AFA)来改进点特征。Duan等人提出了一种结构关系网络SRN,使用MLP学习不同局部结构之间的结构关系特征。Lin等人通过为PointNet学习的输入空间和函数空间构造一个查找表,加快了推理过程。在中等的机器上,ModelNet和ShapeNet数据集上的推理时间比PointNet提高了1.5 ms和32倍。SRINet首先投影一个点云来获得旋转不变表示,然后利用基于点网的主干来提取全局特征,基于图的聚合来提取局部特征。在PointASNL中,Yan等人利用自适应采样(AS)模块自适应调整最远点采样(FPS)算法所采样的点的坐标和特征,并提出了局部-非局部(L-NL)模块来捕获这些采样点的局部和长期依赖关系。

3.3.2 基于卷积的方法

        与定义在二维网格结构上的卷积核相比,三维点云的卷积核由于点云的不规则性而难以设计。根据卷积核的类型,目前的三维卷积方法可分为连续卷积法和离散卷积法,如图4所示。

                       深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

        三维连续卷积方法在连续空间上定义卷积核,其中相邻点的权值与相对于中心点的空间分布有关。三维卷积可以解释为一个给定子集的加权和。作为RS-CNN的核心层, RSConv需要某一特定点局部的一个子集的作为输入,卷积通过MLP学习局部子集中点之间的低级关系(欧几里得距离、相对位置等)到高级关系的映射来实现,核元素是在一个单位球中随机选择的。然后使用基于mlp的连续函数建立核元素位置与点云之间的关系。在DensePoint中,卷积被定义为具有非线性**器的单层感知器(SLP)。特征是通过连接之前所有层的特征来学习的,以充分利用上下文信息。Thomas等人利用一组可学习的核点对三维点云提出了刚性和可变形核点卷积(KPConv)算子。ConvPoint将卷积核分为空间部分和特征部分。空间部分的位置从一个单位球随机选择,加权函数通过一个简单的MLP学习。

        一些方法也使用现有算法进行卷积。在PointConv中,卷积被定义为相对于重要抽样的连续三维卷积的蒙特卡洛估计,卷积核由一个加权函数(通过MLP层学习)和一个密度函数(通过核化密度估计和一个MLP层学习)组成,为了提高内存和计算效率,将三维卷积进一步简化为矩阵乘法和二维卷积两种运算,在相同的参数设置下,它的内存消耗可以减少大约64倍。在MCCNN中,卷积被认为是依赖于样本密度函数(用MLP实现)的蒙特卡洛估计过程,然后使用泊松磁盘采样来构建点云层次结构,该卷积算子可用于执行两种或多种采样方法之间的卷积,并可处理不同的采样密度。在SpiderCNN中,SpiderConv将卷积定义为阶跃函数与k个近邻上定义的泰勒展开式的乘积,阶跃函数通过编码局部测地线距离来获取粗糙的几何图形,泰勒展开通过在立方体顶点上插值任意值来获取固有的局部几何变化。此外,还提出了一种基于径向基函数的三维点云卷积网络PCNN。

        几种方法被提出来解决三维卷积网络所面临的旋转等变问题:Esteves等人提出了三维球面CNN来学习三维形状的旋转等变表示,它以多值球面函数作为输入,利用球谐域上的锚点参数化谱,得到局部卷积滤波器。张量场网络将点卷积运算定义为可学习的径向函数和球谐函数的乘积,这些函数局部等价于三维旋转、平移和排列。SPHNet基于PCNN,通过在体积函数卷积时加入球谐核来实现旋转不变性,为了加快计算速度,Flex-Convolution将卷积核的权值定义为k个最近邻上的标准标量积,可以使用CUDA进行加速,实验结果表明,该算法在参数较少、内存消耗较低的小数据集上具有较好的性能。

        三维离散卷积方法在规则网格上定义卷积核,其中相邻点的权重与相对于中心点的偏移量有关。Hua等将非均匀三维点云转化为均匀网格,并在每个网格上定义卷积核。所提出的3D内核为落在同一个网格中的所有点分配相同的权值。对于给定的点,同一网格上所有相邻点的平均特征由上一层计算得到。然后对所有网格的平均特征进行加权求和,得到当前层的输出。Lei等人定义了一个球面卷积核,其方法是将一个三维球面邻近区域划分为多个容量箱,并将每个箱与一个可学习的加权矩阵相关联,一个点的球面卷积核的输出由其相邻点加权**值的均值的非线性**决定。在GeoConv中,一个点与其相邻点之间的几何关系被明确地基于六个基底建模,沿基的每个方向的边缘特征由一个与方向相关的可学习矩阵独立加权,然后,根据给定点与其相邻点形成的角度,将这些与方向相关的特征进行聚合,对于给定的点,其在当前层的特征定义为该点与前一层相邻边缘特征的特征之和。

        PointCNN通过一个χ-conv转换(通过MLP实现)将输入点转换为一个潜在的规范顺序,然后对转换后的特征应用典型的卷积操作。Mao等人通过将点特征插值到邻近的离散卷积核权坐标,提出了一种插值卷积算子InterpConv来度量输入点云与核权坐标之间的几何关系。Zhang等人提出了一种实现旋转不变性的RIConv算子,该算子以低级旋转不变性几何特征为输入,通过简单的折边方法将卷积转化为一维。A-CNN定义了一个环形卷积,通过在查询点的每个环上对核大小的邻居数组进行循环,学习局部子集中相邻点之间的关系,为了降低三维CNN的计算和存储成本,Kumawat等人提出了一种基于三维短期傅里叶变换(3D Short Term Fourier Transform, STFT)的经校正的局部相位体积(ReLPV)块来提取三维局部邻域的相位,显著减少了参数的数量。在SFCNN中,点云被投影到具有对准球坐标的规则二十面体格上,然后通过卷积-最大池集-卷积结构对球面格的顶点及其相邻节点连接的特征进行卷积,SFCNN能抵抗旋转和扰动。

3.3.3 基于图的方法

        基于图的网络将点云中的每个点视为图的一个顶点,并根据每个点的邻居为图生成有向边,然后在空间或光谱域进行特征学习。一个典型的基于图的网络如图5所示:

                      深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

        基于图形的空间域方法在空间域定义运算(例如,卷积和池化),具体来说,卷积通常是通过MLP在空间邻域上实现的,而pooling则是通过将每个点的邻域的信息聚合产生新的粗化图,每个顶点上的特征通常被赋予坐标、激光强度或颜色,而每个边缘上的特征通常被赋予两个连接点之间的几何属性。作为开创性的工作,Simonovsky等人将每个点视为图的一个顶点,并通过一条有向边将每个顶点与它的所有邻居连接起来,然后利用滤波生成网络(如MLP)提出了EdgeConditioned Convolution (ECC)算法。采用Max pooling聚合邻域信息,基于VoxelGrid实现图粗化。在DGCNN中,在特征空间中构造一个图,在网络的每一层之后动态更新,作为EdgeConv的核心层,使用MLP作为每条边的特征学习函数,对每条边的邻域关联的边缘特征进行信道对称聚合。此外,LDGCNN去除了变换网络,并将DGCNN中不同层次的层次特征链接起来,以提高其性能并减小模型尺寸。还有一种端到端无监督深度自编码器网络(即FoldingNet),该网络使用向量化局部协方差矩阵和点坐标的串联作为输入。受到Inception和DGCNN的启发,Hassani和Haley提出了一种学习点和形状特征的无监督多任务自动编码器,该编码器是基于多尺度图构造的,该解码器由聚类、自监督分类和重构三个非监督任务组成,并结合多任务丢失进行训练。Liu等提出了一种基于图卷积的动态点聚类模块(DPAM),将点聚类(采样、分组、池化)过程简化为一个简单步骤,通过将聚类矩阵与点特征矩阵相乘实现,在PointNet体系结构的基础上,通过叠加多个DPAMs构建层次化学习体系结构,与pointnet++[54]的层次结构策略相比,DPAM动态地利用点之间的关系,在语义空间中聚合点。

        为了利用局部几何结构,KCNet基于核相关学习特征,具体地说,定义了一组描述局部结构几何类型的可学习点作为核,然后计算核函数与给定点的邻域之间的亲和力。在G3D中,卷积被定义为邻接矩阵多项式的一种变体,池化被定义为用一个粗化矩阵乘以拉普拉斯矩阵和顶点矩阵。ClusterNet利用严格的旋转不变量模块从每个点的k个最近邻中提取旋转不变量特征,并基于带有向连锁准则的无监督凝聚分层聚类方法构建点云的层次结构,每个子集群中的特性首先通过EdgeConv块学习,然后通过最大池进行聚合。为了解决当前数据结构化方法(如FPS和邻居点查询)耗时的问题,Xu等人提出融合基于体积和基于点的方法的优点来提高计算效率,在ModelNet分类任务上的实验表明,该 Grid-GCN 网络的计算效率平均比其他模型快5倍。

      光谱域基于图的方法将卷积定义为光谱滤波,实现为图上信号与图拉普拉斯矩阵特征向量的乘法。RGCNN通过将每个点与点云中所有其他点连接起来构建图,并在每一层更新图的拉普拉斯矩阵,为了使相邻顶点的特征更加相似,在损失函数中添加了一个图信号平滑先验。为了解决数据的不同图拓扑所带来的挑战,AGCN中的SGC-LL层利用一个可学习的距离度量来参数化图上两个顶点之间的相似性。利用高斯核和学习距离对图的邻接矩阵进行归一化。HGNN通过在超图上应用频谱卷积,构建了超边缘卷积层,上述方法作用于全图。为了利用局部结构信息,Wang等人提出了一种端到端频谱卷积网络LocalSpecGCN,用于处理局部图(由k个最近邻构造),该方法不需要离线计算图的拉普拉斯矩阵和图的粗化层次。在PointGCN中,基于点云的k个最近邻构造图,每条边使用高斯核加权,卷积滤波器定义为图谱域的切比雪夫多项式,利用全局池和多分辨率池捕获点云的全局和局部特征。Pan等人提出了在谱域k个最邻近图上应用卷积的3DTI-Net,几何变换的不变性是通过学习相对欧几里得和方向距离实现的。

3.3.4 基于分层数据结构的方法

        这些网络是基于不同的层次数据结构(如八叉树和kd-tree)构建的,在这些方法中,点特征是沿着树从叶节点到根节点分层学习的。Lei等人提出了一种使用球面卷积核引导的八叉树CNN(如3.3.2节所述),网络的每一层对应八叉树的一层,每一层应用一个球面卷积核,当前层神经元的值确定为前一层所有相关子节点的平均值,与基于八叉树的OctNet不同,Kd-Net是在每次迭代时使用多个K-d树以不同的分裂方向构建的,遵循自底向上的方法,使用MLP从其子节点的表示中计算非叶节点的表示,根节点的特征(描述整个点云)最终被提供给全连接的层来预测分类分数。注意,根据节点的分割类型,Kd-Net在每个级别上共享参数。3DContextNet使用标准的平衡K-d树来实现特征学习和聚合,在每一层,点特征首先通过基于局部线索(模拟局部区域内点之间的相互依赖)和全局上下文线索(模拟一个位置相对于所有其他位置的关系)的MLP学习,然后,使用MLP从子节点计算非叶节点的特征,并通过最大池聚合,对于分类,重复上述过程,直到到达根节点。SO-Net网络的层次结构是通过点对节点k进行最近邻搜索来构建的,具体地说利用一种改进的置换不变自组织映射(SOM)来建模点云的空间分布。通过一系列完全连通的层从标准化的点到节点坐标中学习单个点特征。在SOM中,每个节点的特征都是从与该节点相关联的点特征中提取的,然后,使用类似于PointNet的方法从节点特性中学习最后一个特性,与pointnet++相比,SOM的层次结构更高效,充分探索了点云的空间分布。

3.4 总结

        ModelNet10/40数据集是最常用的三维形状分类数据集,表2显示了不同点基网络的结果。

  • 点态MLP网络通常被用作其他类型网络学习点态特征的基本构件。
  • 作为一种标准的深度学习架构,基于卷积的网络可以在不规则的3D点云上实现卓越的性能,但是应同时关注离散和连续卷积网络。
  • 基于图形的网络由于其固有的处理不规则数据的强大能力,近年来受到越来越多的关注,然而,将基于谱域的图网络扩展到各种图结构仍然是一个挑战。

4. 三维对象检测和跟踪

        在这一节中将回顾现有的三维物体检测、三维物体跟踪和三维场景流估计的方法。

4.1 三维目标检测

        典型的三维物体检测器以场景的点云为输入,在每个被检测物体周围生成一个有向的三维包围框,如图6所示。与图像中的目标检测相似,三维目标检测方法可以分为两类:region proposal-based and single shot methods.。图7给出了几种里程碑方法

                          深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

4.1.1 Region Proposal-based Methods

        这些方法首先提出几个可能包含对象的区域(也称为建议),然后提取区域特征来确定每个建议的类别标签,根据它们的对象提议生成方法,这些方法可以进一步分为三类:基于多视图的方法、基于分割的方法和基于子库的方法。

        基于多视点的方法:这些方法将来自不同视图地图(例如,LiDAR前视图、鸟瞰视图(BEV)和图像)的建议性特征进行融合,以获得3D旋转方框如图8(a)所示,这些方法的计算成本通常很高。Chen等人从BEV图中生成一组高精度的三维候选框,并将其投影到多个视图(如LiDAR front view image、RGB image)的feature maps上。然后结合这些来自不同视图的区域特征来预测有方向的三维边界盒,如图8(a)所示,虽然这种方法只用300个建议框就实现了99.1%的召回和0.25的IoU,但其速度太慢不能实际应用。随后,研究人员从两个方面对多视图三维目标检测方法进行了改进:首先提出了几种有效融合不同模式信息的方法,为了生成小物体高召回率的3D方案,Ku等人提出了一种基于多模态融合的区域方案网络,他们首先使用裁剪和大小调整操作从BEV和图像视图中提取等大小的特征,然后使用elementwise mean pooling将这些特征融合。Liang等人利用连续卷积实现不同分辨率下图像与三维激光雷达特征图的有效融合。具体来说,他们对BEV空间中每个点提取最接近的对应图像特征,然后利用双线性插值将图像特征投影到BEV平面中,得到一个密集的BEV特征图,实验结果表明,密集BEV特征图比离散图像特征图和稀疏激光雷达特征图更适合于三维目标检测。Liang等人提出了一种用于端到端训练的多任务多传感器三维目标检测网络。具体来说,多个任务(例如2D目标检测、地面估计和深度完成)被用来帮助网络学习更好的特征表示,进一步利用所学的交叉模态表示法产生高精度的目标检测结果。实验结果表明,该方法在2D、3D和BEV检测任务上都取得了显著的改进,在TOR4D基准测试上优于现有的先进方法。Lu等人通过引入空间通道关注(SCA)模块探索了多尺度上下文信息,该模块捕获场景的全局和多尺度上下文,并突出了有用的特性,他们还提出了一个扩展空间非样本(ESU)模块,通过结合多尺度低层次特征来获得具有丰富空间信息的高级特征,从而生成可靠的3D对象方案,虽然可以实现更好的检测性能,但上述多视图方法需要很长的运行时间,因为它们为每个方案执行特征池。随后,Zeng等人利用前ROI pooling convolution来提高效率,具体来说,他们将大部分卷积操作置于RoI池模块的前面,因此,对所有对象建议执行一次RoI卷积,实验结果表明,该方法运行速度可达11.1 fps,比MV3D快5倍。

                                     深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

        基于分割的方法:这些方法首先利用现有的语义分割技术去除大部分背景点,然后在前景点上生成大量高质量的建议以节省计算量,如图8(b)所示。与多视图方法相比,这些方法具有更高的物体召回率,更适合于物体高度闭塞拥挤的复杂场景。Yang等人利用二维分割网络预测前景像素,并将其投影到点云中去除大部分背景点,然后他们对预测的前景点提出建议,并设计了一个名为PointsIoU的新标准,以减少建议的冗余性和模糊性。在之后Shi等人提出了PointRCNN框架,他们直接对三维点云进行分割,得到前景点,然后融合语义特征和局部空间特征,生成高质量的三维建议框。Jesus等人提出了利用图卷积网络(Graph Convolution Network, GCN)进行三维物体检测的开创性工作,具体介绍了两个模块,利用图卷积优化对象方案,第一个模块R-GCN利用提案中包含的所有点来实现每个提案的特性聚合,第二个模块C-GCN融合来自所有建议的每帧信息,通过利用上下文返回精确的对象框。Sourabh等将点云投影到基于图像的分割网络的输出中,并将语义预测分数附加到这些点上,将涂成的点送入现有的检测器以实现显著的性能改进。Yang等人用球形锚将每个点关联起来,然后使用每个点的语义分数来去除冗余的锚点,因此与以往的方法相比,该方法的召回率更高,计算代价更低。此外在方案中提出了PointsPool层来学习内部点的紧凑特征,并引入并行IoU分支来提高定位精度和检测性能。

        基于子库的方法:这些方法首先利用现有的二维物体检测器生成物体的二维候选区域,然后为每个二维候选区域提取一个三维截锥方案,如图8(c)所示。虽然这些方法可以有效地提出三维物体的可能位置,但逐步管道使其性能受到二维图像检测器的限制。F-PointNets是这方面的开创性工作。该算法对每个二维区域生成一个视台方案,并应用PointNet(或PointNet++)来学习每个三维视台的点云特征,用于近似的三维盒估计。在后续工作中,Zhao等人提出了一种预测一组尺度因子的Point-SENet模块,并进一步使用该模块自适应地突出有用的特征,抑制无信息量的特征。他们还将PointSIFT模块集成到网络中,用于捕获点云的方向信息,对形状缩放具有较强的鲁棒性。与F-PointNets相比,该方法在室内外数据集上都取得了显著的改进。Xu等人利用二维图像区域及其对应的截锥点对三维盒进行精确回归。为了融合图像特征和点云的全局特征,他们提出了一种直接回归盒角位置的全局融合网络。他们还提出了一种密集融合网络,用于预测每个角落的点向偏移量。Shin等首先从一幅二维图像中估算出二维边界盒和物体的三维位姿,然后提取出多个几何上可行的候选物体,这些三维候选对象被送入一个盒回归网络,以预测准确的三维对象盒。Wang等为每个二维区域生成了一组沿圆锥台轴的圆锥台序列,并应用点网提取每个圆锥台的特征,对视差层特征进行改革,生成二维特征图,然后将其送入全卷积网络进行三维盒估计。该方法在基于二维图像的方法中取得了最先进的性能,并在KITTI官方排行榜上排名第一。Johannes等首先在BEV图上获得了初步的检测结果,然后根据BEV的预测提取小点子集(也称为patch)。利用局部细化网络学习局部特征,预测高精度的三维边界盒。

4.1.2 Single Shot Methods

        这些方法使用单级网络直接预测类概率和回归物体的三维边界盒,它们不需要区域建议生成和后处理,因此,它们可以跑得很快,根据输入数据的类型,单镜头方法可以分为三类:基于斜面的方法、离散的方法和基于点的方法。

        基于斜面的方法:这些方法主要以BEV表示作为输入,Yang等人用等间距的单元离散场景的点云,并用类似的方式对反射率进行编码,从而得到一种规则的表示。利用全卷积网络(FCN)估计目标的位置和航向角,该方法运行速度为28.6帧/秒,优于大多数单镜头方法(包括VeloFCN、3D-FCN和Vote3Deep)。后来Yang等人利用高清(HD)地图提供的几何和语义先验信息,提高了的鲁棒性和检测性能。具体来说他们从高清地图上获取地面点的坐标,然后利用相对于地面的距离进行BEV表示,弥补道路坡度造成的平移方差。此外他们将二进制道路掩模与BEV表示沿着通道维度连接起来,以聚焦于移动对象。由于高清地图并不是到处都有,他们还提出了一个在线地图预测模块,以估计地图先验从单一激光雷达点云。这种mapaware方法在TOR4D和KITTI数据集上显著优于它的基线。但对不同密度点云的泛化性能较差。为了解决这个问题,Beltran等人提出了一种归一化映射,考虑不同激光雷达传感器之间的差异。归一化映射是一个与BEV映射具有相同分辨率的2D网格,它编码每个单元格中包含的最大点数。结果表明,该归一化映射显著提高了斜向检测器的泛化能力。

        离散的方法:这些方法将一个点云转换为规则的离散表示,然后应用CNN来预测对象的类别和3D盒。Li等人提出了第一种使用FCN进行三维物体检测的方法。他们将点云转换为2D点地图,并使用2D FCN来预测边界盒和对象的信任度。随后,他们将点云离散为长度、宽度、高度和通道维数的四维张量,并将基于fcn的二维检测技术扩展到三维域,用于三维物体检测。为了解决体素的稀疏性问题,Engelcke等人利用了一种以特征为中心的投票方案,为每个非空体素生成一组投票,并通过累积投票获得卷积结果,它的计算复杂度与被占据体素的数量成正比。Li等通过叠加多个稀疏的三维CNN,构建了一个三维骨干网络。该方法充分利用体素的稀疏性,节省了内存,加快了计算速度。该三维骨干网络提取了丰富的三维特征用于目标检测,而不引入沉重的计算负担。Zhou等人提出了一个基于体素的端到端可训练框架。他们将点云分割成等间距的体素,并将每个体素内的特征编码成4D张量。然后连接一个区域建议网络产生检测结果。虽然它的性能很强,但由于体素的稀疏性和三维卷积,这种方法非常缓慢。之后,Yan等利用稀疏卷积网络提高了推理效率。他们还提出了一种正弦误差角损失的方法来解决0和误差角之间的不确定性问题。Sindagi等通过早期融合图像和点云特征扩展了VoxelNet。具体来说,他们将生成的非空体素投影到图像中,并使用预先训练好的网络来提取每个投影体素的图像特征。然后,将这些图像特征与体素特征连接起来,生成精确的3D框,该方法可以有效利用多模态信息来减少误报和误报。Lang等人提出了一种名为pointcolumns的3D对象检测器。该方法利用PointNet学习以垂直列(柱)组织的点云的特征,并将学习到的特征编码为pesudo图像。然后应用二维对象检测管道来预测三维边界盒。pointpillar在平均精度(AP)方面优于大多数融合方法(包括MV3D、RoarNet和VOD)。此外,pointpillar在3D和BEV KITTI基准测试中都能以62 fps的速度运行,这使得它非常适合实际应用。He等人观察到现有单镜头探测器的逐步缩小特征图不可避免地丢失了点云的部分空间信息,受此启发,提出了一种SA-SSD检测器,利用细粒度结构信息提高定位精度。具体来说,他们首先将点云转换为张量,然后将其输入主干网络以提取多阶段特征。此外,利用带有点级监督的辅助网络来引导特征学习点云的结构。实验结果表明,在KITTI BEV检测基准中,SA-SSD在汽车类中排名第2位。

        基于点的方法:这些方法直接将原始点云作为它们的输入。3DSSD是这方面的开创性工作。在中引入了Distance-FPS(D-FPS)和Feature-FPS(F-FPS)的融合采样策略,以去除耗时的特征传播(FP)层和细化模块,然后利用候选生成层充分挖掘代表点,再将代表点送入带有三维中心标记的无锚回归头,用于预测三维对象盒。实验结果表明,3DSSD在保持25fps速度的同时,其性能优于两阶段基于点的方法PointRCNN。

4.2 三维物体跟踪

        已知目标在第一帧中的位置,目标跟踪的任务是估计其在后续帧中的状态。由于三维目标跟踪可以利用点云中丰富的几何信息,因此可望克服基于图像的目标跟踪所面临的遮挡、光照和尺度变化等缺点。受Siamese网络成功用于基于图像的目标跟踪的启发,Giancola等人提出了一种带有形状完成正则化的三维Siamese网络。具体来说,他们首先使用卡尔曼滤波器生成候选对象,然后使用形状正则化将模型和候选对象编码成一个紧凑的表示,然后利用余弦相似度在下一帧中搜索被跟踪对象的位置。该方法可作为目标跟踪的替代方法,显著优于大多数二维目标跟踪方法,包括STAPLECA和SiamFC。为了有效地搜索目标对象,Zarzar等人利用2D Siamese网络在BEV表示上生成大量粗糙的候选对象。然后,他们利用三维暹罗网络中的余弦相似度来改进候选对象。这种方法在精度(即18%)和成功率(即12%)方面显著优于。Simon等人提出了一种用于语义点云的三维目标检测和跟踪架构。他们首先通过融合二维视觉语义信息生成体素化语义点云,然后利用时间信息提高多目标跟踪的准确性和鲁棒性。此外,他们引入了一种强大且简化的评估度量(即尺度旋转转换分数(SRFs))来加速训练和推理。ComplexerYOLO实现了很好的跟踪性能,并且仍然可以实时运行。Qi等人进一步提出了点对盒(P2B)网络,它们将模板和搜索区域输入脊椎骨以获取种子,利用目标特征对搜索区域种子进行扩充,然后利用霍夫投票回归潜在目标中心。

4.3 三维场景流估计

        (这部分公式比较多,不好翻译,建议看原文)

                                  深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

4.4 总结

        KITTI基准是自动驾驶领域最具影响力的数据集之一,在学术界和业界都得到了广泛的应用。(图略)

  • 基于区域提案的方法是这两类中最常被研究的方法,并且在KITTI test 3D和BEV基准测试中都比单杆方法有很大的优势。
  • 现有的3D物体探测器有两个限制。首先,现有方法的远程检测能力相对较差。其次,如何充分利用图像中的纹理信息仍然是一个有待解决的问题。
  • 多任务学习是3D对象检测的未来发展方向。例如,MMF学习了一种跨模态表示,通过合并多个任务来实现最先进的检测性能。
  • 三维物体跟踪和场景流估计是新兴的研究课题,自2019年以来逐渐受到越来越多的关注。 

5. 点云分割

        三维点云分割既需要了解全局几何结构,又需要了解每个点的细粒度细节。根据分割粒度的不同,三维点云分割方法可以分为三类:语义分割(场景级)、实例分割(对象级)和零件分割(零件级)。

5.1 语义分割

        对于给定的点云,语义分割的目标是根据点的语义意义将其划分为多个子集。与三维形状分类的分类方法类似(第3节),语义分割有四种范式:基于投影的方法、基于离散的方法、基于点的方法和混合方法。投影和discretizationbased方法的第一步是将点云一个中间正则表示,如多视点、球形,permutohedral晶格和混合表示见图11。然后中间分割结果被投影回原始点云。相反,基于点的方法直接工作在不规则的点云上。几种典型的方法如图10所示。

深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

                   深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey) 

 深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

5.2 实例分割

        与语义分割相比,实例分割需要更精确、更精细的点推理,具有更大的挑战性。具体来说,既要区分语义意义不同的点,又要区分语义意义相同的实例。总的来说,现有的方法可以分为两类:基于proposal的方法和无proposal的方法。图13说明了几种里程碑方法。

                  深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

5.3 零件分割

        三维形状零件分割的难点有两方面。首先,具有相同语义标签的形状零件具有较大的几何变异和歧义。第二,具有相同语义意义的对象中部件的数量可能不同。

5.4 总结

  • 由于有了规则的数据表示,基于投影的方法和基于离散的方法都可以利用二维图像中成熟的网络架构。然而,基于投影的方法的主要局限性在于三维-二维投影造成的信息损失,而离散方法的主要瓶颈在于分辨率的提高导致计算和存储成本的立方增加。为此,基于索引结构的稀疏卷积是一种可行的解决方案,值得进一步探索。
  • 基于点的网络是最常被研究的方法。然而,点表示自然没有显式的邻域信息,大多数现有的基于点的方法求助于昂贵的邻域搜索机制(如KNN或球查询)。这本质上限制了这些方法的效率,最近提出的点-体素联合表示将是一个值得进一步研究的有趣方向。
  • 从不平衡数据中学习仍然是点云分割中一个具有挑战性的问题。虽然几种方法总体上取得了显著的成绩,但在少数民族课堂上的表现仍然有限。例如,RandLA-Net在Semantic3D的约简8子集上实现了76.0%的总体IoU,但是在hardscape类上实现了41.1%的非常低的IoU。
  • 现有的大多数方法都用于小点云(例如,有4096个点的1m×1m)。在实际应用中,深度传感器获取的点云通常规模巨大。因此,对大规模点云的有效分割问题进行深入研究是很有必要的。
  • 少量作品已经开始从动态点云学习时空信息。期望时空信息能够帮助提高后续任务的性能,如三维物体的识别、分割和完成。

备注:点云分割部分内容实在太多,但是大多数方法都与前边有所联系,因此没有详细罗列文献内容,入感兴趣可以查看原文