起因
由于科技论写作课需要翻译一篇自己方向的文章,所以就选择这篇文章,课程结束,将此放于这里供大家一起参考。翻译不是很好的地方也请大家见谅。
题目
Deep Learning for 3D Point Clouds: A Survey
论文:https://arxiv.org/abs/1912.12033
仓库:https://github.com/QingyongHu/SoTA-Point-Cloud
摘要
由于点云学习在计算机视觉,自动驾驶和机器人等许多领域的广泛应用,近来引起了越来越多的关注。作为AI中的主要技术,深度学习已成功解决了各类2D视觉问题。但是,由于使用深度神经网络处理点云所面临的独特挑战,因此点云上的深度学习仍处于起步阶段。近年来,在点云上的深度学习逐渐蓬勃发展起来,针对该领域所面临的不同问题提出了许多解决方法。为了激发未来的研究,本文对点云深度学习方法的最新进展进行了全面的回顾。它涵盖了三个主要任务:3D形状分类,3D对象检测和跟踪以及3D点云分割。它还提供了一些可公开获得的数据集的比较结果,以及有见地的观察和启发性的未来研究方向。
索引词-深度学习,点云,3D数据,形状分类,对象检测,对象跟踪,场景流,实例分割,语义分割,场景理解
1 简介
随着3D采集技术的飞速发展,3D传感器变得越来越便宜可用,包括各种类型的3D扫描仪,LiDAR和RGB-D相机(例如Kinect,RealSense和Apple深度相机)[1]。这些传感器获取的3D数据可以提供丰富的几何,形状和比例信息[2],[3]。与2D图像互补,3D数据为更好地了解机器周围环境提供了机会。 3D数据在不同领域具有众多应用,包括自动驾驶,机器人技术,遥感,医疗和设计行业[4]。
3D数据通常可以用不同的格式表示,包括深度图像,点云,网格和体素网格。点云作为一种常用3D表达方式,将原始几何信息保留在3D空间中,且无任何离散化。因此,它是许多场景理解相关应用(例如自动驾驶和机器人技术)的首选表示形式。近年来,深度学习技术已主导了许多研究领域,例如计算机视觉,语音识别,自然语言处理(NLP)和生物信息学。然而,在3D点云上进行深度学习仍然面临数个重大挑战[5],例如数据集规模小,维度高和3D点云的非结构化性质。在此基础上,本文着重分析用于处理3D点云的深度学习方法。
点云应用深度学习已吸引了越来越多的关注,尤其是在过去的五年中。一些公开数据集也逐步发布,例如ModelNet [6],ShapeNet [7],ScanNet [8],Semantic3D [9]和KITTI Vision Benchmark Suite [10]。这些数据集进一步推动了对3D点云的深度学习的研究,提出了越来越多的方法来解决与点云处理有关的各种问题,包括3D形状分类,3D对象检测和跟踪以及3D点云分割。相关文献当中很少有关于3D数据的深度学习综述,例如[11],[12],[13],[14]。我们的论文是第一个专门针对点云的深度学习方法的论文。此外,我们的论文全面涵盖了分类,检测,跟踪和分割等不同应用。图1显示了3D点云的现有深度学习方法的分类。
图1:用于3D点云的深度学习方法分类。
与现有文献相比,这项工作的主要贡献可以归纳如下:
1)据我们所知,这是第一篇针对3D形状分类,3D对象检测和跟踪以及3D点云分割等重要点云相关任务全面涵盖深度学习方法的综述论文。
2)与现有的[11],[12]相反,我们专门关注于3D点云的深度学习方法,而不是所有类型的3D数据。
3)本文涵盖了点云上深度学习的最新和最先进的进展。因此,为读者提供了最新的方法。
4)提供了现有方法在几个可公开获得的数据集上的全面比较(例如,表1、2、3、4),并给出了简短的摘要和有见地的讨论。
接下来的文章组织如下:第二章节主要介绍相关任务的数据集以及衡量方式;第三章节主要介绍3D形状分类;第四章节主要介绍3D目标检测和跟踪;第五章节主要介绍点云分割,其中包括语义分割、实例分割和部件分割。最后,第六章节总结整篇论文。我们还在以下网址上提供了定期更新的项目页面:
https://github.com/QingyongHu/SoTA-Point-Cloud
2 背景
2.1 数据集
针对不同的3D点云应用,有大规模的数据集对应来评测深度学习算法性能。表1列举了一些典型用于3D分类,3D目标检测与追踪,以及3D点云分割的数据集。特别的,这些数据集的属性也有总结。
对于3D形状分类,有两类数据集,合成数据及[6],[8]和真实数据集[7],[11]。在合成数据及里的物体是完整的,没有遮挡和背景。而在现实场景的数据集是有不同程度的遮挡的,且一些物体是受背景噪声干扰的。
对于3D目标检测与追踪,有两类数据集:室内场景[11]、[25]和室外城镇场景[14]、[18]、[30]、[31]。室内场景不是从密集深度图获取,就是从3D mesh中采样获取的。室外城镇场景是专门为自动驾驶所设计的,其中的物体是空间分离的,且点云是稀疏的。
对于3D点云分割,这些数据集是通过不同类型的感知器获得的,包括Mobile Laser Scanners(MLS)[15]、[34]、[36],Aerial Laser Scanners(ALS)[33]、[38],静态 Terrestrial Laser Scanners (TLS)[12], RGB-D相机[11]和其他3D扫描仪[10]。这些数据集都能用来生成对于不同挑战的算法,例如相似干扰,形状缺失,和类别不均衡。
2.2 衡量指标
针对不同类型点云理解任务,对应提出了适合的衡量方法来验证。对于3D形状分类,总体准确率(OA)和平均类别准确率(mAcc)是最常用的衡量性能指标的方法。’OA‘表示所有测试样例的平均准确率,’mAcc‘表示所有形状类别的平均准确率。对于3D目标检测,平均精确度(AP)是最常用的指标。其反应了精确度-召回率曲线下面的面积。精确度和召回率通常被用来衡量3D单个物体追踪的性能。平均多目标追踪准确率(AMOTA)和平均多目标追踪精确度(AMOTP)是衡量3D多目标追踪的最常用指标。对于3D点云分割, OA,平均交并比(mIoU)和平均类别准确率(mAcc)[10],[12],[15],[36],[37]是最常用的衡量指标。尤其是,平均召回率(mAP)[39]是用作3D点云汇总的实例分割的。
3 3D形状分类
这些方法通常先学习每个点的嵌入,然后使用聚合方法从整个点云中提取全局形状嵌入。最终,输入全局嵌入到几个完全连接的层实现了分类。基于在每个点上执行特征学习的方式,现有的3D形状分类方法可以分为基于多视角,基于体素和基于点的网络。图2说明了几种里程碑方法。
图2:3D形状分类网络的时间顺序概述。
基于多视角的方法,首先将非结构化的点云投影到2D图像中,而基于体素的方法是将一个点云转变为3D体素来表达。然后利用完善的2D或3D卷积实现形状分类。相反,基于点的方法可直接在原始点云上运行,而无需任何体素化或投影。基于点的方法不会造成明显的信息丢失,并且越来越受欢迎。 本文中,作者主要关注基于点的网络,但为了完整起见,也很少包含基于投影的网络。
3.1基于多视角的方法
这些方法将3D点云投影到多个视图当中,并提取不同视图方向的特征,然后混合这些特征来以进行准确的形状分类。如何将多个基于视图的特征聚合到一个可区分的全局表示中是一个关键挑战。
MVCNN [40]是一项开创性的工作,它只是将多视图特征最大池化为一个全局描述符。 但是,最大池化只能保留特定视图中的最大元素,会导致信息丢失。 MHBN [41]通过协调双线性池化整合了局部卷积特征,以生成紧凑的全局描述符。 杨等[42]首先利用关系网络来利用一组视图之间的相互关系(例如,区域-区域关系和视图-视图关系),然后将这些视图进行聚合以获得具有区别性的3D对象表示。 另外,还提出了其他几种方法[43],[44],[45],[46]以提高识别精度。不像先前的一些方法,Wei等人[47]在View-GCN中使用定向图,将多视图看做是图的结点。核心层包括局部图卷积,非局部信息传输和可选择性的视图采样,然后使用这些来构成图。所有层级的的结点特征经过最大池化串联起来形成全局形状描述子。
3.2基于体素的方法
早期方法通常在3D点云的体素表示基础上应用3D卷积神经网络(CNN)来实现形状分类。
Maturana等人[48]介绍了一种称为VoxNet的体积占用网络,以实现可靠的3D目标识别。 Wu等[6]提出了一种基于卷积深度信念的3D ShapeNet,以学习各种3D形状中点的分布。 3D形状通常由体素网格上二进制变量的概率分布表示。尽管已经实现了令人鼓舞的性能,但是这些方法无法很好地应用到密集的3D数据,因为计算和内存占用量会随着分辨率的增加而三次增长。
为此,引入了分层而紧凑的图结构(例如八叉树)以减少这些方法的计算和存储成本。 OctNet [49]首先使用混合网格八叉树结构对点云进行分层划分,该结构代表沿规则网格具有几个浅八叉树的场景。使用位串表示对octree的结构进行有效编码,并通过简单的算法对每个体素的特征向量进行索引。 Wang等[50]提出了一种基于Octree的CNN用于3D形状分类。在最细的叶子八分位数中采样的3D模型的平均法线向量被馈送到网络中,并将3D-CNN应用于3D形状表面所占据的八分位数。与基于密集输入网格的基准网络相比,OctNet对于高分辨率点云所需的内存和运行时间要少得多。 Le等[51]提出了一种称为PointGrid的混合网络,该网络集成了点和网格表示,以进行有效的点云处理。在每个嵌入的体素网格单元中采样恒定数量的点,这使网络可以使用3D卷积提取几何细节。Ben-Shabat等人[52]将输入的点云转换到3D网格中用3D modified Fisher Vector(3DmFV)来表示,接着通过传统CNN框架来学习全局表达。
3.3 基于点的方法
根据用于每个点的特征学习的网络体系结构,可以将这一类的方法分为逐点MLP,基于卷积,基于图,基于数据索引的网络和其他典型网络。
3.3.1逐点MLP网络
这些方法使用多个多层感知器(MLP)独立地对每个点建模,然后使用对称函数聚合全局特征,如图3所示。这些网络可以实现无序3D点云的置换不变性。但是,没有完全考虑3D点之间的几何关系。
图3:PointNet的体系结构。 n表示输入点的数量,M表示每个点的学习特征尺寸。 在最大池化之后,整个点云的全局特征的维度也是M。
传统的应用于2D图像的深度学习方法不能够直接用到3D点云当中,因为点云数据潜在的不规则性。作为一项开创性的工作,PointNet [5]通过几个MLP层学习逐点特征,并通过最大池化层提取全局形状特征。 使用几个MLP层获得分类分数。 Deep sets[53]通过加和所有表达并使用非线性转换来实现置换不变性。由于在PointNet[5]中每个点的学习是独立的,因而点间的局部结构信息是不能被捕获的。因此,Qi等人[54]提出了层级架构网络PointNet++通过每个点的邻居来捕获好的几何结构。作为PointNet ++层次结构的核心,其集合抽象级别由三层组成:采样层,分组层和PointNet层。 通过堆叠几个集合抽象级别,PointNet ++可以从局部几何结构中学习特征,并逐层抽象局部特征。
由于其简单性和强大的表示能力,很多网络都是基于PointNet [5]来开发。
Mo-Net [55]的体系结构与PointNet [5]相似,但是它需要一组有限的矩作为其网络的输入。在点注意力变换(PAT)[56]中,每个点都由其自身的绝对位置和相对于其邻居的相对位置表示。然后,使用组混洗注意力(GSA)来捕获点之间的关系,并开发了排列不变,可区分且可训练的端到端Gumbel子集采样(GSS)层来学习分层特征。 PointWeb [57]也是基于PointNet ++[54]构建的,它使用局部邻域的上下文来使用自适应特征调整(AFA)来改进点特征。Duan等 [58]提出了一种结构关系网络(SRN)来学习使用MLP的不同局部结构之间的结构关系特征。 Lin等[59]通过为PointNet所学习的输入和函数空间构造查找表来加速推理过程。在中等机器上,与PointNet相比,ModelNet和ShapeNet数据集上的推理时间缩短了1.5毫秒,达到32倍。 SRINet [60]首先投影一个点云以获得旋转不变表示,然后利用基于PointNet的主干来提取全局特征,并利用基于图的聚合来提取局部特征。在PointASNL当中,Yan等人[61]使用了自适应采样(AS)模块来自适应坐标和使用最远点采样(FPS)获取特征点,并提出了一个局部-非局部(L-NL)模块来获取这些采样点的局部和长区间的独立性。
3.3.2基于卷积的网络
与在2D网格结构(例如图像)上定义的内核相比,由于点云的不规则性,难以为3D点云设计卷积内核。 根据卷积内核的类型,当前的3D卷积网络可以分为连续卷积网络和离散卷积网络,如图4所示。
图4:一个点的局部邻居的连续和离散卷积的图示。(a)代表局部近邻区;(b)和(c)分别代表3D连续和离散卷积。
3D连续卷积网络。 这些方法在连续空间上定义卷积核,其中相邻点的权重与相对于中心点的空间分布有关。
3D卷积可以解释为给定子集的加权和。RS-Conv作为RS-CNN[62]的核心层,以某一点周围的局部子集作为输入,通过学习局部子集中的低层关系(如欧几里德距离和相对位置)到高层关系的映射,利用MLP实现卷积。 在[63]中,内核元素是在单位球体内随机选择的。然后使用基于MLP的连续函数在内核元素的位置和点云之间建立关系。 在DensePoint [64]中,卷积定义为具有非线性激活器的单层感知器(SLP)。 通过串联所有先前层的特征以充分利用上下文信息来学习特征。Thomas等人[65]使用一组可学习的核点,为3D点云提出了刚性和可变形核点卷积(KPConv)运算符。ConvPoint[66]将卷积核分为空间和特征部分。从单位球体中随机选择空间部分的位置,并通过简单的MLP学习加权函数。
一些方法还使用现有算法来执行卷积。在PointConv [67]中,卷积定义为相对于重要性采样的连续3D卷积的蒙特卡洛估计。卷积核由加权函数(通过MLP层学习)和密度函数(通过核化密度估计和MLP层学习)组成。为了提高内存和计算效率,将3D卷积进一步简化为两个运算:矩阵乘法和2D卷积。使用相同的参数设置,其内存消耗可减少约64倍。在MCCNN [68]中,卷积被视为依赖样本密度函数(由MLP实现)的蒙特卡洛估计过程。然后使用泊松磁盘采样来构建点云层次结构。该卷积算子可用于在两种或多种采样方法之间执行卷积,并可处理变化的采样密度。在SpiderCNN [69]中,提出了SpiderConv来定义卷积,将卷积定义为在k个最近邻居上定义的阶跃函数和泰勒展开式的乘积。阶梯函数通过对局部测地距离进行编码来捕获粗略的几何形状,泰勒展开通过在立方体的顶点处插值任意值来捕获固有的局部几何变化。此外,还基于径向基函数为3D点云提出了卷积网络PCNN [70]。
已经提出了几种方法来解决3D卷积网络面临的旋转等变问题。 Esteves等人[71]提出了一种以多值球面函数为输入的三维球面卷积神经网络(spheral CNN)来学习三维形状的旋转等变表示。通过在球形谐波域中使用锚点对频谱进行参数化来获得局部卷积滤波器。张量场网络[72]将点卷积运算定义为可学习的径向函数和球谐函数的乘积,球谐函数局部等价于点的三维旋转、平移和置换。[73]中的卷积是基于球面互相关定义的,并使用广义快速傅里叶变换(FFT)算法实现。基于PCNN,SPHNet [74]通过在体积函数的卷积过程中合并球谐函数内核来实现旋转不变性。
为了加快计算速度,Flex-Convolution [75]将卷积核的权重定义为k个最近邻居上的标准标量积,可以使用CUDA对其进行加速。实验结果证明了它在具有较少参数和较低内存消耗的小型数据集上的竞争性能。
3D离散卷积网络。 这些方法在常规网格上定义卷积核,其中相邻点的权重与相对于中心点的偏移量有关。
Hua等人[49]将非均匀的3D点云转换为均匀的网格,并在每个网格上定义了卷积核。与2D卷积不同(向每个像素分配权重),提出的3D内核将相同的权重分配给落入同一网格的所有点。对于给定点,从上一层计算位于同一网格上的所有相邻点的平均特征。然后,对所有网格的平均特征进行加权和求和,以生成当前图层的输出。 Lei等[77]通过将3D球形邻近区域划分为多个体积区域并将每个区域与可学习的加权矩阵相关联来定义球形卷积核。一个点的球形卷积核的输出由其相邻点的加权激活值平均值的非线性激活确定。在GeoConv [78]中,一个点及其相邻点之间的几何关系是基于六个基础显式建模的。沿基础每个方向的边缘特征根据相邻点的基础由可学习的矩阵独立加权。然后根据给定点及其相邻点形成的角度聚合这些与方向相关的特征。对于给定点,其当前层的特征定义为给定点的特征及其在上一层的相邻边缘特征的总和。
PointCNN [79]通过χ-conv转换(通过MLP实现)实现了置换不变性。通过将点特征插值到相邻的离散卷积核量坐标,Mao等人[80]提出了一个插值卷积算子InterpConv来测量输入点云和核重量坐标之间的几何关系。张等[81]提出了一个RIConv算子来实现旋转不变性,它以低层旋转不变几何特征作为输入,然后通过一种简单的分区方法将卷积变成一维。A-CNN [82]通过围绕查询点每个环上的核大小围绕邻居数组循环定义环形卷积。A-CNN学习局部子集中的相邻点之间的关系。
为了减少3D CNN的计算和存储成本,Kumawat等人[83]提出了一种基于3D短期傅里叶变换(STFT)的3D局部邻域中的相位提取整流局部相体积(ReLPV)块,STFT显着减少了参数数量。在SFCNN [84]中,将点云投影到具有对齐球坐标的规则二十面体网格上。然后,通过卷积-最大池-卷积结构对从球形晶格的顶点及其相邻像素连接的特征进行卷积。 SFCNN抵抗旋转和扰动。
3.3.3基于图的网络
基于图的网络将点云中的每个点视为图的顶点,并基于每个点的邻居为图生成有向边。然后在空间或频谱域中进行特征学习[85]。一个典型的基于图的网络如图5所示。
图5:基于图的网络的图示。
空间域中基于图的方法。 这些方法在空间域中定义操作(例如,卷积和池化)。具体来说,卷积通常是通过空间邻域上的MLP来实现的,而池化则是通过聚合每个点邻域的信息来产生一个新的粗化图。通常为每个顶点的特征分配坐标,激光强度或颜色,而通常为每个边缘的特征分配两个连接点之间的几何属性。
作为开创性的工作,Simonovsky等人[85]将每个点视为图的顶点,并通过有向边将每个顶点连接到其所有邻居。然后,使用滤波器生成网络(例如,MLP)提出了边缘条件卷积(ECC)。采用最大池化来聚集邻域信息,并基于VoxelGrid [86]算法实现图粗化。对于形状分类,卷积核池化时交错的。然后,根据全局平均池化和全连接层产生分类分数。在DGCNN[87]中,在特征空间中构造一个图,并在网络的每一层之后动态更新。作为EdgeConv的核心层,采用MLP作为每个边缘的特征学习函数,并对与每个点邻域相关的边缘特征进行信道对称聚集。此外,LDGCNN[88]移除了变换网络,并将DGCNN[87]中不同层的分层特征连接起来,以提高其性能并减小模式大小。本文还提出了一种端到端无监督的深度自编码网络(FoldingNet[89]),它使用矢量化的局部协方差矩阵和点坐标的级联作为输入。Hassani等人受Inception [90]和DGCNN [87]的启发,Hassani 和 Haley[91]提出了一种无监督的多任务自动编码器来学习点和形状特征。 编码器是基于多尺度图构造的。 解码器是使用三个非监督任务构造的,包括聚类,自我监督分类和重构,这些任务与多任务损失一起训练。 刘等[92]提出了一种基于图卷积的动态点集聚模块(DPAM),以将点集聚(采样,分组和池化)的过程简化为一个简单的步骤,该步骤通过将集聚矩阵与点特征矩阵相乘来实现。 基于PointNet架构,通过堆叠多个DPAM来构建分层学习架构。与PointNet ++[54]的层次结构策略相比,DPAM在语义空间中动态挖掘点与聚集点之间的关系。
为了利用局部几何结构,KCNet [93]学习基于核相关的特征。 具体而言,将表征局部结构的几何类型的一组可学习点定义为内核。 然后,计算内核与给定点邻域之间的亲和力。 在G3D [94]中,卷积定义为邻接矩阵多项式的变体,池化定义为将Laplacian矩阵和顶点矩阵乘以一个粗化矩阵。 ClusterNet [95]利用严格旋转不变(RRI)模块提取每个点的旋转不变特征,并基于具有监督联系标准的无监督聚集层次聚类方法构建点云的层次结构[96]。 首先通过EdgeConv块学习每个子集群中的特征,然后通过最大池化聚合。
为了解决当前数据结构耗时问题(例如FPS和临近点排序),Xu等人[97]提出混合体素的优点和基于点的方式来提升计算有效性。在ModelNet分类任务上的结果也验证了所提出的Grid-GCN网络较为其他方法平均来看要快5倍的有效性。
频谱域中基于图的方法。 这些方法将卷积定义为频谱滤波,这是通过将图上的信号与图拉普拉斯矩阵的特征向量相乘来实现的[98]、[99]。
RGCNN [100]通过将每个点与点云中的所有其他点连接来构造图,并更新每一层中的图拉普拉斯矩阵。为了使相邻顶点的特征更相似,在损失函数中添加了先验图信号平滑度。为了解决由多样的数据图拓扑引起的挑战,AGCN [101]中的SGC-LL层利用可学习的距离度量来参数化图上两个顶点之间的相似度。从图获得的邻接矩阵使用高斯核和学习距离进行归一化。HGNN[74]提出了一个超图神经网络(HGNN),并通过在超图上应用谱卷积来建立一个超边缘卷积层。
前述方法在全图上运行。为了利用局部的结构信息,王等[103]提出了一个端到端的频谱卷积网络LocalSpecGCN来处理局部图(它是由k个最近的邻居构造而成的)。此方法不需要对图拉普拉斯矩阵和图粗化层次进行任何离线计算。在PointGCN [104]中,基于来自点云的k个最近邻居构建图,并使用高斯核对每个边进行加权。卷积滤波器在图谱域中定义为Chebyshev多项式。全局池化和多分辨率池化用于捕获点云的全局和局部特征。 Pan等[105]通过在谱域中的k个最近邻图上应用卷积来提出3DTINet。通过从相对的欧几里得距离和方向距离中学习,可以实现几何变换的不变性。
3.3.4基于数据索引的方法
这些网络是根据不同的数据索引结构(例如octree和kd-tree)构建的。在这些方法中,点特征是沿着树从叶节点到根节点分层学习的。
Lei等[77]提出了一种使用球面卷积核的八叉树引导的CNN。网络的每一层都对应于八叉树的一层,并且在每一层都应用了球形卷积核。当前层中神经元的值确定为上一层中所有相关子节点的平均值。与基于octree的OctNet [49]不同,Kd-Net [106]是使用多个K-d树构建的,每个树在每次迭代时具有不同的分割方向。按照自下而上的方法,使用MLP根据非子节点的子代表示来计算非子节点的表示。根节点的特征(描述整个点云)最终被馈送到全连接层以预测分类得分。注意,Kd-Net根据节点的拆分类型在每个级别共享参数。3DContextNet [107]使用标准的平衡K-d树来实现特征学习和聚合。在每个级别上,首先通过MLP基于局部提示(该局部提示对局部区域中的点之间的相互依赖性进行建模)和全局上下文提示(其针对一个位置相对于所有其他位置的关系进行建模)来学习点特征。然后,使用MLP从非子节点的子节点计算其特征,并通过最大池化对其进行聚合。对于分类,重复上述过程直到获得根节点。
SO-Net网络的层次结构是通过执行点到节点k最近邻居搜索来构建的[108]。具体而言,修改后的置换不变自组织图(SOM)用于对点云的空间分布进行建模。通过一系列全连接层,从归一化的点到节点坐标中学习单个点的特征。 SOM中每个节点的特征是使用通道的最大池化从与此节点关联的点特征中提取的。然后使用类似于PointNet [5]的方法从节点特征中学习最终特征。与PointNet ++ [5]相比,SOM的层次结构效率更高,并且可以充分利用点云的空间分布。
3.3.5其他方法
除上述方法外,还提出了许多其他方案。RBFNet [113]通过聚集来自稀疏分布的径向基函数(RBF)内核的特征来显式地建模点的空间分布。
3DPointCapsNet[112]通过将逐点MLP应用于点云以提取点独立特征,然后通过串联多个最大池学习特征图来提取全局潜在表示。基于无监督的动态路径,可以学习强大的代表性潜在胶囊。Qin等人[116]提出了一种基于端到端的非监督域自适应网络PointDAN来表示3D点云。为了捕获点云的语义属性,提出了自监督的方法来重构点云,该方法对点云的部分进行了随机重排[117]。
Li等人[118]提出了自动增强框架,PointAugment,为网络训练进行自动优化和增强点云样本。特别地,对于每个输入样本的基于形状的转换和点的替代是自动学习的,网络通过有选择性的优化和更新增强器和分类器的可学习的参数来学习。受到形状上下文[119]中得到启发,Xie等人[109]提出了ShapeContextNet框架,该方法通过将亲和点选择(affinity point selection)和紧凑的特征聚合结合在一起,并使用点积自关注[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全局视图特征得到了增强,可用于点单视图融合和点多视图融合。
3.4小结
ModelNet10 / 40数据集[]6是最常用的形状分类数据集。表2显示了通过不同的基于点的网络获得的结果。可以得出以下几点结论:
- 逐点MLP网络通常用作其他类型的网络的基本构建块,以学习逐点特征。
- 作为标准的深度学习架构,基于卷积的网络可以在不规则的3D点云上实现出色的性能。对于不规则数据,应该更加注意离散卷积网络和连续卷积网络。
- 由于其固有的强大能力来处理不规则数据,基于图形的网络近年来引起了越来越多的关注。但是,将频谱域中的基于图的网络扩展到各种图结构仍然具有挑战性。
表2:在ModelNet10/40基准上比较三维形状分类结果。这里,我们只关注基于点的网络,“#params”表示相应模型的参数数量。“OA”表示总体精度,“mAcc”表示表中的平均精度。符号“-”表示结果不可用。
4 3D物体检测与跟踪
在这个章节,我们会回顾现有3D目标检测、3D目标追踪和3D场景流估计。
4.1 3D物体检测
一个典型的3D目标检测是将一个场景的点云作为输入,然后在需要识别的目标周围生成有向的3D边框,如图6所示。与普通2D中的目标检测方法类似[123],3D中的目标检测方法也可分为两类:基于候选区域的方法和直接映射的方法。一些里程碑式工作如图7所示。
4.1.1 基于候选区域的方法
这些方法首先产生一些可能包含物体的区域(Proposals),接着对各个区域提取特征,来决定各个候选区域的物体类别。根据不同的产生候选区域的方法,这些方法可进一步分为三类:基于多视角的方法;基于分割的方法以及基于锥体的方法。
多视图方法。 这些方法融合了来自不同视图的建议性特征(例如,LiDAR前视图,鸟瞰图(BEV)和图像)以获得3D旋转框,如图8(a)所示。这些方法的计算成本通常很高。
图8:三类3D对象检测方法的典型网络。 从上到下:(a)基于多视图的(b)基于分割的方法和(c)基于视锥的方法。</