结合偏移自注意力机制和残差连接的点云分类
2023-09-22朱天晓闫丰亭
朱天晓,闫丰亭
(上海工程技术大学 电子电气工程学院,上海 201620)
1 引 言
随着深度传感器和相关扫描软件的发展,三维点云数据的类型和数量显著增长。点云数据被广泛应用于定位绘图[1]、医学影像[2]等领域,因此基于三维点云的分类、分割等技术的应用需求也大大提升。传统的点云分类方法往往需要手工设计特征提取方式,为了有效识别点云,基于数据驱动的深度学习方法[3]被提出用于点云特征学习。
Qi等[4]提出了一种深度学习网络PointNet,直接处理点云数据,有效解决了点云无序性问题。该方法使用T-Net模块对点云数据进行仿射变换,然后使用多层感知机(Multilayer Perceptron,MLP)对点云每个点进行特征提取,并使用最大池化函数提取全局特征。由于PointNet只对每个点提取特征,没有定义点云邻域,因此该方法只考虑了点云的全局特征,没有考虑局部特征。PointNet++[5]是对该方法的改进,该方法通过对点云进行采样并使用球查询建立邻域,在每个邻域使用PointNet提取局部特征并与全局特征相结合,取得了更好的效果。Li等[6]提出了PointCNN,引入 X-Conv模块实现无序点云的规则化,使常规的卷积操作可以应用于点云数据。PointCNN证明了特征提取结构对点云学习的重要性,获得了较高的分类准确率。但是该方法无法有效聚合全局特征,鲁棒性较差。顾砾[7]等将PointCNN与MVCNN[8]相结合,提出了一种基于多模态特征融合的三维点云分类方法。该方法将点云数据与图像数据作为输入,对PointCNN 提取的点云特征与CNN 提取的图像特征进行加权融合,从而得到最终分类结果。该方法使用ResNext101[9]作为CNN 模型,参数量较大,并且只能选择一个固定视图的二维图像作为输入,无法适用于纯点云数据,泛化性不高。Wang等[10]提出了动态图卷积神经网络(Dynamic Graph CNN,DGCNN),在原始点云空间中构造图结构用于特征提取,其核心模块边卷积可以动态聚合邻域边的特征。但是DGCNN会构造很多无意义的图结构,计算复杂度较高,同时该方法在稀疏点云上性能下降严重,鲁棒性不高。
为了提高点云深度学习分类模型对有效特征的提取能力,增强模型鲁棒性,本文提出了一种结合偏移自注意力机制和残差连接的点云分类网络。本文在PointCNN方法的基础上做出改进,引入了偏移自注意力模块,更好地关注于X-Conv模块输出的有效特征。引入残差网络的思想,构造残差连接进行特征融合,可以有效利用点云的多尺度特征。经分类实验验证,本文方法在ModelNet40[11]数据集上取得了较好的分类效果,分类准确率高于现有的大多数方法。经鲁棒性实验验证,本文方法对于稀疏点云和噪声点云有较好的适应性,相比于PointCNN,鲁棒性有了显著提升,并且优于其他对比方法。
2 相关技术
2.1 PointCNN
点云数据具有无序性,若不考虑点云的颜色、法向量等因素,只考虑坐标,则点云数据可以用一个n×3的矩阵表示。对n个点进行读入,一共有n!种组合情况。要想在点云数据上使用卷积操作,必须解决点云无序性问题。图1中i与ii是一组读入顺序相同的点,但是坐标不同;ii与iii是一组坐标相同的点,但是读入顺序不同。因此,点云上理想的卷积操作需要提取出i、ii不同的特征,提取出ii、iii相同的特征。
图1 点云无序性
PointCNN[6]可以一定程度上解决点云的输入顺序对卷积操作的影响,提出的X-Conv模块能将特定输入顺序的点云数据转换为与顺序无关的特征,PointCNN结构如图2所示。
图2 PointCNN结构
X-Conv模块使用最远点采样(Farthest Point Sampling,FPS)和K邻近(K-nearest neighbor,KNN)算法计算点云邻域,并将邻域内点的坐标变换到该点的局部坐标系。通过 MLP学习得到变换矩阵X,对特征矩阵进行变换处理,可以对变换后的特征矩阵应用典型的卷积运算。X-Conv模块使得点云数据变少,但每个点都包含了更丰富的高维信息。同时X-Conv模块还引入了膨胀卷积的思想,降低点云数目的减少对特征提取的影响,可以保持网络的深度和感受野的大小。X-Conv模块中参数N为输出点数,C为输出特征维度,K为邻域大小,D为膨胀系数,具体计算过程将在3.1节描述。
2.2 自注意力机制
自注意力(Self Attention,SA)机制由Vaswani 等[12]提出,并迅速在自然语言处理领域取得了巨大进展。为了增加感受野大小,Wang[13]等将自注意力机制引入计算机视觉领域,使用的SA模块结构如图3所示。
图3 自注意力模块
以2D图像为例,给定一个特征矩阵Fin∈C×H×W,自注意力机制首先通过线性变换得到查询矩阵、键矩阵和值矩阵,Q,K,V∈C′×M,M=H×W。自注意力矩阵由下式计算得出:
A=(a)i,j=Softmax(Q·KT)
(1)
其中ai,j是第i个和第j个元素之间的注意力权重。最后可得注意力特征:
FSA=A·V
(2)
自注意力机制作为一种强大的全局特征学习机制,已经发展出了多种变体[14],在很多深度学习网络中都有应用[15]。由于SA模块中的查询、键和值矩阵都是由输入特征Fin线性变换得到的,它们都是顺序无关的。因此,整个自注意力的计算过程是置换不变的,适用于点云数据。
2.3 残差网络
随着卷积神经网络的深度加深,网络将会面临性能退化的问题。针对该问题,He 等[16]提出的残差网络(Residual network,ResNet),引入了残差连接,让输入特征可以跨越多个卷积层传播,同时反向传播的梯度也可以跨越多层传播,有效避免了梯度消失现象,一定程度上解决了因深度加深引起的网络性能退化的问题。ResNet中提出的两种残差模块如图4所示。
图4 残差模块
模块(a)的公式表达为H(X)=F(X)+X,因为该模块的输入、输出的维度相同,因此短连接的输出为X。模块(b)的公式表达为H(X)=F(X)+G(X),该模块的输入、输出的维度不同,因此短连接的输出为G(X),主要作用是变换特征矩阵的大小与维度,通过1×1卷积实现。
王江安等[17]在DGCNN的基础上,引入残差连接,提出了Linked-DGCNN。该方法通过增加卷积层数,获得更深层的点云特征;同时引入残差连接,连接不同网络层的输出特征。该方法获得了较高的分类准确率,表明在点云网络中引入残差连接有利于提升网络性能。
3 本文方法描述
本文对PointCNN网络进行改进,提出了一种结合偏移自注意力机制和残差连接的深度学习网络,结构如图5所示。在X-Conv模块后引入了偏移自注意力模块(Offset Attention,OA),可以更好地关注于特征矩阵的有效区域。同时引入了残差网络的思想连接不同层次特征进行融合,可以有效利用点云的多尺度特征。
图5 本文网络结构
3.1 X-Conv模块
X-Conv模块是PointCNN[6]的核心模块,可以一定程度上实现无序点云的规则化,使常规的卷积操作可以应用在点云数据上。X-Conv模块结构如图6所示。
图6 X-Conv模块
X-Conv模块的输入数据为坐标矩阵Pin=[p1,1,…,p1,N1]T和特征矩阵Fin=[f1,1,…,f1,N1]T;p1,i为代表输入数据第i个点的空间坐标(x,y,z),p1,i∈3;f1,i代表第i个点的特征,f1,i∈C1;N1为输入点个数,C1为特征维度。
第一层X-Conv模块会将输入的坐标矩阵Pin作为特征矩阵Fin输入MLP(其他层的X-Conv模块会将特征矩阵Fin输入MLP),学习生成新的特征矩阵F:
F=MLP(Fin)
(3)
对坐标矩阵Pin使用FPS计算采样坐标矩阵P′,采样点数为P:
P′=FPS(Pin,P)
(4)
X-Conv模块引入膨胀卷积的思想,使用KNN算法对矩阵P′、Pin计算膨胀邻域,在膨胀邻域内采样选择最终邻域的索引Index,邻域大小为K,膨胀系数为D,膨胀邻域大小为K×D:
Index=KNN(P′,Pin,K,D)
(5)
然后根据Index对坐标矩阵Pin和特征矩阵F进行采样、变换得到局部矩阵Plocal和Flocal。对Flocal使用卷积和MLP学习得到变换矩阵X:
X=MLP(Conv(Plocal))
(6)
其中,Conv为卷积算子。
对矩阵Plocal使用MLP进行学习,同时将结果与Flocal进行拼接;将拼接矩阵与变换矩阵X相乘,输入卷积得到X-Conv模块的输出特征:
Fout=Conv(Cat(MLP(Plocal),Flocal)·X)
(7)
其中,Conv为卷积算子,Cat为拼接算子。
最后X-Conv模块将P′作为Pout,并与Fout以out的形式一一对应输出。
3.2 偏移自注意力机制
在自注意力机制的基础上,Guo等[18]提出了一种改进的偏移自注意力模块(Offset Attention,OA)。OA模块计算注意力特征与输入特征的差值,将其与输入特征相加,作为输出特征。
本文模型引入了4个OA模块,在每个X-Conv模块后都连接了OA模块,其维度分别为48、96、192和384。OA模块结构如图7所示。
图7 偏移自注意力模块
Q、K、V分别为输入特征Fin∈N×de通过线性变换生成的查询矩阵、键矩阵和值矩阵:
(Q,K,V)=Fin·(Wq,Wk,Wv)
(8)
其中,Q,K∈N×da,V∈N×de,Wq,Wk∈de×da,Wv∈de×de。Wq,Wk和Wv是共享的可学习的变换矩阵,da是查询矩阵和键矩阵的维度,de是值矩阵的维度。
然后计算查询矩阵和键矩阵的乘积,得到注意力权重:
(9)
对注意力权重进行Softmax和l1正则化处理得到A=(α)i,j:
(10)
(11)
式(10)中,exp是以自然常数e为底的指数函数。将注意力权重与值矩阵相乘得到自注意力特征:
Fsa=A·V
(12)
最后,将输入特征Fin与注意力特征Fsa相减,将差值输入 LBR 网络(分别为Linear、BatchNorm和ReLU层),再与输入特征Fin相加,得到整个OA层的输出特征Fout:
Fout=OA(Fin)=LBR(Fin-Fsa)+Fin
(13)
OA模块对点云数据有较好的适应性,相比于SA模块,更有助于提升模型的分类准确率。本文将在4.5节中证明该模块的有效性。
3.3 残差连接
本文引入的OA模块中包含了可学习的LBR 层,相当于增加了模型深度。因此,可以引入残差连接,让输入特征跨越多个X-Conv模块传播,对不同尺度的特征进行融合。
为了有效利用X-Conv模块和OA模块学习到的特征,可以在OA模块上建立残差连接。本文模型包含4个OA模块,每个模块的输出特征数目和特征维度均不相同,特征数目分别为1024、384、128、128,特征维度分别为48、96、192、384。最多可以引入3个残差连接,并且需要使用1×1卷积Conv1d模块对特征进行数目和维度的对齐。
可以使用的Conv1d模块分别为Conv1d(48,384,stride=8)、Conv1d(96,384,stride=3)、Conv1d(192,384,stride=1)。经4.6节对比实验验证,使用后两个Conv1d模块构建残差连接时,模型分类效果最好。
4 实验与分析
4.1 实验环境
本文的实验环境为Ubuntu 18.04 LTS,CPU为Intel Xeon Silver 4210R @ 2.40 GHz,GPU配置为NVIDIA GeForce GTX 3090,实验框架为Jittor[19],Python版本为3.8。
4.2 实验数据集
为了验证本文模型的分类效果,本文在ModelNet40[11]数据集上进行训练和评估。ModelNet40有40个类别共计12311个CAD模型,使用9843个物体作为训练集,2468个物体作为验证集,该数据集中每个物体包含1024个点的三维坐标,即输入数据是维度为1024×3的矩阵。对ModelNet40中部分点云数据进行可视化处理,如图8所示。
图8 点云数据
4.3 分类实验
在分类实验中,本文使用随机梯度下降(SGD)进行优化,将批处理大小设为32,动量设为0.9,初始学习率设为0.02,学习率调整策略为MultiStepLR,采用Soft Cross Entropy Loss损失函数作为损失函数。对训练数据进行了一定程度的随机平移和放缩,实现对数据的增强。整个模型一共训练了300轮,使用总体分类准确率(overall accuracy,oAcc)对分类模型性能进行评估。
本文将PointNet、PointCNN、DGCNN等模型在ModelNet40数据集上的测试结果加入对比,如表1所示。实验结果表明,本文模型的oAcc为92.9 %,相比与其他网络模型,本文模型的获得了最高的oAcc。可见本文模型相比其他模型在ModelNet40 数据集上具有更好的分类效果。
表1 分类实验准确率
图9和图10分别给出了本文分类模型的训练准确率曲线和训练损失曲线。从图中可以看出,随着迭代次数的增加,训练准确率不断提高,训练损失不断下降。当迭代次数达到250次左右时,训练准确率和训练损失基本稳定,网络趋于收敛,说明网络中的参数已经达到最优。
图9 训练准确率曲线
图10 训练损失曲线
4.4 消融实验
为验证引入的OA模块以及残差连接的有效性,本文对所提模型进行了消融实验,实验设置与4.3节相同。
消融实验通过分别删除OA模块以及残差连接验证其对于分类任务的有效性。从表2可以看到,初始PointCNN的oAcc为92.2 %。当增加OA模块时,相较原模型oAcc提升了0.5 %。当增加残差连接时,相较原模型oAcc提升了0.1 %,由于没有增加网络深度,所以只增加残差连接时分类效果提升不明显。当同时增加OA模块和残差连接时,相较原模型oAcc提升了0.7 %。实验结果表明同时增加OA模块和残差连接对于模型分类性能有着明显的提升作用,主要原因为OA模块可以更好地关注于有效特征,同时残差连接可以有效利用点云的多尺度特征。
表2 消融实验准确率
4.5 注意力模块实验
本文在PointCNN基础上引入OA模块,该模块在SA模块上进行了改进。为验证SA模块、OA模块的分类效果,本文设置了注意力模块实验,分别在PointCNN和引入残差连接的PointCNN上进行对比实验,实验设置与4.3节相同。
实验结果如表3所示。可见,引入OA模块的PointCNN的准确率比引入SA模块的oAcc高0.2 %,引入OA模块和残差连接的PointCNN的oAcc比引入SA模块和残差连接的准确率高0.4 %。可见OA模块和残差连接的适应性优于SA模块,更有利于提升分类效果。
表3 引入不同注意力模块的准确率
同时可见,引入SA模块和残差连接的PointCNN的oAcc与只引入SA模块的oAcc相近。其原因是SA模块没有可学习的LBR 层,相当于没有增加网络深度,所以引入残差连接时对于提升oAcc效果不明显。因此,引入OA模块和残差连接的方案更为合适,同时其分类准确率也更高。
4.6 残差连接实验
为有效利用不同层次OA模块的输出特征,本文模型在OA模块上引入残差连接。本文模型包含4个OA模块,最多可以引入3个残差连接,如表4所示。
表4 残差模块
为确定残差连接添加的最优数目,本文在ModelNet40数据集上进行对比实验,引入数目分别为1、2、3的残差连接,实验设置与4.3节相同,实验结果如表5所示。可见在引入Res1、Res2时分类准确率最高,为92.9 %,只引入Res1时分类准确率为92.8 %,引入全部3个残差连接时分类准确率为92.7 %。为了进行特征维度对齐,Res3模块的步长设置为8,步长过大,不利于特征的提取。因此本文最后引入的残差连接为Res1、Res2。
表5 引入不同残差连接的准确率
4.7 鲁棒性实验
验证本文模型对于点云分类的鲁棒性,本文在ModelNet40数据集上测试稀疏点云和噪声点云的分类效果。
在稀疏点云实验中,点云的采样点数量分别被设置为896、768、640、512、384,本文将原始点云与部分稀疏点云进行可视化对比,如图11所示。
图11 稀疏点云数据
在采样点数分别为896、768、640、512、384的稀疏点云数据上,本文模型的oAcc分别为92.4 %、91.9 %、91.3 %、90.2 %、88.4 %。可见,随着采样点数的急剧减少,本文模型的oAcc并没有大幅度下降。相比于PointCNN,本文模型在稀疏点云上的oAcc平均提升了2.4 %。
本文与PointNet、PointCNN、PointConv、DGCNN在稀疏点云数据上的分类效果进行对比,结果如图12所示。可见随着采样点数的减少,PointConv和DGCNN的oAcc大幅度下降,PointCNN的oAcc也明显下降。由于PointNet没有定义点云邻域,因此oAcc下降幅度很小。本文模型的oAcc也有一定下降幅度,但oAcc均高于其他对比方法。可见,本文模型对稀疏点云具有较好的适应性,鲁棒性较高。
图12 不同网络抗稀疏性对比
在噪声点云的实验中,通过在初始点云中引入噪声来生成噪声点云,分别引入了均值为0,标准差分别为0.005、0.01、0.015、0.02、0.025、0.03的高斯噪声。本文将高斯噪声标准差定义为噪声强度,并对部分噪声点云进行可视化对比,如图13所示。
图13 噪声点云数据
在噪声强度分别0.005、0.01、0.015、0.02、0.025、0.03的噪声点云上,本文模型的oAcc分别为92.5 %、91.8 %、90.8 %、88.4 %、81.8 %、72.9 %。相比于PointCNN,本文模型在噪声点云上的oAcc平均提升了11.6 %。
与PointNet、PointCNN、PointConv、DGCNN在噪声点云数据上的分类效果进行对比,结果如图14所示。可见随着噪声强度的增加,PointCNN和PointConv的oAcc大幅度下降,本文模型和DGCNN的oAcc也下降了一定幅度。在噪声强度为0.005至0.02时,本文模型的oAcc高于其他对比方法;在噪声强度为0.02至0.03时,本文模型的oAcc基本与DGCNN持平,高于PointCNN、PointConv,但低于PointNet。PointNet由于没有定义点云邻域,只对每个点使用MLP进行特征提取,所以抗噪性较好,oAcc下降幅度很小。
图14 不同网络抗噪性对比
经过稀疏点云和噪声点云的鲁棒性实验验证,结果表明本文网络的鲁棒性好于PointCNN、PointConv、DGCNN方法,主要原因是引入了偏移自注意力模块,可以有选择性地对有效特征进行加强,同时引入的残差连接可以融合不同尺度的特征,减少信息的损失。
5 结 论
为了提高点云深度学习分类模型的特征提取能力,增强模型鲁棒性,本文提出了一种结合偏移自注意力机制和残差连接的点云分类网络。分类实验结果表明,本文网络在ModelNet40分类数据集上达到了较高的分类准确率。同时本文消融实验表明,引入偏移自注意力机制和残差连接是有效的,可以提高点云分类准确率。本文鲁棒性实验表明,本文模型对稀疏点云和噪声点云有较好的适应性。本文网络相比于PointCNN,在稀疏点云上的总体分类准确率提升了2.4 %,在噪声点云上提升了11.6 %;与PointNet、PointConv、DGCNN网络相比,本文模型也有较高的分类准确率,表明本文模型鲁棒性较好。
下一步的工作是完成点云分割任务,PointCNN分割模型是基于编解码架构的,参数量较大,如何设计一个轻量级的结合注意力机制的分割模型是接下来的研究重点。