资讯详情

(NIPS 2017) PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space

Abstract

以前的工作研究点集很少有深度学习。 PointNet[20]是这个方向的先驱。但是,根据设计,PointNet由点所在的测量空间引起的局部结构没有被捕获,限制了其识别细粒度模式的能力和复杂场景的通用性。在这项工作中,我们引入了一个分层神经网络,递归地应用于输入点集的嵌套分区PointNet。利用测量空间距离,我们的网络可以学习上下文规模不断增加的局部特征。随着我们进一步观察到点集通常以不同的密度采样,这大大降低了在均匀密度下训练的网络的性能。我们提出了来自多个尺度的新集合学习层的特征。实验表明,我们的网络PointNet 能高效、鲁棒地学习深度点集的特点。特别是在具有挑战性的3中D在点云基准测试中,结果明显优于最先进水平。

1 Introduction

我们有兴趣分析几何点集,它们是欧几里得空间中点的集合。由3组成的一种特别重要的几何点集类型D扫描仪捕获的点云,如适当配备的自动驾驶汽车。这些数据作为一个集合,必须保持其成员的安排不变。此外,距离度量定义了可能表现出不同属性的局部邻域。例如,点的密度和其他属性可能在3的不同位置不均匀D密度变化可能来自透视效果、径向密度变化、运动等。

以前的工作研究点集很少有深度学习。PointNet[20]是直接处理点集的开创性工作。PointNet基本思想是学习每个点的空间编码,然后将所有单独的点元素聚合成整个点云特征。根据它的设计,PointNet不度量引起的局部结构不会被捕获。但事实证明,局部结构的使用对卷积架构的成功非常重要。CNN输入规则网格上定义的数据,可以沿着多分辨率层结构以越来越大的比例逐渐捕捉特征。在较低水平,神经元的感觉野较小,而在较高水平,神经元的感觉野较大。沿层次结构抽象局部模式的能力可以更好地推广到未见的情况。

我们介绍了一个名字PointNet 在测量空间中采样的一组点采用分层神经网络。PointNet 总体思路很简单。我们先通过underlying space点集分为重叠的局部区域。类似于CNN,从小邻域中提取捕捉精细几何结构的局部特征;以及CNN类似地,我们从小邻域中提取了捕获精细几何结构的局部特征;这些局部特征被进一步分为更大的单元,并被处理以产生更高级别的特征。重复这个过程,直到我们获得整个点集的特征。PointNet 设计必须解决两个问题:如何产生点集分区,如何通过局部特征学习器抽象点集或局部特征。

PointNet 设计必须解决两个问题:如何产生点集分区,如何通过局部特征学习器抽象点集或局部特征。这两个问题是相互关联的,因为点集的分区必须产生跨分区的共同结构,因此可以共享当地特征学习器的权重,就像在卷积设置中一样。我们选择的本地特色学习器是PointNet。正如工作中所证明的,PointNet为了提取语义特征,可以处理无序的点集。此外,该架构对输入数据的损坏也非常稳定。作为基本构件,PointNet将局部点或特征集抽象成更高层次的表示。在这种观点下,PointNet 递归地应用于输入集的嵌套分区PointNet。

一个仍然存在的问题是如何生成点集的重叠分区。每个分区被定义为底层欧几里得空间中的一个邻域球,其参数包括质地位置和尺度。通过最远点采样均匀覆盖整个集合(FPS)算法在输入点集合中选择纹理。以固定步骤扫描空间的体积CNN由于输入数据和测量,我们的局部感觉野更有效率。

然而,由于特征尺度的纠缠和输入点集的不均匀性,确定适当的局部邻域球尺度是一个更具挑战性但更有趣的问题。在结构传感器扫描等实际数据中,假设输入点在结构传感器扫描等实际数据中很常见[18](见图1)。因此,我们的输入点集和 CNN 输入非常不同,CNN 输入可以看作是定义在均匀恒定密度的规则网格上定义的数据。在CNN内核的大小与局部分区的规模相对应。[25]表明使用较小的核心有助于改进CNN的能力。然而,对点集数据的实验为这一规则提供了相反的证据。由于采样不足,小邻域可能由太少的点组成,这可能不够允许PointNets捕获模式稳定。

图1:从结构传感器捕获的扫描可视化(左:RGB;右:点云)

我们论文的重要贡献之一是PointNet 利用邻域在多个尺度上实现鲁棒性和细节捕捉。训练期间,随机输入dropout在此帮助下,该网络学会了在不同尺度上检测到自适应加权的模式,并根据输入数据结合多尺度特征。实验表明,我们的PointNet 能高效稳定地处理点集。特别是在具有挑战性的3中D在点云基准测试中,结果明显优于最先进水平。

2 Problem Statement

假设 X = ( M , d ) \mathcal{X}=(M, d) X=(M,d)它是一个离散的测量空间,从欧几里得到空间 R n \mathbb{R}^{n} Rn其中 M ? R n M \subseteq \mathbb{R}^{n} M?Rn是点集, d d d是距离度量。此外,周围欧几里得空间中 M M M的密度可能并非处处均匀。我们对学习集合函数 f f f感兴趣,集合函数 f f f将 X \mathcal{X} X作为输入(以及每个点的附加特征),并产生对 X \mathcal{X} X进行重新分级的语义信息。在实践中,这样的 f f f可以是为 X \mathcal{X} X分配标签的分类函数,也可以是为 M M M的每个成员分配每个点标签的分割函数。

3 Method

我们的工作可以看作是PointNet[20]的扩展,增加了层次结构。我们首先回顾PointNet(第3.1节),然后介绍具有层次结构的PointNet的基本扩展(第3.2节)。最后,我们提出了我们的 PointNet++,即使在非均匀采样的点集中也能稳健地学习特征(第3.3节)。

3.1 Review of PointNet [20]: A Universal Continuous Set Function Approximator

给定一个具有 x i ∈ R d x_{i} \in \mathbb{R}^{d} xi​∈Rd的无序点集 { x 1 , x 2 , … , x n } \left\{x_{1}, x_{2}, \ldots, x_{n}\right\} { x1​,x2​,…,xn​},可以定义一个集合函数 f : X → R f: \mathcal{X} \rightarrow \mathbb{R} f:X→R将一组点映射到一个向量: f ( x 1 , x 2 , … , x n ) = γ ( MAX ⁡ i = 1 , … , n { h ( x i ) } ) (1) f\left(x_{1}, x_{2}, \ldots, x_{n}\right)=\gamma\left(\underset{i=1, \ldots, n}{\operatorname{MAX}}\left\{h\left(x_{i}\right)\right\}\right) \tag{1} f(x1​,x2​,…,xn​)=γ(i=1,…,nMAX​{ h(xi​)})(1) 其中 γ γ γ和 h h h通常是多层感知器 (MLP) 网络。

公式(1)中的集合函数 f f f对输入点排列是不变的,并且可以任意近似任何连续集合函数[20]。请注意, h h h的响应可以解释为一个点的空间编码(详见[20])。

PointNet在一些基准测试中取得了令人印象深刻的表现。然而,它缺乏捕捉不同尺度的局部环境的能力。我们将在下一节介绍分层特征学习框架来解决这个限制。

图2:以2D欧几里得空间中的点为例,说明我们的分层特征学习架构及其在集合分割和分类中的应用。单尺度点分组在这里可视化。有关密度自适应分组的详细信息,请参见图3

3.2 Hierarchical Point Set Feature Learning

虽然PointNet使用单个最大池化操作来聚合整个点集,但我们的新架构构建了点的分层分组,并沿层次逐步抽象出越来越大的局部区域。我们的层次结构由许多集合的抽象级别组成(图2)。在每个级别,一组点被处理和抽象,以产生一个具有更少元素的新集合。集合抽象层由三个关键层组成:Sampling层、Grouping层和PointNet层。Sampling层从输入点中选择一组点,这些点定义了局部区域的质心。然后,Grouping层通过在质心周围寻找“相邻”点来构造局部区域集。PointNet层使用mini-PointNet将局部区域模式编码为特征向量。

一组抽象级别将 N × ( d + C ) N × (d + C) N×(d+C)矩阵作为输入,该矩阵来自具有 d − d i m d-dim d−dim坐标和 C − d i m C-dim C−dim点特征的 N N N个点。它输出 N ′ N^{\prime} N′个子采样点的 N ′ × ( d + C ′ ) N^{\prime} \times\left(d+C^{\prime}\right) N′×(d+C′)矩阵,该矩阵具有 d − d i m d-dim d−dim坐标和概括局部上下文的新 C ′ − dim ⁡ C^{\prime}-\operatorname{dim} C′−dim特征向量。我们将在以下段落中介绍一组抽象级别的层。

给定输入点 { x 1 , x 2 , … , x n } \left\{x_{1}, x_{2}, \ldots, x_{n}\right\} { x1​,x2​,…,xn​},我们使用迭代最远点采样 (FPS) 来选择点 { x i 1 , x i 2 , … , x i m } \left\{x_{i_{1}}, x_{i_{2}}, \ldots, x_{i_{m}}\right\} { xi1​​,xi2​​,…,xim​​}的子集,使得 x i j x_{i_{j}} xij​​ 是最远点(以度量距离)从集合 { x i 1 , x i 2 , … , x i j − 1 } \left\{x_{i_{1}}, x_{i_{2}}, \ldots, x_{i_{j-1}}\right\} { xi1​​,xi2​​,…,xij−1​​}关于其余点。使得 x i j x_{i_{j}} xij​​是与集合 { x i 1 , x i 2 , … , x i j − 1 } \left\{x_{i_{1}}, x_{i_{2}}, \ldots, x_{i_{j-1}}\right\} { xi1​​,xi2​​,…,xij−1​​}相对于其余点最远的点(以度量距离计)。与随机抽样相比,在相同数量的质心的情况下,它对整个点集的覆盖率更高。与扫描与数据分布无关的向量空间的 CNN 相比,我们的采样策略以数据相关的方式生成感受野。

该层的输入是一个大小为 N × ( d + C ) N × (d + C) N×(d+C)的点集和一组大小为 N ′ × d N^{\prime} \times d N′×d的质心的坐标。输出是大小为 N ′ × K × ( d + C ) N^{\prime} \times K \times(d+C) N′×K×(d+C)的点集组,其中每个组对应于一个局部区域, K K K是质心点附近的点数。请注意, K K K因组而异,但随后的PointNet层能够将灵活数量的点转换为固定长度的局部区域特征向量。在卷积神经网络中,像素的局部区域由阵列索引在像素的某个曼哈顿距离(内核大小)内的像素组成。在从度量空间采样的点集中,点的邻域由度量距离定义。

Ball query查找查询点半径范围内的所有点(实现时设置上限为 K K K)。另一种范围查询是 K K K最近邻 (kNN) 搜索,它找到固定数量的相邻点。与kNN相比,ball query的局部邻域保证了固定的区域尺度,从而使局部区域特征在空间上更具泛化性,这对于需要局部模式识别的任务(例如语义点标记)是首选。

在这一层中,输入是 N ′ N^{\prime} N′个点的局部区域,数据大小为 N ′ × K × ( d + C ) N^{\prime} \times K \times(d+C) N′×K×(d+C)。输出中的每个局部区域都由其质心和编码质心邻域的局部特征抽象。输出数据大小为 N ′ × ( d + C ′ ) N^{\prime} \times\left(d+C^{\prime}\right) N′×(d+C′)。

局部区域中的点的坐标首先被转换到相对于质心点的局部坐标系中: x i ( j ) = x i ( j ) − x ^ ( j ) x_{i}^{(j)}=x_{i}^{(j)}-\hat{x}^{(j)} x

标签: 1392传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台