徐嘉利,方志军*, 伍世虔
1.上海工程技术大学电子电气工程学院, 上海 201620; 2.武汉科技大学机械自动化学院, 武汉 430081
随着深度激光、深度相机和3维扫描设备的广泛应用,以点云作为主要结构的3维数据变得更加容易获取。3维点云在自动驾驶汽车(Shi等,2019)、位置识别(Liu等,2019d)、机器人定位与导航(Zhu等,2017)和遥感(Qi等,2018)等新兴领域得到了广泛应用。近年来,卷积神经网络(convolutional neural networks,CNN)(Zeiler和Fergus,2014)的巨大成功改变了2维计算机视觉的格局,但是由于3维点云具有无序性和不规则性的特点,卷积神经网络无法直接处理点云这样的非结构化数据。如何从点云中鲁棒地提取网络所需的形状特征进行点云分析仍然是一个尚待解决的问题。
PointNet(Qi等,2017a)是首个应用深度学习直接处理不规则点云的方法,但是忽视了对局部区域的描述。PointNet++(Qi等,2017b)是PointNet的升级版,但是仍然未有效地探索点之间的关系。DGCNN(dynamic graph convolutional neural network)(Wang等,2019)使用一种新的卷积EdgeConv侧重点云的局部几何特征,但无法兼顾局部邻域之间的全局联系。Point2Sequence(Liu等,2019a)和PointANSL(Yan等,2020)引入注意力机制专注于各局部区域之间的关系,提高了模型训练的鲁棒性。Dense-Point (Liu等,2019b)引用2D图像领域中DenseNet(Huang等,2017)的思想,在同一层中重复地聚合多级语义输出以捕获该层中的上下文信息。RS-CNN(relation-shape convolutional neural network)(Liu等,2019c)通过球查询构建不同半径的局部邻域,并选择10维的几何关系应用于局部形状,但是没有考虑点云的逐点特征和全局特征,而逐点特征和全局特征同样是准确处理点云数据的关键。
为了解决当前研究存在的一些问题,提升神经网络在点云分析中的性能,本文设计了多维度特征修正与融合模块(multi-dimensional feature correction and fusion module,MDCF)和多层级特征衔接模块(multi-layer feature articulation module,MLFA)。MDCF模块能够在不同维度下合理地修正、融合逐点特征和局部特征。在局部区域划分单元(local area division unit,LAD),利用最远点采样(farthest point sampling,FPS)(Kamousi等,2016)和球查询(ball query)(Qi等,2017a)的方法构建不同半径下的局部区域,从中获得模块所需的10维几何关系和局部特征。受注意力机制(Wang等,2018b)的启发,MDCF模块利用几何关系对局部特征进行修正,增强点间的交互能力,并编码得到合理的逐点特征,同时辅以局部特征对其进行充实,最后融合得到不同区域范围的形状特征,并映射到高维空间。此外,MLFA模块侧重于整合局部区域之间的上下文关系来提取全局形状,强化了层次之间的远程依赖联系,能够利用丰富的层间上下文信息提高形状特征的抽象性,同时降低了上游存在的错误对下游点云分析造成的影响,缓解了卷积网络存在的梯度消失缺陷,提高了模型的鲁棒性。特别地,将这些局部信息看做不同的节点,利用卷积和跳跃融合的方式获取并丰富全局特征,以此提高网络学习全局形状的表达能力。本文结合MDCF模块和MLFA模块的优势,设计了两种不同的网络架构MM-Net-C(multi-dimensional multi-layer feature classification network)和MM-Net-S(multi-dimensional multi-layer feature segmentation network)端到端地、鲁棒地处理点云分类与分割任务。
卷积运算依赖于规则的网格结构,然而由于点云数据在3维空间中分布不规则的特性,无法直接应用卷积运算。
为了充分得到某一局部空间中的点与点之间存在的关联性,首先利用局部区域划分单元(LAD)将点云划分为不同半径大小的局部区域,如图1所示。
图1 局部区域划分单元(LAD)细节图Fig.1 Details of local area division unit
给定输入无序的点云P={p1,p2,p3,…,pN},其中pn∈RC是输入点的坐标向量,N是点的个数,C是每一点的坐标维数。对于输入的N个点,选择最远点采样的方法获得h个质心点pi,得到质心点点集E={pα,…,ph}。最远点采样算法的具体步骤如下:
输入:无序点集P={p1,p2,p3,…,pN},设定质心点个数h。
输出:质心点点集E={pα,…,ph}。
1)从无序点集P中,随机选取点pα作为初始点,并移动至质心点点集E内。
2)若质心点点集E={pα,…,pi}内点的数量小于h,则首先计算无序点集P中剩余的点pn与质心点点集E内每一点之间的欧氏距离ln={lα,…,li},然后在ln中选取最小值作为该点的距离值,得到P中剩余各点的距离值集合L,最后在L中选取最大距离值对应的点pβ,并移动至质心点点集E。
接着,通过球查询方法找到t个点作为半径r内每一质心点pi的邻点,构建球形的局部区域。在各不同维度都设定不同的t值和r值,得到不同条件下的局部点集Ai={pi,pi,1,pi,2,pi,3,…,pi,t},di,j<2r,Ai∈RNh×Kt+1×CΩ,其中pi是质心点,pi,t是质心点的t个邻点,di,j是质心点与其邻点之间的欧氏距离。球查询算法的具体步骤如下:
输入:设定球形区域半径r、球形区域范围内邻点个数t;无序点集P={p1,p2,…,pN};质心点点集E={pα,…,ph}。
输出:局部点集Ai={pi,pi,1,pi,2,pi,3,…,pi,t}。
1)迭代选取质心点点集E={pα,…,ph}内的每一个点pi,并存入以该质心点为中心的局部点集Ai。
2)计算pi与无序点集P中所有点之间的欧氏距离,并标记大于2r的距离值。
3)对未标记的距离值进行升序。
4)在升序后未标记的距离值中选取t个,并将t个距离值对应的点存入局部点集Ai。
点的几何关系是通过质心点与邻点的位置信息构成单一各点的初始特征,同时点与点之间的空间布局联系(点的分布密度及点间相互作用关系)反映了区域范围内的局部特征。本文受RS-CNN启发,编码几何关系(见图1),为后续鲁棒地学习局部形状打下坚实基础。
另一方面,该操作也能够在处理好点存在的刚性变换与排列不变性的前提下,为MDCF模块挖掘区域内的形状信息。这里,点间的几何关系为ei,j,即
(1)
以第1维为例,如图2所示,在LAD单元构建的局部区域中,将局部特征定义为A1∈RNα×Kβ×Cγ,将点与点之间的几何关系定义为e1∈RNα×Kβ×10。同时,将原始的局部特征与10维的几何先验知识有机聚合起来,得到蕴含有丰富点间相关性的逐点特征B1∈RNα×Kβ×Cγ。具体操作为
B1=[MLP1(e1)]·A1
(2)
式中,MLP1是多层感知机(multi-layer percentron,MLP),“·”是点乘函数。
多层感知机用于整理点间的几何向量,并将其编码至特定维度,使之能够更方便与局部特征A1进行点乘运算。考虑到在同一维度下,逐点特征与局部特征对于区域内形状信息的提取,所做出的贡献是不一样的,例如,当质心点与邻点之间分布较为分散,那么模型应该更侧重于局部特征。倘若部分邻点与质心点之间的空间布局较为紧凑,则应该更倾向于逐点特征的选择。本文受注意力机制启发,使网络自适应地选择合适的特征信息,表示当前局部区域内的形状关系。具体实现为
[a1,b1]=σ(MLP2[A1,B1])
(3)
H1=a1⊗A1
(4)
T1=b1⊗B1
(5)
式中,a1∈RNα×Kβ×1和b1∈RNα×Kβ×1分别是局部特征和逐点特征对应的归一化权重,σ是激活函数softmax,H1∈RNα×Kβ×Cγ和T1∈RNα×Kβ×Cγ分别是通过自适应修正后所得的局部特征与逐点特征,⊗是逐元素相乘。为了使MDCF模块能够有效选择出所需的特征强度,首先将原始的局部特征与逐点特征进行融合,并使用多层感知机将其通道数处理至特定数。随后利用softmax激活函数,得到这一维度下局部区域内每个点的对应强度,这个强度可以理解为单一质心点与其邻点在局部特征与逐点特征两条件下的自适应权值。利用a1和b1这两个修正因子,使模块学习到相对于不同特征的重要程度,抑制无关因素的影响。随后将其逐元素与原始的局部特征和逐点特征相乘,得到经过网络自我选择同时也是模型所需要的特征信息。上述操作强化了模型自我学习局部区域内形状关系的能力,也提高了网络对点间关键信息的提取能力。模块将所得修正后的特征通过对称函数融合并处理,得到该维度下的结果Z1∈RNα×Cγ。具体实现为
图2 多维度特征修正与融合模块(MDCF)的细节图Fig.2 Details of the multi-dimensional feature correction and fusion module (MDCF)
(6)
式中,MaxP是对称函数MaxPooling,其分别将逐点特征与局部特征聚合到质心点,获得对局部区域表达能力更强的形状信息。接着将上述两者级联,并将结果输入到多层感知机中,使其有机地融合在一起,输出该维度下、该局部区域范围内最为合适的形状关系。
多维度特征修正与融合模块(MDCF)分别从3个不同维度,即3个不同尺度半径、邻点个数构建的球形局部区域捕捉不同维度下最有效的形状信息X∈RNα×F。具体操作为
X=Conv[Z1,Z2,Z3]
(7)
式中,Conv是卷积运算,其将融合了不同维度下的形状信息进行二次加工,强化了模型对范围形状的理解能力,缓解了点云数据中存在的点分布不均匀、密度不均匀对特征学习造成的不良影响,同时提高了模型对局部差异性的理解能力,弥补了模型短视的不足。例如,当网络对飞机数据集进行分类或分割任务时,倘若使用单一维度,即单一尺度下的球形区域,模型的可视范围也许只能够聚焦飞机的某一片面范围如机头或机翼,因火箭头部形状与飞机头部形状相似、椅子脚部形状与机翼形状相似,便会将其错误分类为火箭或椅子。而使用多维度设计,可以将局部视野范围交叉、扩大,这样提升了模型对形状的甄别能力,进而提高了网络的准确性和鲁棒性。
一些经典研究(Qi等,2017a;Wang等,2019)致力于如何在局部区域内捕捉几何关系,但忽略了各局部区域之间存在的相互依赖联系。本文受2维图像领域和其他3维点云的研究启发,建模不同局部区域之间的形状信息,并通过跳跃连接构建局部邻域之间的上下文联系,捕捉不同层级之间存在的相关性信息。虽然多维度特征修正与融合模块(MDCF)侧重于对局部区域形状的理解,但忽视了从整体角度对全局形状分析。而在多层级特征衔接模块(MLFA)中,捕捉了远距离区域之间的全局描述关系,如图3所示。
图3 多层级特征衔接模块(MLFA)的细节图Fig.3 Detail diagram of the multi-layer feature articulation module (MLFA)
多层级特征衔接模块(MLFA)接收不同层级多维度特征修正与融合模块(MDCF)处理输出的局部形状,这些层级的局部形状之间并不是孤立、没有联系的。例如,对于飞机点云数据,第1层级MDCF模块输出的局部形状也许更专注于机头的理解,而第2层级的MDCF模块却更加重视机翼的学习。倘若单独处理两者,必然会降低整体点云形状的分析能力,因此需要找出两者之间存在的关联性,进而从基于全局视野的角度捕获所有局部区域之间的上下文信息。整个多层级特征衔接模块(MLFA)的具体操作为
Y=Conv2{(Conv1[X1,X2,X3])·[X1,X2,X3]}
(8)
式中,Y∈RNh×F4是多层级特征衔接模块(MLFA)的输出,是经过推理后具有全局描述的特征。X1∈RNh×F1、X2∈RNh×F2和X3∈RNh×F3分别为不同层级下MDCF模块输出的局部形状,首先将其融合在一起,通过Conv1运算建立不同层级之间存在的上下文联系,并将其加权至原始的局部形状中,以实现局部区域之间的密集连接。随后利用Conv2更新各局部区域的形状信息,实现模型从局部到全局的学习。
1.3.1 分类网络架构(MM-Net-C)
面向点云分类任务,完整的多维度多层级神经网络分类架构由前端与后端组成,如图4所示。
在前端中,输入的点云数据是N×3格式,其中N是数据中点云的个数,每一个点云都具有初始的3维原始特征。随后通过3层串联的多维度特征修正与融合模块(MDCF),得到输出3层相互联系的局部形状特征RNh×Fi,其中F是特征数。接着通过多层级特征衔接模块(MLFA)对每个局部区域之间存在的关联性进行连接并整合得到全局形状。
在后端中,将全局形状和局部形状结合在一起,这样既能够保留局部特征,同时也丰富了全局特征。随后使用MaxPooling实现维度变换RNh×(F1+F2+F3+F4)→R1×(F1+F2+F3+F4),并得到1 024维的点云形状向量。最后应用3个全连接层1 024→512→256→NClass,转换并得到分类任务的概率图。
图4 多维度多层级特征分类网络的架构图Fig.4 Architecture of a multi-dimensional multi-layer features classification network
1.3.2 分割网络架构(MM-Net-S)
完整的分割网络也由前端和后端两部分组成,如图5所示。在前端中,与分类网络相比,使用单个对象作为分割网络的输入,同时在多维度特征修正与融合模块(MDCF)中,选择更大的半径以及更多的质心点与邻点来挖掘局部形状。在经过多层级特征衔接模块(MLFA)处理后,对象数据编码为RNh×F4维度的全局特征。在后端部分,经过特征级联,得到融合了局部和全局信息的形状,维度为RNh×(F1+F2+F3+F4),使其与对象(如摩托、轿车等)的标签相连。然后进行特征传播(Qi等,2017a),对其进行连续的上采样操作,以此恢复原始对象数据中的细节,同时得到鲁棒的逐点向量。最后将不同特征传播层的输出整合并馈送至卷积运算中,通过变换特征获得对象内每个点云的准确预测。
图5 多维度多层级特征分割网络的架构图Fig.5 Architecture of a multi-dimensional multi-layer features segmentation network
为验证本文网络在点云分类与分割任务中的性能,选择标准数据集ModelNet40(Wu等,2015)和ShapeNet(Chang等,2015)对多维度多层级神经网络(MM-Net)的性能进行评估,并与当前最新的研究进行对比。
在多维度多层级神经网络(MM-Net)中,选择Adam作为训练中的优化算法。在分类和分割实验中,将batchsize分别定为32和24,设定初始学习率为0.001,每30个epochs衰减1/2学习率,设置batchnorm为0.6,并以每20个epochs衰减0.5。所有实验都在NVIDIA GTX 2080 GPU上进行,并通过pytorch编写训练和测试代码。
选择基准数据集ModelNet40测试多维度多层级特征分类网络(MM-Net-C)的有效性。该数据集包含12 311个计算机辅助设计(computer aided design,CAD)模型,分为40类。实验时,将ModelNet40数据集分为两部分,训练阶段9 843个,测试阶段2 468个。同时在每一CAD表面均匀采样1 024个点,并且仅将3维坐标作为点的原始属性输入网络。另一方面,在增强策略中,在[-0.66,1.5]范围内设置随机各向异性缩放和[-0.2,0.2]范围内的平移,选定dropout为50%。在测试过程中,类似于PointNet等研究,经由随机缩放做10次投票测试,随后对结果进行平均以获得最后预测。
当前点云分类领域中各先进方法在ModelNet40 数据集的分类准确率(accuracy,Acc)如表1所示。其中,pnt表示仅输入点云坐标,pnt和nor表示输入点云的坐标和法向量。
从表1可以看出,MM-Net-C在准确度指标上表现比其他方法更好,较基于pnt的DGCNN 和RS-CNN方法提高了1.9%和0.5%;较基于pnt和nor的PAT、PointConv和PointASNL方法提高了2.4%、1.6%和0.9%。即使是一些方法输入了更多的点进行训练,MM-Net-C的准确率依然较高,比PointNet++(5 k)和SO-Net(5 k)方法分别提高了2.2%和0.7%。实验结果表明,本文模型不仅提高了准确性,还避免了较大的计算量。
为了验证MM-Net-C的网络复杂度,与一些先进方法进行对比,结果如表2所示。可以看出,MM-Net-C依靠较少的复杂度,取得了更优的效果。与PointCNN方法(8.20 M,91.7%)相比,多维度多层级特征分类网络参数量仅约为其1/8,而正确率却提高了2.4%;与RS-CNN(1.41 M,93.6%)相比,MM-Net-C参数量降低了0.33 M,而正确率却提高了0.5%。实验结果表明MM-Net-C具有较少的参数,更低的计算成本,实现了更高的分类精度。
表1 不同方法在ModelNet40 数据集的分类准确率比较Table 1 Comparison of classification accuracy on ModelNet40 dataset among different methods
表2 ModelNet40 数据集的分类复杂度比较Table 2 Comparison of the classification complexity on ModelNet40 dataset
为验证多维度多层级特征分割网络(MM-Net-S)的性能,在ShapeNet分割数据集上进行实验。ShapeNet数据集由16 881个3D对象构成,包括16个不同的类别,有50个形状被分别注释,每个形状有 2 6 个部件。在该项分割任务中,预定义ShapeNet数据集中的每个点对应的形状类别标签。与PointNet策略数据处理操作相同,将ShapeNet数据集划分为训练对象(12 137个)、验证对象(1 870个)和测试对象(2 874个),并且单个形状为2 048个点。选择平均交并比(mean intersection over union,mIoU)作为所有形状的评估指标,实验结果如表3所示。可以看出,在ShapeNet分割数据集上,与当前优秀的方法进行对比, MM-Net-S达到了最佳效果。与DGCNN、SO-CNN和A-CNN相比,分割准确率分别提高了1.4%、0.8%和0.4%,表明MM-Net-S能够有效区分不同形状的类别,例如“包”、“帽子”、“轿车”、“椅子”、“摩托车”、“杯子”。在Shape-Net分割数据集中,“包”和“帽子”是点云形状构成比较简单的对象,MM-Net-S相比其他方法表现的更好,因为MM-Net-S同时考虑到了局部与全局的关系。对其他比较复杂的形状,例如“轿车”和“摩托车”都拥有更多的类别,同时这些类别更小,类别与类别之间差异较小,MM-Net-S同样能够很好地找出类别之间存在的微小差异,实现类别的正确分割。这样的优势,归功于本文网络中的多维度特征修正与融合模块(MDCF),该模块能够在多维度探索微小类别内的边缘差异。图6展示了MM-Net-S在ShapeNet分割数据集的可视化结果。从这些结果可以发现,即使每个对象中的类别构成较为复杂,MM-Net-S依旧能够很好地将其分割出来。
多维度特征修正与融合模块(MDCF)和多层级特征衔接模块(MLFA)是多维度多层级神经网络(MM-Net)的核心。为了确定每一模块在网络中存在的必要性,在ModelNet40基准数据集上评估不同模块的性能。
各模块消融实验的结果如表4所示。可以看出,基线模型的准确率为90.1%。RS-CNN(*)是另一个参考模型,由RS-CNN修改而成,仅有双层的共享多层感知机,准确率为92.0%。基线模型装配多维度特征修正与融合模块(MDCF)后,准确率为93.3%,相较其基准模型提高了3.2%。RS-CNN(*)配备多层级特征衔接模块(MLFA)后,准确率为93.1%,相较RS-CNN(*)提高了1.1%。基线模型同时装配MDCF和MLFA模块后,正确率为94.1%,相较其基准模型提高了4.0%。实验结果表明,添加MDCF或MLFA模块对点云分析任务都能够大幅提高模型的准确率。同时也说明MDCF模块利用丰富的逐点特征与潜在的局部特征相修正并融合,能够更好地提高网络对局部区域内形状信息的挖掘。而MLFA模块能够把握全局范围内的上下文信息,强化不同层级之间存在的远程依赖联系,有效加强了模型处理复杂形状的鲁棒性。同时装配MDCF和MLFA模块的效果最优,能够考虑局部形状特征与全局上下文联系,验证了二者在MM-Net中的重要性。
表3 ShapeNet 数据集的分割准确率比较Table 3 Comparison of segmentation accuracy of ShapeNet dataset /%
图6 多维度多层级特征分割网络在ShapeNet数据集的可视化结果Fig.6 Visualization results of a multi-dimensional multi-layer features segmentation network on ShapeNet dataset ((a)airplane;(b)bag;(c)cap;(d)car;(e)chair;(f)earphone;(g)guitar;(h)knife;(i)lamp;(j)lap;(k)motorbike;(l)mug;(m)pistol;(n)rocket;(o)skate;(p)table)
表4 模块在ModelNet40 数据集上的消融实验Table 4 Ablation experiments with modules onModelNet40 dataset /%
表5是对多维度特征修正与融合模块(MDCF)是否需要设计不同维度问题进行相关实验的结果。可以看出,在相同维度条件下,MM-Net比RS-CNN表现得更加优秀。同时,在不同维度下,MM-Net的准确率也不同,原因是3个维度下的MDCF模块能够合理地从点云数据集中构建不同范围的学习区域,并自适应地从这些区域范围中挖掘模型所需的形状信息。
表5 在ModelNet40 数据集上对MDCF模块维度的消融实验Table 5 Ablation experiments on ModelNet40 dataset for dimensions in the multi-dimensional feature correction and fusion module
表6是在ModelNet40 数据集上对多层级特征衔接(MLFA)模块选择不同层级对整体网络准确率的消融实验结果。可以发现,当选择3层层级结构设计时,模型实现了最佳的精度94.1%,与双层设计(92.8%)相比,提高了1.3%。但进一步增加MLFA模块的层级数后,模型准确率相较于3层设计下降了0.7%,原因是网络层级的加深导致模型在训练中学习形状的困难,降低了MLFA模块构建层间关联信息的能力。
表6 在ModelNet40 数据集上对MLFA模块层级的消融实验Table 6 Ablation experiments on ModelNet40 dataset for layers in the multi-layerfeature articulation module /%
本文提出一个以多维度特征修正与融合模块(MDCF)和多层级特征衔接模块(MLFA)为核心部件的多维度多层级神经网络(MM-Net),能够端到端且鲁棒地对不规则点云进行分析,弥补了现有方法未有效兼顾局部形状与全局形状的不足,缓解了缺乏逐点特征对模型学习局部形状的消极影响。在多维度特征修正与融合模块(MDCF)中,利用局部区域划分单元(LAD)得到点间几何关系与局部特征,并与逐点特征通过自适应方式进行修正与融合。MDCF模块整理了可靠的点间几何关系,并输出能够合理描述该区域的局部形状。同时,在多层级特征衔接模块(MLFA)中,利用层级间存在的关联性,识别出能够提高形状感知的层间上下文信息。通过跳跃连接的方式,合理利用了全局特征,减少了梯度消失的影响。另一方面,也加快层级之间的信息交互,进而大幅提高了对错误形状的鲁棒性。最后设计了两种能够分别处理分类与分割任务的网络架构MM-Net-C和MM-Net-S。实验结果表明,本文提出的多维度多层级神经网络(MM-Net),在参数较少的优势下,实现了较高的正确率。
在未来的工作中,将进一步挖掘网络的鲁棒性,在不影响准确率和参数量的情况下,有效处理富有噪声的点云数据,缓解现实环境中存在的点云异常值难以区分并处理的问题,以实现在遥感和自主驾驶等领域对相关场景进行解析的应用。