3D点云深度学习:综述(点云形状识别部分)
Deep Learning for 3D Point Clouds: A Survey
TPAMI 2019.12 作者:Yulan Guo 时间:2019-12
原文地址:https://arxiv.org/abs/1912.12033
文献更新地址:https://github.com/QingyongHu/SoTA-Point-Cloud
作者主页:http://yulanguo.me/
摘要
近年来,因点云学习在许多领域的广泛应用而越来越引起人们的关注,如计算机视觉、自动驾驶和机器人等领域。作为人工智能领域的主要技术,深度学习已经成功用于解决各种二维视觉问题。然而,由于通过深吧 度神经网络处理点云的过程中面临的独特挑战,点云上的深度学习仍处于起步阶段。近来,点云上的深度学习更加蓬勃发展,众多的方法正在提出解决这一领域的不同问题。为了激励未来的研究,本文对点云深度学习方法的最新进展进行了全面综述。它涵盖了三大任务,包括3D形状分类、3D物体检测和跟踪,以及3D点云分割。它还介绍了几个公开数据集的比较结果。以及深刻的观察和启发未来的研究方向。
索引术语: 深度学习,点云,3D数据,形状分类,形状检索,对象检测,对象跟踪,场景流。
(为什么兴起?一是硬件设备采集设备性能更好了;二是3D数据因为多了一个维度包含更多的信息;三是深度学习技术可以在无序的3D数据上施展手脚了)
1、引言:
随着3D采集技术的快速发展,3D传感器越来越多且价格实惠,包括各种类型的3D扫描仪、激光雷达和RGB-D摄像机(如Kinect、RealSense和RealSense、苹果深度相机)[1]。这些传感器获取的3D数据可以提供丰富的几何、形状和比例信息[2][3]。 与二维图像相辅相成,三维数据提供了一个以更好地了解机器周围的环境的机会。三维数据有很多应用在不同领域,包括自动驾驶、机器人、遥感、医疗等领域[4]。三维数据通常可以用不同的格式来表示。包括深度图像、点云、网格和体积网格。作为一种常用的格式,点云保留了原始的几何信息在三维空间中,不需要任何离散化。因此,它是许多场景理解相关的首选表示方法,例如自动驾驶和机器人等应用。最近,深度学习技术有许多主导的研究领域例如:计算机视觉、语音识别和自然语言处理等研究领域。然而,深度学习在3D点云上仍然面临着一些重大的挑战[5],如数据集规模小、维度高和3D点云的非结构化性质。在此的基础上,本文重点分析了深度学习中的的方法,这些方法已被用于处理3D点云。
点云上的深度学习一直吸引着更多的和更多的关注,特别是在过去五年。一些公开的数据集也被发布,如ModelNet [6], ScanObjectNN [7], ShapeNet [8], PartNet [9],S3DIS [10], ScanNet [11], Semantic3D [12], ApolloCar3D[13], and the KITTI Vision Benchmark Suite [14], [15]。这些数据集进一步推动了深度学习在三维点云上的研究。随着越来越多的方法拟解决与点云处理有关的各种问题,包括3D形状分类、3D物体检测和跟踪、3D点云分割、3D点云对准、6-DOF姿态估计和3D重建[16],[17],[18]。很少有关于三维数据的深度学习的调查研究可以得到,如[19]、[20]、[21]、[22]。然而,我们的论文是第一篇专门关注于点云理解的深度学习方法。现有的3D点云的深度学习方法的分类如图1所示:
图1:三维点云深度学习方法的分类
与现有的文献相比,这项工作的主要贡献被总结如下:
1) 第一篇全面涵盖几个重要点云相关任务的深度学习方法的调查论文,包括三维形状分类、三维目标检测和跟踪以及三维点云分割。
2) 相对于现有的综述[19]、[20],我们特别专注于3D点云的深度学习方法而不是所有类型的3D数据。
3) 本文涵盖了点云上深度学习的最新的和最先进的进展。因此,它为读者提供了最先进的方法。
4) 现有方法在几个公开的数据集上的综合比较是被提供(如表2、3、4、5),并附有简短的摘要和有见地的讨论说明。
本文的结构如下。第二节介绍了对应任务的数据集和评估指标。第3节回顾了3D形状分类。第4节提供了对现有3D物体检测和跟踪的方法。第五节介绍了点云分割的方法综述。包括语义分割、实例分割和部件分割。最后,第6节总结了该文。我们还提供了一个定期更新的项目页面:https://github.com/QingyongHu/SoTA-Point-Cloud.
2、背景
2.1 数据集
已经收集了大量的数据集,以便评估深度学习算法在不同的3D点云应用的性能。表1列出了一些典型的数据集用于三维形状分类、三维对象检测和跟踪,以及三维点云分割。尤其是,还总结了这些数据集的属性。
对于三维形状分类,有两种类型的数据集:合成数据集[6]、[8]和现实世界的数据集。[7], [11]. 合成数据集中的对象是完整的,没有任何遮挡和背景。相反,物体在现实世界的数据集中,在不同的层次上被遮挡住了和一些物体被背景噪音污染。
对于三维物体的检测和跟踪,有两种类型的数据集:室内场景[11]、[25]和户外城市场景[14]、[28]、[30]、[31]。室内的点云数据集是由密集的深度图转换而来,或者是从三维网格中采样而来。户外城市数据集是为自动驾驶而设计,其中物体在空间上是分离良好的,这些点云是稀疏的。
对于3D点云分割,这些数据集的获取方式是通过不同类型的传感器,包括移动激光扫描仪(MLS)[15], [34], [36], 航空激光扫描仪(ALS)[33]、[38]、静态地面激光扫描仪(TLS)[12]、RGBD摄像机[11]和其他3D扫描仪[10]。这些数据集可用于开发应对各种挑战的算法,包括类似的干扰因素、形状不完整和类别不平衡。
表1.三维形状分类、三维物体检测和跟踪以及三维点云的现有数据集汇总。用于评价的类数和注释类数(用括号表示)
2.2评价指标
有人提出了不同的评价指标来测试这些用于各种点云理解任务的方法。对于三维形状分类,总体准确度(OA)和平均类别准确率(mAcc)是最常用的性能。标准。'OA'代表所有测试实例的平均准确度。而'mAcc'代表的是所有形状类的平均准确率。对于三维物体检测,平均精度(AP)是最常用的标准。它的计算方法是精度-召回曲线下的面积。精度和成功率通常用于评估三维单物体跟踪器的整体性能。平均多物体跟踪准确率(AMOTA)和平均多目标跟踪精度(AMOTP)是3D多物体跟踪评估的最常用的标准。对于三维点云分分割、OA、平均交叉点单元(mIoU)和平均类别精度(mAcc)[10]、[12]、[15]、[36]、[37]为最常用的绩效评估标准。尤其是,平均准确率精度(mAP)[39]也被用于3D点云的实例分割。
3、3D形状分类
这个任务的方法通常是学习每个点的嵌入,然后使用聚合方法从整个点云中提取全局形状嵌入,最终由几个全连接层来实现分类。根据神经网络输入的数据类型,现有的3D形状分类方法可分为多视图的、基于体积的和基于点的方法。一些里程碑方法如图2所示。
基于多视角的方法将一个非结构化的点云投影到二维图像,而基于体积的方法将点云转换为三维体积表示。然后,成熟的二维或三维卷积网络被用于利用来实现形状分类。相比之下,基于点的方法直接在原始点云上工作,不需要任何体素化或投影;基于点的方法不会引起明显的信息丢失,并且越来越受欢迎。 请注意,本文主要关注基于点的方法,但也包含少许基于多视图和基于体积的完整性方法。
图2:按时间顺序概述的最相关的基于深度学习的3D形状分类方法
3.1基于多视图的方法
这些方法首先将3D形状投影到多个视图中并提取视图功能,然后融合这些功能用于精确的形状分类。如何汇总多个视图特征转化为可区分的全局表示这些方法面临的主要挑战。
MVCNN [40]是一项开创性的工作,它只是maxpools将多视图功能转换为全局描述符。然而,max-pooling仅保留来自具体的观点,造成信息流失。 MHBN [41]通过协调双线性整合局部卷积特征合并以生成紧凑的全局描述符。杨等。 [42]首先利用关系网络来开发相互关系(例如区域与区域之间的关系以及视图-视图关系)汇总这些视图以获得有区别的3D对象表示。此外,还有其他几种方法[43],[44],[45],[46]也被提出来提高识别度准确性。与以前的方法不同,Wei等人[47]通过考虑多个因素在View-GCN中使用了有向图视图作为grpah节点。局部的核心层组成图卷积,非本地消息传递和选择性然后将视图采样应用于构造的图。所有级别的最大池节点特征的串联是最终用于形成全局形状描述符。
注意:Multi-View的方法有以下几个特点:
1。理解简单,就是将点云投影到不同的view
2。网络结构已有,投影到2D平面之后,就可以用处理图像的CNN处理
3。精度高:RotationNet已有体现
4。处理速度慢:要处理多幅图像
5。对于一般场景不适用:因为要获取multi-view,例如智能车场景,就不可能获取多个view的投影
3.2基于体素的方法
这些方法通常会将点云体素化为3D网格,然后应用3D卷积神经网络(CNN)
在体素表示中进行形状分类。Maturana等[48]引入了称为VoxNet的体积占用网络,可实现强大的3D对象识别。Wu等 [6]提出了基于卷积的深层信念3DShapeNets,可从中学习各种3D形状中点的分布(以概率表示二元变量在体素网格上的分布)。 虽然这些方法已取得令人鼓舞的表现,但是这些方法无法将其很好地缩放到密集的3D数据,因为计算和内存占用量随着分辨率的增加而三次增长。
为此,采用了层次分明的紧凑结构(例如八叉树),以减少计算量和这些方法的存储成本。OctNet [49]首先分层使用混合网格八叉树结构分割点云结构,它代表了具有几个浅层的沿着规则网格的八叉树的场景。八叉树的结构是使用位字符串表示有效地编码,并且通过简单的算术索引每个体素的特征向量。Wang等 [50]提出了基于Octree的3D CNN形状分类。 在最细的叶子八分位数中采样的3D模型的平均法线向量被馈送到网络中,并将3D-CNN应用于3D形状表面所占据的八分位数。与基于密集输入网格的基准网络相比,OctNet对于高分辨率点云所需的内存和运行时间要少得多。 Le等[51]提出了一种称为PointGrid的混合网络,该网络集成了点和网格表示,以进行有效的点云处理。在每个嵌入的体素网格单元中采样恒定数量的点,这使网络可以使用3D卷积提取几何细节。Ben-Shabat等 [52] 把点云输入转换到3D网格中,通过3D修改的Fisher向量(3DmFV)方法进一步表示,然后通过常规的CNN体系结构学习全局表示。
注意:Voxel的有以下特点:
(1)理解容易,就是栅格化然后使用3D或者2D卷积
(2)速度慢,占用内存大:内存占用和计算量都是与分辨率的立方有关
(3)在体素化的过程中容易丢失信息,分辨率(精度)与计算效率的trade-off明显
3.3基于点的方法
根据用于每个点的特征学习的网络体系结构,可以将这一类的方法分为逐点MLP,基于卷积,基于图,基于数据索引的网络和其他典型网络。
3.3.1 点对多层感知机方法
这些方法用几个共享的多层感知器(MLP)对每个点独立的建模,然后使用对称函数聚合全局特征,如图3所示。这些网络可以实现无序3D点云的置换不变性。但是,没有完全考虑3D点之间的几何关系。
图3 PointNet网络结构
由于其固有的数据不规范特性,典型的2D图像深度学习方法无法直接应用于3D点云。作为一项开拓性的工作,PointNet[5]直接将点云作为输入并实现通过对称函数实现了置换不变性。PointNet通过几个MLP层学习逐点特征,并通过最大池化层提取全局形状特征。 Zaheer等[53]从理论上也证明了实现置换不变性的关键是对所有表示求和并应用非线性变换。 他们还为包括形状分类在内的各种应用设计了一种基本架构DeepSets [53]。由于对于PointNet [5]中的每个点都是独立学习特征的,因此无法捕获点之间的局部结构信息。 因此,齐等[5]提出了一个层次网络PointNet ++来捕获每个点附近的精细几何结构。 作为PointNet ++层次结构的核心,其集合抽象级别由三层组成:采样层,分组层和PointNet层。 通过堆叠几个集合抽象级别,PointNet ++可以从局部几何结构中学习特征,并逐层抽象局部特征。
由于其简单性和强大的表示能力,已经基于PointNet [5]开发了许多网络。Mo-Net [55]的体系结构与PointNet [5]相似,但是它需要一组有限的矩作为其网络的输入。在点注意力变换(PATs)[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卷积网络可以被分为连续卷积网络(continuous convolution networks )和离散卷积网络(discrete convolution networks),如下图所示。
图4 (a)局部邻域(b)3D连续卷积(c)3D离散卷积
3.3.2.1 3D连续卷积网络
这类方法在连续的空间中定义卷积核,其中邻居点的权重与它和中心点的空间分布有关。
3D卷积可以解释为给定子集的加权和。 MLP是学习权重的一种简单方法。 RS-Conv作为RS-CNN[62]的核心层,以某一点周围的局部子集作为输入,通过学习局部子集中的低层关系(如欧几里德距离和相对位置)到高层关系的映射,利用MLP实现卷积。 在[63]中,内核元素是在单位球体内随机选择的。 然后使用基于MLP的连续函数在内核元素的位置和点云之间建立关系。 在DensePoint [64]中,卷积定义为具有非线性激活器的单层感知器(SLP)。 通过串联所有先前层的特征以充分利用上下文信息来学习特征。Thomas等 [65] 使用一组可学习的内核点提出了刚性和可变内核点卷积(KPConv)运算符处理3D点云。 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对其进行加速。实验结果证明了它在具有较少参数和较低内存消耗的小型数据集上的竞争性能。
3.3.2.2 3D离散卷积网络
这些方法在常规网格上定义卷积核,其中相邻点的权重与相对于中心点的偏移量有关。
Hua等[76]将非均匀的3D点云转换为均匀的网格,并在每个网格上定义了卷积核。与2D卷积不同(向每个像素分配权重),提出的3D内核将相同的权重分配给落入同一网格的所有点。对于给定点,从上一层计算位于同一网格上的所有相邻点的平均特征。然后,对所有网格的平均特征进行加权和求和,以生成当前图层的输出。 Lei等[77]通过将3D球形邻近区域划分为多个体积区域并将每个区域与可学习的加权矩阵相关联来定义球形卷积核。一个点的球形卷积核的输出由其相邻点的加权激活值平均值的非线性激活确定。在GeoConv [78]中,一个点及其相邻点之间的几何关系是基于六个基础显式建模的。沿基础每个方向的边缘特征根据相邻点的基础由可学习的矩阵独立加权。然后根据给定点及其相邻点形成的角度聚合这些与方向相关的特征。对于给定点,其当前层的特征定义为给定点的特征及其在上一层的相邻边缘特征的总和。
PointCNN [79]通过χ-conv转换(通过MLP实现)实现了置换不变性。通过将点特征插值到相邻的离散卷积核量坐标,Mao等人[80]提出了一个插值卷积算子InterpConv来测量输入点云和核重量坐标之间的几何关系。Zhang等[81]提出了一个RIConv算子来实现旋转不变性,它以低层旋转不变几何特征作为输入,然后通过一种简单的分区方法将卷积变成一维。A-CNN [82]通过围绕查询点每个环上的核大小围绕邻居数组循环定义环形卷积。A-CNN学习局部子集中的相邻点之间的关系。
为了减少3D CNN的计算和存储成本,Kumawat等人[83]提出了一种基于3D短期傅里叶变换(STFT)的3D局部邻域中的相位提取整流局部相体积(ReLPV)块,STFT显着减少了参数数量。在SFCNN [84]中,将点云投影到具有对齐球坐标的规则二十面体网格上。然后,通过卷积-最大池-卷积结构对从球形晶格的顶点及其相邻像素连接的特征进行卷积。 SFCNN抵抗旋转和扰动。
3.3.3基于图的方法
基于图的网络将点云中的每个点视为图的顶点,并基于每个点的邻居为图生成有向边。然后在空间或频谱域中进行特征学习[58]。一个典型的基于图的网络如图5所示。
图5:基于图的网络的图示
3.3.3.1 空间域中的基于图的方法
这些方法在空间域中定义操作(例如,卷积和池化)。具体来说,卷积通常是通过空间邻域上的MLP来实现的,而池化则是通过聚合每个点邻域的信息来产生一个新的粗化图。通常为每个顶点的特征分配坐标,激光强度或颜色,而通常为每个边缘的特征分配两个连接点之间的几何属性。
这些方法在空间域中定义操作(例如,卷积和池化)。具体来说,卷积通常是通过空间邻域上的MLP来实现的,而池化则是通过聚合每个点邻域的信息来产生一个新的粗化图。通常为每个顶点的特征分配坐标,激光强度或颜色,而通常为每个边缘的特征分配两个连接点之间的几何属性。
作为开创性的工作,Simonovsky等人[85]将每个点视为图的顶点,并通过有向边将每个顶点连接到其所有邻居。然后,使用滤波器生成网络(例如,MLP)提出了边缘条件卷积(ECC)。采用最大池化来聚集邻域信息,并基于VoxelGrid [86]算法实现图粗化。对于形状分类,卷积核池化时交错的。然后,根据全局平均池化和全连接层产生分类分数。在DGCNN[87]中,在特征空间中构造一个图,并在网络的每一层之后动态更新。作为EdgeConv的核心层,采用MLP作为每个边缘的特征学习函数,并对与每个点邻域相关的边缘特征进行信道对称聚集。此外,LDGCNN[88]移除了变换网络,并将DGCNN[87]中不同层的分层特征连接起来,以提高其性能并减小模式大小。本文还提出了一种端到端无监督的深度自编码网络(FoldingNet[89]),它使用矢量化的局部协方差矩阵和点坐标的级联作为输入。
Hassani等人受Inception [90]和DGCNN [87]的启发。 [91]提出了一种无监督的多任务自动编码器来学习点和形状特征。 编码器是基于多尺度图构造的。 解码器是使用三个非监督任务构造的,包括聚类,自我监督分类和重构,这些任务与多任务损失一起训练。 刘等[92]提出了一种基于图卷积的动态点集聚模块(DPAM),以将点集聚(采样,分组和池化)的过程简化为一个简单的步骤,该步骤通过将集聚矩阵与点特征矩阵相乘来实现。 基于PointNet架构,通过堆叠多个DPAM来构建分层学习架构。与PointNet ++[54]的层次结构策略相比,DPAM在语义空间中动态挖掘点与聚集点之间的关系。
为了利用局部几何结构,KCNet [93]学习基于核相关的特征。 具体而言,将表征局部结构的几何类型的一组可学习点定义为内核。 然后,计算内核与给定点邻域之间的亲和力。 在G3D [94]中,卷积定义为邻接矩阵多项式的变体,池化定义为将Laplacian矩阵和顶点矩阵乘以一个粗化矩阵。 ClusterNet [95]利用严格旋转不变(RRI)模块提取每个点的旋转不变特征,并基于具有监督联系标准的无监督聚集层次聚类方法构建点云的层次结构[96]。 首先通过EdgeConv块学习每个子集群中的特征,然后通过最大池化聚合。
为了解决当前数据结构化方法的耗时问题(例如FPS和邻居点查询),徐等[97]建议融合基于体积和基于点的方法的优势,改进计算效率。 在ModelNet上进行实验分类任务证明了提出的Grid-GCN网络的计算效率比其他型号平均快5倍。
3.3.3.2 谱域中的基于图的方法
这些方法将卷积定义为频谱滤波,这是通过将图上的信号与图拉普拉斯矩阵的特征向量相乘来实现的[98][99]。
RGCNN [100]通过将每个点与点云中的所有其他点连接来构造图,并更新每一层中的图拉普拉斯矩阵。为了使相邻顶点的特征更相似,在损失函数中添加了先验图信号平滑度。为了解决由多样的数据图拓扑引起的挑战,AGCN [101]中的SGC-LL层利用可学习的距离度量来参数化图上两个顶点之间的相似度。从图获得的邻接矩阵使用高斯核和学习距离进行归一化。冯等[102]提出了一个超图神经网络(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 ++ [54]相比,SOM的层次结构效率更高,并且可以充分利用点云的空间分布。
3.3.5其他方法
除上述方法外,还提出了许多其他方案。 RBFNet [113]通过聚集来自稀疏分布的径向基函数(RBF)内核的特征来显式地建模点的空间分布。 RBF特征提取层计算所有内核对每个点的响应,然后对内核位置和内核大小进行优化,以捕获训练期间各点的空间分布。与全连接层相比,RBF特征提取层可产生更多区分性特征,同时将参数数量减少几个数量级。赵等[112]提出了一种无监督的自动编码器3DPointCapsNet,用于3D点云的通用表示学习。在编码器阶段,首先将逐点MLP应用于点云以提取点独立特征,然后将其进一步馈送到多个独立卷积层中。然后,通过串联多个最大池学习特征图来提取全局潜在表示。基于无监督的动态路径,可以学习强大的代表性潜在胶囊。Qin等[116]提出了一种基于端到端无监督域自适应的网络PointDAN,用于3D点云表示。为了获取点云的语义特性,提出了一种自监督的点云重构方法,该方法对点云的部分进行了随机重组[117]。Li等[118]提出了一种自动增强框架PointAugment,在网络训练时,自动优化和扩充点云样本。具体来说,是每个输入样本自动学习按形状进行变换和按点进行变换,网络也可以通过优化和更新增强器和分类器的学习参数进行训练。Xie等人[109]从形状上下文描述符的构建中得到启发[119],提出了一种新颖的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全局视图特征得到了增强,可用于点单视图融合和点多视图融合。
3.4总结
ModelNet10 / 40数据集是最常用的形状分类数据集。表2显示了通过不同的基于点的网络获得的结果。可以得出以下几点结论:
(1)逐点MLP网络通常用作其他类型的网络的基本构建块,以学习逐点特征。
(2)作为标准的深度学习架构,基于卷积的网络可以在不规则的3D点云上实现出色的性能。对于不规则数据,应该更加注意离散卷积网络和连续卷积网络。
(3)由于其固有的强大能力来处理不规则数据,基于图形的网络近年来引起了越来越多的关注。但是,将频谱域中的基于图的网络扩展到各种图结构仍然具有挑战性。
(4)大多数网络需要将点云降采样为固定的小尺寸。此采样过程将丢弃形状的详细信息。 开发可以处理大规模点云的网络仍处于起步阶段。
表2:在ModelNet10/40基准上比较3D Shape Classification 结果,只关注基于点的网络(pointbased networks ),“#params”指的是相应模型的参数个数。“OA”表示 overall accuracy ,“MACC”表示表中的平均精度(mean accuracy )。符号‘-’表示结果不可用。
参考资料:
https://blog.csdn.net/john_bh/article/details/103804177?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.channel_param
https://blog.csdn.net/taifengzikai/article/details/104153717?utm_medium=distribute.pc_relevant.none-task-blog-title-5&spm=1001.2101.3001.4242
https://blog.csdn.net/wqwqqwqw1231/article/details/104206664?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.channel_param
https://blog.csdn.net/tomy2426214836/article/details/106975196/?utm_medium=distribute.pc_relevant.none-task-blog-title-5&spm=1001.2101.3001.4242
http://vlambda.com/wz_wzQEb5y08m.html