基于图卷积网络的三维点云分类分割模型 下载: 1227次
1 引言
随着3D传感器和相关软件的发展,越来越多的图像数据开始以三维数据的形式呈现,比如激光雷达测量技术(LiDAR)[1]可以利用激光束将物体的多种信息(包含三维数据)作数据化处理。三维数据的一个重要表现形式就是三维点云数据,三维点云是空间中一组点的集合,每个点的坐标、颜色、纹理等信息组成一个向量,用以表示物体信息。三维点云没有结构化的表示形式,具有不对称性、排列顺序多样化等特点,所以能应用于二维图像数据的神经网络(如卷积神经网络)并不适用于三维点云数据。
基于三维点云的这些特点,对三维点云数据有多种不同的处理方式。文献[ 2-4]针对三维点云的某类特征,构建相应的滤波器,并对点云特征进行匹配,这种方式下即使点云发生某些刚体变换,滤波器仍具有一定的鲁棒性,缺点是该方式不能涵盖三维点云数据的全部有效信息,普适性差,因此在分类与分割任务中其准确度仍有待提高。文献[ 5-7]采用的方式是将三维点云数据转换成相对规整的数据(网格化或者图像化),然后使用传统形式的神经网络对其进行处理,然而用这种方式得到的数据在数据量上往往高于转换之前,并且可能还会对物体的结构信息造成损失,除此之外神经网络处理转换后数据的计算成本也比较高,这也限制了转换后数据的精度。而第三种方式是直接使用三维点云数据,不仅可以避免特征匹配和数据转换过程中的复杂性,还能保留比较完善的原始特征信息,文献[ 8]中提出的深度学习网络模型PointNet,可以完成分类任务以及分割任务,其分类分割精度相较于前两种方式也有所提高。
相较于第一、二种方式,PointNet模型能更好地处理三维点云数据,但是该模型只针对孤立点进行特征提取运算,而忽略了三维点云数据中点与点之间在几何上的联系。本文针对此问题,利用图卷积提取点云结构的局部信息,在图卷积网络模型的基础上设计了神经网络模型GraphPNet,这一模型同样适用于原始三维点云数据,用图形结构对点云内在的局部邻域结构进行编码,得到一个能反映点与点之间几何关联的表示,然后使用图形信号处理(GSP)进行图上卷积或者其他操作[9-10],从而得到有关该点与附近点之间组成的区域的特征信息,最后将该特征信息与孤立点的特征信息融合,得到既包含三维点云邻域几何结构信息又包含三维点云中节点信息的特征描述,从而提高分类与分割任务的准确率。
2 算法描述
本研究对PointNet模型进行了改进,设计出新的神经网络模型GraphPNet(
2.1 基于图卷积的三维点云分类网络模型设计
GraphPNet的分类网络模型架构包括
处理后的数据使用两层结构GraphLayer和ConvLayer进行计算。GraphLayer利用图结构和三维点云数据得到局部结构信息,同时为了保留点云中每个单独点的特征,使用ConvLayer层来提取针对孤立点的特征信息,每提取一次点特征信息,便将两部分信息进行融合,使得到的特征同时包含局部结构信息和孤立点的特征信息,经过两次特征提取和融合后,最后使用GraphLayer层计算融合后的信息,得到n×1024维的特征矩阵。这样共享网络最终得到一组GraphLayer和ConvLayer的系数,使该部分网络输出的特征中既包含每个点的特征又包含邻域特征。
最后将输出的特征矩阵使用全局池化层聚合得到三维点云的全局特征描述,经由三个全连接层计算后,最后生成一个一维向量s,用以表示其在ModelNet40数据集所有类别中所对应的类。
2.1.1 ConvLayer卷积层和GraphLayer卷积层
对于点云中的每一个节点Pi(i=1,2,…,n),其坐标值为(xi,yi,zi),即原始的输入维度为n×3,设h表示ConvLayer卷积层的映射函数,这样点云中的每个点的特征都可以用h(Pi)来得到,这样由每一层ConvLayer卷积层得到的特征可表示为
式中:σ表示非线性激活函数,本文中使用ReLU函数。ConvLayer层通过函数h对每个点进行映射操作,得到每一个点的特征。
图神经网络是对传统神经网络模型如卷积神经网络(CNN)[11]的推广,网络模型的输入数据从形式规则的数据扩展到具有其他表示形式的不规则数据。图神经网络主要有两种构建方法[12]:空间方法和谱方法。空间方法[13]是针对图中顶点构造神经网络内核,将图中的顶点与相邻节点的特征进行聚合,其缺点是对每一个节点来说,在一个固定的尺度内,其邻点数目会根据三维点云的稠密度不同而有所不同,故基于这种内核进行运算时不同节点会有不同的感受野,所以其处理方法也需要具有针对性。除此之外,这种方法可能无法提取足够多的特征信息。谱法是通过提供在频域中定义的图上局部算子[9],在谱图理论的支持下,利用图信号处理中的滤波器来定义神经网络的内核,这种方式的内核具有良好的滤波能力[14],可以在运算过程中去除信号中的噪声信号。谱法图卷积网络能够对局部点云几何结构中的点进行运算,得到节点及其相邻节点的结构信息,本文使用谱法图卷积网络模型来构建GraphLayer卷积层。
在GraphLayer层输入数据前,不仅需要将点云数据转换成无向图结构,还需要利用该结构计算得到关于节点以及相邻节点的特征信息和局部结构信息。对于三维点云中的n个节点,记节点为Pi(i=1,2,…,n),图G由k近邻[15](kNN)原则得到,根据节点之间的空间距离,将空间中距离最近的k个节点{Pj|j=1,2,…,k}以及节点Pi组成局部几何结构。对于图G={V,E,W}:V是图G点的集合,代表n个数据点;E是图G中边的集合,若节点集中的点Pi和Pj组成的边(Pi,Pj)满足{(Pi,Pj)|Pj∈{Pj|j=1,2,…,k}},则(Pi,Pj)∈E;W是带权重的邻接矩阵,其权重通常取节点Pi和节点Pj的欧几里得距离或网络层输出的特征在空间中的距离,设Wi,j∈W表示连接节点Pi和节点Pj的边的权重,W的计算公式为
其中Pi和Pj是节点i和节点j的三维坐标,ω是非零常数。
GraphLayer的输入包括:1)节点的特征描述。对于一个有n个节点的图结构,GraphLayer的每一层输入是n×Fin维的特征矩阵,输出是n×Fout维的特征矩阵,GraphLayer最原始的特征描述就是所有节点的坐标值(xi,yi,zi),i=1,2,…,n。2)三维点云构建无向图。通常用图G的Laplacian矩阵L=In-
定义GraphLayer的卷积核为Fη(L),这样对于输入的图信号X,谱图卷积可定义为
其中L可以分解为L=UΛUT,U由L的标准正交特征向量组成,U=[μ1,μ2,…,μn],Λ由L的特征值组成,Λ=diag(λ1,λ2,…,λn),可以得到y=UFη(Λ)
为了降低计算复杂度,利用Chebyshev多项式,得到图卷积核Fη(Λ)的近似表示。其中Chebyshev多项式为
对卷积核Fη(Λ)进行多项式近似,即
式中:Tt(
若某GraphLayer层得到来自上一层GraphLayer层输出的三维点云的特征信息为Y,对信号Y的卷积运算可表示为
式中:
ConvLayer层与GrphLayer层的特征融合可以表示为
其中Y'表示来自该ConvLayer层的前一层ConvLayer的特征矩阵。
kNN图结构、Laplacian矩阵等相关数据都是在神经网络前向传播时构建的,不需要进行预先计算,同时Laplacian矩阵L在GraphPNet的所有GraphLayer中共享。GraphLayer的卷积核Fη(Λ)的阶数K代表了卷积核运算时感受野的范围,如
2.1.2 全局池化层
全局池化层是GraphPNet分类网络的一个重要部分,最后一层GraphLayer卷积层输出的特征是整个三维点云特征的整体表示,既包含了三维点云邻域的结构信息,也包含了每个点的信息。这种情况下仍然要保证最后输出的全局特征是与三维点云的顺序是无关的,所以可通过比较所有输出的特征点来计算全局特征,本文沿用了最大池化层,不仅保证了最后输出的特征信息是在最后一层GraphLayer层输出的所有特征中最具代表性的特征信息,同时也降低了GraphPNet模型的计算复杂度。
图 2. 阶数为2时,GraphLayer汇集目标节点Pi的邻域信息
Fig. 2. Neighborhood information of the target node Pi at K=2 aggregated by GraphLayer
2.2 基于图卷积的三维点云分割网络模型设计
本文的分割网络架构包括
3 实验以及结果分析
3.1 ModelNet40数据集上的三维点云分类网络实验
为了验证分类模型的分类效果,本研究在ModelNet40[5]数据集上进行训练和评估。ModelNet40有40个类别共12311个CAD模型,其中有9842个物体用于训练模型,2469个物体用于模型检验,该数据集的每个物体包含2048个点的三维坐标,即每一个物体用大小为2048×3的矩阵表示,本文对ModelNet40中部分点云文件进行可视化处理,可视化图见
分类实验的系统环境为Ubuntu 16.04 LTS,GPU配置为NVIDIAGeForceGTX1080Ti,实验环境为Python 3.6.8,Pytorch0.4.0。在训练时,将所有三维点云数据作归一化处理[16]。为了增强神经网络的鲁棒性,将点云沿着坐标轴随机旋转以获得新的点云数据。
在本文的分类实验中,构建kNN图时的初始k值取30,批处理大小为32,在网络参数进行更新时使用随机梯度下降(SGD)进行优化,初始学习率设为0.001,动量设为0.9。在共享网络中所有的GraphLayer层和ConvLayer层的后面都加入批量正则化(BN),而且除了最后的GraphLayer层外,其他卷积层使用ReLU函数作为激活函数。分类网络最后采用NLLloss函数作为损失函数,整个模型一共训练了35轮。
GraphPNet在ModelNet40数据集上的准确率与本地复现的其他三个三维点云分类网络3D ShapeNets、VoxNet以及PointNet的分类精度进行了对比,使用平均分类精度(mean class accuracy)和总体分类精度(overall accuracy)来评估性能网络,结果如
表 1. 分类实验准确率
Table 1. Classification experimental accuracy
|
由
为了验证kNN图中k取不同值对分类结果的影响,本文对比了不同k值下模型的分类精度,见
由
表 2. 不同k值下的准确率
Table 2. Accuracy at different values k
|
为了验证GraphLayer的阶数K对精确度的影响,本文构图时保持kNN图的k=40,取不同的GraphLaye层的阶数K,比较其对准确率的影响,实验结果如
表 3. 不同阶数K下的准确率
Table 3. Accuracy at different orders K
|
由
3.2 ShapeNet数据集上的三维点云分割网络实验
物体分割任务是将三维点云文件中的每个点分配到相应的部分类别(比如桌子腿、机翼)中。本文在shapenetcore_partanno_segmentation_benchmark数据集上进行GraphPNet分割网络的训练与评估,该数据集包含16个类别的17000个形状,多数对象都有2~5个部分被标记[17]。每个节点的部分类别标签直接标记在该节点上,本文对每个形状随机取2048个节点。
分割网络的系统配置和实验环境与分类网络相同。在训练时,点云数据同样作归一化处理,根据前文分类网络中构建kNN图时k取不同值对分类准确率的影响,k值取40,同时GraphLayer的阶数K取5,批处理的大小为24,网络参数使用随机梯度下降法进行优化,初始学习率设为0.001,动量设为0.9。分割实验的共享网络部分与分类实验采用一致的处理方式。分割实验采用NLLloss函数作为损失函数,整个模型一共训练了60轮。
三维点云的分割实质上等同于将三维点云中的每一个点对应到相应的类别,评估指标是平均交并比(mIoU)值,即对数据集S个类别里的每个物体C,计算所有形状的mIoU:对每一个物体中每一个点的分割结果,计算分割预测值和真实值的交并比(IoU)值。若其并集是空的,则将部分IoU计为1。对于每一个物体C,将所有点的IoU值进行平均,得到该物体的mIoU值。而对于某一个类别整体mIoU值的计算方式是将该类别所有物体的mIoU值取平均值。本文将分割网络与三种方法SyncSpecCNN[18]、PointNet以及文献[
17]提出的神经网络模型得到的mIoU值进行比较,结果如
通过
综合两个实验,本文提出的神经网络模型GraphPNet,在分类实验中弥补了PointNet模型对三维点云的局部特征提取不足的缺陷,并且对ModelNet40数据集的分类精确度也有所提高,总体精确度相较于PointNet提升了2%左右;在分割实验中,GraphPNet在ShapeNet数据集上进行训练评估,得到的每个类的mIoU值相较于PointNet也有不错的表现。由此证明GraphPNet网络在分类与分割实验中都是可行的。
表 4. ShapeNet数据集上分割的mIoU值
Table 4. mIoU values of segmentation on ShapeNet
|
4 结论
随着硬件设备的更新、移动设备网络传输技术的更新换代以及深度学习应用的推广,三维点云数据将会应用于越来越多的场景中。本文设计并实现了基于图卷积的三维点云分类与分割网络GraphPNet,通过直接对原始的三维点云进行处理,对点云的局部特征进行提取并将其与孤立点的特征进行融合,提高了网络的分类与分割能力。在对ModelNet40数据集的分类实验中,GraphPNet的分类准确率相较于PointNet提高了2%,分类效果较好。在ShapeNet数据集的分类分割实验中,GraphPNet也在大部分类别上表现出了很好的效果,但在某些类别上仍有待提高。
然而本文提出的网络还有很多问题需要解决,比如解决点云的密度不均匀的情况下如何对点云局部结构使用图卷积网络提取信息,如何实现点云的划分和图卷积卷积核复杂度的降低,对于较大三维点云的情况下如何减少计算量的问题等。
[1] 惠振阳, 程朋根, 官云兰, 等. 机载LiDAR点云滤波综述[J]. 激光与光电子学进展, 2018, 55(6): 060001.
[2] Ling H B, Jacobs D W. Shape classification using the inner-distance[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2007, 29(2): 286-299.
[3] Rusu RB, BlodowN, Marton ZC, et al.Aligning point cloud views using persistent feature histograms[C]∥2008 IEEE/RSJ International Conference on Intelligent Robots and Systems, September 22-26, 2008, Nice, France.New York: IEEE Press, 2008: 3384- 3391.
[4] AubryM, SchlickeweiU, CremersD. The wave kernel signature: a quantum mechanical approach to shape analysis[C]∥2011 IEEE International Conference on Computer Vision Workshops (ICCV Workshops), November 6-13, 2011, Barcelona, Spain. New York: IEEE Press, 2011: 1626- 1633.
[5] Wu ZR, Song SR, KhoslaA, et al.3DShapeNets: a deep representation for volumetric shapes[C]∥2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 7-12,2015, Boston, MA, USA. New York: IEEE Press, 2015: 1912- 1920.
[6] MaturanaD, SchererS. VoxNet: a 3DConvolutional Neural Network for real-time object recognition[C]∥2015 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), September 28-October 2, 2015, Hamburg, Germany. New York: IEEE Press, 2015: 922- 928.
[7] Qi CR, SuH, NießnerM, et al.Volumetric and multi-view CNNs for object classification on 3D data[C]∥2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 27-30,2016, Las Vegas, NV, USA.New York: IEEE Press, 2016: 5648- 5656.
[8] Charles RQ, SuH, Mo KC, et al.PointNet: deep learning on point sets for 3D classification and segmentation[C]∥2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), July 21-26, 2017, Honolulu, HI, USA. New York: IEEE Press, 2017: 77- 85.
[9] Shuman D I, Narang S K, Frossard P, et al. The emerging field of signal processing on graphs: extending high-dimensional data analysis to networks and other irregular domains[J]. IEEE Signal Processing Magazine, 2013, 30(3): 83-98.
[10] Sandryhaila A. Moura J M F. Big data analysis with signal processing on graphs: representation and processing of massive data sets with irregular structure[J]. IEEE Signal Processing Magazine, 2014, 31(5): 80-90.
[11] KrizhevskyA, SutskeverI, Hinton G E. Imagenet classification with deep convolutional neural networks[C]∥Proceedings of the 25 th International Conference on Neural Information Processing Systems , December 3-6, 2012, Lake Tahoe, Nevada, USA.NewYork: Curran Associates, Inc., 2012( 1): 1097- 1105.
[12] DefferrardM, BressonX, Vandergheynst P. Convolutional neural networks on graphs with fast localized spectral filtering[EB/OL]. ( 2017-02-05)[2019-12-20]. https:∥arxiv.org/abs/1606. 09375.
[13] BrunaJ, ZarembaW, SzlamA, et al. and locally connected networks on graphs[EB/OL]. ( 2014-05-21)[2019-12-20]. https:∥arxiv.org/abs/1312. 6203.
[14] JainA, Zamir AR, SavareseS, et al.Structural-RNN: deep learning on spatio-temporal graphs[C]∥2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 27-30, 2016, Las Vegas, NV, USA. New York: IEEE Press, 2016: 5308- 5317.
[15] AbeywickramaT, Cheema MA, Taniar D. K-nearest neighbors on road networks: a journey in experimentation and in-memoryimplementation[EB/OL]. ( 2016-08-10)[2019-12-20]. https:∥arxiv.org/abs/1601. 01549.
[16] Cignoni P, Callieri M, Corsini M, et al. MeshLab: an open-source mesh processing tool[J]. Computing, 2008, 1: 129-136.
[17] Yi L, Kim V G, Ceylan D, et al. A scalable active framework for region annotation in 3D shape collections[J]. ACM Transactions on Graphics, 2016, 35(6): 1-12.
[18] YiL, SuH, GuoX, et al.SyncSpecCNN: synchronized spectral CNN for 3D shape segmentation[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition(CVPR), July 21-26, 2017, Honolulu, HI, USA. New York: IEEE Press, 2017: 2282- 2290.
Article Outline
侯向丹, 于习欣, 刘洪普. 基于图卷积网络的三维点云分类分割模型[J]. 激光与光电子学进展, 2020, 57(18): 181019. Xiangdan Hou, Xixin Yu, Hongpu Liu. 3D Point Cloud Classification and Segmentation Model Based on Graph Convolutional Network[J]. Laser & Optoelectronics Progress, 2020, 57(18): 181019.