基于点云数据的分割方法综述

2020-05-19 00:39:12顾军华董永峰
燕山大学学报 2020年2期
关键词:体素网络结构视图

顾军华,李 炜,董永峰

(1. 河北工业大学 人工智能与数据科学学院,天津 300401;2. 河北工业大学 电气工程学院,天津 300401)

0 引言

三维数据是计算机视觉技术的一项宝贵“财富”,它提供了关于对象、场景完整且丰富的几何信息。随着三维数据采集技术的飞速发展,出现了越来越多廉价的传感器,包括各种类型的三维数据扫描仪,LiDAR和RGB-D相机[1](例如Kinect、RealSense和Apple深度相机)。这些传感器获取的三维数据不但能够提供完整的几何、形状和尺度信息[2-3],而且获取方式简便易行,进一步推动三维数据的发展,为机器提供了更好地理解周围环境的机会,为实现自动化打下基础。

不同的三维传感设备以不同形式收集原始数据,点云作为一种常用数据格式,由于其具有能够将原始几何信息完整地保留在三维空间中的重要特性,成为不同领域开发应用技术时的首选研究对象,包括自动驾驶技术、机器人技术、遥感、医疗等[4],它更是许多场景理解相关应用程序的理想表示形式。语义分割则是场景解析中待解决的重要工作之一,虽然当前基于二维图像的语义分割技术已经相当成熟,但是,随着工业需求和人工智能发展的不断扩大,二维图像的局限性逐渐显现出来,例如二维图像中的遮挡问题,严重影响分割效果,以及将二维图像语义分割方法应用到三维环境中时,可能出现大量错误匹配信息,影响语义预测精度等,而点云的出现不仅弥补了二维图像的缺陷,而且能够为复杂场景增加更多的可用空间信息。因此在深度学习技术的推动下,针对点云分割的研究不断向前发展。然而,由于点云的特殊数据格式,其在深度学习上的探索仍然面临多个重大挑战[5],例如与点云相关的数据集规模小、点云数据维度高、处理难度大以及点云的非结构化性质,无法直接利用标准的深度学习框架等。在此基础上,本文着重分析用于处理点云在分割任务上的深度学习方法,并采用标准的和众所周知的评价指标对语义分割网络结构进行定量评价、对比。

关于点云的深度学习方法已吸引了越来越多的关注,尤其是在过去的5年中。一些重要数据集的出现进一步推动了针对点云的深度学习研究,例如ModelNet[6]、SceneNN[7]、ScanNet[8]、SUNCG[9]和S3DIS[10]等,由此出现了越来越多的方法解决与点云处理相关的各种问题,其中,点云分割任务是各个领域密切关注的热门话题。面对点云的分割任务时,需要了解全局几何结构和每个点的特征细节。根据分割任务的难易程度,可将点云分割方法分为两类:语义分割(场景级别)和实例分割(对象级别)。目前系统性阐述利用深度学习方法解决三维点云语义分割任务的综述性文章还很少,例如文献[11-13]。受文献[14]的启发,本文专门针对点云分割任务在深度学习框架上的经典方法和最新进展展开讨论,分析点云以不同处理形式利用深度学习设计的解决方案及其优缺点,并列举出常用的点云场景数据集。

1 点云语义分割

语义分割的目标是将输入的点云数据分为不同的语义类别。面向点云的经典深度学习方法是由Klokov等人[15]提出的基于k-d树结构的深度网络模型(KD-Net),该模型利用k-d树结构在点云中创建一定的顺序结构的点云,并实现不同树结构上的共享权重属性。KD-Net是一种前馈网络,在每次迭代时使用具有不同分叉方向的多个k-d树构建,按照自下而上的方法,非叶子节点的表示通过使用多层感知机从其子节点的表示中计算得出,根节点的特征,即整个点云,最终送入全连接层预测分类得分。该网络模型在Modelnet[6]数据集上进行实验,获得了较精确的准确率,实现部分点云分割、形状检索,并可以在后期工作中尝试其他的树形结构。不足之处在于,当树结构发生变化时,该网络对旋转和噪声敏感,且对于每个输入点云,都需要上采样等操作训练一个新模型,对计算和训练造成一定难度。Wang等人[16]提出了一种基于八叉树结构的卷积神经网络结构(O-CNN)用于三维模型识别、分割和生成等任务。O-CNN首先对点云数据进行体素化后构建八叉树模型,使用Z阶曲线方式进行存储,在每一个八叉树的叶子结点上,存储法向量信息,将其作为输入数据作用于3D卷积神经网络模型进行卷积、池化等操作。通过添加超节点结构,一次性送入多个用于保存信息的八叉树结构保存进行计算。与基于密集输入网格的基准网络相比,O-CNN对于高分辨率点云所需的内存和运行时间要少得多。但此类方法的缺陷在于仅依赖边界点云,并未涉及其局部几何结构。在后续的研究中,一般的语义分割处理模式按数据的表现形式分成点云、投影、体素、多视图和混合表示,下面分别根据不同的类型概述相应的处理方法。

1.1 点云的方法

面向点云的网络结构以不规则的点云作为输入。然而,点云的无序性导致了无法直接将点云数据用于标准卷积神经网络(CNN)结构中。为了解决上述问题,斯坦福大学的Qi等人最早提出直接处理点云数据的网络结构PointNet[5]。该工作提出使用共享参数的多层感知机(MLP)学习逐点特征并使用对称池函数获取的全局特征。点云的每个点都使用(x,y,z)坐标表示。PointNet由3个主要模块组成:空间转换网络模块、循环神经网络(RNN)模块和对称函数模块。其中空间转换模块用于将所有数据处理为一种规范形式,学习最利于分割任务的旋转矩阵,使点云具有旋转不变性。随后处理过的点云通过RNN模块以连续信号形式进行训练,确定点云的输入序列不变。对称函数模块汇总点云中所有点的信息。最后,网络使用最大池化运算聚合所有点的特征,提取全局特征,解决无序问题,网络结构如图1所示[5]。实验证明PointNet对数据和输入扰动具有鲁棒性,并在分割任务上进行了测试,证实其结果超过多个最新技术。尽管PointNet在创新性和分割效果方面取得了成功,但由于它在处理过程中将所有点的特征聚合,导致无法充分利用点的局部特征提取细粒度特征,为了解决这一问题,在PointNet基础上,Qi等人提出以层次结构学习点云特征的深度网络PointNet++[17],对来自较大局部区域的点进行分层和渐进式学习获取每个点附近的精确几何特征,其核心功能由三层组成:采样层、分组层和PointNet层,网络结构如图2所示[17]。采样层中采用最远点采样法,抽取出一些较为重要的中心点。分组层,在上一层提取出的中心点的某个范围内采用k近邻法(k-NN)寻找k个点组成斑块。PointNet层将这k+1个点通过进行卷积和池化得到的特征作为此中心点的特征,再送入下一个分层继续处理,这样每一层得到的中心点都是上一层中心点的子集,并且随着层数加深,中心点的个数越来越少,但是每一个中心点包含的信息越来越多,获得的局部特征更加精确。但是由于体系结构复杂,导致计算复杂度过高,并不能成为理想的点云分割网络。在此基础上涌现了一系列直接消耗点云的网络结构。这些方法可以粗略地分为多层感知机方法、卷积方法、RNN方法和图方法。

图1 PointNet网络结构
Fig.1 An illustration of PointNet

图2 PointNet++网络结构
Fig.2 An illustration of PointNet++

1.1.1基于多层感知机的方法

这类方法的设计思路通常是使用共享的多层感知机(MLP)作为其网络结构中的基本单元,以提高处理效率。然而,由共享的MLP提取的逐点特征无法获取点云中的局部几何以及点之间的相关性[5]。为了提取每个点的更广泛的全局特征并学习更丰富的局部结构特征,已有几种针对不同属性设计的专用网络架构,包括基于相邻特征池方法,基于注意力聚合方法以及局部-全局特征串联的方法。

为了识别局部几何模式,一些工作采用基于相邻点特征池化方法,此类方法通过汇总来自局部相邻点的信息学习每个点的特征。其中比较具有代表性的工作是Jiang等人[18]提出基于尺度不变特征变换(SIFT)算法的深度网络模型,用于解决点云语义分割任务。受2D图像中使用的SIFT算法的启发,该网络设计了定向编码和尺度感知该模块,通过一个方向编码单元对八个主要方向的信息进行编码,进而将几个方向编码单元堆叠即可得到多尺度的特征。与PointNet++中使用的分组技术不同,Francis等人[19]利用k-means聚类算法和k-NN算法分别在全局空间和学习后的特征空间中定义了两个邻域,基于来自同一类的点在特征空间中更接近的假设,引入成对的距离损失和质心损失以进一步范化特征学习。Hu等人[20]提出了一种高效且轻量级用于大规模点云处理网络,简称为RandLA-Net,该网络利用随机点采样在存储和计算方面显示了高效性。

在点云分割网络中引入注意机制[21]对提高分割准确度起到一定的推动作用。Yang等[22]展示了一种基于分组的注意力方法是对点之间的关系进行建模,并提出利用具有排列不变、任务不可知且可区分性质的耿贝尔子集采样法代替广泛使用的最远点采样法。这种模型展示了对异常值的敏感,并可以根据特征选择点云的不同局部子集。为了更好地描述点云的空间分布关系,Chen等人[23]提出利用局部空间感知层学习点云的空间布局和局部结构的空间感知权重计算方法。Zhao等[24]提出了一种与条件随机场类似的,基于注意力的分数优化模块,对网络产生的细分结果进行后处理。通过将相邻点的得分与学习的注意力权重合并在一起,可以细化初始分割结果。该模块可以轻松集成到现有的深度网络中,以提高最终的细分效果。

Zhao等[25]提出了一种具有排列不变性质的3D点胶囊网络结构,作用是结合点云中的局部结构和全局结构。相似的工作有Edgeconv[26]和NetVLAD[27]通过反复堆叠获取局部信息和场景的全局特征。

1.1.2基于卷积的方法

这类方法主要思想是为点云提供有效的卷积运算。由于直接对点云数据进行卷积操作会造成形状信息的丢失,并且卷积操作对输入顺序敏感,Li等人[28]提出PointCNN网络架构,解决了点云分割任务中给学习到的特征赋予权重和将特征按设置的潜在顺序排列这两个问题。网络设计了一个k×k大小的x-变换矩阵,将其用于对与点关联的输入特征进行加权操作以及将它们重新排列成潜在的规范顺序,并通过多层感知机实现卷积层。实验表明,PointCNN 能在多种有挑战性的基准数据集和任务上实现与之前最佳方法媲美或更好的表现。Hua等人[29]提出了一种点级别的卷积算子,将相邻点合并到卷积核单元中,与卷积核权重进行卷积运算。Wang等人[30]提出基于参数化连续卷积层网络结构,简称为PCCN;该网络层的卷积核方程由MLP参数化,并跨越连续向量空间。Hughes等人[31]提出了基于点云的扩张卷积网络结构,通过使用一系列局部3D卷积核实现,其中,3D卷积权重由输入点到核点的欧几里得距离确定,并且核点的数量不是固定的,核心点的位置建模为球形空间中最佳覆盖率的优化问题。在文献[32]中,Francis等人展示了丰富的消融实验和可视化结果,以显示感受野对基于聚类方法的性能影响。他们同样采用扩张点卷积运算来聚合扩张后的邻近特征取代k近邻法。该运算被证明在增加感受野方面非常有效,并且可以轻松地集成到现有的各种基于聚合的网络中。

1.1.3基于递归神经网络的方法

为了加强点云内在特征联系可以借助递归神经网络(RNN)解决点云的语义分割问题。在PointNet[5]将输入点云进行分块并独立处理的研究基础上,Francis等人[33]提出将点云块分组处理,一组点云块之间共享上下文信息,增大了模型在场景中的感受野,同时设计了两种点云块转换方式:多尺度块和网格块,生成可作为输入级别数据模式,再通过PointNet进行逐块特征提取并按顺序输入到合并单元或循环合并单元中,以获得输出级别信息。实验结果表明,融合点云的空间信息对于提高分割效果非常重要。Huang等人[34]提出了一种轻量级的局部依赖建模模块,利用切片池层将无序点特征集转换为特征向量的有序序列。Ye等人[35]提出点对的金字塔池化模块用于聚合不同尺度下局部邻域的特征,同时使用分层的双向递归神经网络用于学习空间上下文信息,从而实现多层次的语义特征融合。该方法在室内和室外两类数据集上都表现出了较高的分割精度。但是这些方法会丢失点云丰富的几何特征和原始密度分布。为了缓解上述问题,Zhao等人[36]提出了以动态形式聚合点云特征的网络结构,该网络结构同时处理全局场景复杂性和局部几何特征,使用自适应的感受野和节点权重动态聚合全局和局部之间特征。Liu等人[37]提出可用于大规模点云的高效语义解析网络。该网络首先使用3D卷积神经网络学习空间分布和颜色特征,进一步使用深度Q神经网络定位类别对象,合并起来的特征向量作为残差RNN的输入获得最终的分割结果。

1.1.4基于图的方法

利用图结构性质可以有效获取点云的基本形状和几何结构。Loic等人[38]将点云表示为一组内部互相联通的简单结构,并使用有向图建模点云结构和上下文信息,将大规模的点云分割问题分解为3个子问题,即几何同构分割、超点嵌入和上下文分割。在此基础上,为了进一步改善分割步骤,Loic和Mohamed[39]提出了一种有监督的框架,将点云过度分割为纯超点,将该问题建模为由邻接图构成的深度度量学习问题。此外,还提出了一种图结构的对比损失,以帮助识别对象之间的边界。

为了更好地构建点云高维空间中的局部几何关系,Kang等人[40]提出了一种基于图嵌入模块和金字塔式注意力网络模块的结构,称为PyramNet。图嵌入模块将点云建模为有向无环图,并使用协方差矩阵替换欧几里得距离构造相邻相似矩阵;金字塔式注意力网络模块中使用具有4种不同大小的卷积核来提取具有不同语义强度的特征。文献[41]提出了图注意力卷积(GAC)从局部相邻集合中有选择地学习相关特征。具体操作是通过分析点之间的空间位置和特征差异,将注意力权重动态分配给不同的相邻点和特征通道。GAC通过学习提取分割所需的判别特征,它具有与常用于优化的条件随机场模型相似的特征。

1.2 体素的方法

一些工作处理点云分割问题的做法是在对点云数据进行预处理的时候先将点云转换为体素格式。Huang等人[42]将预处理后的体素数据输入到全连接的3D卷积神经网络中,进行基于体素的语义分割处理。最后,体素内的所有点都被标注为与该体素相同的语义标签。虽然该方法也收到了不错的效果,但是其性能受点云分区不同引起的体素的粒度和边界模糊的严重限制,导致损失分割精度。此外,Tchapmi等人[43]提出用来实现细粒度和全局一致的语义分割网络结构。这种方法引入了三线性插值法,通过3D全连接卷积神经网络[44]预测的体素粗语义值并映射回点云,选择全连接条件随机场作为输出后处理,增强点的类别标签的空间一致性。

良好的可伸缩性是体素表示的显着优点之一,具体表现是基于体素的网络能够在具有不同空间大小的点云中进行训练和测试。全连接卷积点网络[45]从点云中分层提取不同级别的几何关系,使用3D卷积和加权平均池化提取特征,该方法可以处理大规模的点云,并且在推断过程中表现出良好的可扩展性。Angela等人[46]提出可用于实现3D扫描后的完整场景表示和每像素的语义标注的网络结构。该方法利用了全连接卷积神经网络的可伸缩性,并且在训练和测试期间适应不同尺度的输入数据。从粗到精策略用于分层提高预测结果的分辨率。

体素表示本质上是稀疏的,因为其中的非零值数量只占很小的百分比,可以将大型点云数据压缩。因此,在空间稀疏数据上应用密集卷积神经网络效率低下,效果并不好。为了解决这一问题,Graham等人[47]提出了子流形稀疏卷积网络。该方法通过将卷积的输出限制为仅与占用的体素有关,而大大节约了内存和计算成本,同时,稀疏卷积还可以控制所提取特征的稀疏性,适合处理高维或空间稀疏数据。

综上,体素表示不但能够保留点云的邻域结构,而且它的规范化数据格式良好的适应标准3D卷积操作。这些因素保证了此种三维数据结构在深度学习领域的表现性能稳步提高。然而,点云的体素化步骤不可避免地引入了离散化和信息丢失。通常,高分辨率图像会导致较高的内存和计算成本,而低分辨率会导致细节丢失。在实践中选择合适的网格分辨率并非易事。

1.3 多视图的方法

尽管基于体素表示的深度学习处理方法被证实有效,但由于采样滤波器提取体素特征时增加了计算复杂性而限制了其在深度学习模型上的使用。而对3D对象创建多视图表示可以直接应用2D 深度学习范例,无需设计具有高计算复杂度的3D体积数据的定制模型。Su等人[48]提出多视图卷积神经网络能够利用2D 深度学习框架进行3D物体形状识别,该工作从12个角度对同一个三维模型进行渲染,获得12幅图像,将12幅图像作为孪生卷积神经网络的输入,利用基于视图的池化层将多幅图像的特征进行融合,最后通过另一个卷积神经网络分类器输出结果。相比于用三维立体数据直接训练,该方法利用二维图像卷积网络的成熟度、速度等优势极大提升了网络性能。Leng等人[49]提出应用深度置信网络从三维模型的投影图像中提取特征,采用对比发散方法训练该网络。为了解决标记数据的局限性,使用半监督方法训练标记和未标记的数据,以提取三维对象的高级特征。随后,Felix等人[50]提出的方法是首先获取多个不同视角下的点云,并投影到相对应的二维平面上,通过多数据流全卷积网络预测这些图像上逐像素的语义概率,每个三维点的最终语义标签是通过融合来自不同视图的反投影后的语义分数获得的。同样,Boulch等人[51]所述方法将使用多个相机视角下的点云生成了对应的多个RGB图像和深度图像,使用2D分割网络对这些图像进行逐像素点标注,利用残差校正法进一步将从RGB图像和深度图像预测的分数融合[52],获得点云中各点的语义信息。基于点云是从局部欧几里得表面采样的假设,Tatarchenko等人[53]提出切线卷积的密集点云分割方法。这种方法能够处理具有数百万个点的大规模点云。总体而言,基于多视图的分割方法能够利用二维卷积神经网络的发展优势,无需构造复杂的网络结构,但其性能对视点选择和遮挡很敏感。此外,由于投影步骤不可避免地会导致信息丢失,因此这些方法并没有充分利用基础的几何和结构信息。

1.4 投影的方法

利用投影技术将原始点云数据转换为具有特定功能的二维形式是另一种数据处理形式,投影的数据能够封装原始数据信息的一些关键属性,而保留其中要素信息的方法取决于投影类型的选择。

文献[54]提出了通过将点云数据投影到二维平面中学习数据特征,是基于投影方法的最早尝试之一。所提架构首先对每个三维模型应用平移、缩放和位姿归一化等数据预处理操作,将每个处理后的三维模型应用投影操作,输入受限玻尔兹曼机堆栈中提取不同投影的特征,整体网络采用自动编码器结构融合全局特征。实验表明,该框架的性能优于基于全局描述符的技术,通过将局部特征与预测到的全局特征相结合来提高性能。受投影方法所取得的结果的启发,文献[55]提出使用球形投影手段围绕三维对象中心投影,从而产生一组圆柱斑块,设计网络模型将这组圆柱斑块作为预训练的卷积神经网络的输入,并使用两个互补的投影角度更好地获取三维特征,其中第一个互补投影获取三维形状的深度变化,而第二个互补投影从不同角度学习对象的轮廓信息。该模型用于三维对象分类任务,并在多个数据集上进行了测试后证实其优越性。

为了实现面向点云快速准确的分割任务,Wu等人[56]通过结合SqueezeNet[57]网络和条件随机场设计了一种端到端网络结构。随后提出SqueezeSegV2[58],利用无监督的域自适应模型解决域移位问题。Milioto等人[59]提出了针对LiDAR生成的点云进行实时语义分割的网络结构,做法是将二维图像的语义标签转移到点云,这是一种高效的基于GPU的k-NN后处理步骤,可以用来解决离散化错误和推断模糊的问题。与视图投影相比,球形投影保留了更多信息,适用于LiDAR点云的标注。但是,这种对数据的处理步骤不可避免地带来了一些问题,例如离散化误差和遮挡。

1.5 混合表示的方法

一些工作致力于从各种三维数据表示中学习多模式特征以利用每种表示带来的优势获得最佳分割结果。Angela和Matthias[60]提出了一种结合RGB特征和几何特征的联合三维多视图网络结构,主要组成部分是3D卷积神经网络分支和几个2D 卷积神经网络分支,共同用于几何特征提取和图像特征提取,并提出了一个可微的反投影层用于融合学习到的二维嵌入特征和三维几何特征,这是一个基于体素表示的语义分割网络架构。Hung等人[61]提出了一个基于点的混合表示网络框架,从点云中学习二维纹理特征、三维结构和全局上下文特征。该方法可直接应用于点云,从稀疏采样的点云中提取局部几何特征和全局特征,无需任何体素化。 Jaritz等[62]提出用于场景理解的多视图PointNet,聚合二维多视图图像的外观特征和利用PointNet规范点云空间中的空间几何特征。

2 点云实例分割

与语义分割相比,实例分割更具挑战性,因为实例分割任务不仅需要区分具有不同语义含义的点,而且还需要将具有相同语义含义的实例点分离出来。总的来说,现有方法可以分为两类:基于proposal的方法和proposal-free的方法。

2.1 基于proposal的方法

这类方法将实例分割问题转换为两个子任务:3D对象检测和实例mask预测。Hou等人[63]提出了3D全连接卷积语义实例分割网络,目的是对RGB-D扫描数据进行面向实例的语义分割。该网络从颜色和几何结构中学习特征。从2D实例分割网络框架获得灵感,构建3D区域proposal网络分支和3D兴趣区域分支分别用于预测边界框位置,对象类别标签和实例mask。Yi等人[64]设计了实例分割网络结构(GSPN)以生成对象的3D proposal。生成的proposal由作用于区域的PointNet网络进一步优化,最终标签是通过预测每个类标签的逐点二进制mask获得的。与从点云直接生成3D边界框回归操作不同,此方法通过增强几何间相关联系来去除大量毫无意义的proposals,保证实例分割精确度。通过将2D全景分割扩展到3D地图映射,Gaku等人[65]提出了一种在线体素化3D地图映射系统,目的是联合实现大尺度3D重建,语义标记和实例分割任务。他们的设计方法是首先利用2D语义和实例分割网络来获得像素级全景标签,然后将这些标签集成到体积图上,全连接的CRF作为后处理对体积图分割结果进行优化。该三维语义建图系统可以生成高质量的语义地图和判别式对象识别。Yang等人[66]提出的3D-BoNet是一种单层的、无锚点的、端到端可训练网络,同样用于点云数据的实例分割任务,在时效性和准确率上都有优秀的表现。该方法直接生成所有潜在实例对应的粗糙3D边界框,然后利用点级二进制分类器获取实例标签,创新地将边界框与真值之间的差异建模为最佳分配问题。此外。还提出了多准则损失函数来规范生成的边界框。Zhang等人[67]提出了用于分割大型室外LiDAR点云的网络,此方法使用自我关注块在点云的鸟瞰图中学习特征表示,根据预测的水平中心和高度限制获得最终实例标签。

综上,基于proposal的方法直观且直接,实例分割结果通常具有良好的客观性。 但是,这些方法的缺陷是需要通过多阶段的训练去掉错误的proposal。因此,在预测时通常很耗时且计算量很大,对硬件要求相对较高。

2.2 Proposal-free的方法

Proposal-free代表作包括文献[68-71],这类方法通常没有对象检测模块。相反,他们通常将实例分割视为语义分割的后续聚类步骤。大多数现有方法都是基于这样的假设:即属于同一实例的点应具有非常相似的特征。因此,这些方法主要集中于判别特征学习和点的分组操作。

这一类方法的先驱工作由南加州大学的王薇月团队[68]提出,他们设计了用于点云数据的实例分割网络,简称SGPN。该方法首先利用PointNet或PointNet++提取每个点的特征,然后引入相似度矩阵来表示每个配对特征之间的相似度。为了学习更多的判别特征,利用双铰损失来相互调整相似度矩阵和语义分割结果。最后,采用非最大抑制方法将相似点融合为实例。但是,相似度矩阵的构造需要较大的存储消耗,因此该方法的可扩展性受到限制。与之相似的工作由Liu等人[72]提出,首先利用子流形稀疏卷积预测每个体素的语义得分和相邻体素之间的权重关系,然后,根据预测出的相邻权值关系和拓扑结构,使用聚类算法将相似点分组成实例表示。此外,Liang等人[73]提出了一种融合型网络结构,该工作既考虑了特征的相似性,又考虑了点之间的几何关系,引入基于注意力的图卷积网络进一步关联来自邻居点的信息自适应地精炼所学习的特征。

另外一种思路利用同一点的语义类别和实例标签通常相互依赖的特性,将这两个任务耦合为一个任务进行处理。文献[69]提出端到端和可学习的联合预测语义实例模块,简称ASIS。实验表明,通过此ASIS模块,语义特征和实例特征可以相互促进,从而提高性能。同样,Pham等人[70]介绍了多任务点云语义分割网络,为每个点分配标签,并通过引入判别式损失函数对嵌入特征空间进行规范化。然后,他们将预测的语义标签和嵌入融合到多值条件随机场模型中,以进行联合优化。最后,使用均值场变分推断生产语义标签和实例标签。

为了在完整的三维场景中实现实例分割,Cathrin等人[71]展示了一种混合的2D-3D网络,通过这种网络结构可以从鸟瞰视角学习全局一致的实例特征以及点云的局部几何特征,将两种学习到的特征进行合并以实现语义和实例分割。另外,选择比GroupMerging算法[68]更灵活的Meanshift[74]算法将这些点分组为实例。多任务学习策略也可以用于实例分割任务中。Jean等人[75]提出的方法通过学习策略得到每个实例的独特特征嵌入和指向对象中心的方向信息,并使用特征嵌入损失和方向损失调整潜在特征空间中的特征嵌入。采用均值漂移聚类和非最大抑制将体素分组为实例。该方法可以达到ScanNet[8]基准的最优秀结果。此外,预测的方向信息对于确定实例的边界特别有用。Zhang等人[76]将概率嵌入引入到点云的实例分割中。该方法还结合了不确定性估计,并为聚类步骤提出了新的损失函数。

综上,proposal-free的方法不需要如基于proposals方法那样的较昂贵的计算需求。但是,这些方法并未显式检测到对象边界,因此通过这些方法聚类的实例精确度通常较低。

3 三维图像数据集

研究表明,深度学习体系结构在应用过程中显示了大量的训练数据需求,因此,在三维数据领域应用深度学习方法的效果不如二维图像数据。但随着3D传感技术的发展,出现了适合各类研究工作的三维数据集,极大促进了语义分割、实例分割等发展。下面概述了一些最新的三维数据集。一般把研究所用的三维数据分为两类:真实环境数据集和CAD模型合成数据。为了更好地模拟人类生活环境,研究人员都希望能够使用真实环境下采集的数据进行研究工作;但是,这类数据集的收集成本很高,并且通常会遇到噪声和遮挡问题。相比之下,合成数据可以根据研究要求生成数量有限的干净数据。尽管合成数据对特定研究有利,但它极大地限制了学习模型对实际测试数据的泛化能力。关于数据集同样重要的一点是大多数3D数据集都小于2D数据集,例如ImageNet等[77]。这里我们概述一些最新的大型三维数据集,为后续工作做基础。

ModelNet[6]是最常用的训练3D对象识别和分类任务的数据集。它包含662个不同类别的大约13万个带注释的CAD模型。该数据集是通过使用在线搜索引擎的方式查询各个模型数据类别,并对其进行收集,再对数据进行手动注释。ModelNet提供了三维对象的几何形状,但不包含任何相关的纹理信息。ModelNet数据集一般用于识别和检索任务上,即给定物体的3D形状,目标是识别此物体所属类别(3D分类),或在给定三维场景中识别不同的3D物体形状及其位置(3D识别和定位)。

SUNCG[9]数据集利用合成工具模拟构建了45 622个不同场景,其中包含404 058个房间、5 697 217个对象实例,涵盖84个类别。虽然该数据集是合成的,但是,每个模型都经过验证证实其符合真实环境下室内情况,并且已对场景中的对象模型进行语义标注处理。该数据集对于学习“场景与对象”之间的关联关系和微调现实数据以进行场景理解任务起到非常重要的作用。

SceneNet[78]是2016年ICRA会议上提出的使用合成方法构建的关于室内房间场景的RGB-D数据集,该数据集公开了5种室内场景类别(如卧室、厨房、办公室等)、57个相关场景集合。该数据集通过分层式模拟重组优化方法从各种现有三维图像数据库(如ModelNet等)中采样对象和纹理信息,并通过学习的方法获取空间排列关系,利用这些统计信息生成大规模的带注释的合成场景。虽然在实际使用时,其中一些场景是高度不真实的,但是该数据集仍可用于室内场景理解任务中的微调和预训练。

SceneNN[7]是RGB-D数据集,它重建了包括办公室、卧室、客厅、餐厅等100个真实环境下的室内场景,并标注了场景中所有的对象,同时分别针对3D和2D的每个顶点和每个像素进行分割和注释。该数据集具有细粒度的信息使数据集囊括了更丰富的信息,例如轴对齐的边界框、定向的边界框和对象位姿等。

相比之下,ScanNet[8]是一个非常丰富的真实场景数据集。它包含1 513个RGB-D序列帧,超过707个室内场景,标注了40个类别对象,注释了3D相机位姿,重建相应场景的表面地图等。ScanNet的优势除了真实反映室内场景信息外,还能够直接在3D数据上训练算法,无需数据预处理。

S3DIS[10]是斯坦福大学2017年提出的大型三维室内空间数据集,该数据集是从6个大型室内区域中收集的,这些区域主要来自3个用于教育和办公用途的不同建筑物,它包含70 496个常规格式的RGB图像和1 413个等矩形RGB图像,以及它们的相应深度、表面法线、语义注释、实例语义、全局坐标和相机内参数据。该数据集使用Matterport相机在每个扫描位置进行360°旋转获取RGB-D图像,以此数据为基础采样制作点云。与大多数数据集选择的语义标注方法不同,该数据集并不是在图像上进行语义标注再关联到三维空间中,而是直接对点云中的点标注语义信息,这样做的好处是可以设计直接处理点云的深度学习框架进行语义分割等任务。

4 现有方法结果对比与分析

为了充分展现评估的公平性以及各模型的有效性,本节通过标准的评价指标对现有的方法进行评估,具体地,利用准确性来衡量现有语义分割方法的性能,收集度量指标使用不同模型在最具代表性的数据集(S3DIS、ScanNet、Semantic3D等)上的分割结果,如表1所示。

目前,已经提出了许多评估标准用来测试不同语义分割模型的分割准确性。其中,平均交并比(mIoU)和总体精度(OA)是目前评价点云语义分割效果最主要的两个指标。其中,mIoU表示分割后真值区域与预测区域的交叠率,用于衡量分割精度。mIoU 是根据每个类别计算 IoU,然后再取平均。IoU 可用如下公式计算:

式中,TP为预测正确的正样本数量;FP为误分为正样本的样本数量;FN为误分为负样本的正样本数量。OA为一个通过计算每一个随机样本的语义标注结果与真实数据标注类型相一致概率的最简单的度量标准。

对点云语义分割的准确率分析显示,不同的方法各有其优缺点。基于 PointNet 改进的模型虽然在分割效果方面表现良好,但是其网络模型复杂,从而导致执行时间长。采用点云作为输入数据的语义分割模型与需要预处理为多视图和体素化数据格式的语义分割方法相比,参数量明显少且效果优。而且,随着算法及网络模型的不断改进,点云在不同数据集上的分割精度也越来越高。

表1 多种语义分割方法在不同数据集上的比较
Tab.1 Comparative semantic segmentation results on different datasets

方法S3DISArea5(OA)Area5(mIoU)6-fold(OA)6-fold(mIoU)Semantic3Dsem.(OA)sem.(mIoU)red.(OA)red.(OA)ScanNetOAmIoUPointNet[5]-41.178.647.6------SparseConvNet[47]---------72.7TangentConv[53]82.552.8------80.140.0PointNet++[17]--81.054.585.763.1----PointCNN[28]85.957.388.165.4----85.145.8Pointwise[18]--88.770.2----86.241.53DMV[60]--------48.4-MVPNet[62]--------64.1-RandLA-Net[20]--87.268.5--94.476.0--KPConv[31]- 67.1-70.6--92.974.6-68.4RSNet[34]- 51.9-56.5----84.939.4GACNet[41]87.862.9----91.970.8--DGCNN[26]--84.156.1------

5 总结与展望

点云是三维几何数据结构的重要类型之一,它可以将原始几何信息完整地保留在三维空间中,且不会出现任何离散化。因此,它是许多场景理解相关应用(例如自动驾驶和机器人技术)的首选信息表示形式。面向点云的语义分割和实例分割任务是计算机视觉的研究热点。语义分割与实例分割的区别在于语义分割是给点云中的每个点预测出一个带有语义的类别标签,而实例分割是在此基础上再为将场景中的单个对象实例聚集出实例嵌入,这两个问题通常是分别解决的,一般将实例分割作为语义分割的后处理任务。在深度神经网络的发展基础上,出现了大量用于三维图像数据语义分割和实例分割的有效方法。本文介绍了相关的最新方法,并且对这些方法进行了全面的分类和性能比较。

其中,基于多视图的方法是将三维图像数据映射为二维后,应用2DCNN预测特征,多视图方法使用学习的功能执行分割任务。通常,多视图方法要优于其他方法,但仍然存在一些未解决的缺点。例如, MVCNN[48]在每个视图的特征上应用了最大池操作,以生成表示3D对象的全局特征。最大池忽略了非最大激活,只保留了特定视图中的最大特征,从而丢失了一些特征;并且多视图表示需要大量的视图表示3D对象的几何形状,且多视图表示不能保留3D数据内在空间的关联属性。

基于体素的方法通过直接使用体素数据作为输入对三维图像进行分割。传统方法通过体素化输入点云(例如文献[44][47]等)克服点云的无性结构。多数网络的性能表现优于多视图方法,说明体素能够有效描述点云数据的空间结构,同时具有规则的数据结构拟合标准的卷积操作,上述因素使体素能够在深度学习领域得到广泛应用。但是,点云数据的体素化处理不可避免的造成运算量过大,导致体素只能采用较低的分辨率,因此这种表示方法损失了大量的三维空间细节信息。在实际处理任务时如何选择合适的分辨率成为难题。

基于点云的方法直接对无序点集进行处理,以解决体素方法中的稀疏性问题。对于每个点,PointNet学习空间编码并将所有特征聚合为全局表示。PointNet++通过利用度量空间形成的局部结构来改进PointNet,这些点被划分为多个局部区域,区域按其空间的距离度量重叠,以精细到粗略的分级过程提取特征。与此同时,另一经典方法KD-Net[15]通过执行乘法变换并将点云建模为k-d树结构施实现共享参数,从而识别点云数据。直接处理点云数据可以保留点云的空间关系,并最大程度的利用数据信息;但是现有方法只适用于小规模点云。

本文经过对各种面向点云的语义分割、实例分割方法进行研究分析后发现有以下几个问题需要在未来进行深入探讨:

1) 大多数现有方法只适用于小规模点云(例如,1 m×1 m大小的,具有4 096个点的)。实际上,由深度传感器获取的点云通常具有较大规模。因此,有必要进一步研究大规模点云的有效分割问题。

2) 直接将点云作为输入数据的网络结构是当前主流的语义分割处理方法。但是,点的属性决定其并不具有显式的相邻信息,大多数现有的基于点的方法都不得不使用计算代价昂贵的邻域点搜索机制(例如k-NN等)。未来的研究可以寻求设计出相对灵活的方式。

3) 虽然已经出现少数文章关注动态学习点云中的空间结构,但是仍处于初始探索阶段,如何有效利用时序、空间等信息进一步提高后续任务的性能,例如3D对象识别、分割和全景表示等,是亟待解决的问题。

猜你喜欢
体素网络结构视图
基于多级细分的彩色模型表面体素化算法
运用边界状态约束的表面体素加密细分算法
基于体素格尺度不变特征变换的快速点云配准方法
5.3 视图与投影
视图
Y—20重型运输机多视图
现代兵器(2017年4期)2017-06-02 15:59:24
SA2型76毫米车载高炮多视图
现代兵器(2017年4期)2017-06-02 15:58:14
基于互信息的贝叶斯网络结构学习
知识网络结构维对于创新绩效的作用机制——远程创新搜寻的中介作用
管理现代化(2016年3期)2016-02-06 02:04:41
沪港通下A+ H股票网络结构演化的实证分析
管理现代化(2016年3期)2016-02-06 02:04:13