文章信息
- 高瑞贞, 王诗浩, 王皓乾, 张京军, 李志杰
- GAO Ruizhen, WANG Shihao, WANG Haoqian, ZHANG Jingjun, LI Zhijie
- 基于图注意力机制的三维点云感知
- 3D point cloud perception based on graph attention mechanism
- 中国测试, 2024, 50(7): 155-162
- CHINA MEASUREMENT & TEST, 2024, 50(7): 155-162
- http://dx.doi.org/10.11857/j.issn.1674-5124.2022060184
-
文章历史
- 收稿日期: 2022-06-25
- 收到修改稿日期: 2022-08-19
2. 河北新兴铸管股份有限公司,河北 邯郸 056300
2. Hebei Xinxing Casting Pipe Company Limited, Handan 056300, China
点云是一种三维的数据类型,其主要应用在机算机视觉、图形学和机器人学,得益于三维扫描和成像技术的快速发展,使得三维点云数据的获取更加简单,目前三维点云已经成为了三维模型重建和三维识别的主要数据来源[1-2]。但是传统的三维点云特征提取主要依赖于人工手动提取[3-7],而在实际的工程应用中点云数据稀疏性等因素会影响点云特征提取的效果,使得三维点云感知识别算法的性能无法满足实际应用需求。随着深度学习技术的快速发展,基于深度学习的三维点云技术在特征提取上取得了很好的效果。与传统的提取方法不同,深度学习是通过卷积和多层神经网络直接从原始数据上学习有效特征,并且在大数据驱动模式下卷积神经网络展示出了强大且高效的学习能力[8-9],逐渐被应用在点云的分割和分类领域。近年来,在基于深度学习的三维数据识别与感知方法中[10],直接处理点云数据的深度学习方法越来越受到国内外学者的重视,并且提出的网络模型的准确率也在逐渐提高,逐渐成为国内外研究热点。由于点云数据的不规则性和无序性,为了避免三维点云数据在转换时出现错误,有研究提出了PointNet[11-13]网络,该网络由多层感知机(MLP)与最大池化来直接提取点云数据中的抽象特征,该网络是直接处理点云数据方法的开端,它解决了在特征提取时因点云数据不规则性和无序性的缺点而带来的负面效果。PointNet的网络在构建时是很复杂的,为了能够降低模型的复杂度,白静等[14]在PointNet网络的基础上提出了一个轻量级的LightPointNet网络,该网络去除了复杂的仿射变换网络,并对网络的卷积层和全连接层的参数使用控制变量法进行优化,最终的LightPointNet的网络模型只有三个卷积层、一个池化层和一个全连接层,该网络使用了更少的模型参数达到了不低于PointNet的识别准确率。上述的网络在进行特征提取时都是对点云逐点提取的,这种方法没有考虑点与点之间的对应关系,而且也忽略了点云的局部特征,导致网络对点云局部特征的描述能力不足。为了提取到点云局部特征的结构以提高网络模型的识别效果,Qi等[15-16]又提出改进版本PointNet++网络,该网络采用分层网络结构克服了PointNet和LightPointNet中无法捕获局部特征的缺点,极大地提高了模型的识别性能。PointNet++网络提出之后被研究员们广泛应用,文献[17-20]就是将点云数据作为深度学习网络的数据集直接输入到网络中训练的,使得基于点云数据的深度学习网络模型越来越成熟。
PointNet++网络可以对点云数据不同尺度地提取局部特征,通过使用多层网络架构从而获取点云数据深层特征。该网络通过学习局部特征的上下文依赖,提高了网络的特征表达能力[20]。但是PointNet++网络往往会忽视不同邻域之间点云存在的差异所带来的问题[21],使目标分类精度下降。针对这一问题,基于PointNet++网络,本文提出了一种基于图注意力机制的新网络架构GA-PointNet++(graph attention PointNet++)用于点云数据特征提取。
1 算法框架 1.1 抽样集网络本文使用两层改进的抽样集(set abstraction layers)网络,通过融入图注意力机制,给予不同邻域之间点的注意力分数,分层提取点云的局部特征。网络的每一组set abstraction layers主要包括4个部分:采样层(sampling layer),分组层(grouping layer),图注意力层(graph attention layer)和特征提取层(feature extraction layer)。
首先,采样层针对输入的点云数据采用迭代最远点采样(farthest point sampling,FPS)的方式选取一组点集设定为局部领域的质心点。设输入数据点集为
其次,分组层对所选的质心点,在给定半径范围内通过球查询(Ball Query)方式,搜索
然后,图注意力层是通过融入的图注意力机制,通过建立点与点之间存在的关联性,设计不同点间的不同注意力权重,强调点与点间的自注意力和邻域注意力。
最后,使用特征提取层将具有点注意力的特征和局部点云数据特征进行特征提取,并进行特征融合编码成为特征向量。
抽样集网络总体结构如图2所示。采样层和分组层整体输入点云数据为
1.2 图注意力机制网络
点云数据中,点与点之间也存在关联性,在实际的应用场景中,点云中的样本数量会非常庞大,每一个点与其他所有点之间的权重分配会非常小,并且让每一个点都关注其他所有点会导致计算成本的飞速上升,本文既要考虑点云局部特征,又要考虑点与点之间的关联。
针对这一问题,本文使用最远采样方法和球查询方法提取出点云的局部结构。令
为给不同的邻域给予不同的注意,本文引入自注意机制和邻域注意机制来获取每个点对其邻域的注意系数,如图3所示。
其中,
图注意力网络总体结构如图4所示。
首先,对输入的点云数据的节点和边缘进行编码,由式(1)和式(2)定义:
$ {x'_i} = h\left( {{x_i},\theta } \right) $ | (1) |
$ {y'_{ij}} = h\left( {{y_{ij}},\theta } \right) $ | (2) |
式中,
非线性函数
其次,单层神经网络将输出自系数
$ {c_{ij}} = {\text{LeakyReLU}}\left( {h({{x'}_i},\theta ) + h({{y'}_{ij}},\theta )} \right) $ | (3) |
式中:
最后,使用softmax激活函数将所有相邻点的注意力系数归一化到每个点,由下式所示:
$ {\alpha _{ij}} = \frac{{\exp \left( {{c_{ij}}} \right)}}{{\displaystyle \sum\limits_{K \in {N_i}} {\exp \left( {{c_{ij}}} \right)} }} $ | (4) |
GALayer层输出每一个点的上下文注意力特征,将使用已进行归一化处理的注意力系数与点的边缘特征相编码,并输出一个基于图注意力的点云特征,由下式所示:
$ {\hat x_i} = f\left( {\sum\limits_{j \in {N_i}} {{\alpha _{ij}}{{y'}_{ij}}} } \right) $ | (5) |
其中,
本文所提出的GA-PointNet++网络的整体结构如图5所示,点云数据由最左端输入到网络中,经过两个set abstraction layers操作,将局部点云数据进行特征提取,最后通过全连接层处理,最终输出分类识别的结果。
2 实验及结果分析 2.1 数据集
本章实验采用ModelNet40[22]数据集,用来验证本文所提出的GA-PointNet++网络模型针对点云数据的分类有效性和分类精度。
ModelNet40数据集由Stanford发布,该数据集具有40个类别共12311个网格化标准CAD模型,选择其中的9843个模型作为训练集,剩余的2468个模型作为测试集。网络所输入的三维点云数据是ModelNet40原始模型在其外表面上进行均匀采样从而得到1024个点,同时将得到的点云数据均一化于一单位球面中。ModelNet40数据集数据量相差较大、物体种类较多,并且有些物体之间存在较为相似的部分,不易正确分类,例如花盆、植物等物体。随着物体种类增多,数据集的样本结构和信息复杂性有较大的提升,分类难度有较大提高。更能验证本章所提网络的性能和先进性。
2.2 参数设定实验系统环境为Ubuntu20.04,显卡配置为NIVIDIA GeForce GTX 1080Ti。实验环境为Python3.7,Tensorfolw-gpu1.13.0。
在本实验中,选用不同的batchsize值对最后的分类精度也会造成影响。batchsize值分别设置为4、8、16、32时,网络的分类准确性如图6所示。由于三维点云数据较为稀疏,当batchsize值设定为4时,网络模型的训练效果较差,无法有效地提高模型分类识别准确率。而随着batchsize值逐渐增大,网络模型的分类识别准确率也逐渐上升,当batchsize值提高为16时,网络模型的分类识别准确率达到最高,模型性能达到较为良好,但当batchsize值再次提高为32时,网络模型的分类识别准确率略有下降。因此本实验batchsize值设定为16,每个batch中包含1024个点。
2.3 实验结果曲线
本文所提出的GA-PointNet++网络基于ModelNet40数据集在上述计算机服务器平台下连续运行了2小时13分钟,随着网络迭代计算步数的增加,网络的识别精度逐渐增大,总计运行156100步迭代,在训练集中的识别准确率达到了94.8%,如图7所示。
同时网络的学习率也根据一定的衰减系数逐步降低,如图8所示。网络中的这些超参数通过训练和测试最终收敛到最优值。
随着网络迭代计算步数的提高,交叉熵损失函数值也将逐步减小,损失函数值越小则代表着网络预测目标对象的结果和实际结果间的偏离程度越小,如图9、图10所示。
此外,在展开网络训练之前,还必须设定一些其他基本的超参数。比如在参数更新时选择ADAM作为优化器,训练轮数为251轮,动量因子一般设定为0.9,初始学习率设定为0.001,网络中神经元的辍学率设置为0.5,这意味着每个神经元在训练过程中都有50%被随机丢弃可能性,辍学率的设置可以有效提高网络的鲁棒性。训练结束后,网络中各超参数如表1所示。
2.4 评价指标
本文使用PointNet系列网络的评价指标,使用总体准确率(overall accuracy)、单个类别准确率(accuracy)和平均分类准确率(mean class accuracy)作为评价指标,下式为总体准确率的计算公式:
$ {A_{\mathrm{O}}}=\frac{{E_{\mathrm{C}}}}{{E_{\mathrm{T}}}} $ | (6) |
式中:AO—— 总体准确率;
EC—— 正确分类样本数量;
ET—— 总体样本数量。
单个类别准确率的计算公式为
$ {{A_{\mathrm{cc}}}} = \frac{{{{P_{\mathrm{S}}}}}}{{{{E_{\mathrm{S}}}}}} $ | (7) |
式中:Acc—— 单个类别准确率;
PS—— 单个类别中正确分类样本数量;
ES—— 单个类别中样本数量。
平均分类准确率的计算公式为
$ {{A_{\mathrm{MC}}}} = \frac{{\displaystyle \sum\limits_i^{{C}} {{{A_{\mathrm{cc}}}_i}} }}{C} $ | (8) |
式中:AMC—— 平均分类准确率;
C—— 所有样本的种类数量;
i—— 不同样本类别。
2.5 实验结果分析使用基于ModelNet40数据集中的测试集对本文所提的GA-PointNet++网络性能进行评价,其评价指标包括平均损失(mean loss)、总体准确率(overall accuracy)和平均分类准确率(mean class accuracy)。ModelNet40数据集的评估结果如表2所示。
在基于ModelNet40数据集下,本文所提的GA-PointNet++与现有的国内外其他深度学习网络方法的识别准确率进行对比,其对比结果如表3所示。
% | ||
方法 | 平均分类准确率 | 总体准确率 |
subvolume | – | 89.2 |
MVCNN | – | 90.0 |
VoxNet | 83.0 | 85.9 |
KCNet | – | 91.0 |
PointNet | 86.0 | 89.2 |
PointNet++ | 88.1 | 90.2 |
本文方法 | 88.8 | 91.3 |
由表3可知,本文所提GA-PointNet++网络在ModelNet40数据集的平均分类准确率和总体准确率分别达到88.8%和91.3%,对比PointNet++单尺度特征提取网络和PointNet网络总体准确率分别提高了1.1百分点和2.1百分点,同时也较PointNet网络平均分类准确率提高了2.8百分点。
此外,ModelNet40数据集下各类别的单个类别准确率如表4所示。从表中数据可以看出,本文提出的模型较PointNet++基线模型部分类别识别准确率都有了一定的提升。
类别 | PointNet++ | 本文方法 | 类别 | PointNet++ | 本文方法 | |
airplane | 1.000 | 1.000 | laptop | 1.000 | 1.000 | |
bathtub | 0.900 | 0.940 | mantel | 0.970 | 0.950 | |
bed | 0.970 | 0.980 | monitor | 1.000 | 0.970 | |
bench | 0.750 | 0.750 | night_stand | 0.744 | 0.814 | |
bookshelf | 0.950 | 0.940 | person | 0.900 | 0.900 | |
bottle | 0.980 | 0.980 | piano | 0.960 | 0.950 | |
bowl | 0.950 | 1.000 | plant | 0.760 | 0.870 | |
car | 0.980 | 0.990 | radio | 0.750 | 0.800 | |
chair | 0.960 | 0.970 | Range_hood | 0.970 | 0.960 | |
cone | 1.000 | 0.950 | sink | 0.900 | 0.900 | |
cup | 0.750 | 0.750 | sofa | 0.950 | 0.970 | |
curtain | 0.900 | 0.900 | stairs | 0.950 | 0.900 | |
desk | 0.895 | 0.895 | stool | 0.750 | 0.850 | |
door | 0.800 | 0.900 | table | 0.740 | 0.770 | |
dresser | 0.686 | 0.733 | tent | 0.950 | 0.950 | |
Flower_pot | 0.350 | 0.200 | toilet | 1.000 | 0.980 | |
glass_box | 0.950 | 0.940 | tv_stand | 0.840 | 0.880 | |
guita | 0.990 | 1.000 | vase | 0.790 | 0.820 | |
keyboard | 1.000 | 1.000 | wardrobe | 0.800 | 0.800 |
综合以上实验数据,可以验证本文提出的GA-PointNet++在分类任务中取得了较为良好的效果。
3 结束语本文就PointNet++在提取邻域信息之间的关系的不足,提出了基于图注意力机制的三维点云特征提取方法。通过在数据集ModelNet40上进行实验,可以看出本文所提出的GA-PointNet++网络在ModelNet40数据集上的平均分类准确率和总体准确率分别达到88.8%和91.3%,相比于PointNet++单尺度特征提取网络和PointNet网络总体准确率分别提高了1.1百分点和2.1百分点,同时也较PointNet网络平均分类精度提高了2.8百分点,具有了更好的效果,验证了本文提出的模型的可行性。而且本文提出的模型在特征提取过程中,既保证了局部特征的完整,又考虑了点与邻域点之间的关系,最终达到了较为良好的识别精度,有助于推进点云分类技术的研究与应用。
[1] |
田永林, 沈宇, 李强, 等. 平行点云: 虚实互动的点云生成与三维模型进化方法[J].
自动化学报, 2020, 46(12): 2572-2582.
TIAN Y L, SHEN Y, LI Q, et al. Parallel point clouds:point clouds generation and 3D model evolution via virtual-real interaction[J].
Acta Automatica Sinica, 2020, 46(12): 2572-2582.
|
[2] |
张越, 翟福琪, 蔡孙宝, 等. 基于点云数据的植物叶片特征提取及三维重建[J]. 中国测试, 2021, 47(8): 6-12.
ZHANG Y, ZHAO F Q, CAI S B, et al. Feature extraction and 3D reconstruction of plant leaf based on point cloud data[J]. China Measurement & Test, 2021, 47(8): 6-12.
|
[3] |
廖瑞杰, 杨绍发, 孟文霞, 等. SegGraph: 室外场景三维点云闭环检测算法[J].
计算机研究与发展, 2019, 56(2): 338-348.
LIAO R J, YANG S W, MENG W X, et al. SegGraph: an algorithm for loop-closure detection in outdoor scenes using 3D point clouds[J].
Journal of Computer Research and Development, 2019, 56(2): 338-348.
|
[4] |
庄仁诚, 陈鹏, 傅瑶, 等. 列车车轮三维结构光检测中的点云处理研究[J]. 中国测试, 2021, 47(2): 19-25.
ZHUANG R C, CHEN P, FU Y, et al. Research on point cloud processing in train wheels three-dimensional structured light inspection[J]. China Measurement & Test, 2021, 47(2): 19-25.
|
[5] |
BOLD N, ZHANG C, AKASHI T. 3D point cloud retrieval with bidirectional feature match[J].
IEEE Access, 2019, 7: 164194-164202.
DOI:10.1109/ACCESS.2019.2952157 |
[6] |
PRAKHYA S M, LIU B, LIN W, et al. B-SHOT: a binary 3D feature descriptor for fast Keypoint matching on 3D point clouds[J].
Autonomous Robots, 2017, 41(7): 1501-1520.
DOI:10.1007/s10514-016-9612-y |
[7] |
鲁斌, 范晓明. 基于改进自适应k均值聚类的三维点云骨架提取的研究[J].
自动化学报, 2022, 48(8): 1994-2006.
LU B, FAN X M. Research on 3D point cloud skeleton extraction based on improved adaptive k-means clustering[J].
Acta Automatica Sinica, 2022, 48(8): 1994-2006.
|
[8] |
高继东, 焦鑫, 刘全周, 等. 机器视觉与毫米波雷达信息融合的车辆检测技术[J]. 中国测试, 2021, 47(10): 33-40.
GAO J, JIAO X, LIU Q, et al. Research on vehicle detection based on data fusion of machine vision and millimeter wave radar[J]. China Measurement & Test, 2021, 47(10): 33-40.
|
[9] |
王昕, 赵飞, 蒋佐富, 等. 迁移学习和卷积神经网络电力设备图像识别方法[J]. 中国测试, 2020, 46(5): 108-113.
WANG X, ZHAO F, JIANG Z, et al. Power equipment image recognition method based on transfer learning and convolutional neural network[J]. China Measurement & Test, 2020, 46(5): 108-113.
|
[10] |
彭熙舜, 陆安江, 唐鑫鑫, 等. 三维激光点云下利用Mean_shift的欧式目标分割[J].
激光杂志, 2022, 43(2): 119-123.
PENG X S, LU A J, TANG X X, et al. Euclidean target segmentation using mean_shift under 3D laser point cloud[J].
Laser Journal, 2022, 43(2): 119-123.
|
[11] |
LECUN Y, BOSER B, DENKER J S, et al. Backpropagation applied to handwritten zip code recognition[J].
Neural Computation, 1989, 1(4): 541-551.
DOI:10.1162/neco.1989.1.4.541 |
[12] |
NURUNNABI A, TEFERLE F N, LI J, et al. Investigation of pointnet for semantic segmentation of large-scale outdoor point clouds[J].
ISPRS-International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 2021, 46: 397-404.
|
[13] |
LIU R, REN L, WANG F. 3D point cloud of single tree branches and leaves semantic segmentation based on modified pointnet network[C]//Journal of Physics: Conference Series. IOP Publishing, 2021, 2074(1): 012026.
|
[14] |
白静, 司庆龙, 秦飞巍. 轻量级实时点云分类网络LightPointNet[J].
计算机辅助设计与图形学学报, 2019, 31(4): 612-621.
BAI J, SI Q L, QIN F W. Lightweight real-time point cloud classification network LightPointNet[J].
Journal of Computer-Aided Design & Computer Graphics, 2019, 31(4): 612-621.
|
[15] |
QI C R, YI L, SU H, et al. PointNet++ deep hierarchical feature learning on point sets in a metric space[C]//Proceedings of the 31st International Conference on Neural Information Processing Systems, 2017.
|
[16] |
SHIN Y H, SON K W, LEE D C. Semantic segmentation and building extraction from airborne LiDAR data with multiple return using PointNet++[J].
Applied Sciences, 2022, 12(4): 1975.
DOI:10.3390/app12041975 |
[17] |
RAVANBAKHSH S, SCHNEIDER J, POCZOS B. Deep learning with sets and point clouds[J/OL]. arXiv preprint arXiv: 1611.04500, 2016. [2022-06-02]. https://arxiv.org/abs/ 1611.04500
|
[18] |
SU H, JAMPANI V, SUN D, et al. Splatnet: Sparse lattice networks for point cloud processing[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018.
|
[19] |
HUA B S, TRAN M K, YEUNG S K. Pointwise convolutional neural networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 984-993.
|
[20] |
CHEN Y, LIU G, XU Y, et al. PointNet++ network architecture with individual point level and global features on centroid for ALS point cloud classification[J].
Remote Sensing, 2021, 13(3): 472.
DOI:10.3390/rs13030472 |
[21] |
ZHANG L, WANG H. A novel segmentation method for cervical vertebrae based on PointNet++ and converge segmentation[J].
Computer Methods and Programs in Biomedicine, 2021, 200: 105798.
DOI:10.1016/j.cmpb.2020.105798 |
[22] |
WU Z, SONG S, KHOSLA A, et al. 3d shapenets: A deep representation for volumetric shapes[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2015.
|