APP下载

基于邻域参与的形状感知卷积网络的点云分析

2022-12-27王佳旭史路冰高海悦

关键词:邻域形状卷积

张 杰,王佳旭,史路冰,高海悦

(辽宁师范大学 数学学院, 辽宁 大连 116029)

1 相关研究

随着自主导航、机器人和虚拟现实等三维深度传感器应用的不断增多[1-2],需要处理的点云数据也日益增加,因此,对三维点云数据分析算法的需求也日益增多.近几年来,深度学习方法开始在图像分割和分类等方面得以成功应用[3].但是由于点云数据往往是不规则的,因此无法像图像一样直接作为深度学习的输入.如何使用深度网络对点云数据进行分析处理已经成为近些年的热点问题之一[3-4].

为了能在点云上使用深度网络, 一种常见的方法是将点云转化为规则的图像(基于图像的方法)或体素(基于体素的方法).基于图像的方法[2,5], 是从不同的角度将三维点云形状投影到若干个二维视图上, 然后在二维视图上进行卷积操作, 最后将卷积得到的视图特征聚合成低维的全局特征.但对于点云的分割问题, 将三维形状投影到二维图像, 可能会因为遮挡问题导致形状信息的损失, 因此需要大量的图像以提升分割的结果, 计算量较大.基于体素的方法[1,6], 是将输入的三维点云转换为规则的三维体素后, 直接在体素上进行三维卷积操作提取特征.此类方法虽然可以在一定程度上保留几何结构, 但体素化卷积操作内部存储成本消耗严重, 这使得捕获高分辨率信息和细粒度特征变得困难[1-2,5].近几年也不乏有一些解决方法[7-8], 但大都依赖于边界体积的划分, 而不是局部几何形状.

近年来, 基于点云表示的方法得到广泛关注, 该类方法尝试直接以三维点云数据作为输入.PointNet[3]是用深度神经网络直接处理点云的先驱者, 该方法首先通过共享的多层感知器(Multi-layer Perceptron, MLP)对每个点进行单独学习实现点特征的提取, 再对点特征运用最大池化(Max Pooling)操作得到点云的整体特征.但PointNet在点特征的提取中忽略了局部结构.针对此问题, PointNet的作者对其进行了改进, 提出了一种新的深度神经网络框架(PointNet++[4])实现局部结构的捕获.其先将点云划分为多个重叠的局部邻域, 再利用PointNet对每一个小邻域提取局部特征, 这些局部特征进一步组成更大的单位, 并被处理得到更高级的语义特征, 重复此过程直至得到整个点云的特征描述.PointNet++的这种分层神经网络框架体现了卷积网络从局部邻域提取特征的思想, 受到众多研究者的认可.但PointNet++在对局部邻域提取特征时, 仍采用PointNet网络, 没有考虑点的邻接信息.诸多后续工作针对如何在提取局部特征时加入邻接信息展开讨论.

为了在对局部邻域进行特征提取时加入点的邻接信息, 目前主流的方法是通过预测卷积算子的连续权重或特征函数来定义一个可学习的连续卷积层.对于连续函数, 卷积操作的定义如下:

(1)

其中,f是被卷积的特征函数,g是卷积核函数, 其可以用来计算每一点的卷积权重.点云可以看作是连续空间的非均匀采样, 点云上每点的特征可以理解为三维空间连续函数的一个离散采样.因此点云上的卷积运算一方面可以通过将散乱无序的采样点规则化获得; 另一方面可以通过估计散乱无序采样点上的卷积权重获得.

PointCNN[9]提出了一种χ-卷积, 该卷积先通过MLP从输入点中学习一个χ-变换, 通过该变换对局部点云进行加权和排序, 然后对“重排”后的点特征进行卷积.理想情况下, χ-卷积的结果与邻域点的顺序无关, 但实际求得的χ-变换很难做到这一点.SPLATNet[10]和PCNN[11]都是将点特征插值到规则网格上,在网格上应用三维卷积,最后将特征再投影到原始点云上.然而插值函数和原始的特征函数之间存在误差, 这使得卷积结果可能会偏离期望值.特别在采样误差较大的情况下, 插值函数很难恢复原始特征函数的细节, 影响卷积结果的性能.

另一类方法尝试通过插值函数[12]、多层感知器(MLP)[13]或多项式函数[14]来估计连续的核函数g, 然后利用核函数直接预测散乱无序采样点上的卷积权重, 再将权重和采样点特征对应相乘求和, 实现局部邻域的特征提取.然而, 由于这一类方法并没有对采样点的位置进行优化, 在非均匀采样情况下, 卷积结果可能会偏离期望值.因此,这类方法需要引进其他技术对非均匀采样进行补偿, 如:蒙特卡罗卷积[15]以及一般化地离散卷积[12]使用密度函数来消减采样密度的影响, 但这一类方法在学习位置与权重的关系时, 并没有考虑点集的几何形状信息.为了解决该问题, Liu等人提出了形状感知卷积神经网络(RS-CNN[16]), 在局部邻域的特征提取时考虑局部几何形状信息.与以往方法不同, RS-CNN不是以局部点集的位置坐标作为输入, 而是设计了一个低维的几何特征对采样点的几何形状进行描述.然后通过MLP从低维的几何特征中学习出对应权重对特征进行加权, 再对加权后的特征进行最大池化操作获得邻域的局部特征.RS-CNN在卷积操作时不仅可以很好地解决点云的无序问题, 而且对刚性变换鲁棒, 在局部邻域特征提取的同时考虑了每个点的自身位置和几何属性, 在点云聚类和分割中, RS-CNN取得目前领先的结果.然而, RS-CNN在权重的学习过程中没有考虑局部邻域的整体分布, 在构造邻域点的低维几何特征时只用到了当前点与邻域点的位置关系; 在利用深度网络学习权重的过程中亦是通过对每个点进行单独学习实现的.

本文在RS-CNN的框架下提出一种新的深度点云卷积形式——邻域参与的形状感知卷积, 在权重的学习过程中不仅利用了每一点的位置和几何属性, 同时还考虑了局部点集的整体分布.该网络采用了类似于PointNet分割网络的框架对权重进行学习(权重学习网络, WL-Net), 通过将邻域点的局部编码与邻域的全局编码串联实现利用局部点集的整体分布对权重进行学习.具体来说, 对于输入的局部邻域, 首先通过MLP提取出点特征, 利用平均池(Average Pooling)获得邻域的全局特征, 然后再将全局特征和点特征进行串联, 并利用MLP学习出每点的权重.通过权重与对应特征相乘, 获得每一点的加权特征, 再对得到的加权特征采取最大池得到邻域的局部特征.

2 算 法

2.1 分层卷积结构

本文采用类似PointNet++的分层结构.输入为F1=(v1i,fv1i),i=1,2,…,N1, 即对于点集V1={v1i|v1i∈3}中的每一点v1i都对应一输入特征fv1i∈C1, 其中,C1为输入特征维度,N1为采样点个数.在此基础上构造其代表点集V2={v2i|v2i∈3},i=1,2,…,N2.V2中的点可以位于任意位置, 常用的构造方法是对V1进行随机下采样或最远点采样.接下来利用V2中的点将V1分割为N2个重叠的子点云, 每一子点云是以v2i为中心的局部邻域Ni, 然后对每一子点云提取局部特征fv2i作为代表点v2i的提取特征, 集合F2=(v2i,fv2i),i=1,2,…,N2可以看成点云的更高级表示.对得到的F2重复上述过程, 直至得到整个点云的特征.

2.2 邻域参与的形状感知卷积

为方便叙述, 取V2中的一个代表点记为v, 并将其在V1中的邻域记为N.其中,N是代表点v的K个近邻点vi组成的邻域, 邻域中每个点对应特征向量fvi.受到RS-CNN启发, 为了考虑每一点的形状信息, 对每一邻域点vi根据其与当前点v之间的位置关系定义一个10个通道的低维局部形状向量hvi=(|v-vi|,v-vi,v,vi), 其中,|·|表示F范数, 该向量可以看成是vi的一个低级的形状特征.对于邻域N, 其输入为F={(hvi,fvi)|vi∈N}, 本文通过WL-Net学习特征fvi的对应权重wvi, 然后对加权后的特征进行聚合, 并对聚合后的特征运用MLP进行升维, 对邻域N提取更高维的特征向量.其具体过程如图1所示, 以邻域点对应的特征向量fvi和低维局部形状向量hvi作为输入, 先利用WL-Net学习每一特征向量fvi的权重.具体来说, 首先通过MLP对hvi进行拉伸, 提取每一点的C2维点特征, 然后利用平均池获得邻域的特征描述, 再将全局特征和点特征进行串联, 实现将邻域的整体形状用于权重学习的目的.利用串联特征经过MLP学习出与输入特征具有相同维度的权重wvi.得到权重wvi后, 利用wvi对fvi进行加权, 然后对加权后的特征进行聚合, 并对聚合后的特征运用MLP进行升维, 进而得到邻域的局部特征fsub.该过程可用公式表示如下:

图1 算法流程图

fsub=M(σ(A({wvi·fvi,∀vi∈N}))),

(2)

其中,wvi是通过hvi利用神经网络学习出的fvi对应的权重,·表示对应元素相乘, 函数A表示利用聚合函数对得到的加权特征进行聚合, 函数σ表示用非线性函数对加权后的特征进行激活,M表示利用MLP对激活后的特征进行升维, 得到邻域的局部特征fsub.在上述步骤中, 当聚合函数A是对称的, 才能实现点集的置换不变性.一般常用的操作有最大池化和平均池化.与RS-CNN和传统的CNN类似, 本文选用最大池化实现加权特征集的聚合操作.权重wvi的学习是本文的关键步骤.为了可以在权重的学习过程中加入点集的整体分布, 本文提出了一个以局部点集整体为输入的权重学习网络(Weight-Learning Net, WL-Net).

2.3 权重学习

RS-CNN在构造低维局部形状向量hvi时, 仅考虑了邻域点和当前点的位置信息, 并没有加入局部邻域的整体形状描述; 在利用hvi学习权重wvi的过程中, 亦是通过对hvi的独立学习完成的, 没有考虑vi的邻接信息, 如图1中的虚线所示.因此, RS-CNN在wvi的学习过程中没有考虑点集的整体分布.事实上, 点集中每一点的权重不仅与其自身的位置和几何属性有关, 还应与点集的整体分布有关, 如图2所示.图中星形点为当前点, 方形点和三角形点为邻域点,(a)和(b)具有不同分布, 方形点在(a)中为描述形状的关键点, 但在(b)中为噪声点.因此, 在(a)和(b)中学习到的权重应该不同.但由于RS-CNN在权重学习的过程中仅考虑了邻域点和当前点的关系, 所以方形点在(a)与(b)中学习到的权重是一样的.为克服这一问题, 本文加入了全局邻域结构, 由于(a)与(b)的形状分布不同, 所以二者的全局特征也不相同, 进而使得方形点在(a)与(b)中学习到的权重亦不同.

图2 权重学习应考虑邻域的整体形状

为了能在权重学习过程中考虑邻域的整体特征, 本文采用了类似于PointNet分割网络的框架来构建WL-Net, 通过将邻域点的点特征与邻域的全局特征串联, 实现利用局部点集的整体分布对权重进行学习, 如图1中的上方深色阴影框所示.具体来说, 首先以邻域内每一点的低维局部形状向量hvi作为输入, 通过MLP对每一点提取C2维度的点特征, 利用平均池化操作获得邻域的全局特征1×C2, 为了在权重学习过程中能够考虑局部点集的整体分布, 将C2维度的全局特征与C2维度的点特征串联, 每点得到一个(C2+C2)维度的特征向量, 最终通过MLP学习出与输入特征具有相同维度的权重wvi.对输入邻域N, 用WL-Net进行权重学习时, 通过聚合函数的使用, 可以在理论上保证权重学习的结果对点排列顺序不变.本文使用WL-Net来替代RS-CNN中的权重学习过程, 结果表明WL-Net有效地提高了RS-CNN网络的性能, 并且在具有挑战性的基准数据集和任务上均达到了与现有方法相同或更好的性能.

3 实验结果及分析

为了对本文算法的有效性进行评估, 本节在不同任务和数据集上进行了测试.实验分为3部分: 基于ModelNet40数据集的三维形状识别(3.1节); 基于ShapeNet Parts数据集的三维模型语义分割(3.2节); 输入数据及聚合函数对模型性能的影响(3.3节).算法在PyTorch下实现, 并在单个Nvidia GTX 1080Ti上进行训练.

3.1 三维形状分类任务

3.1.1 数据集

对于三维形状分类任务, 选择ModelNet40数据集[7]对算法性能进行评估.该数据集包括40个类别共12 311个模型, 其中9 843个模型用于训练, 2 468个模型用于测试.本文训练了以1 024个点为输入的测试模型, 采样数据是在文献[3]提供的数据集上进行的, 该数据集将ModelNet40中的每一个模型转化为包含2 048个点的点云模型.在训练过程中, 本文采用了文献[3]的方法对数据进行扩充, 一方面对输入数据进行了拉伸, 尺度控制在[-0.66, 1.5]范围内; 另一方面对数据进行平移, 控制在[-0.2, 0.2]范围内.为了解决数据的过拟合问题, 在网格训练过程中, 对于神经网络单元执行50%比例的Drop out[17]技术.在测试过程中, 类似于文献[3-4,16],对每个模型进行了10次随机采样, 并对预测结果取平均值.

3.1.2 实验细节

对于RS-CNN, 本文使用作者文章中给出的2层单尺度邻域架构.虽然RS-CNN作者指出, 在3层多尺度邻域架构下可以得到更好的结果, 但是在网络上仅提供了2层单尺度邻域架构, 故使用此架构.为了能更好的对RS-CNN和RS-CNN+WL-Net的性能进行比较, 本文使用和RS-CNN相同的框架, 只是将RS-CNN中的权重的学习过程替换为本文提出的WL-Net.而且对于参数C,C1,C2及Cout的选取, 使用了和RS-CNN一样的原则.

3.1.3 结果与讨论

为了验证本文算法的优越性, 本节就ModelNet40数据集上的分类结果,与其他先进方法进行了比较, 结果如表1所示.可以看出, 本文算法的分类准确率优于其他主流算法.RS-CNN+WL-Net在仅以1 024个点的坐标作为输入的条件下,其准确率可以达到93.2%,优于PointConv[13]以5 000个点的坐标和法向作为输入的结果.此外,可以观察到,用本文提出的WL-Net替换RS-CNN中的权重学习过程,可以有效提高算法的性能(RS-CNN+WL-Net比RS-CNN高出0.3%).实验结果表明了在权重学习过程中考虑邻域整体分布的优越性.

表1 在ModelNet40上的分类准确率的比较

3.2 三维模型语义分割

3.2.1 数据集

对于三维模型语义分割任务,选择ShapeNet Parts数据集对本文算法进行评估.ShapeNet Parts是一个由三维CAD模型对象表示的丰富的大型形状数据集,包括了16个类别的16 880个模型,其中,14 006个模型用于训练,2 874个模型用于测试.模型中的每一点对应一个部件标签(这个数据集总共50个部件),平均每个模型由少于6个部分组成.每个模型采2 048个点用于训练和测试.与RS-CNN类似,将模型的类别标签对应的向量作为特征,与网络的最后一个特征层输出的特征串联,用于预测每个采样点的标签.在测试过程中,对每个模型进行了10次随机拉伸,并对预测结果取平均值.

3.2.2 实验细节

对于RS-CNN深层网络框架, 本文使用作者给出的4层多尺度邻域架构.RS-CNN+WL-Net 仍使用和RS-CNN相同的框架和参数设计.

3.2.3 结果与讨论

与三维形状识别实验相比, 三维模型语义分割需要更精细地识别每个点, 所以更加具有挑战性.本节就ShapeNet Parts数据集上的语义分割结果, 与其他先进方法进行了比较.本文采用交并比(Intersection-over-Union, IoU)对分割结果实现定量的比较, 展示两种平均的IoU(mIoU), 它们分别是在所有类别和所有实例中进行平均.表2总结了与现阶段方法的定量比较.RS-CNN+WL-Net以86.4%的类别mIoU和84.2%的实例mIoU获得了最好的语义分割性能.而且, 基于相同的网络框架和参数设计, RS-CNN+WL-Net的类别mIoU和实例mIoU分别略高于RS-CNN.这些改进证明了本文提出的权重学习网络的有效性.

表2 在ShapeNet Parts上的分割结果的比较

3.3 模型分析

3.3.1 稀疏数据上的分类结果分析

本节以ModelNet40数据集上的形状分类任务为基础, 对RS-CNN和RS-CNN+WL-Net在不同数量的输入点下的性能进行了评估.本文在不同数量的采样点下对模型进行训练, 并利用训练后的模型进行测试, 结果展示在图3 中.实验结果表明, RS-CNN+WL-Net在每个密度上都比RS-CNN精度要高.而且, 当输入点数减少到128或64时, RS-CNN+WL-Net的性能可以达到90.6%和89.3%, 与PointNet++和PointNet在1 024个输入点下的结果持平.但是, 当采样点数量降低到128或64时, 在TITAN RTX GPU上, 每个样本的推断速度为1.4~0.7 ms, 这使得在实际应用中, 例如:自动驾驶、机器人交互, 实现低分辨率点云输入的实时分类成为可能.

图3 输入点数量对网络性能的影响

3.3.2 聚合函数的选择

本节讨论了不同聚合函数对网络性能的影响, 本文算法在两个位置使用了聚合函数: 一是在WL-Net中为了将邻域的整体分布加入到权重学习中, 使用聚合函数获得邻域的整体编码并与点特征相串联; 另一个是对加权后的特征使用聚合函数, 即式(2)中的A.表3比较了RS-CNN+WL-Net在平均池化和最大池化下, 在Model-Net40数据集上的识别准确率.实验结果表明, 所有构造方法的性能都优于原始RS-CNN算法的结果(92.9%).这有效的证明了, 权重学习过程中考虑邻域整体分布的优越性.此外, 还可以看到, WL-Net中的聚合函数选择平均池要优于最大池, 本文在WL-Net中使用平均池作为聚合函数, 而对加权后的特征使用最大池.

表3 聚合函数A的选取对网络性能的影响

4 结 语

本文提出了一种在三维点云上直接进行卷积运算的新方法—邻域参与的形状感知卷积.该方法以RS-CNN框架为基础, 先利用MLP学习每点的权重, 然后利用权重对输入特征进行加权, 再通过聚合函数和MLP提取邻域的整体特征描述.通过在权重的学习过程中引入邻域的整体分布, 有效的提高了算法的准确度, 在多个具有挑战性的基准数据集和任务上都取得了良好的性能.

通过估计连续的核函数, 然后通过核函数直接预测散乱无序采样点上的卷积权重, 实现局部邻域的特征提取, 是目前一种流行的卷积定义方式.但是, 现有的权重学习方法, 都是从点到点对应学习出权重, 无法体现从邻域到每个点的权重学习过程.如何将邻域支持的权重学习的思想应用到更多的前沿算法中, 如:PointConv[13]、SPLAT-Net[10]、GDCNN[12], 将是未来的一个重要工作.

猜你喜欢

邻域形状卷积
挖藕 假如悲伤有形状……
基于3D-Winograd的快速卷积算法设计及FPGA实现
稀疏图平方图的染色数上界
从滤波器理解卷积
你的形状
基于邻域竞赛的多目标优化算法
基于傅里叶域卷积表示的目标跟踪算法
火眼金睛
关于-型邻域空间
一种基于卷积神经网络的性别识别方法