霍占强,王勇杰,雒 芬,乔应旭
(河南理工大学计算机科学与技术学院,河南焦作 454000)
随着三维立体成像技术的快速发展及深度传感器的广泛应用,研究人员能快速且准确地获取物体表面的三维坐标和深度信息,从而获取大量的场景点云数据。这些数据能够帮助智能机器对所处空间位置进行准确的判断,进而理解场景并更好地感知周围环境。场景感知有利于智能机器产生和人类一样对周边环境的分辨功能,提高机器的智能水平[1]。由于点云数据对复杂场景及物体的三维空间结构表达具有独特的优势,加上获取数据的快速性和便捷性,被广泛应用在自动驾驶[2]、自动室内导航[3]、无人机和空天一体化[1]等领域。
近年来,随着数据量的指数级增长和计算力不断增强,深度学习方法得到了飞速发展和广泛应用,尤其在2D 图像分类、分割和检测领域[4]。在物体识别、目标检测等领域上其识别率和人类相当甚至超过人类。针对三维点云数据的无序性、不规则性、稀疏性等特点,ZENG 等[5]提出一种融合2D 和3D 多特征的近邻传播聚类集成分割方法,虽然该方法比传统的点云分割算法能更准确地划分点云场景,但传统手工特征提取无法完全利用三维点云的全部信息,尤其是点云的深度信息,导致点云分割、分类的精度难以提升。越来越多的学者尝试将深度学习和点云分割相结合以进行特征提取,但传统卷积神经网络结构只能处理规则数据如图片、文本、音频等。若将传统卷积神经网络应用到点云数据,需先将其处理为多视图或体素化网格形式,然后利用深度学习网络对其进行训练。然而这些数据形式转换将造成空间特征信息的丢失,导致点云分类精度低和效果差等问题。
本文针对超点图网络模型无法充分捕获点云上下文的深层细粒度局部几何特征,以及目前主流点云分割方法对困难样本分割效果稍差的问题,提出基于超点图的三维点云分割方法。通过在SPG 网络模型中构造一种特殊的门控循环单元(Gated Recurrent Unit,GRU)[6],实现隐藏层状态变量和输出变量的自归一化过程。为改善三维场景数据集样本不平衡问题,将焦点损失函数Focal Loss[7]引入到3D 点云领域,并提高网络训练过程中困难样本的权重。此外,在斯坦福大规模室内点云数据集(Stanford large-scale 3D Indoor Spaces Dataset,S3DIS)[8]上进行训练测试,并与现有方法的常规指标进行对比,以验证本文方法的有效性。
在深度学习领域,处理点云分割的主要方法分为基于多视图的方法、基于体素的方法和基于点云表示的方法。
1)基于多视图的方法。由于三维点云数据的无序性,传统的卷积网络无法直接提取其空间特征。2015 年SU 等[9]受到2D图像的启发,提出了二维多视角下的3D 目标识别(MVCNN),该项工作成功将传统卷积神经网络应用到点云这类不规则化的数据中。其主要思想是对3D 目标进行多方位渲染,得到不同视角下的投影图,并通过经典的VGG(Visual Geometry Group)[10]提取特征,将不同视角的视图特征融合,得到全局描述符来实现点云的分类、分割。该方法与传统手工设计特征的方法相比,虽在一定程度上提高了三维模型识别的准确率,但采用投影提取多视角下的视图特征将导致一定程度上的特征冗余和大量关键几何特征的丢失,从而影响点云分类和分割结果。针对该问题,BOULCH 等[11]提出了SnapNet 方法,主要通过二维神经网络分别对深度图和RGB 图处理以生成三维场景的图像。虽然该方法改善了分割效果,但是物体边界的分割精度仍有待提高。由此可见,此类方法在解决点云空间信息丢失问题上仍然面临着巨大的挑战。
2)基于体素的方法。体素化处理法是先将点云进行体素填充,变为规则的网格结构,然后利用三维卷积网络进行特征提取以实现点云的语义分割,如:VoxNet[12]、PointGrid[13]等方法。基于体素的多数网络性能表现优于多视图方法,说明体素能够有效描述点云数据的空间结构,同时具有规则的数据结构拟合标准的卷积操作,上述因素使体素在深度学习领域得到一定范围的应用。但体素化操作使内存消耗严重,而且该类方法目前对体素化导致的量化伪影仍无具体改进措施,导致提取高分辨率特征存在一定的困难。KLOKOV 等[14]提出空间划分方法以解决模型捕获低分辨率特征精度不高的问题,但该方法缺乏提取点云局部特征的能力。由上可知,体素化虽然能够规范三维点云,并适用于3D 卷积操作,但是体素化将不可避免地导致空间信息的离散化,且在实际操作过程中选择合适的体素网格半径具有一定难度。
3)基于点云表示的方法。该方法是目前研究点云的主流方法,已广泛应用于计算机图形学、机器视觉领域和工业技术中[15]。例如在自动驾驶技术中,点云场景分割算法可通过对车辆、道路、红绿灯和行人的分割帮助自动驾驶系统判断道路情况;在医学自动诊断技术中,点云分割算法可以辅助医生提取和分析医学影像中人工难以获取的信息,从而更加精准的找到病灶关键[16];在虚拟现实和增强现实技术中,点云场景分割算法可以通过分割场景中的前景和背景帮助虚拟和增强多种现实效果[17],以达到身临其境的效果。QI 等[18]提出一种PointNet 网络模型,该模型可直接作用于原始点云数据,而不需要将点云转化为其他数据形式,从而最大程度保留了点云的空间信息。该模型通过多层感知器(Multi-Layer Perception,MLP)提取点云的特征信息,并使用对称池函数提取全局特征解决点云输入的无序性问题。但该模型仅关注单个独立点的特征,没有考虑局部邻域信息的重要性。针对这些问题,QI 等[19]在PointNet 模型的基础上引入分层神经网络,提出一种新的网络模型PointNet++,该模型可以提取不同尺度下的局部特征,提升了分类分割性能,但该模型在提取点云上下文局部几何特征上效果不佳。为了更好地获取不规则的点云数据几何结构信息,LOIC 等[20]利用最小割理论,将大规模输入点云进行几何同构分割,利用有向图建模构建超点图(Super Point Graph,SPG)[21],较好地改善了场景分割问题。
为更有效地挖掘点云上下文的空间特征,本文以超点图为基础,构建深度超点图网络模型以进行点云语义分割。超点分割类似于二维图像领域的超像素分割,两者都属于过度分割(Over Segmentation)[22]。过度分割能够更好地感知样本相似颜色、空间和纹理分布等信息,从而更有利于网络模型确定分割的边界。
本文的网络结构如图1 所示,把输入的大规模点云记作X,X中的每一个样本是区域中的一个室内场 景,记为Xi,X={X1,X2,…,Xi|Xi∈Rd,i∈n},d代 表超点网络的输入维度。首先,对室内场景进行几何同质分割,所获得的每一个独立块即为超点。本文超点网络模型的输入维度为s×np×dp,s代表点云室内数据集中每个室内空间被分割的超点个数,np代表每个超点包含的三维点个数,dp代表每个采样点的原始特征维度。其次,为了更高效地提取超点的特征,选取PointNet 模型做为前期点云特征提取器,因为PointNet 模型对局部点云有着很高的鲁棒性和效率。点云经过只带有单个STN(Spatial Transform Network)的简化版PointNet 模型[15]作用后,生成32 维的嵌入张量,其中STN 的作用是实现输入点云的旋转不变性。原始三维点经过PointNet 模型中多层MLP 和最大池化的作用后,使每个点的原始特征能够映射到高维特征空间。在网络结构图中,MLP括号中数字代表每层结构的宽度,每层结构均应用了Batch Normalization。最后,为了能有效地捕获场景中点云块之间的上下文关系,将生成的高维特征嵌入到循环神经单元(Recurrent Neural Network,RNN)[23]中,并与边条件卷积(Edge-Conditioned Convolution,ECC)[24]作用后,得到一组13 维特征向量(13 代表场景中待分割目标的种类)。本文受自归一化神经网络(Self-Normalizing Neural Network,SNN)启发,构造了一种特殊的RNN 神经单元,即自归一化门控循环单元(Self-Normalizing Gated Recurrent Unit,SN-GRU),相对于原始SPG 网络结构中的GRU 神经单元,该单元可以进一步增强网络模型对高级几何特征的捕获能力,从而实现点云的场景分割。
图1 网络结构Fig.1 Network structure
本文基于超点图网络提出新型网络模型,超点的构造由法国国家地理研究所计算机系的LANDRIEU等[17]提出,利用最小割理论[17]进行几何划分,实现对单个目标物体的同质划分,最小割理论如式(1)所示:
其中:G 为np个三维点组成的超点;E表示边组成的集合;fi表示第i个三维点局部邻域D 形状;gi表示待求的解,相同的g值可视为一个超点;μ表示正则化强度,用来区分分区的粗糙度;wi,j表示三维点i、j之间的边权重;[·]表示艾佛森括号。该理论可根据颜色、空间几何等点云特征将点云组成的单个物体分为几个有意义的块,也就是同质分割块,构成超点。恒定连通分量S={S1,S2,…,Sk}构成超点的集合即为式(1)的解。这些超点S除了具有原始三维空间特征和颜色特征外,还具有线性度Lλ、平面度Pλ和散射度Sλ这3 种几何特征,它们分别由式(2)~式(4)确定:
其中:λ1、λ2、λ3均表示点云块协方差矩阵的特征值,这些几何特征[25]可以表现点云块的分布模式。
为更好地改进网络模型的上下文分割效果,增强网络模型中超点对周边邻域的感知能力,受SNN 中缩放指数型线性单元(Scaled Exponential Linear Unit,SELU)[26]能使神经单元具备自归一化属性特点的启发,构造了一种特殊的RNN 神经单元,即SN-GRU。该单元以传统门控循环单元(Gated Recurrent Unit,GRU)[19]为基础,结合SELU 线性单元而构造。这使得SN-GRU即继承了传统GRU 防止梯度弥散的属性,又能使神经单元具有自归一化的特点。该特性能使网络在整个训练过程表现得更加鲁棒,从而有助于充分挖掘深层次的空间信息表征。SELU 单元主要使用函数y映射前后2 层神经网络的均值和方差以达到归一化的效果:SELU 单元如式(5)所示:
其中:参数α,β可根据Banach 不动点定理(fixed-point theorem)和中央极限定理(central limit theorem)证得[26],α=1.673 263 242 354 377,β=1.050 700 987 355 480。
SN-GRU 能通过对同质点云块之间的远程语义依赖性建模,从而可以更加有效地捕获点云间的上下文信息。该神经单元网络结构如图2 所示,由3 个门组成:重置门(Reset Gate),更新门(Update Gate)和归一门(Normalize Gate)。
图2 SN-GRU 单元结构Fig.2 SN-GRU unit structure
重置和更新门控向量能够保存点云序列中空间信息,不会因为预测的弱相关性而被移除,可通过控制2 个门控向量的开启和关闭,保存和更新有用的语义信息。归一门控向量能使神经元激励进行自动地转移(shift)和重缩放(rescale),在没有明确的归一化情况下实现零均值和单位方差。SN-GRU 神经单元内部的计算流程如式(6)~式(11)所示:
其中:xt表示输入单元;yt表示输出单元;ht-1表示上个时刻的隐藏门;ht表示此时刻的隐藏门表示隐藏候选态;nt、rt、zt分别表示门控单元的归一门、重置门和更新门;Wr、Wz、W表示权重矩阵;σ、tanh 分别表示sigmoid函数激活和双曲正切函数激活;SELU 表示隐藏门的激活函数;·表示矩阵内积;⊙表示哈达玛积。SN-GRU 主要通过门控实时调整激活函数的输入、输出,来捕获点云空间信息的中长期依赖关系,从而有效地实现场景分割。
在网络模型中,损失函数是度量预测值与真实值之间差异的指标。在某些深度学习任务数据集中,往往会出现某些类别样本远大于其他类别样本的情况,所造成的样本不平衡性将影响模型学习的效果。在点云数据中,由于深度传感器和实际场景的影响,也会造成不同程度的样本不平衡。如本文数据集场景中地板和墙的数据量远多于书架和沙发的数据量。针对该问题,本文将在二维图像领域中针对数据样本不平衡的焦点损失函数Focal Loss[20]引入3D 点云领域,以替代常规的交叉熵损失函数(Cross Entropy Loss),从而减少样本不平衡的影响。Focal Loss 定义公式如式(12)和式(13)所示:
其中:ptarget表示网络输入在经过softmax 计算处理后得到的预测概率;qtarget表示样本真实类别标签的分布;N代表网络训练批次的大小;C代表点云数据集中分割的类别数;(1-ptarget)γ表示调制系数;γ 表示调制系数中的超参数,γ≥0。
在网络训练过程中,普通交叉熵损失的正样本预测概率越大,损失越小,负样本则反之,这会使损失函数在大量简单样本的迭代中无法优化到最优。焦点损失函数在其基础上增加了一个调制因子(1-ptarget)γ,能够使网络模型关注容易错分割的困难样本,减少易分割样本的损失。如待分割的目标预测概率为0.90时,则(1-ptarget)γ的值将很小,而目标预测概率为0.21 时,(1-ptarget)γ将很大,其损失也会相对较大。相对标准交叉熵,预测概率为0.5 的目标,其损失的减少对于预测概率为0.90 的目标将小很多倍。这可以增大困难样本如S3DIS 数据集中的书架等在损失函数的贡献度,降低简单样本的影响力。模型也会将计算力更多集中在困难样本中,提高模型的分割能力。
为验证所提模型的有效性,本文在被广泛使用的S3DIS 数据集上进行了测试。实验环境为2 块RTX 2080Ti GPU 显卡,每块显卡有11 GB 显存,CPU 为Intel Core i9-9900K,服务器系统为Ubuntu16.04,语言为python 3.7 版本,pytorch1.2 版本。CUDA 为10.0,Boost版本至少高于1.63.0。
为测试本文网络模型的泛化能力,本文采用斯坦福大学大规模3D 室内场景数据集(S3DIS)[21]。该数据集是目前最大的室内点云数据集,场景相对比较复杂,主要由6 个大型室内区域组成,每个区域分别覆盖约为965 m2、1 100 m2、450 m2、1 700 m2、870 m2和935 m2,总共6 020 m2。这些区域在建筑风格和外观上属性不同,主要包括办公室、会议室、大堂、卫生间、教室、楼梯和走廊等建筑,共包含272 个房间的3D 扫描数据,共计超过2.15亿个点。扫描中的每个点都对应椅子(chair)、桌子(table)、地板(floor)、墙壁(wall)、天花板(ceiling)、柱 子(column)、窗 户(window)、门(door)、书 架(bookcase)、沙发(sofa)、板(board)等13 个类别语义标签。
在同构分割之前,为提高分割效率,本文采用体素网格进行点云下采样,网格(bin)为3 cm。超点包含的三维点数量np设为128。网络训练中优化器采用ADAM,初始学习率为0.01,样本批处理大小(batchsize)为8,共训练250 个周期(epoch),在周期为150 和200 时,学习率衰减指数为0.7,动量(momentum)为0.9。
与点云分类和识别相比,三维点云语义分割需要精细地识别每个点的语义类别,具备一定挑战性。为进一步评估本文网络模型处理三维点云细粒度任务的能力,在三维点云领域最常用的主流数据集S3DIS 上进行了语义分割实验,并与其他主流算法进行了指标对比。本文采用常用的语义分割评价指标,包括平均交并比MIOU、总体精度(Overall Accuracy,OA)和平均精度(mean Accuracy,mAcc)来衡量分割结果,分别由式(14)~式(16)定义:
其中:k代表分割的类别数;TP代表分类正确的正样本数量;FP代表分类错误的正样本数量;FN代表分类错误的负样本数量表示第i类分割的正确的个数;NP表示总的点云的点数表示第i类点云的总点数。
为验证SN-GRU 神经单元对点云空间上下文分割的有效性,本文分别采用3 种不同的RNN 进行了对比实验,它们分别是长短期记忆模型(Long Short-Term Memory,LSTM)[27]、GRU 和SN-GRU。表1 所示为在S3DIS 数据集上进行6 折交叉验证之后的实验结果,表中黑色粗体表示实验过程中最优结果。从表1 中可以看出,本文所提方法取得了63.7%的MIOU 和85.7%的OA 准确率,优于其他2 种RNN 神经单元的结果。本文所提方法的准确率为73.8%,仅次于LSTM 神经单元74.2%的准确率,原因可能是LSTM 神经单元在提取较大面积的点云块特征如天花板、地板等的性能略优于本文的算法。
表1 不同循环网络神经单元分割精度对比Table 1 Comparison of segmentation accuracy with different recurrent neural unit %
为选取和验证Focal Loss 损失函数中的超级参数,本文对调制系数(1-ptarget)γ中的γ取值进行了对比实验。表2 中给出了网络模型在不同γ值下的MIOU、OA 和mAcc 的值,表中黑色粗体表示实验过程中最优结果。本文选取的γ值范围为0~4,从式(12)可以看出,当γ=0 时,Focal Loss 损失函数相当于交叉熵损失函数,即本文所采用的baseline。从表2 可以看出,当γ=1.5 时,场景语义分割达到了最优效果,MIOU,OA 和mAcc 在基准的水平上分别提高了1.4、0.3、1.1 个百分点。当γ>1.5 时,场景语义评价指标的准确率开始下降并趋于稳定,说明当γ=1.5时,已经能够有效提高较难分割样本如椅子、书架等的权重,降低了容易分割样本如墙面、地板等的权重,从而更有效地实现了语义分割。
表2 不同调制因子γ 下网络模型分割精度对比Table 2 Comparison of segmentation accuracy under different values of modulation γ %
为从整体上验证本文网络模型在场景语义分割上的有效性,本文与目前主流网络模型进行了对比实验。实验结果如表3 所示,表中“—”表示原文献中没有该项实验结果,黑色粗体表示实验过程中最优结果。从表中可以看出,本文网络模型的MIOU,OA 和mAcc 均达到最优值。与基干网络SPGragh 相比,本文模型的MIOU、OA 和mAcc 分别提高1.7、0.9、1.3 个百分点,与经典网络模型PointNet相比也分别提高了16.2、7.9、8.1个百分点,分割效果有了明显的提升。从表3 中还可以看到本文网络模型在相对不易分割的目标上,MIOU有了较高的提升,如椅子的MIOU 与基干网络相比提高了7.1 个百分点,由此可见,本文网络模型在细粒度细节处的分割能力也有了较明显提升,从而验证了本文网络模型具有能够捕获点云深层细粒度几何特征的能力。
表3 S3DIS 数据集上与现有主流方法的性能比较Table 3 Performance comparison with the existing methods on S3DIS dataset %
为更直观地展示本文网络模型场景语义分割的过程,本文将网络的输入、中间的同质点云块分割、标准分割结果(Ground Truth)和模型预测结果分别进行了可视化处理。如图3 所示,在第1 组办公室场景中,本文网络模型对墙、书架、门等简单几何物体边缘的分割效果良好。在第3 组的会议室场景中,由于白板(board)嵌在白色墙体(wall)内(彩色效果见《计算机工程》官网HTML 版本),故在同质分割过程中将部分墙体和板面划分到一起,导致分割效果不理想。因此,如何提高相似颜色的同质划分为今后继续深入研究的方向。
图3 S3DIS 数据集上的部分结果可视化Fig.3 Visualization of some results on S3DIS dataset
本文使用的Focal Loss 损失函数能够提高困难样本的关注程度,与基干网络相比(如表3 结果所示),其分割结果有了明显改善。在其他场景中,如第2 组中的休息室场景,可以看到本文网络模型在桌子、椅子等相对独立的目标中获得了准确的分割结果,进一步证明本文的网络模型在物体细粒度分割上有明显的提升。总体来看,本文模型在对天花板,墙体和地板等面积相对大的物体,分割效果更好,尤其在其分割边界上的效果提高显著,这反映了本文提出的SN-GRU 在上下文语义分割上有更加出色的表现,可以更有效地捕获点云块之间的联系,从而能准确地分割边缘。由于本文所采用的数据集(S3DIS)中大部分室内场景均为复杂场景,使本文的网络模型具有较高的泛化能力,在相对简单的场景中能够取得和标准分割高度一致的结果,如第4 组的走廊场景所示。
为提高场景分割算法对点云块上下文信息的提取能力并有效利用点云数据集的样本均衡性,本文提出一种整合上下文空间几何特征且可调节难易样本权重的场景分割网络模型。通过融合多层感知机和循环神经单元提取场景中的局部特征和全局特征,实现较好的语义分割效果。同时通过采用大规模场景数据集和焦点损失函数的方法提高模型的泛化能力,实现复杂空间特征的提取。实验结果表明,与PointNet 和G+RCU 等传统模型相比,本文模型在大型室内场景数据集S3DIS 上获得了较高的分割准确率。下一步将采用球形卷积核与八叉树空间划分相结合的方法,改善模型针对空间几何特征相似物体的分割效果。