【论文阅读·综述】Deep Learning for 3D Point Clouds: A Survey

阅读感想

  可以将全文当成是一个关于3D 点云处理领域的一个序言+目录,可以找到对应细分方向的前沿工作的简要介绍、工作之间的关联、相关工作的长处、劣势与改进,从一个审稿人的角度看待该方向的发展趋势,且汇集了大量优秀的工作,可将小节内容当成书目逐篇翻寻阅读,对于入门还是有很大帮助的。(彩虹屁,本条一毛,括号删除)
  然后就是,对于工作的介绍是比较专业且简练的概括,包括用了什么方法得到怎样的性能,除非看过论文或者是非常熟悉该领域的一些研究,否则看了这些工作的简要介绍还是不能明白其中所以然,因此建议翻看对应工作的paper细读。
  本文的以下内容主要是对该paper进行初步的概括和部分翻译,对3D点云处理领域有一个基本的认识,了解该领域的一些基本概念、基本方法,更详细、更优质的解释可以参考这篇博客或我的后续完善。

论文获取地址


A Survey

摘要

  回顾分类、检测与跟踪、分割任务;比较室内外数据集。

总结

  本文介绍了当前3D理解方向中的一些突出工作,包括3D形状分类、3D识别与跟踪、3D场景与目标分割;给出了该领域内比较科学的分类方法,展示了各种方法的性能对比;同时覆盖了各种方法的优缺点以及当前一些有潜力的研究方向。

引言

1) 3D数据获取途径广泛;3D数据优势、应用广泛。
2) 3D数据形式:深度图、点云、网格、体素;
  点云的优势;
  点云的挑战:数据规模小、高维、非结构化;
  本文关注用于点云处理的深度学习方法。
3) 点云数据集枚举;
  数据集对研究领域的促进;
  本文相对其他综述的优势:关注深度学习方法对点云的理解,分类如图表1所示。
4) 列举本文贡献:首篇点云理解综述;仅关注点云数据集;包括最前沿技术;方法对比。
5) 介绍本文结构:
  S2介绍数据集和任务评价指标;
  S3回顾3D shape 分类方法;
  S4综述现有的3D目标检测和跟踪的方法;
  S5讲点云语义分割、实例分割、部分分割;
  S6总结论文。
在这里插入图片描述

Section 2 数据集与评价指标

(对于初学者,这部分内容建议细看,毕竟数据集是要以后和我们经常打交道的)

1)数据集:分类和枚举现有数据集;介绍3类数据集用途。
2)评价指标:不同任务的常用评价指标枚举。

Section 3 回顾3D shape 分类方法

1) 通用结构:单点embedding → 全局embedding → 全连接层;
  图2给出有影响力的方法paper及采用的数据类型。
2) 多视图、体素实现方法概述,直接处理点云相较于前者的优势。

在这里插入图片描述

3.1 基于多视图的方法
  1. 方法:将3D shape映射到多视图,对多视图提取特征,结合多视图的特征进行shape分类;
  2. 难点:如何实现多视图特征的整合,从而得到有辨别能力的全局表征。
  3. 一些工作:
    ① MVCNN:采用最大池化整合多视图特征,从而得到全局描述子;仅保留了一张特征图里的最大表征,信息丢失严重。
    ② MHBN:局部卷积特征 + 双线性池化 = 紧密的全局描述子。
    ③ Yang等人:采用关联网络提取多视图之间的关系,整合多视图从而获取3D目标表示。
    ④ Wei等人:View-GCN,采用有向图,认为多视图就像图节点,采用局部图卷积、非局部信息传递和selective view-sampling生成组合图,每层网络串联最大节点池化特征形成全局shape描述子。
3.2 基于体素的方法
  1. 方法:将点云转成3D网格,然后采用3D卷积网络。
  2. 一些工作:
    ① Maturana等人:VoxNet
    ② Wu等人:3DShapeNets,将点分类到网格中
    ③ OctNet:以上工作由于算力和内存无法应用到稠密3DShape中。为此,推出了层次组合结构(如八叉树)——采用hybrid grid-octree结构层次分割点云数据,沿着规则网格采用一些浅层八叉树表征场景。
    ④ Wang等人:采用基于八叉树的CNN进行shape分类,在最优leaf octants下采样3D模型的平均法向量送到网络中?看不懂
    ⑤ Le等人:PointGrid混合网络将点和网格整合用于表征点云处理过程,每个网格采样常数个点,使得可以采用3D卷积提取几何纹理。
    ⑥ Ben-Shabat等人:3DmFV+CNN
3.3 基于点云的方法

  根据点特征学习所采用的网络架构,可分为基于逐点MLP方法、基于卷积方法、基于图方法、层次数据结构化方法、其他方法等。

3.3.1 逐点MLP方法
  1. 共享MLP层 + 语义聚合方法 = 结果,如图3所示。
    在这里插入图片描述

  2. 一些工作:
    ① PointNet:将点云作为输入,采用置换不变性语义函数;采用MLP层独立逐点学习特征,采用最大池化层提取全局特征。
    ② PointNet++:独立学习逐点特征不能很好获取点与点之间的信息,++用于获取临近点之间的几何结构。++核心层次:采样层、组合层、PointNet学习层,从从局部几何结构学习特征,逐层整合局部信息。该网络具有简洁性&强表征能力。
    ③ 由PointNet++派生出来许多工作,不一一赘述。

3.3.2 基于卷积的方法

(分为连续卷积和离散卷积,见图4)
在这里插入图片描述

基于连续卷积方法

  在连续空间定义卷积核,临近点的权值取决于该点在中心点的空间分布。

  1. 可用给定子集的权重求和替代3D卷积。
    ① RS-CNN:采用中心点的局部子集点作为输入,通过学习点与点之间从低层级(如欧式距离&相对位置)到高层级关系的映射,使用MLP实现卷积。卷积元素随机从单位球中选取。之后采用基于MLP的连续函数建立卷积核元素的位置与点云的关联信息。
    ② DensePoint:卷积被定义为含一个非线性激活层的单层感知机。从预先网络中有效提取上下文信息,然后裁剪特征。
    ③ Thomas等人:刚性&可形变操作子Kernel Point Convolution,采用一组可学习的核心点进行点云的三维卷积。
    ④ ConvPoint:将卷积核分为空间和特征两部分。空间位置部分从单位球中随机选取;权重函数通过浅层MLP学习。

  2. 采用现有算法表示卷积。
    ① PointConv:卷积被定义为关于重点采样的连续3D卷积蒙特卡洛估计。卷积核由MLP层学习到的权重函数和密度函数(由核密度函数&MLP学习得来)构成。为减少内存占用,提高效率,将卷积简化为矩阵乘法和2D卷积两个操作子。相同参数设置下,内存占用减少64倍。
    ② MCCNN:卷积被定义为依赖样本密度函数(采用MLP实现)的蒙特卡洛估计。之后采用Poisson disk sampling构建点云层次。这个卷积操作子可用于两个或多个采用方法,且适应不同的采样密度。
    ③ SpiderCNN:SpiderConv定义卷积是阶跃函数和k近邻泰勒展开的结果。阶跃函数通过编码局部几何距离获得粗糙的几何信息,泰勒展开通过在立方体顶点随机插值获得局部固有的几何变化。
    ④ PCNN:基于径向基函数的卷积方法

  3. 解决旋转等变问题的方法
    ① Esteves等人:3D Spherical CNN,学习3D Shape的旋转等变表示,采用多值球面函数作为输入。在球谐域中用锚定点参数化谱的方法获得局部卷积滤波器。
    ② Tensor filed networks:将点卷积操作子定义为一个可学习的、对3D旋转等变、平移等变、排列等变的径向函数和球面函数的结果。
    ③ [73]这篇论文:卷积被定义为空间互相关,采用FFT算法实现卷积。
    ④ SPHNet:基于PCNN,在体积函数的卷积过程中并入spherical harmonic kernels,解决了旋转不变性。

  4. 实现计算加速
    Flex-Convolution:定义卷积核的权值为k近邻的标准尺寸,可用CUDA加速。实验结果表明其在小数据集上的计算性能占用更少的参数和更低的内存。

离散卷积方法

  这些方法在规则网格中定义卷积核,邻点权重取决于预设的中心点。

  1. 一些工作
    ① Hua等人:将非均匀点云转换成非均匀网格,在网格上定义卷积核。所有落入同一个网格内的点具有相同的权值。对一个给定点,从上一层网络计算其同一网格中的所有邻居点的主要特征。所有网格的主要特征被赋予权值并求和得出当前层的输出。
    ② Lei等人:将3D空间的邻近区域分割成多个volumetric bins,并将每个bin连接一个可学习的权重矩阵来定义空间卷积核。该空间卷积核对单点的输出取决于邻居点非线性激活层激活值的加权平均。
    ③ GeoConv:某个点与其邻居点的几何关系几何关系由六项准则明确模型化。每项准则下的特征被可学习的方向关联矩阵独立赋予权重。之后根据给定点和其邻居点组成的角度聚合这些方向关联特征。对一个给定点,它在当前层的特征被定义为给定点和其邻居点在上一层特征的求和。
    ④ PointCNN:(为了节省阅读时间,以下工作不再展开,且工作也不提及了)

3.3.3 基于图的方法

  基于图的网络认为点云中的每个点都是图的向量,基于每个点的邻居生成直连边界图。特征学习在空间或光谱中进行。典型的图网络如图5所示。

在这里插入图片描述

空间域图方法

  这些方法在空间域定义操作子(卷积&池化等)。特别地,卷积通常通过空间邻域的MLP实现,池化用于产生一个新的粗化图来聚合每个邻点信息。每个向量的信息由坐标、激光强度或颜色指定,而边缘特征由两个连接点的几何结构决定。
  介绍一些突出的工作&主要思想。。。

频域图方法

  在频域定义卷积 = 图信号 x 拉普拉斯矩阵特征向量
  一些工作&思想

3.3.4 基于结构的层次化数据方法

  这些网络由不同的层次数据结构组成(如八叉树、kd树)。在这些方法中,通过叶子节点到根节点的顺序层次学习点特征。
  介绍工作。

3.3.5 其他方法

  介绍工作(大概是没有明确分类的方法全部都丢到了这里了。基于非监督、半监督方法的、基于RNN方法的、基于点云+2D图像方法的。)

3.4 小结

  3D shape classification最常用的数据集:ModelNet10/40数据集,表2(略)显示了Section3提及方法在该数据集上的表现,并通过观察可以得出几个结论:

  • 逐点MLP是其他类型网络学习逐点特征的一个基本结构;
  • 作为一个标准的深度学习架构,基于卷积的网络在非规则3D点云上有更好的性能,应当特别关注非规则数据的连续和离散卷积网络;
  • 由于其固有的对非规则数据的优势,基于图网络的方法近些年来备受关注。但频域中扩展图网络到各种图结构仍面临挑战。

Section 4 3D目标检测和跟踪

(包括现有的3D目标检测、跟踪和3D场景重现的方法)

4.1 3D object detection

  典型的三维目标检测将场景点云作为输入并输出每个object带方向的3D边框,如图6所示。和图像中的目标检测相类似,3D object detection同样分为两大类:基于区域候选的方法和signal shot方法。一些里程碑方法如图7所示。
在这里插入图片描述


在这里插入图片描述


4.1.1 基于候选区的方法

  这些方法首先候选一些可能包含object的区域,然后逐个区域地提取特征,决定该区域的分类标签。根据候选区域的产生方法,可进一步分为基于多视图的、基于分割的和基于frustum的方法。

在这里插入图片描述

基于多视图的方法

  这些方法逐个候选区地从不同视图(如LiDAR前景图+鸟瞰图+2D图像)中融合特征,来提取可旋转地3D boxes,如图8(a)所示。这些方法的计算成本非常高。
  chen等人,提出MV3D,召回率高,但速度慢。随后出现了两方面的改进:
  第一,高效地融合不同类型的信息。介绍工作。
  第二,研究不同地方法来提取输入数据的鲁棒表示。介绍工作。

基于分割的方法

  这些方法利用现有的语义分割技术去掉大部分的背景点,然后在前景点生成大量且高质量的候选区以节省计算资源,如图8(b)所示。相比于多视图的方法,这些方法在达到高召回率的同时,且适用于高遮挡、高密集目标的计算场景。
  介绍工作。

基于frustum的方法

  这些方法首先利用现有的2D object检测器生成目标的2D候选区域,并对每个2D候选区域提取一个3D frustum候选区,如图8©所示。尽管这些方法可以高效地生成可能地3D object区域,但串行结构使得该方法受限于2D图像检测。
  介绍工作。

其他方法

  介绍工作。


4.1.2 Single Shot方法

  这些方法直接预测类别概率并采用单阶段网络回归object的3D bounding boxes,因此可以高速运行。根据输入数据的类型,signal shot可分为基于BEV(鸟瞰图)、基于离散化的、基于点的方法。

基于BEV

  这些方法采用BEV作为输入。
  介绍工作。

② 基于离散的方法(可重点细看,有许多优秀且突出的工作)
这些方法将点云转换到一个规则的离散表示中,然后采用CNN预测目标类别和3D boxes
介绍工作。

基于点的方法

(我想作为以后的研究方向,一方面该方向著作少,可挖的地方就多;另一方面,直接处理点云可以保留更多信息,可获得更高性能)
  直接采用点云作为输入(不转换到其他表达方式)。
  介绍工作(内容较少)。

其他方法

  介绍工作。

4.2 3D Object Tracking

  在首帧给定了目标的位置(搜索),3D Object Tracking就要预估目标在序列帧中的位置。由于tracking可以使用点云中丰富的几何信息,被期望解决图像tracking的一些缺点,包括遮挡、照明和检测尺度的变化。
  介绍工作。(内容较少)

4.3 3D Scene Flow Estimation三维场景重现

  给定两个点云集X 和 Y,3D场景流 D = d i N D = d_i ^N D=diN描述了从 x i ∈ X x_i∈X xiX到对应位置 x i ′ ∈ Y x_i'∈Y xiY 的移动,即 x i ′ = x i + d i x_i'=x_i+d_i xi=xi+di 。 图9展示了在两个KITTI点云之间的三维场景流。和二维视觉流预测相类似,一些方法开始从点云序列中学习有用信息(如 3D Sence Flow, spatial-temporary信息等)。
  介绍工作。
在这里插入图片描述

4.4 小结

  在自动驾驶领域,KITTI benchmark 是最有影响力的数据集之一,经常用于学术和生产领域。表3、4(略)展示了不同检测器在KITTI测试集3D benchmark上的结果。可以得出以下观察结果:

  • 基于区域候选的方法最常用,且在 KITTI test 3D 和 BEV benchmarks上的性能大幅优于single shot方法;
  • 现有的3D object检测器存在两项限制,一是长距离检测能力相当低(距离越远,点越稀疏);二是如何利用纹理信息(texture information)仍是问题;
  • 多任务学习是3D object detection未来的方向;
  • 3D object tracking和scene flow estimation是新兴的研究课题,自2019年逐渐引起人们关注。

Section 5 三维点云分割

(3D Poing Cloud Segmentation)

  3D点云分割要求理解全局几何结构和每个点的细纹理。根据分割的细化程度,3D点云分割可以分类为:语义分割(场景级别)、实例分割(object级别)、部分分割(object的部分)。
在这里插入图片描述

5.1 语义分割 3D Semantic Segmentation

  给定点云,语义分割的目标是根据点的语义信息将点云分成不同的子集。和3D shape classification的分类学相似,语义分割也有4种方式:基于映射的(projection-based)、基于离散的(discretization)、基于点的(point-based)和基于混合方法(hybrid methods)。
  基于映射和离散方法的首要步骤是将点云转换成一个规则的中间表示,如多视图、spherical、 volumetric、permutohedral lattice和混合表示,如图11所示。中间表示的分割结果映射回原始点云中。与之相反,基于点的方法则是直接工作在非规则点云上。一些表示方法已在图10展示过。
在这里插入图片描述

5.1.1 基于映射的方法 Projection-based Methods

  这些方法通常将点云映射到二维图像上,包括多视图和spherical图像。
① 多视图表示的一些工作:介绍工作。
② Spherical表示的一些工作:介绍工作。

5.1.2 基于离散化的方法 Discretization-based Methods

  这些方法通常将点云转换为稠密/稀疏离散化表示 dense/sparse discrete representation,如 volumetric 和 sparse permutohedral lattices(上面的那张图)

  1. 稠密离散化表示:介绍工作。最后还有一段总结:总体而言,体素表示很自然地保留了3D点云的邻近结构(neighborhood structure),其规则的数据形式也便于直接套用标准3D卷积,这些因素使得其在该领域有非常稳定的表现。但是,将点云体素化不可避免地引起离散化伪影(discretization artifacts)和信息丢失。通常,一个有效的方案需要高占用内存和高计算资源,而低效的方案则反之。在实践中选择一个合适的网格方案是比较困难的。(面临的问题)
  2. Sparse Discretization稀疏离散化表示:体素表示通常是稀疏的,以为非零值的数量只占了很小的比例。因此,在空间稀疏数据上采用稠密卷积神经网络是非常低效的。为此,。。。介绍这方面的工作。
5.1.3 混合方法

  为了更进一步地利用所有可获得地信息,一些方法从3D场景中学习多模型特征。
  介绍工作。

5.1.4 Point-based

  基于点的方法基于点的方法直接工作在非规则点云上。但由于点云是无序且非结构化的,直接应用到标准CNN中并不可行。提出PointNet,采用共享MLP学习每个点的特征,采用对称池化函数获取全局特征。基于PointNet,提出了一系列基于点的方法。这些方法可以简单的分类为逐点MLP方法、点卷积方法、基于RNN的方法和基于图的方法。

逐点MLP方法

这些方法采用共享MLP层作为基本单元。但是,由共享MLP提取的逐点特征不能获取局部点云几何信息和点与点之间的相互作用。为了获取每个点的上下文信息,学习丰富的局部结构,引入了一些专用网络,包括基于近邻特征池化neighboring feature pooling、关注度聚合attention-based aggregation、局部-全局特征拼接local-global feature concatenation

在这里插入图片描述

  1. Neighboring feature pooling:
    为了获取局部几何模式,这些方法通过聚合局部近邻点的信息学习每个点的特征。特别是,PointNet++层次地、逐步地组合点来学习大范围局部信息,如图12(a)所示。多规模组合与多方案组合被用来解决由于不一致性和点云密度变化引起的问题。随后,。。。介绍工作。

  2. Attention-based aggregation:
    为了更进一步改善分割精度,引入注意机制(attention mechanism)到点云分割中。介绍工作。

  3. Local-global concatenation:
    介绍工作。

点卷积方法

  这些方法趋向于提出对点云有效的卷积操作子。
  介绍工作。

基于RNN的方法

  为了捕获点云固有的上下文特征,RNN同样被用于点云语义分割。
  介绍工作。

基于图的方法

  为了捕获3D点云潜在的图形和几何结构,一些方法采用图网络。
  介绍工作。

5.2 实例分割

  相比于语义分割,实例分割更具挑战性,因为它要求更高的精确度和更精细的推理过程。实例分割不仅需要显著的区分不同语义,还需要对相同语义进行单个实例的识别。现有的方法总体上可以分为两大类:基于候选区的方法(proposal-based methods)和非候选方法(proposal-free methods)。一些里程碑方法列于图13所示。

在这里插入图片描述

5.2.1 基于候选区的方法

  这些方法将实例分割问题分解成两个子任务:3D目标检测和实例mask预测。
  介绍工作。
  总结:该部分的工作都是直观易懂的,且实例分割结果通常具有良好的客观性?(objectness)但是,这些方法需要多步训练和精简冗余候选区,因此,非常耗费时间和计算成本。

5.2.2 非候选区方法

  非候选区方法不具备目标检测模块,取而代之的是,他们通常将实例分割作为语义分割的后续步骤。特别地,大多数现有方法都是基于这样一个假设,即属于相同实例的点具有相同的特征。因此,这些方法聚焦于显著特征学习和点聚合工作。
  介绍工作。
  由于一个点的语义类型和实例标签通常是相互依赖的,一些方法‘提出将两者整合到同一个任务中。介绍这种做法的工作。
  总结:非候选方法不需要计算量巨大的候选区模块,但是,由这些方法组成的实例分割的客观性通常较低,因为这些方法不能很好地检测目标边界。

5.3 部分分割

  3D shape的部分分割难点有二:一是相同语义标签的形状部分可能存在较大的几何形变(非规则),二是相同语义信息的目标所具有的parts的数量可能并不一样。
  介绍工作。

5.4 总结

  表5(略)展示了现有算法在同一平台标准下(包括S3DIS、Semantic3D、ScanNet、SemanticKITTI)的结果。以下结论通过观察得到:

  • 借助规则数据表示,基于映射的方法和基于离散化的方法可以参考2D图像相应的处理方法,得到成熟的网络结构。但是,基于映射的方法受限于将3D向2D投影所带来的信息丢失;而基于离散化方法的主要瓶颈在于计算资源的立方增长和内存随解决方案的高占用。为此,建立在索引结构(indexing structures)上的稀疏卷积或许是一个可行的方案且值得未来深入探索;
  • 基于点的网络是最常用的方法。但是,点表示自然无法利用近邻信息,绝大多数现有基于点的方法采用高代价的近邻搜索机(neighbor searching mechanisms),如KNN或ball query。 这不可避免的限制了这些方法的效率,近期提出的point-voxel联结表示或将成为该方向一个可挖点。
  • 在点云分割任务中学习非规则数据(imbalanced data)仍是一项挑战。尽管一些方法实现了较好的表现,但这些方法在稀少类别上的精度仍然受到限制。例如,RandLA-Net在Semantic3D的reduced-8子集上达到了76.0%的IoU,但在hardscape子集上仅有41.1%的IoU。
  • 大多数现有方法工作在小点云上(如1m X 1m的4096点)。实际中,由深度传感器获取的点云通常是大规模的。因此,对大规模点云的高效分割是以后的仍需探讨的问题。
  • 一些工作开始从动态点云中学习时空信息,以期从时空信息中改善如3D目标识别(recognition)、分割(segmentation)、完成(completion)等子任务的性能。

鸣谢 & 参考文献

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值