基于多尺度动态图卷积网络的3D点云分类

2021-05-14 03:58梁振明翟正利
计算机应用与软件 2021年5期
关键词:卷积神经网络建模

梁振明 翟正利 周 炜

(青岛理工大学信息与控制工程学院 山东 青岛 266520)

0 引 言

3D点云数据是一种非常重要的空间几何型数据,是一种无层次不规则的数据形式,一般用来构建表示立体几何物体的表面形状,同时点云数据也是激光雷达、3D传感器和立体扫描仪等设备生成数据的原始表现形式。近年来,随着自动驾驶、VR、AR等技术的发展,对点云数据的高效处理变得越来越重要。传统的点云数据分类方法是通过人工特征工程提取数据点的属性特征,建立数据点局部特征描述子,用来捕获数据点的部分空间几何信息。但是由于手工方法无法完全捕捉到三维点云数据的完整特征,因此分类效果一直不理想。近年来,深度学习技术在图像识别、自然语言处理等领域取得了非常大的成功,使端到端的机器学习和模式识别技术迈向新的台阶。深度学习算法具有强大的特征提取与特征表达能力,能够克服传统机器学习中繁杂的人工特征工程预处理过程、自动地识别和提取训练数据背后潜在的特征信息,并从中学习其特征规律用于建模。诸多研究人员利用深度学习技术对3D点云数据进行分类建模,例如:将3D点云数据投影成2D图像,再利用常规卷积神经网络CNN模型对其进行识别等。然而基于传统深度学习方法的3D点云建模方式都无法有效地捕捉数据点之间的空间几何信息,并且建模过程复杂,对内存资源消耗很大,因此更有效且适用性更强的3D点云数据建模方法一直以来都是热门研究课题之一。

传统深度学习算法对图像、语音等数据的处理方式是将其简化为多维数组或多维向量等网格型数据形式(即张量),然后利用卷积神经网络(Convolutional Neural Networks,CNN)或循环神经网络(Recurrent Neural Networks,RNN)对其进行识别与建模。对于这种能够简化为张量形式表示的数据,称其为“欧几里得域”数据[1]。深度学习的强大之处在于能够高效地处理欧几里得域数据。然而现实生活中有很多数据是不符合欧几里得域的,例如:电子商务数据、社交网络数据和蛋白质分子结构等,这些数据都无法简单地简化为张量形式表示,因此类似这种具有空间结构和空间连接关系的数据被称为“非欧几里得域”数据。3D点云数据就属于非欧几里得域数据,无法将其简单地转换为张量形式表示,因此传统深度学习算法对3D点云数据的建模处理具有一定的局限性,处理效果不佳。

图作为一种特殊形式的数据结构类型,其结构形式包含了丰富的应用价值,图结构数据主要由节点和连接节点的边组成,节点包含了数据的属性特征,边表示了节点间的依赖关系。对于非欧几里得域数据的有效表示,图结构表现出巨大的适用性和应用价值,因此利用图结构结合深度学习技术对点云数据建模的方法,近来得到越来越多的关注,但同时也面临着诸多的挑战。

1 相关背景

1.1 点云分类研究历程

对于3D点云数据的建模任务,一般与传统深度学习中对2D图像数据的处理方式类似,可以分为点的分类、分割和匹配等任务。对点云数据的建模研究历程可以以PointNet[2]模型为界线,分为前后两个不同的时期:前PointNet时期和后PointNet时期。

前PointNet时期对点云数据的处理方式主要以人工特征工程和体素化预处理为主,如:通过人为手工标注,建立数据点局部特征描述子,使模型可以获得数据点的部分空间几何属性的处理方法[3];将3D点云数据投影成2D图像,再利用常规CNN模型进行处理的建模方法[4];利用体素化、网格化等技术将点云数据体素化为空间连续的3D型数据,再通过3D卷积神经网络处理的分类方法[5]等。然而基于人工特征工程的处理方法受人为误差因素限制,对3D点云数据的建模效果较差;基于投影的分类算法丢失了点云数据大量的空间几何特性,无法充分体现3D点云的价值信息;基于体素化处理的建模算法虽然能尽量保留点云数据整体的空间几何信息,但对内存开销很大,处理过程效率很低。因此上述方法都需要对点云数据进行一定的简化或抽象等预处理才能输入到模型,势必会造成一定的量化误差,丢失点云数据部分内部细节特征,从而影响模型的表达效果,无法高效且合理地对3D点云数据进行处理和建模。

PointNet是一个具有开创性意义的3D点云建模模型,它无须对点云数据进行预处理,可直接将原始无规则的点云数据作为模型输入,通过对单个数据点的分析,最终实现对数据整体的分类目标。PointNet将3D点云数据视为一组孤立的数据点的集合,首先利用两个空间变换网络,将原始点云旋转到一个易于分割的角度;然后再对数据点的坐标进行旋转对齐,在属性特征层面上对数据进行空间变换,使相似特征位置相近;最后通过一个全局最大池化层提取全局特征信息用于分类。整个过程既保证提取了所有数据点的近似全局特征,又保证了数据点的交换不变性和旋转不变性特点,验证实验证明了PointNet具有良好的表现力和高效性,比之前模型的表现效果都要好。

由于PointNet模型已经证明,直接对原始3D点云数据进行处理效果会更好,因此一些类似模型相继被提出,例如:加入局部邻接节点集合概念,捕捉更多局部特征的PointNet++模型[6];利用多层堆栈前馈网络生成连续性加权卷积核,提高图结构数据卷积效果的动态卷积模型[7];应用边卷积操作捕获邻接节点与中心节点连接边局部关系的动态图卷积网络模型[8]等。

1.2 图卷积神经网络

传统机器学习方法对图结构数据的处理,一般将其映射为简单的实向量表示,即对图结构进行压缩,但是这种处理方式会破坏图数据的内部结构联系,丢失部分空间结构信息,如丢失节点间的拓扑依赖关系等,而丢失的信息在某些特定的建模任务中可能十分重要,因此更合理的图数据建模方法一直是数据处理领域的研究热点。

2009年Scarselli等[9]提出了图神经网络(Graph Neural Networks,GNN)模型,GNN模型是基于信息传递机制的监督型网络模型,不同图节点之间通过相互连接的边进行信息交互,更新各自的状态直至全图结构达到一个稳定的状态,然后综合各个节点的状态作为图神经网络模型最终的输出,同时引入相应的学习算法对GNN模型的参数进行估计。GNN模型将图中的每个节点都视为一个概念目标,节点之间的连接边表示两个目标之间的依赖关系,因此每一个概念目标的表示都由其自身特征及与其相关联的概念目标的特征共同构成,即每个节点的状态向量都由其自身状态信息及其邻接点状态信息共同构成:

xv=fw(lv,lN[v],xN[v],lE[v])

(1)

式中:xv为节点v状态向量;lv表示节点v的属性标签;N[v]表示节点v邻接节点的集合;E[v]表示与节点v连接的边的集合;fw表示非线性变换函数。

图卷积神经网络(Graph Convolutional Networks,GCN)是卷积神经网络CNN与图神经网络GNN的结合,主要借助卷积神经网络中卷积操作的概念,对图结构数据的属性特征进行类卷积(Convolution-like)变换,从而增强GNN网络模型的参数共享能力。目前,图卷积神经网络模型主要分为两类:基于谱方法(Spectral-based)的图卷积网络模型[10]和基于时空域(Spatial-based)的图卷积网络模型[11]。

1.3 消息传递机制

由于图神经网络模型是将图结构分解为若干图节点信息的聚合,因此整体图结构数据的特征信息可以表示成所有图节点特征信息的集合,即:X={xi}i∈N⊆RN×D。消息传递机制[12]概括了基于时空域卷积神经网络模型的主要核心思想,如图1所示。

图1 GCN消息传递机制示意图

节点之间通过连接边进行信息交互与传递,并通过特定的信息传递函数将节点以及边之间的特征信息在网络不同层之间进行传递,然后通过一个全局变换函数对全局信息进行维度变换,得到模型的最终输出。数学形式可以表示为:

(2)

GraphSAGE模型[13]通过引入聚合函数概念,对消息传递机制进行了实质性的总结,提出了基于时空域图卷积网络模型统一的表示形式:

Gl+1=Conv(Gl,ωl)=

(3)

(4)

式中:ωl表示第l层网络的学习参数;aggregate()表示信息聚合函数;update()表示全局变换函数;即GCN网络第l+1层的特征表示的输入是第l层特征卷积变换过程的输出。

2 模型设计

2.1 最远点采样

最远点采样(Farthest Point Sampling,FPS)方法是图结构数据中常见的节点采样方法之一,也是点云建模任务中常用的下采样方法之一。FPS算法的主要思想为:首先在整体点云数据集中随机抽取一个数据点作为初始点,然后在剩余的数据点集中选取距离初始点欧氏距离最远的点,作为第二个选取点并放入采样集中,依次迭代,直至达到采样数据点的数量要求。最远点采样方法能够选取一系列物体表征的代表点,以少代多地表示物体的整体信息,能够有效地降低点云数据的整体数量,降低分类模型的计算量,且不改变物体的整体语义信息,即FPS采用方法只会降低3D点云物体的分辨率和解析度,不会改变物体的整体形状信息,因此在点云分类等粗粒度建模任务中,最远点采样是非常有效的降采样方法,可以降低模型计算复杂度,加快模型训练,且不过多降低模型的分类准确度。在现实的3D点云建模任务中,FPS降采样方法表现出比图数据建模中常用的随机采样方法更好的实验效果,本文3D点云分类模型中也将使用FPS降采样方法对点云数据进行数据点降采样。

2.2 k-NN Graph

k最邻近聚簇(k-NN Graph)算法是描述点云数据中不同数据点之间空间位置关系的表示方法,k-NN Graph算法利用了k最邻近(k nearest neighborhood,k-NN)算法的思想,将3D点云数据中的每一个数据点当作一个中心节点,然后根据其与剩余节点空间欧氏距离的远近程度,选取前k个与之位置关系最近的点,作为其邻接节点,加入局部邻接区域的概念,对同一局部区域的数据点聚集成簇,便于点云数据局部特征的提取。对不同k值的定义也实现了对3D点云数据的动态采样,有利于增强图神经网络模型的适用性和泛化性。对于每一个中心节点来说,与之越相近的节点,其属性特征与之越相似,因此基于k-NN Graph算法的局部特征聚合方式,更有利于突出局部代表性特征信息,更有利于局部特征的信息表达。

2.3 边卷积操作

如图2所示,边卷积(EdgeConv) 操作与常规图卷积网络模型中卷积操作的区别在于,它并不是直接将邻接节点的特性信息进行聚合,而是使用经过非线性变换提取的两个互连节点之间连接边的特征代替两个互连节点特征的综合,然后再对多条与中心节点相连接边的特征信息进行聚合,以此来表示该中心节点的综合特征信息。其数学表达式为:

(5)

式中:ei,j=MLP(xi,xj-xi)表示节点间连接边的属性特征;MLP表示含有非线性变换函数的多层前馈网络;xj-xi表示邻接节点与中心节点的特征差异。

图2 边卷积操作示意图

2.4 模型架构

本文提出适用于3D点云分类任务的多尺度动态图卷积网络模型,首先利用最远点采样算法FPS对点云数据整体进行降采样,减少模型输入的数据量,降低模型的计算复杂度;然后分别利用三种不同尺度的k-NN Graph层对点云数据进行局部划分,并利用不同尺度的边卷积层对局部特征进行提取和聚合,最后通过一个全局最大池化层提取全局语义信息用于分类。

具体而言,首先利用FPS算法对每一个点云物体采样512个特征点作为模型的输入,然后分别利用k取20、30、40三种不同的k-NN Graph算法和边卷积操作提取不同尺度的邻接域特征信息,三个分支并行且各个分支深度不同,对局部特征进行不同维度、不同深度的非线性变换,使其具备更强大的适应性和表达能力,然后在三个分支的末端将不同尺度的属性特征进行拼接,得到维度更高、局部细节特征更丰富的特征张量表示,最后经过两个多层MLP网络和一个全局最大池化层进行分类,模型整体架构如图3所示。

图3 多尺度动态图卷积网络模型架构

3 实 验

本文3D点云分类实验所采用的数据集为ModelNet10和ModelNet40数据集[14]。ModelNet系列数据集是一系列网格化的3D CAD模型。ModelNet40数据集包含了40类物体共12 311个3D CAD模型,其中9 843个模型为训练集用于模型训练,2 468个模型为测试集用于模型性能测试;ModelNet10数据集是ModelNet40数据集的一个子集,共包含10类物体4 900个3D CAD模型,其中3 991个模型为训练集,909个模型为测试集。按照PointNet模型对ModelNet数据集预处理方式一样的方法对ModelNet10和ModelNet40数据集进行预处理:首先对每一个网格化3D CAD物体,在其表面均匀地采样1 024个数据点,对于每一个数据点仅保留其(X,Y,Z)空间坐标信息,丢弃其表面网格化信息及其他附属特征信息,然后对所有采样数据点进行一定的旋转和变换,并进行标准化处理。

本文采用的多尺度动态图卷积网络3D点云分类模型的参数设置与PointNet等成熟点云分类模型参数设置相一致,对于每一个边卷积EdgeConv层和全连接MLP层都使用ReLU激活函数对特征参数进行非线性激活,并在每一层都使用批标准化(Batch Normalization,BN)操作对输入数据进行标准化预处理;参数优化过程使用Adam优化函数,其调整动量设置为0.9,初始学习率设置为0.001,并设置学习率动态衰减,每经过20个训练回合学习率衰减为原来的一半;批训练的批次大小为16,训练回合数为100。借助Pytorch Geometric深度学习框架[15]对本文模型进行构建,并配合NVIDIA GTX 1060 GPU对模型进行了训练测试,实验结果如图4所示。

图4 模型分类准确度

实验对本文所提出的多尺度动态图卷积网络点云分类模型,分别在ModelNet10和ModelNet40数据集进行了验证测试。实验结果显示,对于ModelNet10数据集的分类任务,本文模型在经过大约70个训练回合之后,分类准确率几乎都能保证在94%以上,并且当100回合训练结束时,模型的整体分类准确率能达到95.15%;对于ModelNet40数据集的分类任务,本文模型在经过大约37个训练回合之后,分类准确率几乎都能保证在90%以上,并且当100回合训练结束时,模型的整体测试分类准确率能达到91.79%,并且仍有上升的趋势。

除此之外,将本文模型的分类准确率和模型生成参数的大小与当前众多成熟的3D点云分类模型做了性能对比,结果如表1所示。在分类准确率方面,本文提出的多尺度动态图卷积网络模型已经达到与当前众多成熟模型较为一致的水平;在生成参数方面,本文模型较之前的众多模型实现了质的飞跃,模型生成的参数更少,计算复杂度更低。

表1 分类准确度与模型参数量对比表

4 结 语

本文提出了一种适用于3D点云分类任务的多尺度动态图卷积网络模型。首先利用最远点采样方法对点云数据整体进行降采样;然后分别利用三种不同尺度的k最邻近聚簇层对点云数据进行局部划分,确定不同范围的局部特征区域,并利用不同尺度、不同深度的边卷积操作对局部特征进行提取和聚合;然后将不同尺度的局部特征进行拼接,并通过多层全连接网络层对拼接的不同尺度局部信息进行整体维度变换;最后通过一个全局最大池化层总结和提取全局语义信息用于分类。

为了验证本文模型的分类有效性,将该模型在ModelNet10和ModelNet40数据集上进行了实验验证。实验结果表明,本文提出的多尺度动态图卷积网络模型在3D点云数据的分类准确度和模型复杂度上都实现了非常良好的效果在分类准确率方面,本文模型已经达到与当前众多成熟模型分类性能一致的水平;在生成参数方面,本文模型生成的参数更少,计算复杂度更低。

猜你喜欢
卷积神经网络建模
基于全卷积神经网络的猪背膘厚快速准确测定
基于神经网络的船舶电力系统故障诊断方法
MIV-PSO-BP神经网络用户热负荷预测
物理建模在教与学实践中的应用
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
在经历中发现在探究中建模
思维建模在连续型随机变量中的应用