陶志勇,李 衡*,豆淼森,林 森
1 辽宁工程技术大学电子与信息工程学院,辽宁 葫芦岛 125100;
2 沈阳理工大学自动化与电气工程学院,辽宁 沈阳 110159
随着激光雷达等3D 扫描技术的快速发展[1-2],点云的获取变得容易,近年来,点云分析已经成为3D视觉任务的热门话题,在自动驾驶[3-4]、医学影像[5]、机器人[6]、三维重建[7]等领域得到了广泛应用。尽管深度学习在点云处理方面取得了不错的成果,但是由于点云无序且不规则的特性,有效处理点云的数据仍然具有挑战性。
将神经网络适用于点云数据并非易事。早期的点云处理主要分为基于体素的方法和基于多视图的方法。前者将点云转换为体素,通过规则的3D 网格结构表征点云。如:Maturana 等人[8]提出了VoxNet,通过体素化点云以实现3D 形状的识别任务;Riegler 等人[9]提出了OctNet,对八叉树结构进行有效编码,并对每个体素的特征向量进行简单的算法索引;文献[10]针对传统体素网格降采样存在采样点不均匀的问题,提出了一种新的体素网格降采样方式,提高了计算效率。但随着分辨率的增加,这类方法的计算量和内存占用量会以立方形式增长。基于多视图的方法是将点云从不同角度投影至多个平面,使其适用于2D 卷积。如:Su 等人[11]提出了MVCNN,将多视图特征最大池化为一个全局描述符,但是最大池化操作只保留了特定视图中的最大元素,不可避免地导致信息缺失。为了不引入中间表示(体素和多视图)来直接处理点云数据,基于点的方法得到了发展。Qi 等人[12]提出的PointNet 是该类方法的先驱,通过几个多层感知机(MLP)独立地学习逐点特征,克服了点云的无序性,但同时却忽略了点对之间的局部关系。为此,Qi 等人[13]扩展了PointNet,提出新的网络PointNet++,通过在不同的层次上使用PointNet 提取特征,但是本质上还是在独立地处理局部区域的每一个点,点对之间的几何联系仍然被忽略。点云作为一种不规则的非欧式数据,类图结构能对其进行有效地表征。Simonovsky 等人[14]是点云图论的先驱,将每一个点视为图的顶点,通过有向边将顶点和其邻域点进行连接,然后基于滤波器和MLP 提出了边缘条件卷积(edge-conditioned convolution,ECC)。Wang 等人[15]在DGCNN 中提出一种边缘卷积算子(edge convolution,EdgeConv),通过在特征空间中构造局部图结构表示点云的局部联系,并在网络的每一层之后动态更新图特征。Zhang 等人[16]基于DGCNN 提出了LDGCNN,删去DGCNN 中的变换网络并将不同层次的特征进行连接,以提高网络的性能。文献[17]通过引入位置关系改进DGCNN,强化局部特征的提取能力。此外,一些方法通过引入注意力机制来提升网络性能。如:Sun 等人[18]提出了基于双向注意力机制的残差图卷积网络,以更好地区分任务相关特征;Gou 等人[19]基于transformer 提出了名为PCT 的网络执行点云分析任务;Liu 等人[20]将SENet 和注意力机制引入PointNet++,优化了网络对于重要特征的学习能力。
为了能更有效地提取点云局部特征,提高网络分类与分割性能,提出一种融合多分辨率特征的图卷积网络。首先考虑到点云的无序不规则特性,通过k-最近邻算法(k-nearest neighbor,kNN)在特征空间中构造局部图结构,通过图结构表征点云局部区域中点对之间的几何联系。其次,通过最远点采样算法(farthest point sampling,FPS)对点云进行多级下采样操作,以获得不同分辨率的点云,考虑其局部区域的几何关系,采用kNN 算法进行分组;为克服点云的稀疏性质,引入几何映射模块将分组点集正态化。最后,为了实现良好的分类与分割性能,提出一种特征融合方式,用点云多分辨率特征对局部图特征进行补偿。通过在ModelNet40[21]、ScanObjectNN[22]和ShapeNet Part[23]数据集上对网络的分类、分割性能进行评估,验证本文方法的有效性。所提出的多分辨率图卷积模块(multi-resolution graph convolution module,M-R GCM)算法流程如图1 所示。
图1 多分辨率图卷积模块算法流程图Fig.1 Multi-resolution graph convolution module algorithm flow chart
网络框架如图2 所示,输入是点数为N,维度为3 的点云数据。受启发于DGCNN 模型[15],并以其为基线网络,去除变换网络,通过融合多分辨率特征对EdgeConv 进行改进。分类网络用四个多分辨率图卷积模块学习点云上下文局部信息,为克服点云的无序特性,从而引入池化策略(pooling strategy),其中最大池化(max pooling)和平均池化(avg pooling)分别保留特征图中的最显著特征以及整体特征,然后对其进行拼接后获得全局特征作为分类器的输入。最后由全连接层(fully connected layer)作为分类器输出分类得分C;分割网络主干包含三个多分辨率图卷积模块,池化策略选择max pooling,最终输出P个语义标签作为每个点的得分。
图2 网络框架。(a)分类网络;(b)分割网络Fig.2 Network framework.(a) Classification network;(b) Segmentation network
与基于图方法的DGCNN[15]类似,将类图结构应用于点云特征学习可以更为有效地处理点云这类非结构化数据,其核心在于选取点云表面的点作为节点,并与邻域点之间建立边,从而构建局部点对之间的几何联系。图卷积即为对该图结构进行卷积操作,具体过程如图3 所示。
图3 图卷积操作过程Fig.3 The operation procedure of graph convolution
首先,定义输入的点云为包含n个点的点集P={p1,p2,...,pi}i=1,2,...,n⊆RF,其中R为实数集合,F为点云的维度,一般取F=3,即每一个点pi用其空间坐标(xi,yi,zi)表示,此外还可以包括RGB 信息、法线等额外的维度信息。由于在神经网络中,下一层的输入一般为上一层的输出,因此一般而言F表示给定的特征维度。
然后,在点云的表面构建有向图G,表示为
其中:V={p1,p2,...,pn}和E⊆V×V分别为有向图的顶点和边。在图卷积模块中,采用kNN 算法对每一个顶点pi进行检索,找到其周围的k个邻域点构成邻域点集,表示为
其中,pi,j为节点pi的第j个邻域点,通过计算pi与{pi,j}j=1,2,...,k之间的欧几里得距离作为图G的边,表示为
由式(3)计算边特征为
其中,hΘ是一个包含一组可学习参数Θ 的非线性函数,可实现特征维度RF×RF→RF。此外,由于对h的选择方式不同,边特征的计算方式也不同,其余计算方式如
式(5)为PointNet[12]的方式,只考虑每一个点,忽视点云的局部结构,式(6)为只考虑了点云的局部关系却忽视全局结构。因此本文采用式(4)所示的方法,由pi和 {pi-pi,j}同时兼顾全局和局部结构。
最后,通过聚合函数对特征 {ei}i=1,2,...,n进行操作,将更新后的图特征fG表示为
其中:□ 表示Max pooling 策略,hΘ为MLP 操作,表示为hΘ(pi,ei,j)=LeakyReLU(θi·pi+φi·ei,j),可学习参数Θ=(θ1,...,θn,φ1,...,φn)。
考虑到图卷积网络的性能受限于预定义邻域的大小(kNN 中k的取值,实验部分将进行验证),本文考虑用不同分辨率的点云特征对其进行融合补偿,从而提高网络的性能。
在图像处理任务中,神经网络层数的增加能更为有效地提取复杂特征,但往往会以牺牲空间分辨率的方式来换取特征通道数的增加。本文从弥补空间分辨率的角度,设计多分辨率分支对基线网络DGCNN 的图卷积策略进行改进,从而提高模型性能。多分辨率点云特征的学习过程如图4 所示。
图4 多分辨率点云特征学习过程Fig.4 The process of learning multi-resolution point cloud features
该分支对点云的处理分为三个阶段,第一个阶段为基于FPS 算法的下采样阶段(down sampling)。当输入为包含n个点的点云X⊆Rd,其中d为点云的特征维度,每一个点表示为 {xi}i=1,2,...,n∈X,选择其中的一个点x1作为起始点得到第一个采样点集合,表示为S={x1};然后计算所有点与x1的距离,用数组L=(l1,l2,li,...)进行储存,选择其中距离最远的点x1,更新采样点集合为S={x1,x2};再计算所有点与x1的距离,若其中的一个点xi与其的距离小于li,则将li进行更新,数组L始终记录最小距离;选择其中距离最远的点x3更新采样点集合为S={x1,x2,x3},重复采样n′次后,得到的采样点集表示为
上述操作在改变点云分辨率的同时,新的采样点集S仍然能够较好地表征点云的表面形状。第二个阶段为局部分组阶段(local grouping),在对不同分辨率点云进行处理时,考虑其局部几何关系,采用kNN算法对式(8)的点集进行局部组划分,每一个局部组点集表示为
考虑点云的稀疏特性,为提高网络的性能,在第三个阶段(normalization)中,对每一个局部组Si正态化,具体操作如下
其中:mean 为求均值操作,bias表示局部组中元素的方差,k为局部组中邻域点数量。因此,多分辨率特征表示为
式中:a∈Rd和b∈Rd是两个可学习参数,⊙表示Hadamard 乘积。
并且,多分辨率分支作为并行分支而不是串行分支连接进网络。在每个多分辨率图卷积模块输出特征之前,特征融合模块基于图卷积分支和多分辨率分支的特征,通过网络计算获得一个自适应权重系数对两路特征进行加权输出,并作为下一个多分辨率图卷积模块的输入,在之后的每一层网络中动态更新,直至进入全连接层进行分类。在整个过程两个分支不断进行特征交互,以此实现特征图更新。
为了使多分辨率特征更有效地对图特征进行补偿,提出了一种特征融合模块,相比较于线性特征聚合方式(如加法运算),该融合模块更具特征的自适应性。特征融合原理如图5 所示。
图5 特征融合Fig.5 The operation of feature fusion
在每一个多分辨率图卷积模块中,通过两个分支的网络分别学习到图特征fG与多分辨率特征fMR,为更有效地集成特征,首先将两路特征进行逐元素求和,以紧凑地表示点云特征f:
接着基于该特征矩阵生成一个权重向量,表示为
式中:σ为Sigmoid 激活函数,Φ为MLP 操作。最终由该权重向量对两个分支的特征进行加权输出,特征图表示为
其中:1为全元素为1 的向量,⊙表示Hadamard乘积。
实验参数设置如表1 所示。为验证本文方法的有效性,在ModelNet40[21]、ScanObjectNN[22]数据集上进行分类实验,在ShapeNet Part[23]数据集上进行部分分割实验。实验参数设置如表1 所示,所有实验均基于Linux Ubuntu 系统,训练所用GPU 为GeForceRTX 3090,学习框架为Python3.7+Pytorch-1.7.1。
表1 实验参数设置Table 1 Experimental parameter setting
3.2.1 数据集描述
ModelNet40 数据集包含40 个类别的12311 个CAD 模型,其中9843 个用于训练,2468 个用于测试。在训练和测试期间没有执行任何数据预处理操作,保证实验的有效性。
3.2.2 分类结果与分析
在ModelNet40 数据集上的分类结果如表2 所示,评价指标为总体准确率(overall accuracy,OA)和类平均准确率(mean class accuracy,mAcc)。
表2 不同方法在ModelNet40 数据集上的分类精度对比Table 2 Comparison of classification accuracy with different methods on ModelNet40 dataset
其中:TP表示正确预测正样本的数目,FN为错误预测正样本的数目,而TPi和FNi分别表示每一个类别中正样本被预测正确和错误的样本数。
从表2 中可以看出,对比基于体素的经典方法VoxNet 和基于多视图的MVCNN,本文的方法在OA 这个指标上提升了7.5%和2.7%;与PointNet 和PointNet++相比也有4.2%和1.5%的提升,并和基于图的网络DGCNN、LDGCNN、DGANet 相比分别提升了0.5%、0.5%和1.1%。与新颖的方法如PCT、AFM-Net 以及文献[31]相比,也有一定的精度提升。实验结果表明,改进后的多分辨率图卷积网络在分类任务中具有一定的优越性。
3.3.1 数据集描述
ScanObjectNN 数据集是一个以真实世界对象为模型的数据集,包含15 个类别的15000 个对象,其中有2902 个唯一对象实例。由于模型中存在复杂背景、噪声以及遮挡,该数据集对于现有点云分类任务更具有挑战性。
3.3.2 分类结果与分析
基于ScanObjectNN 数据集的分类结果如表3 所示,所有模型的输入均为坐标形式,本文模型的OA和mAcc 分别达到了83.3%、81.7%。从表3 中可以看出,本文的方法在评估指标上比PointNet 提高了15.1%(OA)、18.3%(mAcc);与基线网络DGCNN 相比提高了5.2%(OA)、8.1%(mAcc);与新颖的方法GBNet 相比提高2.8%(OA)、3.9%(mAcc)。实验结果表明,当数据集处于噪声干扰的情况下,本文提出的方法通过弥补一定的空间分辨率,能够更好地识别形状特征,比起其它方法具有更强的形状分类能力。
表3 不同方法在ScanObjectNN 数据集上的分类精度对比Table 3 Comparison of classification accuracy with different methods on ScanObjectNN dataset
3D 点云的部分分割是一项具有挑战性的细粒度识别任务。简单而言,分割任务需要为每个点分配类别标签,如机翼、机身等。为验证模型的分割性能,在ShapeNet Part 数据集上进行部分分割实验。
3.4.1 数据集描述
ShapeNet Part 数据集由16 个类别的16881 个模型组成,共标记了50 个零件标签,其中13998 个模型用于训练,2874 个用于测试,每一个模型分为2到6 个不同的部分进行标注。训练时从每个形状中采样2048 个点。
3.4.2 分割结果与分析
以ShapeNet Part 为基准数据集,部分分割的结果如表4 所示,分割实验的评价指标为平均交并比(mean intersection over union,mIoU)。
表4 ShapeNet Part 数据集上的部分分割结果Table 4 Part segmentation results on the ShapeNet Part dataset
其中:TP表示对正样本预测正确的数目,FP为对负样本预测错误的数目,FN为对正样本预测正确的数目。本文模型在部分分割任务中,达到了85.4%的精度。对比经典算法PointNet、PointNet++分别提高了1.6%和0.2%。并且与基于图结构的算法DGCNN、LDGCNN 和DGANet 相比,多分辨率图卷积网络的精度分别提高了0.1%、0.2%和0.1%。在该实验中,有10 个类别的物体分割精度较于基线网络DGCNN均有所改善(“↑”代表有改善的物体类别),实验结果表明,多分辨率图卷积网络在分割任务中也实现了一定的优化。
为了能更直观地展示本文模型的分割效果,将16 个类别的物体进行分割结果可视化如图6 所示。同时,将DGCNN 作为基线网络,展示了经本文方法改进后部分分割的细节对比如图7 所示,红色方框内效果差异。
图6 部分分割可视化结果。(a)真实值;(b)本文的分割结果Fig.6 The results of the part segmentation visualization.(a) Groud truth;(b) Ours
图7 分割细节对比。(a)真实值;(b)本文方法;(c)基线Fig.7 Comparison of segmentation details.(a) Groud truth;(b) Ours;(c) Baseline
通过上述定量、定性分析比较,融合多分辨率特征的图卷积网络能正确分割大部分点,并且对比基线网络,本文方法在目标边界处的分割能力也有所提升,相较于改进之前的网络有一定的优越性。
为验证网络的有效性和鲁棒性,以ModelNet40为基准数据集,对模型各模块及超参数的选择进行分析验证。
回顾2.2 小节,局部图结构基于kNN 算法构造,该预定义邻域的大小影响模型的性能,通过改变k的取值进行实验以寻找合适的邻域大小。实验结果如表5 所示。
表5 不同k 值对模型性能的影响Table 5 Effect of different k values on model performance
实验表明,当k值过小或过大都会导致网络性能下降,取值为20 的时候性能最佳。并且由表5 可以看出,当引入多分辨率分支对图特征进行补偿后,网络的性能都得到了提升,证明了多分辨率分支的有效性。
在本节中设置四组实验以验证多分辨率图卷积模块各部分对网络性能的影响,实验结果如表6 所示。
表6 多分辨率图卷积模块消融实验Table 6 Ablation experiments of multi-resolution GCN module
实验1:基线网络,仅使用图卷积分支进行特征学习;
实验2:仅使用多分辨率分支进行特征学习;
实验3:使用两个分支进行特征学习,但特征集成方式采用线性组合方式;
实验4:在实验3 的基础上将特征集成方式替换为所提出的特征融合模块。
实验结果表明,同时使用两个分支的网络性能均优于使用单一分支,并且当采用所提出的特征融合模块来聚合两个分支的特征后,网络的精度进一步获得提升。
在本文方法中,点云的空间分辨率影响网络的性能,每一个多分辨率图卷积模块中都存在图特征与不同分辨率特征的交互,表7 展示了不同分辨率的点云对网络性能的影响。
表7 不同分辨率点云对网络性能的影响Table 7 The effect of different resolution point cloud on network performance
实验结果表明,当四个多分辨率图卷积模块中不同分辨率点云的点数为[896,768,640,512]时,模型的性能达到最优。
现实生产应用中,通过扫描设备所获取的点云数据往往存在噪声干扰,为测试网络对于噪声的鲁棒性,对初始点云添加不同水平的随机噪声模拟实际生产应用的情况,实验结果如图8 所示。
图8 噪声鲁棒性测试Fig.8 Noise robustness testing
图8 展示了在不同水平噪声干扰下本文方法与基线网络 DGCNN 以及基于图方法的3D-GCN、AdaptConv[35]的精度对比,可以看出在噪声干扰下,本文方法的性能总体上优于DGCNN,与其它两种模型对比也有一定优势。表8 展示了两种方法在噪声干扰下精度下降的程度,下降程度的计算公式如式(19):
结合图表分析,多分辨率图卷积网络的噪声鲁棒性对比基线网络得到了提高,在抗噪能力上具有一定的优越性。
在图2 的分类网络框架中,由四个局部特征提取模块(多分辨率图卷积模块)组成,在本节实验中,将使用不同数量的模块以寻找最优的模型框架,实验结果如表9 所示。
在上述实验中,使用三个模块时的点云分辨率为[896,768,640],四个模块为[896,768,640,512],五个模块为[896,768,640,512,384],分析实验结果可知特征提取模块的数量越多,网络的性能并不会一直上升,反而导致模块复杂度与所需的内存占用增加。因此,为兼顾精度与效率,选择四个特征提取模块最为合适。
本文在图卷积网络DGCNN 的基础上提出了一种融合多分辨率特征的图卷积模块,通过引入不同分辨率的点云特征对传统的图结构信息进行补偿,克服传统图结构信息受限于预定义邻域规模的问题,用空间分辨率丰富了点云的局部特征。并且相较于一般的特征线性聚合方式,所提出的特征聚合模块更具有自适应性,能更加有效地进行点云特征学习。通过在ModelNet40、ScanObjectNN 以及ShapeNet Part 三个具有挑战性的基准数据集上进行分类分割实验,证明融合多分辨率特征的图卷积网络性能相比于其它模型均有一定提升。此外,大量消融实验也验证了多分辨率图卷积网络在点云分析任务中的有效性和鲁棒性。
虽然,融合多分辨率特征的图卷积网络在基准数据集上取得了令人满意的结果,但在实际应用中,样本的分布并不总是均匀的,并且该网络在分割实验中,样本边界的识别能力也有所欠缺,这些都是本文网络将来的优化方向。今后的工作将聚焦于捕获点云细粒度特征的研究前沿,进一步提高网络在复杂场景下的识别能力,并与实际生产应用相结合。