基于密度感知和自注意力机制的点云分割算法
1 引言
近年来,随着激光雷达扫描仪、红绿蓝-深度(RGB-D)相机和深度摄像机等三维采集设备的快速发展与不断成熟,三维点云的采集效率和采集精度得到显著提升。与三维体素和三维网格等其他三维数据表示形式相比,三维点云不仅更容易获得,而且能以较小的数据规模表示丰富的三维信息。因此,三维点云在自动驾驶、工业制造和机器人等领域的应用越来越广泛[1]。但是由于三维点云具有不均匀、不规则和无序等特性,在三维点云场景中完成语义分割是一项具有挑战性的任务。根据处理三维点云的方式[2],基于三维点云的语义分割方法分为基于多视图的方法、基于体素的方法和基于点的方法[3]。
基于多视图[4-7]的语义分割方法将不同视角下的三维点云投影到二维平面上,直接应用卷积神经网络(CNN)来提取获取的二维平面图的特征。该方法在投影转换过程中容易受到视角选择和投影遮挡等因素的影响,并且投影过程不仅会破坏点间的几何关系还会丢失大量关键空间信息,进而限制点云分割精度。基于体素[8-10]的语义分割方法将点云转换为规则的三维网格后进行分割。点云体素化形成的特征分辨率是影响这类方法的重要因素。低分辨率特征可以加快训练速度,但会丢失空间信息;高分辨率特征保留了空间信息,但对计算资源有较高的需求,不利于方法的部署应用。因此,在保留足够特征的同时提升性能是设计这类方法的关键和难点。
基于点的语义分割方法直接将原始点云作为三维CNN的输入以获取点云的语义标签。Charles等[11]提出的PointNet利用多层感知机(MLP)逐点处理数据,以获得高维特征,然后使用最大池化操作降低特征维度并聚合特征信息,最终得到全局特征。然而,PointNet只考虑点云的全局特征,忽略了点间的局部特征。随后提出的PointNet++[12]引入了点云分区策略,将点云进行分区后使用PointNet对每个区域进行特征提取,然后聚合特征以获取全局特征,进一步提高了算法的分割性能。尽管PointNet和PointNet++使用最大池化操作保持了点云的排列不变性,但也导致了一些局部信息的丢失。之后,Li等[13]提出PointCNN,该模型通过自定义算子在保持点云排列不变性的同时保留了局部信息。Wang等[14]提出的DGCNN(dynamic graph CNN)采用了边缘卷积运算,利用K近邻(KNN)算法构建图结构,通过卷积和对称聚合函数获得点云的局部特征信息。Thomas等[15]提出的KPConv(kernel point convolution)使用不同数量的核点构建核卷积,以提取点云的局部特征。这些方法在提取点云的局部特征时较为被动且不够灵活,分割性能仍有很大的提升空间。
为了更好地聚合点云的局部特征与全局特征[16-17],一些研究者在三维点云语义分割中引入了注意力机制[18]。注意力机制不仅可以增大算法对重要信息的关注权重,还可以灵活聚合全局特征与局部特征。Point Transformer[19]使用Transformer处理点云,在分类分割任务中都取得了不错的结果。PCT(point cloud transformer)[20]使用Transformer处理点云的无序性,通过注意力机制学习点云特征。Fu等[21]使用自注意力机制来选择通道和位置的关键上下文信息,以实现语义分割。这些方法的语义分割性能虽然有所提升,但没有考虑注意力机制的输入的处理方式,大都使用普通CNN处理原始点云,输入注意力机制的特征对点云信息的表达不够丰富和全面。
针对以上问题,为了更准确地完成三维点云语义分割任务,本文提出一个基于密度感知和自注意力机制的点云分割算法。所提算法主要由密度感知卷积(DAC)模块和空间特征自注意力(SFSA)模块组成,前者充分利用三维点云密度信息,为注意力模块提供特征表达更加丰富的输入,而后者则结合点云的空间位置关系,加强自注意力机制对空间信息的提取和利用,实现局部特征与全局特征的充分聚合与利用。在真实场景数据集上进行了大量实验,结果表明,与现有算法相比,所提算法在语义分割性能上有着较为明显的优势。
2 所提算法
2.1 算法框架
所提三维点云语义分割算法的结构如
算法采用“编码器-解码器”结构。首先使用一个MLP将尺寸为
2.2 DAC模块
三维CNN已经被广泛地应用于点云数据的处理,其感受野的设置对算法的语义分割性能有着直接的影响。三维CNN的感受野越大,其在原始点云中对应的作用范围就越大,卷积操作得到的特征就会包含更丰富的语义信息,但同时也会包含无用的冗余信息。反之,其感受野越小,对应的作用范围就越小,得到的特征对局部细节信息有更多的表达,但缺乏对点间关系等重要信息的足够表达。
为了更好地解决上述问题,提出了DAC模块,其结构如
2.2.1 自适应KNN算法
在真实场景的三维点云中,常常存在密度分布不一致的区域,如
为了应对三维点云局部密度不均匀的问题,提出自适应KNN算法。对于输入点云
式中:
2.2.2 局部密度位置编码模块
真实场景中三维点云的密度信息可以准确地反映物体的空间分布情况。现有采集设备获取到的点云的密度在分布上差异较大,这对点云密度信息的使用提出了较高要求。因此,提出局部密度位置编码模块,如
具体地,利用自适应KNN算法对输入点云中的每个点
式中:
2.2.3 密度自适应特征提取模块
在DAC模块中,首先使用自适应KNN算法查找中心点的邻域点集合,接着利用局部密度位置编码得到点的空间密度特征,然后结合预定义的权重矩阵构建自适应卷积核[22],实现密度自适应特征的提取,如
式中:
基于对点的密度信息的有效利用,所提算法能够以动态自适应的方式构建卷积核,更加灵活地处理密度不均匀的三维点云,更加精确地分割复杂的局部结构,提高分割性能。此外,利用预定义的权重矩阵而不是点的位置关系来构建卷积核,极大地降低了算法的复杂性,减少了计算资源的消耗,提高了算法的分割效率。
2.3 SFSA模块
Transformer[19]模型在自然语言处理方面展现了强大的性能,自注意力机制也随之受到了越来越多的关注。在计算机视觉领域,ViT[23]等方法将自注意力机制应用在图像处理任务上,同样展现了不错的效果。自注意力机制可以很好地对数据的全局上下文特征进行有效聚合,这对提升点云分割的效率和精度有着重要意义。尽管基于CNN的语义分割算法展现了一定的性能,但CNN受制于感受野和计算资源之间的平衡问题,不能很好地聚合点云场景中的全局特征。因此,提出SFSA模块,引入自注意力机制和空间注意力机制来高效聚合全局特征,有效提升算法的分割性能。该模块的结构如
SFSA模块由全局自注意力模块和空间注意力模块两部分组成。全局自注意力模块使用矩阵操作和不同的MLP自适应地生成和分配注意力权重,进而对点云场景的全局特征进行有效提取与聚合。空间注意力模块则基于两个池化操作对空间特征进行强化,为点云特征补充关键的空间位置信息。
2.3.1 全局自注意力模块
在全局自注意力模块中,首先使用两个MLP对输入的点云特征分别进行映射,得到查询矩阵、键矩阵和值矩阵。接着应用分组聚合将键矩阵分割出不同的区域,并将聚合后的键矩阵与查询矩阵相减,提取查询矩阵中的点与键矩阵中的点之间的空间关系。再与经过一个MLP层的键矩阵逐元素相乘得到全局注意力权重图,之后对注意力权重图进行随机失活操作,以缓解过拟合现象。然后,将值矩阵与经过随机失活的全局注意力权重图进行矩阵相乘,最终得到全局特征矩阵。通过全局自注意力机制,能够有效地捕捉点云中不同区域之间的依赖关系,并得到更加全局、准确的特征表示。同时,随机失活操作还能提高模型的泛化能力和鲁棒性。全局自注意力机制表示为
式中:
2.3.2 空间注意力模块
为了弥补全局自注意力模块对三维点云的重要空间特征以及特征间空间关联性的获取与利用不足,在全局自注意力模块之后增加空间注意力模块,从而有效地提取和利用空间信息,增强算法对上下文空间特征的理解,更好地捕获特征间的空间语义信息。首先,对输入特征矩阵分别执行全局平均池化和全局最大池化操作,提取每个维度的特征信息并进行拼接,获取空间注意力权重。然后,应用激活函数以保证空间注意力权重值非负,并得到空间注意力的权重图。最后将空间注意力权重图与应用MLP后的全局特征矩阵相乘得到注意力输出特征,接着通过一个MLP对输出特征进行维度变换得到SFSA模块的最终输出。具体表示为
式中:
点云中的每个点具有不同的相关性,类别相同的点的相关性大于类别不同的点。因为感受野的限制较大,所以每次卷积局限于局部的点云子集,导致模型缺乏捕获全局上下文信息和空间信息的能力。空间注意力机制可以获取整个输入点云的相关性分布图,强化点间的空间关联性,对特征相似的点进行语义关联,从而提高了算法对全局上下文信息和空间信息的理解能力,能更好地提取更深层次的全局特征。
3 实验与结果分析
实验环境如
表 1. 实验环境
Table 1. Experimental environment
|
3.1 数据集说明
所提算法的训练和验证均在真实世界三维点云室内数据集S3DIS和ScanNet上进行。S3DIS数据集是由斯坦福大学推出的真实室内场景三维点云语义分割数据集,包含6个室内区域(从area 1到area 6),总共271个房间的三维点云数据。每个室内区域包含大量具有语义标签的三维点,每个点都被表示为由三维坐标、RGB信息和归一化空间坐标信息组成的9维向量。点云语义标签包含13个类别,包括地板、门和椅子等。ScanNet数据集是由斯坦福大学、普林斯顿大学和慕尼黑工业大学共同推出的室内场景数据集,包含20个类别,包括墙、地板和桌子等,和1513个场景。训练使用其中的1201个场景,测试使用其中的312个场景。
3.2 评估指标说明
采用平均交并比(mIoU)、所有类别的平均精确率(mAcc)和总体精确率(OA)评估所提算法的性能。它们分别表示为
式中:
3.3 对比实验结果分析
表 2. S3DIS数据集各类别分割结果的IoU比较
Table 2. Comparison of IoU of segmentation results for all categories on the S3DIS dataset
|
表 3. S3DIS数据集上分割结果的各评估指标的比较
Table 3. Comparison of evaluation indicators of segmentation results on the S3DIS dataset
|
表 4. ScanNet数据集上分割结果的各评估指标比较
Table 4. Comparison of evaluation indicators of segmentation results on the ScanNet dataset
|
表 5. ScanNet数据集各类别分割结果的IoU比较
Table 5. Comparison of IoU of segmentation results for all categories on the ScanNet dataset
|
为了更好地展示所提算法的性能,选取部分S3DIS数据集中的场景数据进行可视化,如
图 8. 部分分割结果的可视化放大对比图
Fig. 8. Visual magnification comparison of partial segmentation results
综合S3DIS和ScanNet数据集上的实验及可视化结果可知,所提算法对具有复杂几何结构的物体(如椅子、书柜)的检测效果最好。这是因为此类物体通常结构复杂,具有更多的几何结构和空间信息,点密度特征信息更多。而所提局部密度位置编码、自适应KNN算法和DAC模块能够提升算法处理点密度特征信息和点空间位置信息的能力,帮助算法有效提取点密度特征和点空间特征,增强多种特征间的语义关联性,提高算法对局部复杂特征的辨别能力以及对复杂几何结构物体的分割精度,使算法对密度分布不均匀的三维点云具有很好的鲁棒性。而对于DAC模块使用最大池化操作造成的信息丢失的问题,所提SFSA模块对丢失的信息进行了补充,从而可以有效地获取全局语义信息和空间信息,准确地感知特征间的强弱联系并保持点云的整体连续性。同时,该模块还可以聚合全局语义特征和空间特征,进而有效提高算法的语义分割精度。
3.4 消融实验结果分析
3.4.1 自适应K值消融实验
为了探究自适应KNN算法中K值对算法分割精度的影响,在S3DIS数据集上进行消融实验,结果如
表 6. 不同K值的实验结果
Table 6. Experimental results of different K values
|
3.4.2 模块消融实验
为了进一步验证DAC模块和SFSA模块对提升算法分割性能的有效性,在S3DIS数据集上对两个模块分别进行消融实验。使用area 5进行验证,其余5个area为训练集,实验结果如
表 7. 不同模块的消融实验结果
Table 7. Ablation experimental results of different modules
|
3.4.3 子模块消融实验
为了探究DAC模块和SFSA模块中各个子模块对算法性能的影响,在S3DIS数据集上对各个子模块分别进行消融实验。使用area 5进行验证,其余5个area为训练集,实验结果如
表 8. 不同子模块的消融实验结果
Table 8. Ablation experimental results of different submodules
|
4 结论
提出了一种基于密度感知和自注意力机制的语义分割算法。一方面,算法通过DAC模块有效地处理点云的密度信息和空间信息,实现感受野的动态变化,从而提取点间不同尺度的局部特征;另一方面,算法通过SFSA模块,利用自注意力和空间注意力双注意力机制对特征提取过程中的信息进行补充和增强,同时强化点间的空间关联性和语义关联性,聚合全局特征,完成语义分割任务。实验结果表明,所提算法在真实室内场景下具有较好的分割性能以及良好的泛化性能。
点云密度是点云的一个重要属性特征,它直接反映了点云的空间分布特点和疏密程度,包含丰富的几何信息和空间信息。因此未来的研究重点是深入探索点云密度特征的利用,继续提升算法的分割性能。
[1] 赵亮, 胡杰, 刘汉, 等. 基于语义分割的深度学习激光点云三维目标检测[J]. 中国激光, 2021, 48(17): 1710004.
[2] Guo Y L, Wang H Y, Hu Q Y, et al. Deep learning for 3D point clouds: a survey[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2021, 43(12): 4338-4364.
[3] 姜枫, 顾庆, 郝慧珍, 等. 基于内容的图像分割方法综述[J]. 软件学报, 2017, 28(1): 160-183.
Jiang F, Gu Q, Hao H Z, et al. Survey on content-based image segmentation methods[J]. Journal of Software, 2017, 28(1): 160-183.
[4] 张坤, 朱亚薇, 王晓红, 等. 基于空间图卷积的三维点云语义分割[J]. 激光与光电子学进展, 2023, 60(2): 0228007.
[5] 刘友群, 敖建锋, 潘仲泰. DGPoint:用于三维点云语义分割的动态图卷积网络[J]. 激光与光电子学进展, 2022, 59(16): 1610014.
[6] WuB C, WanA, YueX Y, et al. SqueezeSeg: convolutional neural nets with recurrent CRF for real-time road-object segmentation from 3D LiDAR point cloud[C]∥2018 IEEE International Conference on Robotics and Automation (ICRA), May 21-25, 2018, Brisbane, QLD, Australia. New York: IEEE Press, 2018: 1887-1893.
[7] SuH, MajiS, KalogerakisE, et al. Multi-view convolutional neural networks for 3D shape recognition[C]∥2015 IEEE International Conference on Computer Vision (ICCV), December 7-13, 2015, Santiago, Chile. New York: IEEE Press, 2016: 945-953.
[8] TchapmiL, ChoyC, ArmeniI, et al. SEGCloud: semantic segmentation of 3D point clouds[C]∥2017 International Conference on 3D Vision (3DV), October 10-12, 2017, Qingdao, China. New York: IEEE Press, 2018: 537-547.
[9] RieglerG, UlusoyA O, GeigerA. OctNet: learning deep 3D representations at high resolutions[C]∥2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), July 21-26, 2017, Honolulu, HI, USA. New York: IEEE Press, 2017: 6620-6629.
[10] Wang P S, Liu Y, Guo Y X, et al. O-CNN: octree-based convolutional neural networks for 3D shape analysis[J]. ACM Transactions on Graphics, 36(4): 72.
[11] CharlesR Q, HaoS, MoK C, 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.
[12] QiC R, YiL, SuH, 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, December 4-9, 2017, Long Beach, California, USA. New York: ACM Press, 2017: 5105-5114.
[14] Wang Y, Sun Y B, Liu Z W, et al. Dynamic graph CNN for learning on point clouds[J]. ACM Transactions on Graphics, 38(5): 146.
[15] ThomasH, QiC R, DeschaudJ E, et al. KPConv: flexible and deformable convolution for point clouds[C]∥2019 IEEE/CVF International Conference on Computer Vision (ICCV), October 27-November 2, 2019, Seoul, Republic of Korea. New York: IEEE Press, 2020: 6410-6419.
[16] 尚鹏飞, 陈义, 吕伟嘉, 等. 一种考虑法矢量的点云语义分割网络[J]. 激光与光电子学进展, 2022, 59(16): 1610011.
[17] 郝雯, 王红霄, 汪洋. 结合空间注意力与形状特征的三维点云语义分割[J]. 激光与光电子学进展, 2022, 59(8): 0828004.
[18] 李涛, 高志刚, 管晟媛, 等. 结合全局注意力机制的实时语义分割网络[J]. 智能系统学报, 2023, 18(2): 282-292.
Li T, Gao Z G, Guan S Y, et al. Global attention mechanism with real-time semantic segmentation network[J]. CAAI Transactions on Intelligent Systems, 2023, 18(2): 282-292.
[19] ZhaoH S, JiangL, JiaJ Y, et al. Point Transformer[C]∥2021 IEEE/CVF International Conference on Computer Vision (ICCV), October 10-17, 2021, Montreal, QC, Canada. New York: IEEE Press, 2022: 16239-16248.
[20] Guo M H, Cai J X, Liu Z N, et al. PCT: point cloud transformer[J]. Computational Visual Media, 2021, 7(2): 187-199.
[21] Fu J, Liu J, Jiang J, et al. Scene segmentation with dual relation-aware attention network[J]. IEEE Transactions on Neural Networks and Learning Systems, 2021, 32(6): 2547-2560.
[22] XuM T, DingR Y, ZhaoH S, et al. PAConv: position adaptive convolution with dynamic kernel assembling on point clouds[C]∥2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 20-25, 2021, Nashville, TN, USA. New York: IEEE Press, 2021: 3172-3181.
[24] Zhang J Z, Li X W, Zhao X F, et al. LLGF-Net: learning local and global feature fusion for 3D point cloud semantic segmentation[J]. Electronics, 2022, 11(14): 2191.
[26] QiuS, AnwarS, BarnesN. Semantic segmentation for real point cloud scenes via bilateral augmentation and adaptive fusion[C]∥2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 20-25, 2021, Nashville, TN, USA. New York: IEEE Press, 2021: 1757-1767.
[27] JiangL, ZhaoH S, LiuS, et al. Hierarchical point-edge interaction network for point cloud semantic segmentation[C]∥2019 IEEE/CVF International Conference on Computer Vision (ICCV), October 27-November 2, 2019, Seoul, Republic of Korea. New York: IEEE Press, 2020: 10432-10440.
[28] LeiH, AkhtarN, MianA. SegGCN: efficient 3D point cloud segmentation with fuzzy spherical kernel[C]∥2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 13-19, 2020, Seattle, WA, USA. New York: IEEE Press, 2020: 11608-11617.
[29] WuW X, QiZ A, LiF X. PointConv: deep convolutional networks on 3D point clouds[C]∥2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 15-20, 2019, Long Beach, CA, USA. New York: IEEE Press, 2020: 9613-9622.
[30] HuangQ G, WangW Y, NeumannU. Recurrent slice networks for 3D segmentation of point clouds[C]∥2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, June 18-23, 2018, Salt Lake City, UT, USA. New York: IEEE Press, 2018: 2626-2635.
[32] YanX, ZhengC D, LiZ, et al. PointASNL: robust point clouds processing using nonlocal neural networks with adaptive sampling[C]∥2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 13-19, 2020, Seattle, WA, USA. New York: IEEE Press, 2020: 5588-5597.
Article Outline
鲁斌, 刘亚伟, 张宇航, 杨振宇. 基于密度感知和自注意力机制的点云分割算法[J]. 激光与光电子学进展, 2024, 61(8): 0811004. Bin Lu, Yawei Liu, Yuhang Zhang, Zhenyu Yang. Point Cloud Segmentation Algorithm Based on Density Awareness and Self-Attention Mechanism[J]. Laser & Optoelectronics Progress, 2024, 61(8): 0811004.