赞
踩
PointNet++针对PointNet存在的不足做了很好的改进与创新。这里希望大家可以通过对PointNet++原文的阅读,增加对PointNet++的理解和思考。翻译过程尽量保证原汁原味。
PointNet++原文链接:https://arxiv.org/abs/1706.02413
PointNet++代码链接:https://github.com/charlesq34/pointnet2
1 引言
我们感兴趣的是分析几何点集(欧几里得空间中点的集合)。点云是由3D扫描仪获取的一个特别重要的几何点集类型。例如,机载三维激光扫描技术。作为一个集合,这样的数据必须对其元素的排列具有不变性。此外,距离度量定义了可能显示不同属性的局部特征。例如,点的密度或其他属性在不同的位置上可能不一致——在三维扫描中,密度变化可以来自透视效果、径向密度变化、移动等。
以前很少有人研究深度学习在点集中的应用。PointNet是这方面的先驱。PointNet的基本思想是学习每个点的空间编码,然后将所有单个点特征(point features)聚合到点云的全局特征( global point cloud signature)中。由于这样的设计,PointNet没有捕获到由度量(metric)引起的局部结构特征。然而,局部结构特征对于卷积架构(CNN)的成功与否至关重要。CNN将常规2D网格上定义的数据作为输入,并能够在多分辨率层次上以越来越大的尺度上逐步捕获特征。较低层的神经元接受域较小,而较高层的神经元接受域较大。这种沿着多层结构逐步抽象局部特征的能力使得CNN允许对深层不可见的特征有更好的概括性。
我们引入了一个多层神经网络,称为PointNet++,以分层方式处理在度量空间中采样的每一组点。PointNet++的基本思想很简单。首先,我们用基础空间的距离度量将点集划分为重叠的局部区域。与CNN相似,我们从小区域内提取点云得局部特征,捕捉精细的几何结构;这些局部特征被进一步分组成更大的单元,并被处理用来产生更高级别的特征。重复这个过程直到我们得到整个点集的特征。
PointNet++必须解决两个问题:如何对数据集进行分割,以及如何通过局部特征学习模块来抽象点集或局部特征集这两个问题它们是密切相关的,因为点集的分割必然会产生跨越区域间的公共结构部分,这样局部特征学习模块的权重就可以共享,就像卷积设置一样。我们选择局部特征学习模块作为切入点。PointNet是一种有效的结构体系,可以用于处理用于语义特征提取的无序点集。此外,该结构对于输入数据具有很强的提取能力。作为一个基本的构建块,PointNet将点集或局部特性集抽象为更高级别的表示。如下图所示,PointNet++递归地在输入集的嵌套分区上应用PointNet。
如何生成点集的重叠分区这个问题依然存在。每个分区被定义为底层欧式空间中的一个邻居球,其参数包括质心位置和体积大小。为了均匀地覆盖整个集合,在输入点集之间使用最远点采样(FPS)算法对中心进行检测。与以固定步长扫描2D图像的CNN相比,我们的局部接受域既依赖于输入数据,也依赖于度量元素,因此更加高效。
然而,由于特征尺度的不确定和输入点集的不均匀性,选择合适的局部邻域球尺度是一个更有挑战性但又耐人寻味的问题。这在结构传感器扫描等真实数据中很常见(如图一),因此我们的输入点集与CNN输入有很大的不同,CNN输入可以看作是在均匀恒定密度的规则网格上定义的数据。在CNNs中,与局部分区范围对应的是内核的大小。相关学者指出,使用更小的内核有助于提高CNNs的能力。然而,我们对点集数据的实验却为这一规则提供了相反的论证。由于抽样点不足,小邻域可能包含的点太少,这可能不足以使切入点能够充分地获取特征。
本文的一个重要贡献是,PointNet+在多个尺度上利用邻近球法,以实现健壮性和细节捕获。在训练过程中对训练数据辅以随机弃权,网络学习将自适应检测到不同尺度的权重模式,并根据输入数据结合多尺度特征。实验表明,我们的PointNet+能够高效、健壮地处理点集。特别地,在具有挑战性的3D点云基准测试中获得了明显优于最先进水平的结果。
2 问题阐述
假设 x = ( M , d ) x=(M,d) x=(M,d)是一个离散度量空间的度量,存在于欧式空间 R n R^n Rn中,其中 M ⊆ R n M⊆R^n M⊆Rn是点集, d d d是距离度量。此外,欧几里德空间中 M M M周围区域的密度可能不是处处均匀的。我们感兴趣的是集合学习函数 f f f,它以 x x x作为输入(以及每个点的附加属性),并生成语义特征来重新评估 x x x的信息。实际上, f f f可以理解为给 X X X分配标签的分类函数,也可以是给 M M M中的每个元素分配每个点标签的分割函数。
3 方法
我们的工作可以看作是PointNet的扩展,添加了层次结构。首先回顾了PointNet(3.1小节),然后介绍了具有层次结构的PointNet的基本扩展(3.2小节)。最后,我们提出了我们的PointNet++,它能够在非均匀采样点集(3.3小节)中很好地学习特征。
3.1 PointNet[20]的概述:一种通用的连续数集函数拟合器
给定一个无序点集{
x 1 , x 2 , … x n x_1, x_2,…x_n x1,x2,…xn}其中 x i ∈ R n x_i∈R^n xi∈Rn ,可以定义一组函数 f : x → R f:x→R f:x→R将一组点映射到一个向量上:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。