0
点赞
收藏
分享

微信扫一扫

【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习


文章目录

  • ​​PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space​​
  • ​​做了什么​​
  • ​​PointNet++​​
  • ​​PointNet++与CNN​​
  • ​​分层点集特征学习​​
  • ​​非均匀采样密度下的鲁棒特征学习​​
  • ​​分类​​
  • ​​分割​​
  • ​​实验结果​​

PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space

做了什么

​​PointNet​​要么对一个点操作,要么对所有点操作,却没有对局部进行操作,这导致它无法捕获点集的局部特征,限制了其识别细节的能力以及对复杂场景的推广能力。

PointNet++则是一种分层点集处理模型,它将PointNet卷积式地应用于输入点集的嵌套分组,逐层学习点集的局部特征。

另外,点集在不同区域的密度不均匀会影响网络训练,PointNet++通过组合多个尺度范围内的特征来解决这个问题。

实验表明,PointNet++网络能够高效、稳健地学习深层点集特征,并在一些3D点云基准测试中达到当时的最佳。

PointNet++

PointNet++与CNN

PointNet的基本思想是学习每个点的高维特征,然后将所有单独的点特征聚合为一个全局点云特征。可见,PointNet不捕获由度量引起的局部特征。然而,利用局部特征已经被证明是CNN成功的重要因素。CNN以规则网格数据为输入,能够沿着多个层次逐步捕获越来越大区域的特征:

【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_深度学习
图片来源:3D ShapeNets: A Deep Representation for Volumetric Shapes

PointNet++与CNN相似,能够逐层学习点集的局部特征。二者可以类比如下:

  • CNN的卷积核【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_02PointNet
  • 卷积核覆盖的区域【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_02使用特定方法对点集进行采样,以采样点为中心进行局部区域分组

下面介绍PointNe++的细节。

分层点集特征学习

【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_学习_04

PointNet++构建了点集的分层分组,并沿着层次结构逐步抽象出越来越大的局部区域,其层次结构由多个集合抽象层( set abstraction)组成:

【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_学习_05

集合抽象层输入输出: 每个集合抽象层对一组点特征进行处理和抽象,生成具有较少元素的点特征新集。

(1)输入:【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_06个点的3D坐标(维数为【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_07)与点的特征(维数为【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_深度学习_08)沿着特征维度连起来,得到的【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_09的矩阵。

(2) 输出:
【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_10个采样点的3D坐标(维数为【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_07)与采样点的特征(维数为【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_12)沿着特征维度连起来,得到的【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_学习_13的矩阵。

集合抽象层组成:

(1)采样层(Sampling layer):采样层从输入点中选择一组点,作为局部区域的质心。

给定输入点【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_14PointNet++使用最远点采样(farthest point sampling ,FPS)来选取质心【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_学习_15,其中【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_深度学习_16是距离(指定度量距离)集合【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_17最远的点。

与随机抽样相比,在质心数相同的情况下,FPS对整个点集具有更好的覆盖率。另外,与CNN不同,这种采样策略使得PointNet++的感受野与数据相关。

(2)分组层(Grouping layer):分组层通过在质心周围找到“相邻”点来构造局部区域集。

该层的输入是一个大小为【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_09的点集和一组大小为【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_深度学习_19的质心的坐标。指定质心点领域内的点数【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_点集_20,输出一组大小为【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_学习_21的点集,其中每组对应于一个局部区域。

在卷积神经网络中,局部区域是由卷积核大小决定。而PointNet++的局部区域由指定度量距离定义。

有两种构造局部区域集的方法:

  • k近邻(kNN)搜索:它查找采样点在点集中固定数量的相邻【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_22个点。
  • 球查找 (Ball query):以质心为圆心,指定半径的球体范围内的所有点(上限为【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_22)。

与kNN相比,球查找的局部邻域保证了固定的局部区域大小,从而使局部区域特征在空间上更具泛化性。

最后还要将局部区域中点的坐标转换为相对于质心点【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_深度学习_24的相对坐标【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_深度学习_25 ,局部区域内点下标【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_学习_26 ;点位置维度【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_点集_27

(3)PointNet层:PointNet层使用PointNet卷积式地将局部区域点集抽象为特征向量。

输入数据大小为【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_深度学习_28【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_10个局部区域。使用PointNet处理每个局部区域的的点进行抽象出局部特征。输出数据大小为【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_深度学习_30

非均匀采样密度下的鲁棒特征学习

点集在不同区域的密度不均匀为点集特征学习带来了重大挑战。对于密集的区域,我们可以使用较小尺度的点集分组;而对于稀疏的区域,我们应该使用更大范围的点集分组。前面介绍的抽象层都只包含单个尺度的分组(single scale grouping,SSG)和特征提取。在PointNet++中,每个抽象层还可以使用多尺度分组(Multi-scale grouping,MSG)、多分辨率分组(Multi-resolution grouping ,MRG),来提取并组合多个局部区域特征。
【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_31

(1)多尺度分组(Multi-scale grouping,MSG)

如图3(a)所示,多尺度分组对每个质心使用多个不同尺度的分组,然后将提取到的每个尺度的特征连接起来,形成多尺度特征。

【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_32

(2)多分辨率分组(Multi-resolution grouping ,MRG)
【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_33

上面的MSG方法计算成本很高。为了降低计算成本,如图(b),MRG则只是将局部区域的每个特征向量(图中左边的特征向量)与全局汇总得到的一个特征向量(图中右边的特征向量)连起来。

当局部区域的密度较高时,局部区域的特征向量可以提供更精细的信息,因为它处理的是更高分辨率(单位体积点的数量)的点集。然而,当局部区域的密度较低时,计算局部区域特征向量的点的分辨率较低,容易受到采样不足的影响,这时全局的特征向量可以弥补。

另外,PointNet++还使用了随机输入丢弃(random input dropout,DP)。这是通过以随机概率随机丢弃输入点来实现的。具体地说,对于每个训练点集,我们从【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_34(【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_点集_35)中均匀抽样选择一个概率率【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_36,对于每个点,以【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_36的概率将其丢弃。这使得PointNet++更稳健。

分类

【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_学习_38

对集合抽象层得到的特征使用全局PointNet,然后再输入全连接网络得到每个类别的分数。

分割

集合抽象层对原始点采样,得到的点特征数量少于原始点。然而,在分割任务中,我们需要获取与原始点相同数量的点特征。一种实现方案是在所有集合抽象级中以原始点作为质心进行采样,但这会导致较高的计算成本。另一种方案是将采样点特征传播回原始点。

PointNet++采用基于距离的插值和跨级别跳跃连接的分层特征传播(feature propagation):
【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_39

在特征传播层,点特征从【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_40个传播到【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_点集_41个,其中【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_点集_41【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_43【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_深度学习_44) 是集合抽象级别【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_点集_45的输入和输出的点集大小。

例如,从【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_46【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_学习_47
【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_点集_48

PointNet++使用基于目标位置【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_49【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_50个最近邻特征【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_51的距离加权平均值(如等式2所示,默认【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_深度学习_52)插值实现从【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_学习_53点到【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_40个点的特征传播。目标位置【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_49的特征值【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_56

【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_57

得到的【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_点集_41个插值特征将与从集合抽象级跳跃连接的点特征沿着特征维度连接起来。然后将得到的特征通过全局PointNet更新每个点的特征向量。
然后将得到的特征通过“unit PointNet(没有最大值汇聚的全局PointNet)”更新每个点的特征向量。
【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_点集_59

重复该过程,直到特征数与原始点集相同。

实验结果

欧几里德度量空间中的分类

【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_点集_60
【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_学习_61

基于点集分割的语义场景标注

【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_学习_62
【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_学习_63

非欧几里德度量空间中的分类

【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_点集_64

部件语义分割
【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_特征向量_65
邻域查询:kNN v.s.Ball查询。
【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_学习_66

最远点采样中随机性的影响。

FPS算法是随机的,采样结果取决第一个选择的点。作者评估了PointNet++对这种随机性的敏感性。表6展示了PointNet++对ModelNet40数据集的特征稳定性和分类稳定性。
【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_机器学习_67
时间和空间复杂度
【NIPS 2017】PointNet++:度量空间中点集的深层次特征学习_点集_68


举报

相关推荐

0 条评论