Spherical Convolutional Neural Network for 3D Point Clouds

Spherical Convolutional Neural Network for 3D Point Clouds :三维点云的球面卷积神经网络
摘要
我们提出了一种用于三维点云处理的神经网络,它利用球面卷积核和八叉树空间划分。所提出的基于度量的球形核系统地量化点邻域以识别数据中的局部几何结构,同时保持平移不变性和不对称性。网络体系结构本身由八叉树数据结构引导,该结构充分利用了不规则点云的稀疏性质。我们在每层中的神经元的帮助下指定球形核,而神经元又与空间位置相关联。我们利用这种关联来避免网络训练期间的动态内核生成,从而实现高分辨率点云的高效学习。我们证明了球形卷积神经网络在标准基准数据集上进行三维物体分类的效用
1 介绍
众所周知,卷积神经网络(CNN)[6]从数据中学习高效特征。
然而,标准CNN仅适用于在常规网格上定义的数据,例如,像素阵列。
这限制了它们处理本质上不规则的3D点云的能力。点云最近引起了计算机视觉社区的极大兴趣,并且这种数据模式的大型存储库已经开始出现[15],[19]。相应地,相关文献也尝试通过自适应[2],[8],[15]来利用标准卷积网络对点云的表现能力。但是,这些尝试还会导致过大的内存占用,从而限制了允许的输入数据分辨率[12]。更有吸引力的选择是将卷积运算的能力与不规则数据的图形表示相结合。得到的图形卷积网络(GCN)可以在谱域[1],[4],[20]或空间域[12]中提供卷积。
在GCN中,谱域方法要求是要对齐的Graph Laplacian,这对于点云来说并不是直截了当的。另一方面,空间域中唯一突出的方法是ECC [12],与标准CNN相比,它必须动态生成卷积内核,这需要大量的计算开销。此外,ECC依赖于图形构造和粗化的范围搜索,这对于大点云来说可能变得非常昂贵。将卷积网络应用于未调节的3D数据的一个主要挑战是在3D度量空间中的几何上有意义的卷积核。当然,内核也需要将translate-invariance转换为数据中的类似本地结构。此外,它们应该作为紧凑的表示来应用。
由于这种复杂的要求,用于计算计算图以处理非结构化数据的实例也很少[5],[9],[10]。尽管仍然具有吸引力,但这些方法无助于利用卷积网络对点云的潜在威力。
Spherical Convolutional Neural Network for 3D Point Clouds_第1张图片
图1:插图:内核通过系统地将目标点xi周围的空间分成多个区域来处理原始点云。对于第j个相邻点xj,它首先确定其相关区间并使用为该区间定义的权重矩阵W k来计算激活值。
在这项工作中,我们引入了球形卷积核的概念,系统地将球形3D区域划分为多个体积区域,参见图1.每个区域指定一个可学习参数矩阵,用于对落入该区间内的点进行加权以进行卷积。我们在神经网络的层之间应用这些内核,该神经网络是基于3D空间的八叉树分区[21]构建的。稀疏引导的八叉树结构确定了在我们网络的每一层中执行卷积的位置。网络体系结构本身由八叉树层次结构引导,具有与树深度相同数量的隐藏层。通过利用空间划分,网络避免了K-NN /范围搜索并且有效地消耗了高分辨率点云。不需要动态生成的球形内核也能够在数据中的类似本地结构之间共享权重。此外,我们证明了内核不对称地应用于我们网络中的点对。我们评估了球形卷积神经网络用于3D对象识别的任务,为卷积网络的新概念实现了非常令人鼓舞的结果。
二 球形卷积
对于图像,传统上手工制作的特征是通过更原始的成分计算出来的,即补丁。实际上,相同的原理超越了CNN的自动特征提取,CNN使用明确定义的矩形图像区域的激活来计算特征图。
2D性质,球形区域更适合处理诸如点云的3D数据。球形区域本质上适合于计算非结构化数据的几何有意义的特征[3],[13]。受这种自然亲缘关系的启发,我们引入了球形卷积的概念,它将3D球体(而不是2D矩形)视为执行卷积操作的基本几何形状。
给定任意点云P = fxi 2 R3gm i = 1,我们在半径为ρ2R +的球体的帮助下定义卷积核。对于目标点xi,我们认为其邻域N(xi)包括以xi为中心的球体内的点,即N(xi)= fx:d(x; xi)≤ρg,其中d(:; :)是距离度量1。我们通过沿着方位角(θ)和仰角(φ)均匀划分占用空间来将球体划分为n×p×q’区域(见图1)。我们允许沿径向尺寸的分区是不均匀的,因为对于大半径值的立方体积增长可能变得不合需要。我们对球形区域的量化主要受3DSC的启发[3]。我们还定义了一个与球体原点相对应的附加区间,以允许点的自卷积。对于每个bin,我们定义权重矩阵Wκ2f0; 1; :::; n×p×qg 2 Rs×t的可学习参数,其中W0与自卷积有关。总之,n×p×q + 1个权重矩阵指定单个球形卷积核。为了计算目标点xi的激活值,我们首先为每个相邻点xj 2n(xi)识别内核的相关权重矩阵。将xi与W0相关联以进行自卷积是很简单的对于非平凡的情况,我们首先用球面坐标表示相邻点,使用xi作为原点参考。也就是说,对于每个xj我们计算T(Δji)! ji,其中T(:)定义从笛卡尔坐标到球坐标的变换和Δji= xj - xi。假设量子化球体的区域分别沿方位角,仰角和径向维度由kθ,kφ和kr索引,与球形核子区域相关联的权重矩阵可以索引为κ=kθ+(kφ-1)×n + (kr -1)×n×p,其中kθ2f1; :::;达格; kφ2f1; :::; PG; kr 2 f1; :::;公斤。使用此索引,我们分配每个 在这里插入图片描述 ,因此xj为其相关的权重矩阵在第l个网络层中,第i个点的激活最终计算为Spherical Convolutional Neural Network for 3D Point Clouds_第2张图片
其中al-1 j是来自层l-1的相邻点的激活值,Wκ1是权重矩阵,bl是偏置向量,f(·)是非线性激活函数 - 我们的ReLU [17]实验。
为了进一步阐述球形卷积核的特征,让我们用θ,φ和r维表示核子箱的边缘如下:Spherical Convolutional Neural Network for 3D Point Clouds_第3张图片
在沿方位角和仰角的均匀分裂约束下,我们得到Θk+ 1 - Θk=2nπ和Φk+ 1 - Φk=πp
引理2.1:如果θK·θK+ 1≥0,φK·φK+ 1≥0和n> 2,则用于球形卷积核内任意两点XA 6 = XB,该权重矩阵Wκ; 8?> 0,不对称地应用。
证明:设?Ab = xa - xb = [?X; ?; ΔZ] |,然后Δba= [-δx;-δy;-ΔZ] |。下的笛卡尔坐标到球面坐标变换,我们有T(Δab)= AB = [θab; φab; r]和T(?ba)= ba = [?ba; φba; r] |假设得到的AB和BA落于同一箱柜由κ索引(Kθ;Kφ; KR),即WKK必须对称地应用于原始点。在这种情况下,逆变换T -1下(?,我们有ΔZ= R罪φab和(-ΔZ)= R罪φba。
条件Φkφ·Φkφ+ 1≥0引起该-δz2=ΔZ·(-ΔZ)=(R罪φab)·(R罪φba)= R 2(SINφab罪φba)≥0 =)ΔZ= 0。类似地, Θkθ·Θkθ+ 1≥0 =)ΔY= 0。由于XA 6 = XB,为ΔX6 = 0,我们有COSθab= - COSθba=)jθab - θbaj=π。然而,如果θab,θba落入相同的箱柜,我们有jθab - θbaj=2nπ<π,这需要ΔX= 0。因此,Wκ不能应用于任何两个点对称地,除非这两个点是相同的。
球形卷积核的不对称特性是重要的,因为它限制了点对之间相同权重的共享,这有助于学习具有更精细几何细节的更有效的特征。引理2.1还提供了将卷积核划分为二进制数的指导原则,以便始终确保不对称性。值得一提的是,标准CNN内核中的权重矩阵也不对称地应用于像素对。
与3D-CNN的关系开创性的工作在利用CNN进行3D数据光栅化统一体素网格中的原始数据,然后使用3D-CNN从所得到的体积表示中提取特征[8],[15]。在3D-CNN中,普遍使用大小为3×3×3 = 27的卷积核,其将1个单元/体素中的空间分割为半径r = 0(自卷积); 6个单元的半径r = 1;半径r = p2的12个单元;半径为r = p3的8个单元格可以使用半径ρ= p3指定相同区域的类似球形转换器,使用以下边缘进行分档:
在这里插入图片描述
这种划分导致内核大小(即总的箱数)4×4×3 + 1 = 49,这是引理2.1允许的最粗糙的多尺度量化
请注意,如果我们从球形内核的中心径向移动到外围,我们在R定义的每条边之后遇到相同数量的区间(在这种情况下为16),其中细粒度区域位于可编码的原点附近详细的点的局部几何信息。这与3D内核形成鲜明对比,3D内核必须保持所有单元的大小不变,并依赖于增加的数据输入分辨率来捕获更精细的细节 - 通常会引起内存问题。球形核的多尺度粒度使其成为原始点云的自然选择。与3D-CNN内核类似,球形内核也保留了平移不变性和不对称性。
Spherical Convolutional Neural Network for 3D Point Clouds_第4张图片
图2:使用玩具示例的八叉树引导网络架构示意图:3D空间中的点云在深度为3的八叉树下进行分区。相应的树表示根据空间分区将点分配给最大深度的节点,并计算每个父节点的位置作为其子节点的预期位置。重复浅枝上的叶节点以匹配最大深度。相应的神经网络具有与树深度相同数量的隐藏层,并且它学习用于特征提取的球形卷积核。
三 网络结构
近年来,很少有尝试用神经网络直接处理点云,例如,
PointNet ++ [10],ECC [12]。这些工作主要依靠K-NN或范围搜索来构建点周围的局部区域以执行卷积等操作。然而,这些搜索策略变得非常昂贵。在3D社区中,将数据点有效地划分成其近似局部邻域的流行方法是树形结构,例如, Kd-tree [22]。树结构的分层特性还为可用于处理结构化点云的神经网络体系结构提供了指导。更重要的是,结构化数据还具有直接神经网络处理的排列和平移不变性的非常期望的属性。
在这项工作中,我们使用八叉树结构[21]来表示点云,并基于结果树设计神经网络架构。我们选择使用八叉树的灵感来自它们对作为基础数据结构的神经网络的自然适应性[11],以及它们在点邻域中考虑更多数据的能力。 KD树。使用我们的策略在八叉树结构下划分3D空间,生成的树和神经网络的构造的图示在图2中示出用于玩具示例。对于输入点云P,我们构造深度为L的八叉树(图中L = 3)。在此构造中,叶节点的拆分是固定的,以使用一个点的最大节点容量,这确保所有叶节点仅包含一个点,除了最后一个层节点。最后一层叶子节点中多个点的分配直接来自允许的最精细的空间划分。对于没有密集填充点的3D空间中的子体积,我们的分割策略可以在树达到其最大深度之前产生叶节点。在这种情况下,为了便于将树结构映射到神经网络,我们只需将这些叶节点复制到树的最大深度。我们在实现网络体系结构时安全地忽略空叶节点,从而产生计算和内存优势。
基于分层树结构,我们的网络架构有L个隐藏层。请注意,在图2中,我们使用l = 1作为对应于树的Depth = 3的第一个隐藏层。我们将在文本中使用相同的约定。对于树中的每个非空节点,在我们的神经网络中存在相应的神经元。回想一下,球形卷积核被指定为具有执行卷积的邻域的目标点。因此,为了促进球形卷积,我们将3D位置与每个神经元相关联。这些位置计算为八叉树中每个节点的子节点的预期值,但最大树深度处的叶节点除外。对于那些节点,关联的位置只是数据点的平均值。神经元使用其相关位置来选择合适的球形核,然后应用非线性激活(为简洁起见未在图2中示出)。在我们的网络中,最后一层之前的所有(球形)卷积之后都是批量标准化和ReLU激活。最后一层中的卷积操作仅跟随ReLU。
让我们将与网络的第l层中的神经元相关联的位置表示为i。从l = 1到l = L,我们可以表示与所有神经元相关的位置,如Q1 =f¯x1igm i = 1 1,:::,QL =f¯xL1gm i = 1 L.将原始输入点表示为Q0 =f¯x0igm i = 1 0,¯xli在数值上计算为:Spherical Convolutional Neural Network for 3D Point Clouds_第5张图片
其中N(¯xli)包含八叉树中相关子节点的位置。值得注意的是,用于指定网络层的策略还需要jQl-1j> jQlj,最后只有一个位置与对应于八叉树的根的最终隐藏层相关联。因此,从第一层到最后一层,网络学习的特征从低级到高级抽象级移动,类似于标准CNN架构。
将我们网络中考虑的邻域关系的球形性质与八叉树的空间立方划分联系起来,值得一提的是细微的细节。考虑xmin = [xmin; YMIN; zmin] |,和xmax = [xmax; YMAX; zmax] |定义空间分区的给定立方单元格中的点坐标范围。取决于网络层,与相应神经元相关联的球形邻域具有半径ρ= 21-L-1·d(xmin; xmax),其可能不严格限定立方体积的所有点。在实践中,这种“异常值”的数量是微不足道的。但是,我们还会根据它们的方位角和高程值将这些点分配给卷积核的最外层箱来考虑这些点。
我们的神经网络执行层间卷积而不是层内卷积。与基于图形的网络相比,这大大减少了处理大点云所需的操作[1],[4],[12],[16],[20]。我们注意到,对于具有单个子节点的所有节点,仅在网络中执行自转换。还值得一提的是,由于其非常规性质,使用现有的深度学习库(例如,现有的深度学习库)不容易实现球形卷积操作。 matconvnet [14]。因此,我们使用CUDA C ++和mex接口实现它。对于其他模块,如ReLU,批量标准化等,我们使用matconvnet。
四 与相关工作的比较
PointNet [9]首先使用x直接处理点云; Ÿ; z坐标作为输入要素。网络使用共享MLP学习逐点特征,并提取具有最大池的全局特征。
PointNet的主要局限在于它在逐点特征学习中没有探索几何背景。稍后由PointNet ++ [10]的作者通过分层次地将max-pooling应用于本地区域来解决这个问题。此增强功能使用K-NN搜索以及范围搜索来构建本地区域。然而,PointNets [9],[10]总是聚合具有最大池的上下文信息,并且在网络中没有探索卷积模块。关于使用树结构处理具有深度学习框架的点云,Kd-network [5]是第一个突出的贡献。 Kd网络还使用点坐标作为输入,并通过在平衡树中连接子节点的特征来计算父节点的特征。然而,Kd网络的性能取决于树结构中分裂维度的精细随机性。
相比之下,我们的方法依赖于点之间的确定性几何关系。我们的方法,Kd网络和PointNets之间的主要相似之处在于直接接受点的空间坐标作为输入特征。从用于3D数据的卷积网络的角度来看,以下两类网络也与我们的方法有关。
4.1图形卷积网络
图形卷积网络可以分为谱网络[1],[4],[20]和空间网络[12]。频谱网络依赖于图拉普拉斯算子和邻接矩阵在频谱域中执行卷积,而空间网络在空间域中执行卷积。频谱网络的一个主要限制是它们要求图形结构是固定的,这使得它们对具有不同图形结构(例如点云)的数据的应用具有挑战性。易等人。 [16]尝试用频谱变换网络(SpecTN)解决这个问题,类似于空间域中的STN [18]。然而,从空间域到谱域的信号变换反之亦然,需要计算复杂度O(n2)。 ECC [12]是用于空间域中的图卷积的点云分析的第一项工作。作者采用MLP动态生成连接顶点之间的卷积滤波器。然而,边缘滤波器的动态生成引入了卷积延迟和额外的计算负担。此外,图形构造和粗化取决于范围搜索,这仍然是低效的。我们的方法直接从八叉树构建网络架构,避免了整个建筑的构建和粗化。此外,球形卷积有效地探索了需要动态滤波器生成的每个点的几何背景。
4.2三维卷积神经网络
3D-CNN内核应用于3D数据的体积表示。在早期的工作中,只能处理低输入分辨率的点云,例如, 30×30×30 [15],32×32×32 [8]。因为对于密集数据,网络的计算和存储成本随输入分辨率立方增长。已经提出了不同的解决方案来解决这些问题。 [2],[7]。最近,Riegler等人。 [11]提出了OctNet,它表示具有浅网格八叉树(深度= 3)的混合的点云。与密集型同类产品相比,OctNet在很大程度上降低了计算和内存成本,适用于高达256×256×256的高分辨率输入。虽然我们的架构也基于八叉树,但它与OctNet有很大不同。首先,在OctNet中,节点被视为仅仅体素,并且3D-CNN内核用于处理所得到的表示,这与我们对特征的球形处理形成鲜明对比。其次,我们的网络基于单个深八叉树而不是浅八叉树的混合,如OctNet。两个网络之间的另一个区别是我们的网络接受x; Ÿ; z点的坐标作为输入,而OctNet需要二进制占用特征。此外,OctNet处理所有八叉树节点,而我们的网络基于树的修剪版本,对空节点进行折扣以提高效率。
**五 实验 **
我们专注于3D对象分类的任务,以评估所提出的球形卷积神经网络。评估是在ModelNet10和ModelNet40基准数据集上进行的[15]。
这些标准数据集是从干净的CAD模型创建的。 ModelNet10包含10类对齐的对象网格,样本分为3,991个训练样例和908个测试样本。
ModelNet40包含40个类别的对象网格,其中9,843 / 2,468个训练/测试样本被分割。
为了多样化,我们使用ModelNet40的非对齐版本。
我们的网络可以消耗大量输入3D模型,因此我们使用30K点的输入大小来训练它。
由于八叉树结构,它还具有在不同大小的数据样本上进行训练和测试的能力。因此,我们还检查了在30K点样本上训练的网络,并在更大的样本上进行测试,即40K和50K点。我们在实验中将八叉树的深度固定为8级,以进行统一评估。使用的特征通道数为32-32-64-64-128-128-256-512。
具有完全连接层,然后是softmax的分类器通过我们的网络以端到端的方式进行训练。我们用随机梯度下降进行训练,起始学习率为0.1和0.0005。学习率在前50个时期之后衰减10倍,并且在每20个时期之后以相同的因子保持衰减,直到所有100个时期完成。
在具有12 GB内存的Titan Xp GPU上进行培训。我们在所有实验中使用批量大小为16。
使用交叉验证来经验地优化网络的超参数。
在文献中有一些例子,其中法线也被用作输入特征以获得准确性优势。然而,对于点云,法线可能并不总是容易获得,并且它们的使用也伴随着前向传递中的不期望的计算开销。因此,我们将网络的输入要素限制为仅包含点的(x; y; z)坐标值。为了标准化输入,我们通过将点云的原点固定在其质心并将所有点重新缩放以适合[-1;的立方体]来标准化3D点坐标。 1] 3。对于卷积核,我们使用8×2×3 + 1的大小,其中径向维度被均匀地分割。
我们在表1中将我们的方法缩写为Ψ-CNN2,它总结了ModelNets上的对象识别性能。沿着“类”和“实例”精度,前者是每个对象类别的平均精度,我们还报告输入要素类型和网络层数 - 仅计算全局要素表示的图层。可以看出,Ψ-CNN实现了与用于点云处理的各种网络竞争的准确性。对于ModelNet10,当Kd网络使用我们网络使用的层数的两倍时,其性能略好于我们的网络,这伴随着5天的训练过程[5]。在网络架构方面,OctNet是最相关的。 Ψ-CNN的性能明显优于OctNet,几乎有一半的层数。我们可以将这个收益主要归功于我们为其定制网络的球形核准确探索几何信息。回想一下,在比较的网络中,只有ECC和OctNet能够执行卷积。尽管后来具有密集的层内连接,但所提出的卷积网络能够明显优于ECC。在目前的状态下,PointNets似乎胜过我们的方法。
然而,成功将卷积应用于非结构化点云的能力为我们的方法提供了更好的前景。
与其他方法类似,我们还利用表1中报告的结果中的数据增强。我们执行随机子采样,随机方位角旋转(高达π6rad)和噪声平移(std.dev = 0.02)以增加数量火车和测试实例的五倍原始。在表2中,我们总结了有和没有增强的Ψ-CNN的结果,用于测试在30K大小的点云上训练但使用不同大小的测试样本的网络。对于50K,我们不执行随机子采样增强,因为我们将50K设置为最大点数。
5.1可扩展性对于几何上有意义的卷积,必须了解点的局部邻域。
ECC [12]利用范围搜索来实现此目的。另一个明显的选择是K-NN聚类。对于树结构,例如Kd-tree,octree,这个信息在空间划分下很容易获得。在我们的方法中,必须为训练和测试样本计算局部邻域,这使得该计算成为决定方法可扩展性的主要因素。
在图3中,我们比较了不同选择下的计算邻域的时序与八叉树构造。可以看出,对于更大数量的输入点,与K-NN和范围搜索相比,八叉树结构非常好地扩展。此外,对于大输入大小,其缩放也优于Kd树,因为Kd树中的二进制分区导致树深度比八叉树中的分区增加得多。因此,我们可以争辩说,八叉树结构的选择使得我们的方法比使用K-NN,范围搜索甚至Kd树的方法更具可扩展性。
在表3中,我们还报告了我们的网络对不同大小的点云的测试时间。对于给定样本,总测试时间包括构造八叉树然后执行正向传递所需的时间。该表还包括计算法线作为参考所需的时间。请注意,我们的方法不需要计算法线,并且报告的结果没有从正常信息中获益。表3的最后一列证明了不利用普通信息以获得更好的可扩展性的计算原因。
5.2可视化我们用图2中的两个代表性例子展示了点云的演化及其特征表示。可以看出,随着层数的增加,点云变得更粗糙,其特征表示变得更加独特。在较高层中,点云松散地成为原始点云的骨架表示。我们还可以使用3D视图和顶视图可视化在ModelNet10上学习的球形内核的代表性示例。有关卷积核和点云演化的进一步可视化,我们参考随文件提交的补充材料。
6 结论
我们引入了球形卷积核的概念,并证明了它在由原点云的八叉树分割引导的神经网络体系结构中的实用性。网络在其神经元附近连续应用卷积核。这些位置由底层八叉树的节点控制。为了执行卷积,球形内核将其占用的空间划分为多个箱,并将权重矩阵与每个箱相关联。通过网络培训学习这些矩阵。结果表明,所得到的球形卷积神经网络能够以可扩展的方式有效地处理不规则的三维点云,为模型识别任务实现了非常有希望的结果。将来将探索与球形卷积兼容的其他分层结构。

你可能感兴趣的:(Spherical Convolutional Neural Network for 3D Point Clouds)