任务驱动的轻量Transformer点云下采样方法

2023-11-20 11:00杨亚坤王安红冯泽文
计算机工程与应用 2023年21期
关键词:倍率轻量化特征提取

杨亚坤,王安红,冯泽文

太原科技大学 电子信息工程学院,太原 030024

三维点云能够提供丰富的几何和形状信息,广泛应用于自动驾驶、虚拟/增强现实、机器人等领域[1]。但由于其具有数据量巨大、结构不规则和稀疏性等特点,使得传输与处理变得困难。为节省存储空间、减少传输带宽和通信负载,对点云进行压缩简化是十分必要的,其中点云下采样是一种有效的方法。

点云下采样分为传统方法[2-7]和基于深度学习的方法[8-9]。传统方法通过迭代生成均匀分布的样本从而保留原始点云的几何结构,基于深度学习的方法通过训练网络学习点云特征来选择采样点。然而,这些方法都只关注于减少点云的几何采样损失,没有考虑下游应用任务,这严重降低了后续应用任务的性能。

对于三维点云,不仅希望简化的点云能保持其原始形状,还希望其适用于后续应用任务。这可以通过训练网络同时满足采样损失和任务损失来实现。最早将点云下采样与应用任务结合的是深度学习网络S-Net[10],随后还有改进的SampleNet[11]。由于其面向任务的特点,这些方法在各种应用中优于传统算法和一些深度学习算法。但它们在特征提取时采用简单的PointNet[12]网络,性能有待进一步提高。

为解决以上问题,本文提出一种新的任务驱动的三维点云下采样方法,该方法基于最先进的Transformer[13]框架构建。Transformer作为当前最热门的网络,表现出了强大的特征学习能力,其中的注意力层可以帮助网络选择更加重要的点作为下采样点。由于常规的Transformer会占用过多计算和存储资源,本文将改进其结构以保证网络轻量化。另外,考虑到不同采样率下的点云需要不同参数设置的网络训练得到,既浪费资源,也不符合实际应用需求,因此本文在所提下采样网络的基础上,还设计了多倍率下采样网络,满足一个网络一次训练就可得到若干采样率下的采样点云。

本文的主要贡献点如下:

(1)提出一种基于轻量化Transformer 的任务驱动点云下采样网络。首先在Transformer中使用跳接注意力机制简化网络结构,并提取点云特征,在保证强大学习能力的同时又减少计算和存储资源消耗;之后采用软采样模块模拟实际采样过程,以获得更符合下游应用任务的采样点云。

(2)在轻量化Transformer 下采样网络基础上,提出一种多倍率点云下采样网络,采用渐进式结构,联合多组损失函数,以满足一次训练获得多个采样率下的采样点云。

(3)在点云分类和点云重建两个任务上进行实验,结果表明,本文方法相比同类算法可获得更高的分类精度和更好的重建效果,减少点云数据量的同时也保证了下游应用任务性能。

1 点云下采样相关工作

1.1 传统方法

传统点云下采样方法通常侧重于保留输入点云的几何特征,如Pauly等人[2]提出并分析了聚类、迭代简化和粒子模拟等方法用于采样。Moenning 等人[3]提出了最远点采样(farthest point sampling,FPS)来简化点云,使其均匀且对特征敏感。Katz 等人[4]提出了一种图算法,以减少使用隐藏点移除和目标点遮挡操作的点的数量。Ying 等人[5]提出了泊松圆盘采样(Poisson disk sampling,PDS),PDS生成的采样点排列紧密,比FPS分布更均匀,但计算成本较高。Chen等人[6]提出了一种基于图的滤波器来提取每个点的特征,并选择这些特定点作为采样点。体素化[7]也是一种常用的点云下采样技术,它将点云量化为具有预定分辨率的三维规则体素。与FPS 和PDS 相比,体素化由于其非迭代方法而更加有效。然而,体素化常常受到量化误差的影响,不能产生准确的结果,它需要非常高的分辨率以避免信息丢失。但随着分辨率的提高,计算成本和内存占用将成倍增加。

1.2 基于深度学习的方法

随着深度学习技术的快速发展,基于深度学习的点云下采样也取得了突破。由于传统方法通常不是数据驱动的,因此其效果远不如基于深度学习的方法。Yang等人[8]提出在分类网络的训练过程中使用Gumbel 子集抽样来代替FPS 以提高其准确性。Nezhadary 等人[9]提出使用最大池获得关键点来作为采样点。上述几种下采样方法在训练过程中只是优化了各种采样目标函数,而没有考虑要优化应用任务的目标函数,因此后续任务性能不能得到保证。

最早将下采样与应用任务相结合的方法是基于PointNet架构的数据驱动点云下采样网络S-Net[10],该网络可生成针对任务进行优化的采样点云。在此基础上,Lang 等人[11]提出的SampleNet 通过引入软投影模块来改进S-Net,该模块使用退火计划来鼓励生成的点接近原始点云。Qian 等人[14]通过从矩阵优化的角度探索输入点云的局部几何结构,提出了MOPS-Net,以改善下采样效果。这些方法取得了比传统方法更好的性能,但在特征提取方面效率不高。Wang 等人[15]提出的PST-Net是基于Transformer 的点云下采样网络,但复杂的结构使得资源消耗很大。本文将在此基础上,提出轻量化Transformer的任务驱动下采样网络,以解决上述问题。

2 本文方法

2.1 基于轻量化Transformer 的任务驱动点云下采样网络

本文提出的基于轻量化Transformer 的任务驱动点云下采样网络如图1所示,它由特征提取模块和软采样模块组成。给定一个包含N个点的三维点云P,通过轻量化Transformer 提取点云特征后,使用软采样模块获得下采样点云Q。在损失函数中引入任务损失来促使生成的采样点云能够针对应用任务进行优化。其中下采样率为r,M=N/r为下采样后点云Q的数量,M <N。

图1 基于轻量Transformer的任务驱动点云下采样网络结构Fig.1 Task-driven downsampling network based on light-Transformer for point cloud

2.1.1 特征提取模块

Transformer 模型依靠自注意力机制在视觉任务中表现出强大的学习能力,且对数据具有排列不变性,非常适合结构不规则的点云学习,因此本文将用其进行三维点云的特征提取。在已有多项点云学习工作中,最早将点云与Transformer结合的是PT[16]和PCT[17]网络,它们的分类精度相比PointNet有所提高,但计算成本和网络规模却大大增加,使得Transformer 对于下采样来说资源消耗过大。因此,本文提出一个轻量级Transformer,它以有限的计算成本和存储空间来捕获精确的全局上下文信息。

常规Transformer 包括输入嵌入、位置编码、多头自注意力、残差连接、前馈网络等主要模块。考虑到在多头注意力层中,每一头都进行了计算成本高昂的自注意力计算,而这些信息有高度相关性,存在大量冗余,导致过多不必要的资源消耗,因此本文在多头注意力模块中使用跳接注意力策略(skip-attention)来减少自注意力值的多次重复计算,从而节约计算和存储资源。

本文提出的轻量化Transformer结构如图2所示,由于点云的三维坐标就可以表示其位置信息,因此首先用一个简单的线性层来代替常规Transformer中的输入嵌入模块和位置编码模块,将原始点云P∈RN×3的三维坐标变换为d维特征,得到F′∈RN×d。

图2 基于轻量化Transformer的点云特征提取网络Fig.2 Feature extraction network based on light-Transformer for point cloud

其次,在多头注意力层中,如图2 下方虚线框中所示,只在第一个注意力头中进行自注意力计算。通过线性层获得q∈RN×d1,经过转置获得k∈Rd1×N后,两者相乘得到N×N维的注意力图。之后再与v∈RN×d相乘,即得到自注意力值AR∈RN×d。将其与多头注意力层的初始特征F′∈RN×d做残差连接后送入线性层进行特征学习,得到第一个注意力头的输出特征F1∈RN×d。后面其他注意力头中都将不再进行自注意力值计算,而是使用第一个头中的自注意力值计算结果,与前一个头得到的输出特征做残差后,通过线性层提取得到本头的输出特征Fi∈RN×d,其中i为多头注意力层的头数,图2 中每个虚线框代表一个注意力头。最后将各头得到的输出特征相加,得到总的注意力层特征F″∈RN×di。具体过程可由公式(1)来表示:

其中,softmax 为归一化运算,Liner 为线性层运算,concat为特征融合运算。

前馈网络由线性层、归一化层和ReLU 层组成,将多头注意力层特征F″∈RN×di进一步变换最终得到具有代表性的点云特征F∈RN×d′。

这样的结构设计保留了多头结构和自注意力计算,引入了跳接注意力机制,既满足了Transformer 的强大表现能力,又节省了一定的内存和计算资源。而且注意力机制能够帮助网络选择对于后续应用任务更重要的特征,有利于之后的下采样。

2.1.2 软采样模块

点云的采样过程可用公式(2)来表示:

其中,P∈RN×3为原始点云,S∈RM×N为采样矩阵,Q∈RM×3为下采样点云。理想的采样矩阵只包含0、1两种元素,然而这种离散不可微的矩阵无法在深度神经网络中实现端到端训练。本文提出使用软采样矩阵来逼近理想采样矩阵,在软采样矩阵中每个元素不是0或1,而是介于0和1之间的数字,且越接近0或1越好。

如图3 所示,软采样矩阵通过多层感知机(multilayer perceptron,MLP)和Gumbel-Softmax 学习得到。首先,给定下采样点云数量M,由特征提取模块获得的点云特征F经过MLP 后可得到维度为M×N的相关性矩阵S′。为使S′中的元素成为(0,1)的数,需要进行归一化处理,本文采用Gumbel-Softmax[8]实现,如式(3)所示:

图3 软采样模块结构Fig.3 Structure of soft sampling module

这是带有参数控制的softmax 函数,可以将K维向量z归一化到K维向量σ(zi)中,其中参数t是大于零的数,t越高生成的分布越平滑,t越低生成的分布越接近离散的one-hot 分布。在训练过程中,通过逐渐降低参数t,可使软采样矩阵S逐步逼近理想采样矩阵。

最后,将原始点云P与学习得到的软采样矩阵S相乘可获得下采样点云Q。

这种采样方式更具有可解释性,且利用基于注意力机制的Transformer提取得到的点云特征来学习生成软采样矩阵,使得软采样矩阵能关注于更重要的点。选择关键点作为采样点,可提高下采样和后续任务性能。

2.1.3 损失函数

在任务驱动的下采样网络中,损失函数由任务损失、采样损失和软采样约束损失联合构成,如下所示:

式中,λ为平衡各项的参数。

任务损失Ltask保证下采样点云适合后续任务,以点云分类任务为例:

其中,fT是分类目标函数,fT(Q)是预测的分类标签,y是真值,LT使用交叉熵损失函数。

采样损失Lsampling保证下采样点云与原始点云尽可能的靠近:

其中,N、M分别为原始点云P和下采样点云Q的数量,前者确保采样点尽可能地接近原始点云,后者确保采样点在原始点云中均匀分布。

软采样约束损失Lconstraint保证软采样矩阵更接近理想采样矩阵。

其中,t为控制参数。

以上联合损失函数约束能使生成的下采样点云既保留原始几何形状,又适合后续应用任务。

2.2 多倍率点云下采样网络

上述基于轻量化Transformer 的下采样网络需要设置采样点数M,每次训练可以得到一个确定采样率下的点云子集Q。对于需要多种数据量的不同点云应用,就需要多次训练,这既消耗资源也不方便应用。因此本文提出多倍率点云下采样网络,实现一次训练得到多种采样率下的点云。

多倍率点云下采样网络如图4所示,首先将点云输入到前文提出的基于轻量化Transformer的下采样网络中得到一个最大指定采样点数的点云Qmax,之后按重要性进行分组采样,按照不同采样率r将Qmax分为k组,每组点云的数目是M=N÷1,N÷2,…,N÷rmax。最先被采样的子集Q1点数最少,即M=N÷rmax,它的损失函数Ldown-1为下采样损失Ldown1。之后划分的点云Q2,它的损失函数Ldown-2既包含当前下采样损失Ldown2,又包含前一子集Q1的损失函数Ldown-1,这意味着之前的点集Q1既适合于任务,同时也适合于与当前点一起组成更大的点集,这确保了对任务更重要的点将更早出现在采样点集中。依此循环,直到采样到与Qmax相同点数的点云。这种渐进式结构可以实现一次训练得到多个采样率下的点云子集。在推断时,按照需求选择M个采样点以满足指定采样率大小即可。

图4 多倍率点云下采样网络结构Fig.4 Multi-rate downsampling network for point cloud

对于多倍率点云下采样网络,它的损失函数由k组损失函数构成,各组损失函数为:

其中,k为下采样率r的个数,Ldown1、Ldown2等损失函数为2.1.3 小节中提到的形式。根据采样点数M从小到大,网络通过一次训练即可得到多组下采样点云。

3 实验与分析

3.1 实验设置

实验使用配备RTX8000 GPU 的计算机进行,使用Tensorflow 框架,结合python3.6 与Cuda10.0,cudnn7.6搭建环境,使用Adam优化器进行优化。选择点云分类和点云重建作为下游任务。

3.2 实验结果及分析

3.2.1 基于轻量化Transformer 的任务驱动点云下采样网络

首先对本文提出的基于轻量化Transformer 的任务驱动的点云下采样网络进行分类任务实验。对于点云分类,评价指标为分类精度(classification accuracy),它指的是分类正确的样本数占总样本数的比例,用百分比来表示。PointNet 作为任务网络,它的分类精度为89.2%。ModelNet40[18]作为点云分类数据集,包含40 个类别的12 311 个3D 对象,其中9 843 个用于训练,2 468个用于测试。

实 验 比 较 了S-Net[10]、SampleNet[11]、MOPS-Net[14]、PST-Net[15]和本文提出的基于轻量级Transformer的下采样网络这五种面向任务的下采样方法(其他方法的数据均来源于参考论文)。不同方法在各个采样率下的分类精度如图5所示,当下采样率r=1 时点云数量为1 024,当r=2、4、8、16、32、64、128 时,对应的下采样点云点数M分别为512、256、128、64、32、16、8。

图5 不同方法在各个采样率r下的分类精度Fig.5 Classification accuracy of different methods at each sampling rate r

从图5 中可以看出,在各个采样率下,本文提出的下采样网络都能获得更高的分类精度,尤其是采样点数较少时,优势较为明显。这主要得益于特征提取方法和采样方法的改进。另外,当下采样率为32时,本文下采样网络仍能达到80%以上的分类精度,也就是说数据量减小到原始数量的1/32 时,仍可实现良好的分类效果,满足多数应用场景,这对于轻量化数据任务十分友好,并且有利于点云的传输与存储。

其次,对任务驱动的点云下采样网络进行重建任务实验。对于点云重建,采用Achlioptas 等人[19]提出的Auto-Encoder作为任务网络,评价指标为归一化重建误差(normalized reconstruction error,NRE),它采用倒角距离计算原始点云和重建点云的差别,NRE最小为1,NRE越小代表重建效果越好。重建实验使用的ShapeNet Core55[20]数据集包含55个常见类别的50 000个模型,选择其中的飞机、汽车、椅子、桌子四类物体进行测试。重建任务实验结果如图6 所示(由于MOPS-Net、PST-Net没有提供官方代码且没有提供数据,所以只比较了S-Net[10]、SampleNet[11]和本文方法)。

图6 不同方法在各个采样率r下的重建误差Fig.6 Normalized reconstruction error of different methods at each sampling rate r

实验结果表明,在采样率较小时,各种方法的重建误差相差不大。随着采样率增大、点云数量减少,本文方法的表现优于其他方法,尤其是在下采样率为64时,本文方法的NRE仍小于2,重建效果较为理想。

以上两种任务实验结果表明,本文提出的基于轻量化Transformer的任务驱动下采样网络在减小点云数据量的同时,任务性能也能得到良好的保证,相比于同类算法,分类精度更高,重建误差更小。这得益于轻量化Transformer 特征提取方法的有效性。为了更进一步说明有效性且实现简便,实验比较了采用不同特征提取方法得到的点云分类精度,同时,还用对整个测试集进行测试的时间和GPU显存消耗来反映不同特征提取方法的效率。由于S-Net、SampleNet使用PointNet提取特征,MOPS-Net 使用PointNet++[21]提取特征,PST-Net 使用Transformer提取特征,因此将这三种特征提取方法与本文提出的轻量化Transformer进行对比。实验结果如表1所示。

表1 各特征提取方法比较Table 1 Comparison of different feature extraction methods

从表1中可以看出,本文使用的轻量化Transformer方法可以获得相对较高的分类精度,这也帮助本文的下采样网络取得了更好的性能。虽然它比完全体Transformer精度稍有下降,但显存消耗和计算时间也相对较小。总体来说,使用轻量化Transformer 进行特征提取准确率和效率权衡更好。

为了更形象地说明,在图7 和图8 中直观展示了分类精度与测试时间和分类精度与占用显存的权衡,在图中体现为图标越靠近左上方的位置,权衡越好。

图7 不同特征提取方法精度和测试时间的权衡Fig.7 Trade off between accuracy and test time of different feature extraction methods

图8 不同特征提取方法精度和显存占用的权衡Fig.8 Trade off between accuracy and GPU consume of different feature extraction methods

图7表明,本文提出的特征提取方法所用测试时间最短,分类精度接近于最好。图8 表明,在分类精度相当时(>90%),本文提出的方法占用显存最少。综合两图来看,本文的轻量化Transformer 特征提取方法实现了精度和效率的权衡,兼顾准确性和高效性。

3.2.2 多倍率点云下采样网络

多倍率下采样网络通过一次训练可得到多个采样率下的点云,既节省资源也方便应用。为表现该网络的性能及实现简便,表2对比了本文提出的多倍率下采样网络和单一倍率下采样网络在不同采样率下进行点云分类任务的精度。其中,单一倍率下采样网络是指本文之前所提出的基于轻量化Transformer的任务驱动点云下采样网络。

表2 单一倍率和多倍率下采样网络分类精度比较Table 2 Comparison of classification accuracy between single-rate and multi-rate downsampling network

由表2可以看出,多倍率下采样网络的性能相较于单一采样率的下采样网络来说稍有下降,但相差不大,对于应用任务来说影响不明显。另外,当batchsize设置为32,epoch设置为500时,在计算机上单独训练各个采样率的下采样网络平均需要约11 h左右,而训练一个多倍率模型(采样点数从2 到1 024,共10 种下采样率)大约也只花费21 h,这样对比会发现多倍率模型能节约大量的计算资源和时间。因此这种多倍率模型是十分有意义和实际应用价值的。

另外,还比较了基于S-Net 和SampleNet 的多倍率模型与本文所提方法得到的下采样点云在分类任务中的性能。实验结果如表3所示。

表3 不同多倍率下采样网络分类精度比较Table 3 Comparison of classification accuracy at different multi-rate downsampling network

由表3 可以看出,本文提出的多倍率模型获得的下采样点云相比之前的同类方法,分类精度也有所提升。这得益于轻量化Transformer 强大的学习能力,可提取到更有代表性的特征以此采样得到更重要的点云。

3.2.3 可视化结果

为了更加直观地显示本文提出的下采样网络的有效性,图9 展示了在分类任务中不同采样点数M下的采样点云Q(图中红色点为下采样点,黑色点为原始点云)。

图9 不同下采样点数的采样点云可视化结果Fig.9 Visualization results of downsampled point cloud with different number M

从图中可以看出,本文提出的下采样网络可以有效地采样到关键部件中的点以及物体轮廓附近的点。当下采样点数M较小时,采样点仍然可以分布在语义差异较大的部分,以便于区分不同种类物体。如在飞机中,采样点分布在机翼、机尾和机身的各个部分。在桌椅中,采样点分布在不同桌腿和桌面的位置。在花瓶中,采样点分布在花瓶和鲜花的各个部位。可见本文的采样方法更能采样到对后续分类任务重要的点。

另外,图10对比了在分类任务中,不同下采样方法在点云数量M=64 时得到的下采样点云的可视化结果(MOPS-Net、PST-Net没有提供官方代码,因此没有与之进行可视化比较)。

图10 不同方法下的采样点云可视化结果Fig.10 Visualization results of downsampled point cloud with different methods

从图10 中可以看出,S-Net 和SampleNet 倾向于生成靠近形状中心的采样点,而不是分布在细节部分的位置。本文方法可以成功地选择关键部件中的点以及形状轮廓附近的点。所有这些采样点都集中在重要区域,以便于区分不同对象,获得更高的分类精度。

以上这些可视化结果说明本方法可以选择更具针对性的采样点,并获得更高的任务性能。

4 结束语

本文提出一种基于轻量化Transformer 的任务驱动下采样网络实现三维点云的压缩简化。在经过轻量化Transformer模块提取点云特征后,通过软采样模块模拟实际采样过程得到下采样点云。构建使用包含任务损失的联合损失函数进行训练以保证下采样点云能够针对后续应用任务进行优化。为方便训练和实际应用,在上述轻量化Transformer 下采样网络的基础上,还提出多倍率点云下采样网络,采用渐进式结构和组合采样损失函数,实现一次训练获得多个采样率下的点云。在ModelNet40和ShapeNet数据集上进行点云分类任务和重建任务实验,结果表明本文所提方法在简化点云后仍能保证较高的分类精度和重建精度,在减少数据量、减小传输压力的同时不影响后续应用任务性能。

但仍需改进的是,本文所提特征提取方法的准确率有待进一步提升,同时要尽可能减小内存消耗,在未来工作中,将会考虑与自监督学习、强化学习、连续学习结合,采用更高效准确的方法学习点云特征。另外,为实现方便,本文只在下采样后进行了简单的分类和重建任务,针对目前三维点云应用最多的目标检测和实例分割没有进行实验验证,未来在改进网络结构的同时会将所提网络应用于更多点云任务中。

猜你喜欢
倍率轻量化特征提取
汽车轻量化集成制造专题主编
FANUC0iD系统速度倍率PMC控制方法
一种轻量化自卸半挂车结构设计
一种轻量化自卸半挂车结构设计
基于Daubechies(dbN)的飞行器音频特征提取
Bagging RCSP脑电特征提取算法
一种智能加工系统中的机床倍率控制方法
瞄准挂车轻量化 锣响挂车正式挂牌成立
65t/h低倍率油页岩循环流化床锅炉流动特性模拟
拉伸倍率对BOPP薄膜性能的影响