李文举, 姬倩倩, 沙利业, 储王慧, 崔 柳
(1.上海应用技术大学 计算机科学与信息工程学院,上海 201418;2.上海普利森配料系统有限公司,上海 201108)
随着三维采集技术的飞速发展,点云分类与分割任务作为三维场景理解中重要的基础性问题,被广泛地应用在自动驾驶、机器人导航、医学成像、室内场景分析等实际场景中[1-3]。
由于点云具有无序性、稀疏性及非结构化特性,使用传统的神经网络模型处理点云时需要将不规则的点云形式转换为高度规则的输入格式,例如使用投影、体素格划分等方法,这种间接的转换过程不仅会造成数据的几何信息丢失,还会增加额外的计算量,因此,后续的模型主要使用直接基于点云的方法[4-5]。
PointNet[6]网络直接基于原始点云进行特征处理,该网络通过多层感知机(multi-layer perceptron,MLP)学习单个点的特征并用对称函数编码全局信息,解决了点云的无序性与置换不变性等问题,缺点在于只捕捉到单个点与全局点的特征信息,忽略了局部特征信息。针对其缺点改进的PointNet++[7]模型利用最远点采样和球查询的方法构建局部邻域以提取局部特征,在一定程度上缓解了上述问题,但忽略了点云邻域关系和空间特征信息,不利于获取语义信息。
为了更有效地分析点云这类不规则数据,越来越多的研究开始使用图神经网络(graph neural network, GNN)将图学习应用到点云数据上。在图结构中,每个节点都含有丰富的特征信息,边代表节点之间的依赖关系。基于图神经网络的点云处理方法可以将点云中的每个点及其邻接点构建成图结构,进而直接对点云进行卷积,可以充分利用点云的结构特点,有效减少空间几何信息的损失。DGCNN[8]将图神经网络应用到点云处理的过程中,使用K近邻(K-NN)算法构建每个点的局部邻域,并使用边缘卷积算子替换了PointNet网络中叠加的多层感知机,实现了在保持置换不变性的基础上捕捉局部几何信息,但由于忽略了点云的几何形状信息导致丢失了部分有效特征。DeepGCNs[9]集成残差连接、密集连接和空洞卷积构建一个深层次的GCN(graph convolution network)模型。该网络在不损失分辨率的情况下捕获到了较大的感受野,实现了较高性能的点云语义分割,但由于网络层次较深,会造成过多的内存开销。SNEDA[10]模型基于图注意力方法学习符号网络节点嵌入,有效捕获了不同邻居节点对中心节点的贡献和影响。GACNet[11]根据不同相邻点和特征通道的空间位置以及特征差异为每个邻接点分配注意力权值,充分学习和聚合了局部结构信息,但忽略了远程点信息和空间几何信息。GAPointNet[12]将自注意力机制与GCN结合,提供了一种基于多头注意力机制的点云分割的网络,但其对点云的泛化能力较差。PointMLP[13]是一种仅使用残差MLP模块进行点云分析的模型,避免了由复杂的局部特征提取引起的高额计算开销,但分割精度有待提升。
针对上述问题,本文提出了一种基于图游走与图注意力的点云分类与分割网络。首先,通过构造点云同构图,进而在图上进行有导向的游走,聚集出一系列固定数量和长度的游走曲线,以此捕获远距离的点云特征和额外的几何信息。其次,结合图注意力算法自适应地学习图拓扑结构来聚合邻域特征,从而实现不同节点间有区分度的特征表示。最后,对初始点云提取距离特征作为初始残差进行残差连接,利用连接后的特征进行后续的分类与分割任务。本文的主要贡献如下。
(1)通过引入图游走技术,解决了特征提取过程中3D点云的几何特征和长距离特征匮乏的问题;对游走得到的节点使用图注意力机制,增强了对重要节点的特征提取能力,实现了更高效地聚合邻域信息来更新节点特征。
(2)设计了一种嵌入初始残差的三维点云分类与分割网络,通过在初始点云中提取距离特征计算初始残差,解决了网络图卷积层数过多时出现的过平滑的问题。
(3)在合成数据集和真实世界数据集上对点云分类、分割,进行了多次实验,结果验证了所提网络模型的有效性。
基于图游走和图注意力的点云分类与分割网络模型主要由多个GWA(graph walk and attention)层构成,GWA层由最远点下采样模块(farthest point sampling, FPS)、初始残差模块、图游走模块和图注意力模块组成。其中,最远点下采样模块获取非局部特征和缩放图模型;初始残差模块主要用于获取特征表达更丰富的初始残差以缓解网络的过平滑问题;图游走模块主要用于提取点的远距离特征和几何形状特征来得到丰富的上下文信息;图注意力模块主要用来获取节点间的局部邻域特征;最后通过最大池化层和平均池化层来获取点云的全局特征,并使用全连接层获取用于预测的特征向量。
1.1 初始残差模块
当图神经网络堆叠多层时,网络会出现过平滑问题使得性能急剧下降。过平滑问题是指经过多次图卷积操作后节点的特征表示变得无法区分的现象。因此,大多数图神经网络只有2~3层的浅层架构,这限制了它们的表达能力和对深层邻域的利用。为了解决这一问题,受GCNII[14]的启发,在网络的特征融合过程中嵌入了初始残差模块,如图1所示。
图1 初始残差模块
初始残差的连接可以确保在网络中堆叠了多个图卷积层的情况下,每个节点的最终表示仍保留输入层的部分特征信息,可缓解节点特征趋于一致的过平滑问题。
计算初始残差的步骤如下。
步骤1 将原始点云P中的每个点pi看作中心节点,利用K-NN算法寻找离中心节点最近的K个邻居节点pj来构建局部邻域。
步骤2 计算邻居节点与中心节点的距离特征,融合邻居节点、中心节点的空间信息及距离信息得到初始残差p,数学描述为
(1)
步骤3 将初始残差p和当前特征f融合以更好地聚集上下文信息,计算公式为
f′=max(MLP(p⊕f))。
(2)
式中:⊕表示向量的拼接操作;MLP表示多层感知机。
1.2 图游走模块
由于离散的点云对象缺乏足够的三维几何图形的形状描述符,受CurveNet[15]的启发,引入一种图游走方法来捕获点云中的几何信息和远距离特征,即对原始点云建立同构图,通过在图上进行有导向的游走采样出不同的游走曲线,然后对曲线进行聚合以增强其点云中逐个点的特征。
1.2.1 图构建
1.2.2 分组
(1)选择起始点。采用TOP-K选择策略,通过MLP学习每个点的特征,并使用sigmoid门控得到每个点的得分,得分最高的M个点作为游走的起始点S={s1,s2,…,sM},由此引出M条游走曲线。
(2)构建游走策略。在得到起始点集后,对每个节点si使用式(3)中的可学习的π(·)策略找到下一个要游走的点si+1。即对M个起始点计算K近邻,并使用MLP学习K个邻接点的特征分布,为了便于梯度回传,使用gumbel-softmax进行归一化并计算出每个点的概率得分,选出概率最大的点作为下一个要游走的点,数学表达如式(4)所示。对预定义的π(·),通过反复执行等式(3)L次,对曲线进行分组。游走曲线如图2所示。
图2 游走曲线示意图
si+1=π(si);
(3)
(4)
1.2.3 聚合
图3 游走特征聚合模块
图游走机制的伪代码如下。
输入:节点特征F,节点集合V;
输出:游走后各节点更新后的特征向量f。
① for eachVi∈V:
x= torch.sigmoid(self.MLP(Vi));
start= torch.topk(x,curve_num);
end for
② 由start找到游走起始点S={s1,s2,…,sM};
③sj= KNN(s,k); /*找到s节点的K近邻*/
⑥ 与N(s)相乘后求和加得到下一个游走点si+1;
⑦curves.append(si);/*得到曲线特征*/
⑧ for eachxi∈curves:
f= self.attpool(xi);
end for
⑩ 结束。
1.3 图注意力模块
由于点云属于非规则化数据,之前大多数方法往往使用固定的核函数来更新节点的特征信息,忽略了属于同一对象的点之间的结构联系和不同邻居节点对中心节点的重要程度不同等问题。图注意力可以动态学习不同节点的特征,选择性地关注其中最相关的部分,为邻居节点分配不同的注意力权重,动态适应对象的结构。
该模块实现了一个可学习的函数:RD→RD′,即假设给定的输入是D维特征,通过自适应地聚合节点的K邻域特征将特征映射到D′维空间,能够实现比以往的图卷积更准确地反映局部几何特征,具体每个相邻顶点的注意力权重计算方法为
eij=a(Mg(Δp),Δf)。
(5)
式中:a代表共享注意力机制;Δp=pj-pi表示原始点云中相邻顶点之间的空间关系;Mg为多层感知机MLP,目的是将输入空间的空间位置关系映射到特征空间;Δf=fj-fi表示特征空间的点云特征值差异,以促进注意力更多分配给相似的邻居。
为了使注意力权重系数适应不同节点和空间尺度上大小不一的邻居,使用softmax函数对其进行归一化,如式(6)所示。
(6)
将归一化后的注意力系数和邻接点特征相乘得到加权邻居特征并求和,得到更新后的节点特征,计算方法为
(7)
1.4 点云分类模型设计
点云分类任务的侧重点在于捕捉点云的整体抽象特征,堆叠多个GWA模块,这有助于在捕获点云全局特征的同时保留更多的局部细节特征。GWA模块的作用是将维度为n×d的输入特征转换为n×dout的输出特征,其详细架构如图4所示。每一层GWA使用最远点采样方法对上一层的输出特征进行均匀下采样。首先,在GWA模块的首尾处使用多层感知机捕获点云的上下文信息;其次,使用图游走方法聚合远距离特征及点云的几何形状信息;最后,利用K-NN算法搜索每个节点的K邻域并结合图注意力机制聚合邻域特征来更新点特征。如图5所示,分类网络的最后一个GWA层的输出特征维度为512,使用MLP将其升维到1 024,进行最大池化和平均池化得到全局特征,并将其输入到一个3层的全连接网络里得到最终的分类结果。其中,c表示点云分类的数据集中物体的类别数。
图4 GWA模块
图5 点云分类网络模型结构
1.5 点云分割模型设计
本文提出的点云分割模型如图6所示,由多个GWA层和FP层(feature propagation)构成,网络采用Encoder-Decoder架构模式。首先,对点云下采样并进行特征编码,压缩原始输入点云的空间分辨率并逐步提取更高级的抽象语义特征;其次,通过特征传播和上采样恢复原始输入分辨率以进行像素级的预测。其中,编码器部分与分类网络相似,使用多个GWA层提取点云特征并降低点云的分辨率;解码器部分中的上采样模块使用线性插值的方法逐层恢复特征的分辨率,并利用注意力模块抑制无关特征,关注重要特征。
图6 点云分割网络模型结构
2.1 实验环境及数据集
本文在ModelNet40数据集[16]和ScanObjectNN数据集[17]上进行点云分类实验,在ShapeNetPart数据集[18]上进行点云部件分割实验,在Toronto-3D数据集[19]上进行点云语义分割实验,以此验证所提出方法的有效性。实验在如下环境下进行:显卡型号NVIDIA RTX2080Ti,Pytorch版本1.10.0,python版本3.8,CUDA版本11.3。
2.1.1 点云分类数据集
ModelNet40是一个含有40个类别的12 311个网格CAD模型的数据集,其中9 843个模型用于训练,2 468个模型用于测试。对于每个模型,按照与PointNet中相同的实验设置,从网格面上均匀采样1 024个点作为网络的输入,并使用随机缩放和扰动来进行数据增强。batchsize设置为48,其中,32个用于训练,16个用于测试,epoch为300,使用SGD优化器优化模型,动量系数设置为0.9。初始学习率设置为0.1,并使用余弦退火衰减策略来动态调整学习率。
ModelNet40数据集虽然作为点云分析的规范基准,但在训练过程中有着极大的不稳定性和随机性,故本文还在ScanObjectNN数据集上进行实验,该数据集包含了背景、噪声和遮挡的干扰,故在该基准上测试可以得到一个更稳健且公平的实验结果。该数据集包含15 000个对象,分为15个类别和2 902个独特的实例对象。除epoch数量为200外,其他实验设置与ModelNet40上的设置相同。
2.1.2 点云部件分割数据集
ShapeNetPart数据集是一个用于细粒度形状识别的点云部件分割数据集,包含16 881个预先对齐的点云形状,可以分为16个形状类和总共50个分割类。形状类包含飞机、包、车、椅子、耳机等,每个形状类被划分为5个以内的分割类,如飞机形状的点云会被划分为机身、机翼、尾翼、发动机这4个零件分割类。在训练和测试时遵循和PointNet一样的分割方案,将12 137个模型用作训练样本,其余的用作验证和测试,从每个模型中统一采样2 048个点作为网络的输入。实验设置与ScanObjectNN数据集上的参数设置一致。
2.1.3 点云语义分割数据集
Toronto-3D数据集是由车载MLS系统采集的大型城市室外点云数据集,由大约7.83×107个点组成,该数据集被手动标记为8个类别,包括道路、路标、树木、建筑、电线、电线杆、汽车和围栏。参数设置与部件分割时的设置一致。
2.2 实验结果与分析
2.2.1 分类结果分析
本文在ModelNet40数据集上的测试结果如表1所示。由表1可以看出,分类的总体精度OA达到了94.2%,平均分类精度mAcc达到了91.6%,与基准网络DGCNN相比,本文算法的GWA层融合了远距离特征和几何关系特征,得到了更为丰富的语义信息,使得总体分类精度提高了1.3百分点,平均分类精度提高了1.4百分点。相比于近期提出的SimpleView和Diffconv网络,本文网络的分类性能也具有显著优势。
表1 不同模型在ModelNet40数据集上的实验结果
本文在真实数据集ScanObjectNN上的实验结果如表2所示,将数据划分为3组进行测试,分别为有背景干扰(OBJ_BG)、无背景干扰(OBJ_ONLY)及带有数据扰动(T50RS)的对象。其中,T50RS代表边界框被平移(translate)、旋转(rotate)、缩放(scale)了50%。采用基于DGCNN架构的基准模型,共有4个GWA卷积块,输出维度为64、128、256、512,邻居个数为24,epoch为250。
表2 不同模型在ScanObjectNN数据集上的实验结果
由表2可以看出,与现有方法相比,本文在无背景干扰、有背景干扰及数据扰动的情况下的分类效果都优于其他网络,总体分类精度分别达到了86.8%、87.7%、83.7%,在数据扰动的情况下,较基准网络DGCNN提升了5.6百分点,取得了良好的分类效果。
2.2.2 部件分割结果分析
在ShapeNetPart数据集上进行点云部件分割实验,本文实验结果和近年来其他模型的实验结果如表3所示。由表3中数据可以计算出本文实验、基准模型DGCNN及经典模型PointNet++的平均交并比mIoU分别为86.4%、85.2%和85.1%,相比之下,本文方法的mIoU较DGCNN和PointNet++分别提高了1.2百分点、1.3百分点。如表3所示,本文模型在飞机、车和吉他等8个类别上的分割性能最好,可见本文方法对细粒度较高的语义类别具有更好的分割性能,充分验证了本文模型在点云部件分割任务中具有较强的竞争力。
表3 不同模型在ShapeNetPart数据集上的实验结果
为了更好地展示本文方法在点云部件分割上的效果,如图7所示,对物体部件分割进行可视化,可以看出本文网络能够非常清晰、准确地分割出物体的各个部件。将本文网络与基准网络DGCNN及真实标签值(ground truth,GT)进行可视化对比分析,如图8所示,从左到右分别是对同一个包、帽子、刀和杯子的部件分割效果图,标记的黑框处代表分割时存在点的语义标签分割混乱及错误的情况。可以看出,与基准网络DGCNN相比,本文网络语义标签边界处的分割效果有了大幅度提升,基本接近真实标签的分割效果。
图7 分割效果可视化
图8 分割结果对比图
2.2.3 语义分割结果分析
表4为本文方法在Toronto-3D数据集上与其他经典方法的语义分割定量结果对比。由表4中数据可以计算出本文算法分割的mIoU为82.7%,DGCNN的mIoU为49.6%,较DGCNN提升了33.1百分点。分割效果较基准网络DGCNN有了显著提升,并且在路标、建筑、电线、电线杆、汽车等5个类别上也取得了最好的分割结果。由于道路、围栏和树木的细节信息较少,本文方法对其分割效果没有显著提高,但仍取得了与近年来其他网络相当的分割效果。
表4 不同模型在Toronto-3D数据集上的实验结果
2.3 消融实验
为了进一步说明本文引入的图游走与图注意力模块的有效性,在ModelNet40数据集与ShapeNetPart数据集上进行了消融实验,结果如表5所示。其中,为了避免图卷积层过多导致的网络过平滑现象,所有网络模型均在融入初始残差特征的基础上进行。
表5 不同模块的消融实验
由表5可以看出,以DGCNN网络为基准网络模型添加图游走模块后,即对点云特征补充几何语义特征和长距离特征,使点云分类的平均准确率、总体准确率和分割的平均交并比都得到了不同程度的提升,分别提升了1.2百分点、0.5百分点和0.8百分点;添加图注意力模块后,即仅选择性地强调重要特征信息,使得网络在OA指标上有0.9百分点的提升,在mIoU指标上有0.7百分点的提升;在同时加入图游走模块和图注意力模块后,网络模型的表现更加突出,与基准网络模型相比,其mIoU提升1.2百分点,OA提升1.3百分点,mAcc提升1.4百分点,优于消融实验中的其他各个网络。
由上述模块间的消融实验可知,本文网络对点云数据具有较好的学习能力,对点云几何结构特征和长距离特征与重要点特征都实现了有效补充与增强,对点云分类、分割任务起到了关键作用,有效地提升了网络的性能。
2.4 不同最近邻数对比实验
本文提出的图注意力模块在提取点云局部特征的过程中采用K-NN算法搜集K个近邻点构建局部有向图,近邻点的个数K在一定程度上会影响网络提取到的局部特征。现有的主流网络模型通常将K值设置为16、24、32、40,本文分别在ModelNet40数据集与ShapeNetPart数据集上进行了对比实验,测试了不同K值对模型性能的影响,如表6所示。
表6 不同K值的对比实验
从表6可以看出,网络的分类性能在K为24时表现最为优秀,分割精度在K为32时最高。当K值较小时,构建的邻域范围过小会使模型的感受野有限,导致模型不能全面地学习到点云的几何特征,分类精度与分割精度都偏低;当K值过大时,近邻点过多会使不同邻域内的点特征信息重叠冗余,分类、分割精度均有所下降,因此,选择合适的K值会使模型性能表现更为优异。
2.5 鲁棒性实验
鉴于3D点云数据的收集在现实生活中存在不确定性,如遮挡情况下只能获取部分可见的点云。故本文采用带有场景扰动的ModelNet40-C[26]失真点云数据集,对所提出的点云识别模型进行全面的鲁棒性测试,测试结果如表7所示,其中损坏错误率CER越低代表模型的鲁棒性越好,可以看出本文模型的CER较低,取得了较为稳健的结果,模型鲁棒性较好。
表7 不同模型在ModelNet40-C数据集上的实验结果
为了提高深度学习网络直接对点云数据分类与分割的性能,本文提出了一种基于图游走与图注意力的点云分类与分割网络。该网络模型采用图游走机制来提升对点云的远距离特征和几何结构特征的表达能力,并在特征提取过程中使用图注意力机制,使模型聚焦于重要的特征通道和点云区域,增强了关键点的特征表示。通过在公共数据集上进行点云分类与分割对比实验,取得了较好的精度效果。同时研究了在失真点云数据上的点云分类效果,实验结果表明,网络具有较好的鲁棒性。由于图特征收集使得模型的计算量及参数量有所上升,今后的工作重心将放在如何使模型的参数量减少的同时不损失或提升精度,进而使网络可以更高效地处理更复杂的点云任务。
猜你喜欢 残差注意力分类 基于双向GRU与残差拟合的车辆跟驰建模网络安全与数据管理(2022年3期)2022-05-23让注意力“飞”回来小雪花·成长指南(2022年1期)2022-04-09分类算一算数学小灵通(1-2年级)(2021年4期)2021-06-09基于残差学习的自适应无人机目标跟踪算法北京航空航天大学学报(2020年10期)2020-11-14基于递归残差网络的图像超分辨率重建自动化学报(2019年6期)2019-07-23分类讨论求坐标中学生数理化·七年级数学人教版(2019年4期)2019-05-20数据分析中的分类讨论中学生数理化·七年级数学人教版(2018年6期)2018-06-26教你一招:数的分类初中生世界·七年级(2017年9期)2017-10-13“扬眼”APP:让注意力“变现”传媒评论(2017年3期)2017-06-13A Beautiful Way Of Looking At Things第二课堂(课外活动版)(2016年2期)2016-10-21