项学泳,王力,宗文鹏,李广云
(1.信息工程大学 地理空间信息学院,河南 郑州 450001;2.地理信息工程国家重点实验室,陕西 西安 710054)
点云实例分割是一种比点云语义分割[1]和点云目标检测[2]更复杂的任务,它能在点级别上切分出场景中的每一个目标物以及它们所属的语义类别[3],而语义分割对同一类别的物体不可再分,目标检测仅仅输出目标框的参数,对于目标框内的点无法区分类别.对于点云实例分割结果简单分析可以获得目标物的位置、尺寸、表面形态等信息,在智慧城市、遥感信息提取与无人系统智能驾驶等科学与工程研究中发挥着重要的作用[4-5].
在深度学习领域,点云实例分割算法可分为区域提议算法[6-7]和无区域提议算法[8-13]2大类.区域提议算法通过目标检测网络获取实例候选区域,再通过掩码分割去除背景点[3]得到实例标签.这类算法通常具有较高的精度,由于融合了提案生成网络与掩码分割网络,往往需要通过多阶段训练,实现过程较为复杂.相比而言,无区域提议算法将实例分割问题转换为嵌入空间的聚类问题,实现过程相对简单,并且不存在因候选区域重叠带来分类模糊的问题,因此具有较好的应用前景.
相关学者对无区域提议的实例分割算法开展了广泛研究.Wang等[8]通过学习点特征,并依据特征计算点间相似度,将相似度接近的点进行合并,获得实例分割结果;Wang等[9]提出点云语义与实例空间的关联模块,将语义、实例特征空间加以关联实现二者的联合分割;Pham等[10]以改进的PointNet[14]作为主干网络提取语义特征与实例嵌入,通过多值条件随机场与变分推断法优化模型以获得语义与实例分割结果.不同于语义分割关注于局部几何特征的提取,点云实例分割更加注重全局特征的提取[12],而以上述文献为代表的算法均以块状点云作为输入,在一定程度上“割裂”场景中的全局特征.此外,跨越不同块的实例需要额外的后处理算法[8]进行合并,影响模型的运算效率.Lahoud等[11]以整个场景的体素作为输入,通过3D稀疏卷积[15-16]提取点的语义特征、实例嵌入与方向特征并加以组合实现实例分割;Du等[12]基于3D 语义分割网络建立多尺度结构实现实例分割;Pan等[13]将语义类别的体素分割结果投影为图像并输入2D实例分割网络,再将实例分割结果投影至点云空间.上述方法未对体素深入处理,导致分割结果离散化.相关研究表明,点云的语义与实例特征空间有一定相关性,对语义特征与实例特征进行关联具有重要意义[9-10].
基于上述分析,本研究采用子流形稀疏卷积网络作为主干网络,在提取点特征的同时保留场景的全局信息,为了克服提取到的特征离散化问题,提出具有注意力机制的KNN(k-nearest neighbors)模块[17-18].对于Wang等[9]提出的ASIS(associatively segmenting instances and semantics)模块加以改进,实现语义与实例特征空间相互关联与优势互补,以增强点之间的区分度,进一步改善模型分割结果.
提出的ASIS模块支持下融合注意力机制的点云实例分割模型由图1所示.可以看出,网络整体结构由1个主干网络和2个分支网络构成.将维度为N×6 点云输入至主干网络,N为点个数.主干网络用于提取逐点特征,输出的点特征维度为F.一个分支网络进行语义标签预测,另一个分支网络生成实例分割结果.主干网络采用3D子流形稀疏卷积网络,该网络可在提取点云场景全局特征的前提下,有效克服传统3D卷积的高计算量问题,之后将提取到的逐点特征输入至语义分割与实例分割2个分支网络,并通过提出具有注意力机制的KNN模块对特征进行聚合操作,分别得到维度为F1的语义特征和维度为F2的实例特征.并利用改进的ASIS模块做进一步的处理,最终语义分支网络输出N×C的特征向量,其中C为点云语义类别数,实例分支网络输出N×E的实例嵌入.其中E为实例嵌入的维度.
图1 所提模型整体结构Fig.1 Overall architecture of proposed network
在训练过程中,语义分割通过传统的交叉熵损失函数获取损失值进行监督训练,实例分割基于度量学习的原理进行训练.度量学习理论最早出现在图像实例分割[19-20]算法中,基本思想是对于同一个实例内的点,默认属性相近,点特征向量之间的差异应当尽量小;属于不同实例的点,默认属性不同,点特征向量之间的差异应较大.制定基于度量学习损失函数为
式中:LA为实例内损失函数,表示同一实例的点应相互靠近;LB为实例间的损失函数,表示不同实例的几何中心应当保持一定的距离.
在测试过程中,实例分支网络输出预测的实例嵌入值,通过mean-shift算法[21]对实例嵌入进行聚类获取每个实例.实例的语义类别由该实例内点数占主导的语义标签所决定.
主干网络为3D子流形稀疏卷积网络,虽然可以提取全局特征、缓解传统3D-CNN的高计算量的问题,与其他3D-CNN相同,输出的仍是体素特征,即每个体素内的点的特征向量相同.在现实场景中,地物的分布是连续的,因此包括3D子流形稀疏卷积网络在内的所有3D-CNN普遍会存在特征分布不连续的问题.
解决该问题的核心在于体素内部的点特征要有区分度,为了达到这一目的须从2个方面考虑:1)算法需要在点级别进行操作才可以改善这一问题,通过一般KNN算法直接以邻居点的特征求均值并与原中心点特征合并,作为新的中心点特征;2)在上一条件的基础上,中心点与邻居点的语义、实例类别可能不同,直接聚合会给中心点特征带来负面影响.从文献[17]、[18]引入具有注意力机制的KNN模型,该模型依据中心点特征与邻居点特征的相关度计算关联度值,再将每个中心点-邻域点点对的关联度值和邻域点特征值做加权求和,最后将加权求和的特征与原中心点特征合并作为新的中心点特征:
一般情况 患者,男,49岁,头晕伴记忆力减退7个月。在我院行CT及磁共振成像检查,发现右侧额部肿瘤性病变,并行手术切除治疗。
式中:f′为新的中心点特征;f为原中心点特征;fi为邻居点特征;wˆi为权重,表述了中心点与邻域点之间的关联度.
式中:F C采用全连接神经网络[22],并利用softmax函数[23]对计算的权值做归一化处理,以使聚合后的中心点特征统计分布更加合理.
在实验过程中,仅仅以中心点和邻域点的特征向量作为输入计算式(3)中权值仍不能得到准确的关联度.通过观察,物体在体素中的分布存在4种情况:1)同一物体处在同一体素内;2)同一物体处在不同体素内;3)不同物体处在不同体素内;4)不同物体处在同一体素内.对应的分布状态分别如图2的所标注数字1、2、3、4所示.在情况4中,当中心点与邻域点处同一体素内,由主干网络计算出2个点特征相同.通过式(3)计算,可得两点之间具有强相互关系,但两点属于不同物体,情况2同理.针对该问题,在点特征的基础上,额外加入原始点坐标、颜色信息作为全连接网络的输入.在现实环境中,任一物体都有特定的空间位置、几何结构与颜色,以此获取更为合理的中心点与邻域点的相联关系.
图2 具有注意力机制的KNN模型Fig.2 KNN model with attention mechanism
从语义分割与实例分割概念出发不难得出,属于不同语义类别的点必然不属于同一实例,而属于同一实例的点则必然属于同一语义类别,说明语义分割与实例分割2种任务间存在一定关联性.为了利用这种关联性,文献[9]提出ASIS模块,该模块分为2个部分:第1部分利用全连接神经网络将语义特征的维度转换至与实例特征维度一致,并将转换后的语义特征嵌入至实例特征;第2部分首先对实例空间每个点建立邻域,然后选定一个实例半径阈值,对邻域点与中心点间距小于阈值的邻域点做最大池化,最后将池化后的特征嵌入至语义特征中,从而完成语义分割与实例分割的任务交互.
本研究对ASIS进行改进,首先将ASIS模块第1部分的全连接神经网络改为1×1卷积操作[24],以实现参数共享从而降低网络参数的数量.网络参数的减少降低了网络的复杂度,使得网络更加容易训练,并且减少了模型欠拟合和过拟合的风险.针对ASIS模块的第2部分,利用空间注意力模块进行替换,对邻域内的所有点分别执行最大池化与平均池化操作[25].平均池化可以有效保留点云细节信息的同时,最大池化能够增强点间区分度,从而改善分割效果;将2个池化操作后的特征进行组合,再利用卷积神经网络处理;将得到的特征并入语义空间.空间注意力机制在训练过程中,通过调节模型参数,有效剔除实例外的点,这种处理方式规避了原ASIS模块中判断邻域点是否为实例内的点时间过长的问题,流程如图3所示.
图3 ASIS模块和改进后的ASIS模块Fig.3 ASIS module and improved ASIS module
实验的运行环境为Intel Core i910980xe,主频为3.0 GHz,18cores;缓存为RAM 128GB;GPU显卡为单张NVIDIA GeForce RTX 2080ti.操作系统为Linux下Ubuntu16.04;深度学习框架为Pytorch1.5.与现有主流模型相同,体素尺寸设置为2 cm;主干网络的框架采用ResNet,并且使用与文献[18]相同的稀疏卷积及对应的池化、批量归一化操作,分支网络中具有注意力机制的KNN邻域点数目设置为16;网络整体采用随机梯度下降法(stochastic gradient descent,SGD)函数进行优化,学习率设置为0.001,动量值设置为0.9,权值衰减设置为0.0002;mean-shift算法中核函数的带宽设置为1.0.
为了全面定量地评价所提模型的有效性,针对实例分割,引入平均实例覆盖率(mean coverage,mCov)、平均加权实例覆盖率(mean weighted coverage, mWCov)、平均精确率(mean precision,mPrec)、平均召回率(mean recall, mRec)作为评价指标[27-29].其中,mCov为所有实例IoU的均值,mWCov为每个实例IOU乘以与其对应真值点数在总实例真值点数的比重,计算式为
式中:G和P分别为所有实例预测值与真值的集合,g和p分别为某一实例真值与预测值的点集合,| · |为集合中元素的数量,m ax(·)为最大值函数,I oU(·)为某一实例预测值与真值的交并比.
mPrec、mRec分别为精确率和召回率的平均值,对于某一个实例,精确率(PR)和召回率(RE)的计算式为
式中:TP、TN、FP、FN分别为场景中某一实例的真阳例、真阴例、假阳例、假阴例中所包含的点个数,真阳例交并比的阈值为0.5.
针对语义分割,引入总体精度(over-all accuracy, OAcc)、平均交并比(mean intersection over union, mIoU)作为评价指标:
式中: T Pi、F Pi、F Ni分别为第i语义类别的真阳例、假阳例、假阴例中所包含的点个数,n为场景中总的语义类别数.
以S3DIS数据集下的area 1~4、area 6作为训练集,由于area 5点云数据采集自单独的建筑物,建筑样式以及内部布局与其他区域均有明显差异,因此以area 5作为验证集,这样划分可以进一步检验模型的泛化能力.
2.3.1 具有注意力机制的KNN模块有效性及效率
为了验证具有注意力机制的KNN模块的有效性以及效率,在基准模型中加入具有注意力机制的KNN模块.基准模型表示该模型既不加入注意力机制的KNN,也不加入ASIS模块.将3D子流形稀疏卷积网络输出结果,再输入至3层卷积网络和1层全连接网络进行处理.对2个模型进行充分训练并在测试集上进行测试,记录2个模型在验证集上的整体分割效果,结果如表1所示.从表1看出,加入具有注意力机制的KNN模块的网络在4个标准均有显著提升,mCoV、mWCoV、mPrec、mRec分别提升了1.5%、1.2%、1.4%、1.3%,说明具有注意力机制的KNN模块在一定程度上改善了3D卷积网络输出结果离散化的问题.记录基准模型和具有注意力机制的KNN模型在数据集中,每个场景的平均处理耗时分别为142.5和146.7 ms.相比于基准模型,具有注意力机制的KNN模块单个场景的处理时间增加了4.2 ms.在S3DIS数据集中,每个场景的点数均在十万级别,处理时间对于大多数实际应用仍处于可接受范围之内,因此具有注意力机制的KNN模块在提升分割效果的同时,并未带来过多的时间消耗.
表1 具有注意力机制的KNN对实例分割结果的影响Tab.1 Effect of KNN with attention mechanism on instance segmentation results %
对具有注意力机制的KNN模块中邻域点数量对分割结果的影响进行分析,结果如图4所示.在进行6组实验中,从整体变化趋势不难看出,当邻域点数目为16时,模型在4个衡量标准(MI)上取得了最佳结果.
图4 邻域点数量对模型实例分割结果的影响Fig.4 Influence of number of neighborhood points on segmentation results of proposed model
2.3.2 改进后ASIS模块的有效性及效率 对于改进后ASIS模块的有效性进行验证,并记录2组实验在验证集单场景分割效果,结果如表2所示.由表2可知,将ASIS模块加入所提模型,模型分割有着较为明显改善,在4个衡量标准上相较于基准模型提升了0.7% ~1.2%.在基准模型的基础上,加入改进后的ASIS模块后,改善效果相较于ASIS模块进一步提升.在4个衡量指标上,比ASIS模块高出1.0%~1.6%.改进后的ASIS模块中1*1卷积网络相较于原ASIS模块中的全连接网络具有更少的参数,因此模型也更容易优化.此外,平均池化的应用也保留了实例分割所需的细节信息.记录基准模型、ASIS模型以及改进后的ASIS模型在数据集中每个场景的平均处理耗时分别为142.5、158.7和146.3 ms.基于改进后ASIS模块的模型单场景处理耗时比基于ASIS模块的模型减少了12.4 ms.综上,加入改进后的ASIS模块的模型相比于基于ASIS模块的模型分割效果有一定改善,但是处理时间并没有增加,从而验证了改进后的ASIS模块中1 *1卷积以及空间注意力模块的有效性和效率.
表2 改进后ASIS模块对实例分割结果的影响Tab.2 Impact of improved ASIS module on segmentation results %
为了直观体现所提模型的实例与语义分割结果,采用6-fold交叉验证方式[14]、S3DIS数据集包含area1-area 6共6个区域,每次选择其中的5个区域作为训练集,另一个作为测试集,共进行6次实验.图5对输入值、分割结果以及真值(ground truth,GT)进行展示.由于S3DIS数据集多为封闭式场景,为了更好地展示房间内部的分割细节,图5展示的场景去掉了部分墙壁和天花板.
图5 所提模型在S3DIS数据集上实验结果Fig.5 Qualitative results of proposed module on S3DIS dataset
由图5可以看出,当室内环境较为简单时,物体分割边界较为清晰,在视觉感受上较为良好.当室内环境复杂时,部分物体出现明显的错分现象,物体内部同时出现一定量的杂点.为了进一步定量地评价所提模型,采用6-fold交叉验证方式,实例分割结果与语义分割结果分别如表3、4所示.
表3 所提模型与现有模型在S3DIS数据集上实例分割结果Tab.3 Instance segmentation results of proposed model and some existing models on S3DIS dataset %
由表3可知,在实例分割上,SGPN算法构造相似矩阵消耗了过多内存.在训练过程中,只能以小批量块状点云作为输入,在一定程度上丢失了全局特征.SGPN算法主干网络采用PointNet.由于PointNet自身特征提取能力有限,在几种对比算法中,SGPN算法在4个衡量指标上最低.ASIS主干网络采用PointNet++.在分割结果上,相对于SGPN算法有较大的改善,这从侧面反映出,选择合适的主干网络较为重要.所提模型在整体表现上相较于ASIS有一定的提升,在各指标上提升了1.6% ~5.3%.BoNet作为一种区域提议算法,通常比非区域提议算法有着更高的精度.本研究结果在平均召回率上仍分别高于BoNet 5.2%.由表4可知,在语义分割上,所提模型相较于PointNet、PointNet++等主流网络,在平均交并比以及总体精度上明显提升.在mIoU和OAcc上,所提模型分别高于PointNet++ 7.2%和7.1%,并且同时优于SGPN、3D-Bevis、ASIS主流实例分割算法下的语义分割结果.
表4 所提模型与现有模型在S3DIS数据集上语义分割结果Tab.4 Semantic segmentation results of proposed model and some existing models on S3DIS dataset %
对室内点云数据的实例分割技术进行研究,以子流形稀疏卷积为基础,建立主干网络提取点特征,通过具有注意力机制KNN模块和改进后的ASIS模块的进一步处理最终输出语义与实例分割结果.主要得出结论如下.1)具有注意力机制的KNN算法能够缓解子流形稀疏卷积给分割结果带来的量化误差,但是在处理时间上有所增加.2)改进后的ASIS模块在效果与效率上,均取得了比ASIS更好的结果,说明改进后的ASIS模块能够更好地利用语义分割任务与实例分割任务的互补性.3)点云实例分割尚属比较新的研究课题,在未来仍有较大的探索空间.本研究在训练过程中所基于的度量学习思想仍继承于图像处理领域,而如何充分利用点云所固有几何信息对损失函数重新设计是未来的研究工作之一.