Spherical Kernel for Efficient Graph Convolution on 3D Point Clouds

摘要

我们提出了一种球形核,以实现3D点云的有效图卷积。我们基于度量的内核系统地量化了本地3D空间,以识别数据中独特的几何关系。与常规网格CNN核类似,球形核保持平移不变性和不对称性,其中前者保证数据中相似局部结构之间的权重分配,而后者则有助于精细的几何学习。所提出的内核可用于不依赖于边缘的滤波器生成的图神经网络,从而使其在计算上吸引大点云。在我们的图形网络中,每个顶点都与单个点位置关联,并且边线在定义的范围内连接相邻点。通过最远的点采样可以在网络中粗化图形。与标准CNN相似,我们为网络定义了池化和解池操作。我们使用ModelNet,ShapeNet,RueMonge2014,ScanNet和S3DIS数据集证明了所提出的带有图神经网络的球形核对点云分类和语义分割的有效性。可以从https://github.com/hlei-ziyan/SPH3D-GCN下载源代码和经过训练的模型。

索引词-3D点云,球形核,图神经网络,语义分割。

1引言

众所周知,计算机神经网络(CNN)[1]可以准确地解决各种计算机视觉问题。分类[2],[3],[4],[5],图像分割[6],[7],[8],物体检测[9],[10],[11]和面部识别[12]],[13]只是CNN最近已成为默认模型技术的任务的几个示例。CNN的成功主要归功于其令人印象深刻的代表性能力。但是,它们的表示仅适合在常规网格(例如,网格)上定义的数据。图像和视频的像素阵列。这对于数据固有地不规则的应用是有问题的[14],例如。3D视觉,计算机图形学和社交网络。

特别是3D视觉扫描仪(例如LiDAR,Matterport)产生的点云高度不规则。近年来,由于无人驾驶车辆,人们对3D视觉深度学习的兴趣激增。这也导致了3D点云的多个公共存储库[15],[16],[17],[18],[19]。利用CNN进行点云的早期尝试将规则的网格转换(例如,体素网格[20],[21],多视图图像[22])应用于点云,以使用3D-CNN或增强的2D-CNN对其进行处理[3]。,[5]。但是,此操作路线没有充分利用点云的稀疏性质,从而导致不必要的大内存占用和方法的计算开销。Riegler等用称为八叉网的基于八叉树的网络解决了密集3D-CNN中的内存问题。但是,在空白空间上的冗余计算仍然与OctNet有所不同。

计算图能够比点体积或多视图表示更好地利用点云的稀疏性质。然而,设计有效的模块,例如卷积,池化和解池层,成为基于图的卷积网络的主要挑战。尽管对于不规则数据,这些模块仍有望执行类似于CNN像素操作的点操作。此类模块的较早实例存在于理论著作[24],[25],[26]中,可以用来形成图卷积网络(GCN)[26]。但是,由于这些原始GCN无法有效处理现实世界中的点云,因此仍被视为点云处理的可行解决方案。

基于卷积运算,GCN可以分为两组,即:光谱网络[24],[25],[26],[27]和空间网络[28],[29],[30],[31],[32]。前者使用图拉普拉斯矩阵和邻接矩阵执行卷积,而后者则直接在空间域中进行卷积。对于光谱网络,必须仔细对齐不同样本的图拉普拉斯曲线[27]。对于现实世界的点云,这不容易实现。因此,在实际应用中,通常认为空间网络频谱网络更具吸引力。

空间GCN受到3D度量空间中离散卷积核不可用的挑战。为了解决这个问题,小型网络[28],[29],[31]通常用于动态生成边缘过滤器。这会导致大量的计算开销,在离散内核的情况下可以避免。但是,在这种情况下,离散内核的设计和应用并非一帆风顺。除了有效离散度量空间外,内核应用程序还必须具有以下特性:(a)平移不变性,可以识别数据中的相似局部结构;以及(b)顶点对处理的不对称性,以确保整体表示保持紧凑。

由于离散核对不规则数据的复杂要求,许多现有网络完全避免了点云处理的卷积运算[33],[34],[35],[36]。尽管这些技术在基准数据集上报告了不错的性能,但是它们并没有有助于利用卷积网络的功能来处理点云。PointCNN [37]是一个值得注意的例外,它使用卷积内核进行点云处理。但是,它的内核又是使用小型网络定义的,从而导致高计算成本。而且,它对邻近点的顺序很敏感,这意味着底层操作不是排列不变的,这不是点云所需的内核特性。

在这项工作中,我们引入了一个基于离散量度的球形卷积核,该核将3D区域系统地划分为多个体积仓,如图1所示。内核直接应用于点云进行卷积。内核的每个bin指定可学习的参数以卷积其中的点。我们内核定义的卷积保留了平移不变性,不对称性和置换不变性的属性。所提出的内核使用图网络应用于点云。为此,我们借助范围搜索[38]和最远点采样[35]来构建网络。前者定义基础图的边缘,而后者则随着我们深入网络层而使图变粗。我们还为我们的图网络定义了合并和解集模块,以对顶点特征进行下采样和上采样。针对3D点云分类和语义分割的任务,对新型卷积核及其在图形网络中的应用进行了全面评估。我们在各种基准数据集(包括模型网[20],ShapeNet [16],RueMonge2014 [39],ScanNet [18]和S3DIS [17])上都具有极高的竞争力。由于提出了内核,因此发现生成的图形网络在存储和计算方面都是有效的。这导致对高分辨率点云的快速训练和推断。
Spherical Kernel for Efficient Graph Convolution on 3D Point Clouds_第1张图片

图1.提出的球形卷积核系统地将点xi周围的空间划分为多个体积仓。对于第j个相邻点xj,它确定其相关仓,并使用该仓的权重wκ计算激活。内核与基于图的网络一起使用,该网络使用图表示的金字塔直接处理原始点云。这是一个简化的类似于U-Net的[8]语义分段架构,该架构通过合并将输入图G0粗化为G1,而后者则使用解池进行扩展。在网络中,点的位置标识图形顶点,而点邻域确定图形边缘。我们的网络允许卷积块与提出的内核的连续应用相结合,以实现更有效的表示学习。

这项工作是对IEEE CVPR 2019 [32]中提出的初步研究结果的重要扩展。下面,我们总结了该技术扩展到初步工作以外的主要方向。

•可分离的卷积。我们在这项工作中分别进行深度和点方向的卷积运算,而不是像[32]中那样同时进行。可分离的卷积策略受到Xception [40]的启发,并大大减少了网络参数的数量和计算成本。

•图形架构。代替[32]的八叉树引导的网络,我们使用一种更加灵活的基于图的技术来设计我们的网络体系结构。这使我们能够利用卷积块并定义独立于卷积的池/解池操作。与基于卷积的下采样/上采样相反,用于处理这些大型点云的用于这些操作的专用模块是非常理想的。此外,这种策略还使我们的网络体系结构更接近标准CNN。

•对真实数据的全面评估。与前期工作相比[32],我们对真实世界的数据进行了更全面的评估。重点包括RueMonge2014数据集比[32]有4.2%的性能提升,以及对另外两个数据集ScanNet和S3DIS的综合评估。提出的结果确定了我们技术的计算效率,并在流行基准上具有高度竞争性。

•Tensorflow实施。尽管[32]在Matconvnet中实现,但在本文中,我们发布了球卷积的cuda实现以及Tensorflow的池化/解池操作。可以在Github(https://github.com/hlei-ziyan/SPH3D GCN)上找到源代码,以用于更广泛的研究社区。

2相关工作

PointNet [33]是使用深度网络直接处理点云的首批技术之一。它使用点的xyz坐标作为输入要素。网络通过共享的MLP学习逐点特征,并通过最大池提取全局特征。该技术的局限性在于它不能在表示学习中探索点的几何背景。PointNet ++ [35]通过将最大池应用于层次结构来解决此问题。但是,两个网络都必须依赖最大池来聚合任何上下文信息而不会卷积。
SO-Net [36]从点云构建了一个m×m的矩形地图,并使用mini-PointNet分层学习了地图中的节点级特征。但是,类似于原始的PointNet,它也无法利用任何卷积模块。KCNet [41]通过局部相邻点和可学习点模板之间的内核相关性学习特征。可以在类似于卷积内核的培训课程中对此进行优化。与SO-Net使用的类似地图的图像相反,KCNet基于图形表示。Kd网络[34]是使用基于树结构的网络处理点云的杰出贡献。该技术还使用点坐标作为输入,并通过在平衡树中串联其子节点的特征来计算父节点的特征。尽管它们的网络体系结构结构各不相同,但是上述方法都无法为点云开发卷积网络。朝这个方向推进研究的方法可以分为两大类,如下所述。

2.1 3D卷积神经网络

随着3D深度学习的到来,研究人员主要使用体积表示法预先提取具有3D-CNN内核的特征。即使使用现代的GPU,在这个方向上的早期尝试也只能处理低分辨率的体素网格(例如ShapeNets [20]中的30×30×30,VoxNet [21]中的32×32×32)。这个问题也超越了这个方向的后续工作[42],[43],[44],[45]。低输入分辨率的限制是内存的三次增长和与密集的体积输入相关的计算要求的自然结果。后来出现了不同的解决方案来解决这些问题。例如,Engelcke[46]在输入和隐藏的神经激活中引入了稀疏性。他们的解决方案可有效减少卷积数量,但不能减少所需的内存量。Li[47]提出了一种现场探测神经网络,该网络将3D数据转换为带有少量探测过滤器的中间表示。尽管此网络能够减少完全连接的层的计算和存储成本,但探测过滤器无法支持权重共享。后来,Riegler[23]提出了基于八叉树的OctNet,它代表点云与浅网格八叉树的混合(深度= 3)。与密集型同类产品相比,OctNet在很大程度上降低了计算和内存成本,适用于高达256×256×256的高分辨率输入。但是,它仍然必须在对象周围的空白区域执行不必要的计算。其他最近的技术也将原始点云转换为其他正则表示形式,例如切线图像[48]或高维格网[49],从而可以将标准CNN应用于转换后的数据。

2.2图卷积网络

使用类似CNN的架构进行不规则数据处理的需求导致了图形卷积网络的兴起[14]。通常,除了卷积网络以外,更广泛的基于图的深度学习还看到了可周期性更新顶点特征以传播上下文信息的技术(例如[50],[51],[52],[53],[54])。但是,在这里,我们的重点是与我们的工作更紧密相关的图卷积网络。

图卷积网络可分为频谱网络(例如[24],[25],[26])和空间网络(例如[28],[29])。光谱网络对从傅立叶变换转换而来的光谱顶点信号执行卷积,而空间网络直接在空间顶点上执行卷积。频谱网络的主要局限性在于它们要求固定图结构,这使得将其应用于具有变化的图结构(例如点云)的数据具有挑战性。Yi[27]尝试通过频谱变压器网络(SpecTN)解决此问题,类似于空间域中的STN [55]。然而,从空间域到频谱域的信号转换以及反之亦然,具有计算复杂度O(n2),从而导致对大点云的需求过高。

ECC [28]是在空间域中利用图卷积进行点云分析的开创性工作之一。受动态滤波器网络的启发[56],它使MLP适应动态地在连接的顶点之间生成卷积滤波器。过滤器的动态生成自然会带来计算开销。DGCNN [57],Flex Conv [58]和SpiderCNN [59]随后探索了不同的实体化参数,以生成边缘相关的滤波器。很少有网络使用小型网络[31],[37]立即生成完整的局部卷积核,而不是单独为边缘生成过滤器。Li[37]最近介绍了PointCNN,它使用名为X -Conv的卷积模块进行点云处理。该网络在标准基准(例如ShapeNet和S3DIS)上取得了良好的性能。但是,生成的内核对邻点的顺序很敏感,这表明基础表示形式不是置换不变的。此外,动态内核生成的策略使该技术的计算效率低下。

最近,Wang[57]在图卷积网络中插入了注意力机制来开发GACNet。图网络的这种扩展对于语义分割特别有用,因为它使邻域顶点具有类似于CRF的一致语义标签[60]。除了卷积运算,图粗化和边缘构造是图网络体系结构的两个基本部分。我们将在下面简要介绍这些方法。

图形粗化:点云采样方法对于图形粗化很有用。PointNet ++ [35]利用最远的点采样(FPS)来粗化点云,而Flex Conv [58]根据每个点的逆密度(IDS)采样点云。随机抽样是FPS和IDS的最简单替代方案,但对于诸如语义分割之类的挑战性任务而言,效果不佳。最近,研究人员也开始探索使用深度神经网络学习采样的可能性[61]。在这项工作中,我们将FPS用作图粗化的采样策略,因为它不需要训练,并且可以相对均匀地降低点云分辨率。

图形连接:点邻域搜索可用于在图形中建立边缘连接。KNN搜索为给定点生成固定数量的邻域点,从而生成规则图。范围搜索可生成灵活数量的邻域点,这可能会导致图形不规则。树结构也可以看作是一种特殊的图形[32],[34],但是,默认情况下,树中没有层内连接的情况极大地限制了它们作为图形网络的潜力。在最近的例子中,Rao[62]提出采用球形格子进行正则图构造。他们的技术依靠1×1卷积和最大池化来聚合相邻点之间的几何上下文。

在本文中,我们使用范围搜索来建立图连接,以使其与所建议的内核自然兼容。请注意,我们的球核并不限制图的顶点度是固定的。因此,与[31],[37]不同,我们的内核适用于规则图和不规则图。

3离散卷积内核

给定m个点的任意点云P = {xi∈R3} mi = 1,我们将每个点xi的邻域表示为N(xi)。为了在目标点xi上实现图卷积,更常见的“连续”滤波器方法[28],[29],[31],[37],[58],[59]将卷积参数化为局部点坐标的函数 。例如,假设w是计算通道c的输出特征的滤波器。这些技术可以将滤波器表示为w = h(xj | xi),其中h(。)是连续函数(例如MLP),xj∈N(xi)。但是,与连续滤波器相比,离散内核是预定义的,不需要上面提到的(或类似的)中间计算。这使得离散内核在计算上更具吸引力。

遵循标准的CNN内核,可以定义类似于3D-CNN内核的点云原始离散内核[20],[21]。对于分辨率h,此内核包含h3个权重滤波器wκ∈{1,...,h3}。通过将可分离卷积的概念[40]合并到此设计中,每个权重过滤器将从向量wκ转换为标量wκ。值得注意的是,离散核在“图形”表示中的应用与其体积对应的显着不同。因此,为了区别起见,我们将图形内核称为CNN3D内核。CNN3D内核索引了bin,对于第κ个bin,它使用wκ将特征从该bin中的所有相邻点xj,∀j传播到目标点xi,见图2。它仅在点位置执行卷积,避免在空白处进行不必要的计算,这与3D-CNN内核相反。

关于改进CNN3D内核,我们进行了以下观察。对于图像,传统上使用更原始的成分(即补丁)来提取手工制作的特征[63],[64]。相同的原理超越了使用CNN进行自动特征提取的接受范围,CNN使用激活的图像的明确定义的矩形区域来计算特征图。
矩形区域是图像的直观选择,而球形区域更适合处理非结构化3D数据,例如点云。球形区域显然适合于为此类数据计算几何上有意义的特征[65],[66],[67]。受这种自然关系的启发,我们引入了球形卷积核的概念(称为SPH3D核),该概念将3D球体作为执行卷积操作的基本几何形状。我们将在第3.1节中说明拟议的离散球形核,然后将其与第3.2节中现有的CNN3D内核进行对比。


3.1球形卷积

我们借助半径为ρ∈R +的球体来定义卷积核,请参见图2。对于目标点xi,我们将其邻域N(xi)视为以xi为中心的球体内的点集,即N(xi)= {x:d(x,xi)≤ρ},其中d(。,。)是距离度量-本工作中为`2距离。通过沿方位角(θ)和高程(φ)均匀地划分占用空间,将球体划分为n×p×q个“箱”。我们允许沿径向(r)的分区不均匀,因为不希望大半径值的立方体积增长。我们对球形区域的量化主要受到3DSC的启发[65]。我们还定义了一个与球体原点相对应的附加bin,以允许图形上点的自卷积。为了产生输出特征图,我们为每个bin定义一个可学习的权重参数wκ∈{0,1,...,n×p×q}∈R,其中w0与自卷积有关。将n×p×q + 1个权重值组合在一起可指定一个球面卷积核。

为了计算目标点xi的激活值,我们首先确定其相邻点xj∈N(xi)的相关权重值。将w0与xi关联以进行自卷积很简单。对于非平凡的情况,我们首先根据以xi为原点引用的球面坐标表示相邻点。也就是说,对于每个xj,我们计算T(∆ji)→ψji,其中T(。)定义从笛卡尔坐标到球形坐标的转换,而∆ji = xj | xi 假设沿着球体的方位角,仰角和径向尺寸分别用kθ,kφ和kr索引量化球体的仓,则可以将与每个球形核仓相关的权重索引为κ=kθ+(kφ1)× n +(kr r 1)×n×p,其中kθ∈{1,。。。,n},kφ∈{1,。。。
,p},kr∈{1,。。。,q}。使用该索引,我们将相关的权重值与每个ψji关联,因此与xj关联。在第l个网络层中,通道c中第i个点的激活计算为:

Spherical Kernel for Efficient Graph Convolution on 3D Point Clouds_第2张图片

其中all1 jc是来自层ll1的相邻点的特征,wlκc是权重值,f(·)是非线性激活函数-ELU [69]。通过对每个输入通道应用球面卷积λ次,我们为目标卷积点xi产生λCin输出特征。

为了详细说明球形卷积核的特性,我们将核bin的沿θ,φ和r的边界表示如下:

Spherical Kernel for Efficient Graph Convolution on 3D Point Clouds_第3张图片

Spherical Kernel for Efficient Graph Convolution on 3D Point Clouds_第4张图片

图2:原始CNN3D和建议的SPH3D离散内核的图示:点xi有七个相邻点,包括自身(自环)。为了在xi处进行卷积,离散内核将其周围的空间系统地划分为bin。以xi为中心,CNN3D将围绕该点的3D“立方”空间划分为“统一体素”容器。我们的SPH3D内核将xi周围的“球形”空间划分为“非均匀体积”容器。对于两个内核,都对料仓及其相应的权重进行索引。落入第κ个区间的点以权重wκ传播到xi。多个点落在同一个仓中,例如xs和xt使用相同的权重来计算xi处的输出特征。 

图3.玩具示例的编码器-解码器图神经网络的图示。具有12个顶点的图G1粗化为G1 + 1(8个顶点),然后进一步粗化为G1 + 2(4个顶点),然后扩展回12个顶点。特征图的宽度变化描绘了不同数量的特征通道,而像元数表示相应图中的总顶点。池化/解池操作计算粗化/展开图的特征。连续卷积应用于形成卷积块。所示的语义分段体系结构使用跳过连接进行特征串联,类似于U-Net。为了分类,删除解码器和跳过连接,并将全局表示馈送到分类器。为了清楚起见,我们在所示图中省略了自环。

你可能感兴趣的:(python,算法相关)