发明内容
有鉴于此,本发明提供一种基于多尺度特征学习的三维点云标记方法和装置,以解决上述问题。
本发明较佳实施例提供一种基于多尺度特征学习的三维点云标记方法,所述方法包括:
获取待标记的三维点云数据集,并提取该三维点云数据中各点的多维特征形成点云特征矩阵;
将所述点云特征矩阵作为多尺度特征学习网络的输入以计算所述三维点云数据集中的各点的多尺度空间特征;
将所述多尺度空间特征输入多层感知器中以实现对三维点云中各点的属性标记。
在本发明较佳实施例的选择中,所述多尺度特征学习网络包括特征串联融合模块和用于学习三维点云数据集中各点的不同尺度特征的多个特征学习子网络;将所述点云特征矩阵作为多尺度特征学习网络的输入以计算所述三维点云数据集中的各点的多尺度空间特征的步骤包括:
将所述点云特征矩阵分别输入各所述特征学习子网络中,以使每个特征学习子网络基于该点云特征矩阵提取对应各点的局部区域特征信息,并将该局部区域特征信息扩展至所述三维点云数据集中的各点,以得到不同尺度下的点云空间特征;
将基于各所述特征学习子网络得到的多个不同尺度下的点云空间特征输入所述特征串联融合模块以对多个不同尺度下的点云特征信息进行特征融合得到多尺度空间特征。
在本发明较佳实施例的选择中,基于该点云特征矩阵提取对应各点的局部区域特征信息,步骤包括:
基于迭代最远点采样法从所述三维点云数据集中选取第一预设数量个点;
针对所述预设数量个点中的每个点,以该点为原点,以预设值为半径搜索第二预设数量个邻域点进行局部区域构建以得到局域空间;
对所述局域空间中包含的各点特征进行逐点池化,得到包含局部邻域全局信息的局部区域特征信息。
在本发明较佳实施例的选择中,将该局部区域特征信息扩展至所述三维点云数据集中的各点,以得到不同尺度下的点云空间特征,步骤包括:
步骤S1,从完成池化的局域空间中选取一个点作为待插值点,并将该待插值点的第三预设数量个邻域点作为邻域点集;
步骤S2,对所述邻域点集中的各邻域点的特征矢量进行加权平均以得到待插值点的特征矢量;
重复执行上述步骤S1-步骤S2,直到完成对池化后的局域空间中各点的特征泛化操作,并将扩展结果作为当前尺度下的点云空间特征信息。
在本发明较佳实施例的选择中,所述待插值点的特征矢量F通过以下公式计算得到:
其中,
x表示待插值点,x
i表示待插值点的邻域点,F
i表示点x
i的特征矢量,k表示邻域点的数量,w
i表示权重参数,d(x,x
i)表示待插值点x与邻域点x
i之间的欧氏距离,r为搜索半径。
在本发明较佳实施例的选择中,在将点云特征矩阵输入所述多尺度特征学习网络时,所述方法包括:
基于局部与全局特征融合模块对所述点云特征矩阵进行点云内部信息融合,并将完成信息融合后的点云特征矩阵作为所述多尺度特征学习网络的输入;以及
基于局部与全局特征融合模块对所述多尺度空间特征再次进行点云内部信息融合,并将完成信息融合的多尺度空间特征作为所述多层感知器的输入。
本发明较佳实施例还提供一种基于多尺度特征学习的三维点云标记装置,所述装置包括:
点云多为特征提取模块,用于获取待标记的三维点云数据集,并提取该三维点云数据中各点的多维特征形成点云特征矩阵;
多尺度学习模块,用于将所述点云特征矩阵作为多尺度特征学习网络的输入以计算所述三维点云数据集中的各点的多尺度空间特征;
属性标记模块,用于将所述多尺度空间特征输入多层感知器中以实现对三维点云中各点的属性标记。
在本发明较佳实施例的选择中,所述多尺度特征学习网络包括串联融合模块和用于学习三维点云数据集中各点的不同尺度特征的多个特征学习子网络,所述多尺度学习模块,包括:
多尺度学习单元,用于将所述点云特征矩阵分别输入各所述特征学习子网络中,以使每个特征学习子网络基于该点云特征矩阵提取对应各点的局部区域特征信息,并将该局部区域特征信息扩展至所述三维点云数据集中的各点,以得到不同尺度下的点云空间特征;
特征融合单元,用于将基于各所述特征学习子网络得到的多个不同尺度下的点云空间特征输入所述串联融合模块以对多个不同尺度下的点云特征信息进行特征融合得到多尺度空间特征。
在本发明较佳实施例的选择中,所述多尺度学习单元还包括:
点云选取子单元,用于基于迭代最远点采样法从所述三维点云数据集中选取第一预设数量个点;
局域构建子单元,用于针对所述第一预设数量个点中的每个点,以该点为原点,以预设值为半径搜索第二预设数量个邻域点进行局部区域构建以得到局域空间;
特征池化子单元,用于对所述局域空间中包含的各点进行逐点池化,得到包含局部邻域全局信息的局部区域特征信息。
在本发明较佳实施例的选择中,所述多尺度学习单元包括:
领域集创建子单元,用于从完成池化的局域空间中选取一个点作为待插值点,并将该待插值点的第三预设数量个邻域点作为邻域点集;
特征矢量计算子单元,用于对所述邻域点集中的各邻域点的特征矢量进行加权平均以得到待插值点的特征矢量;
重复调用执行子单元,用于重复调用上述领域集创建子单元和特征矢量计算子单元,直到完成对池化后的局域空间中各点的特征泛化操作,并将扩展结果作为当前尺度下的点云空间特征信息。
与现有技术相比,本发明实施例提供的一种基于多尺度特征学习的三维点云标记方法和装置,通过将在不同尺度下学习到的单一尺度特征进行融合,以实现对不同尺度下的点云结构信息的学习,能够有效缓解点云密度不一带来的点云标记问题,提高点云标记精度。
具体实施方式
经发明人研究发现,现有的三维点云标记方法主要包括以下几种:
(1)将深度神经网络应用于基于三维点云生成的二维投影图像中,即首先利用多个虚拟摄像头从不同角度对三维场景点云进行投影成像,生成多个二维投影图像,然后采用二维像素标记深度神经网络获取二维投影图像中的每个像素的语义标记结果。最后,通过从二维图像空间到三维点云空间的反投影,将二维像素标记结果映射到三维点云中以获得每个点的语义标记。但是在从三维点云数据到二维投影图像的过程易造成高度维信息的损失,因而限制了深度神经网络的特征学习能力,导致标记精度受限。
(2)基于体素的三维点云标记方法中首先对点云进行网格体素化,然后基于三维全连接卷积神经网络对网格体素进行标记,在完成体素标记后,网格体素中的所有单独点则被标记为该体素的语义类别,但这一最终标记结果仅仅是一个粗略的标记结果,标记精度低。
(3)基于点云表示的三维点云标记方法,由于点云是由一系列的散乱、无序点组成的集合,该基于点云表示的三维点云标记方法一般包括两种操作:
(a)对点云进行按照设定的排序规则进行排序,排序的操作中需要提前定好排序规则,但该规则无法适用所有情况,且不具有良好的适应性。虽然在采用递归神经网络对点云进行计算能够获得很好的排序不变性,但是计算量太大,对存储资源和计算资源要求很高,无法处理大场景点云数据。
(b)将点云作为序列信号输入递归神经网络进行学习训练,其中,通过设计对排序不敏感的对称函数,并将其应用到多层感知器中,如可直接对点云数据进行操作的深度神经网络PointNet。但是,该PointNet只能提取单一尺度下的点云局部结构信息,而实际场景中一般均存在尺度不一的目标,因而PointNet的单一尺度特征提取不能满足高性能三维点云标记的要求。
针对现有点云标记中存在的上述问题,本发明实施例提供一种基于多尺度特征学习的三维点云标记方法和装置,以提高点云标记精度和标记性能。为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
如图1所示,为本发明实施例提供的基于多尺度特征学习的三维点云标记装置100的应用场景示意图。其中,电子终端10包括基于多尺度特征学习的三维点云标记装置100、存储器200、存储控制器300以及处理器400。其中,所述电子终端10可以是,但不限于,电脑、移动上网设备(mobile Internet device,MID)等具有处理功能的电子设备,还可以是服务器等。
可选地,所述存储器200、存储控制器300、处理器400各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件之间通过一条或多条通讯总线或信号线实现电性连接。所述基于多尺度特征学习的三维点云标记装置100包括至少一个可以软件或固件的形式存储于所述存储器200中或固化在所述电子终端10的操作系统中的软件功能模块。所述处理器400在所述存储控制器300的控制下访问所述存储器200,以用于执行所述存储器200中存储的可执行模块,例如所述基于多尺度特征学习的三维点云标记装置100所包括的软件功能模块及计算机程序等。
可以理解,图1所示的结构仅为示意,所述电子终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
进一步地,请结合参阅图2,本发明实施例还提供一种可应用于所述基于多尺度特征学习的三维点云标记装置100的基于多尺度特征学习的三维点云标记方法。所应说明的是,本发明所述的基于多尺度特征学习的三维点云标记方法并不以图2以及以下所述的具体顺序为限制。应当理解,本发明所述的基于多尺度特征学习的三维点云标记方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。
在此首先需要说明的是,三维点云是由一系列散乱点组成的点的集合,三维点云与三维点云标记通常具有以下特性。
(1)点云无序:点云数据是目标表面在三维空间的采样,因而其空间分布与目标表面的三维结构、目标表面和传感器之间的位置关系息息相关。但在数据结构上,区别于规则化的图像像素、体素网格等,点云分布是无规则的。也就是说,假设点云中存在
个点,则该点云有
种数据组织形式(基于不同的排序方式所形成的数据形式),而且任何一种组织形式均不改变点云的空间分布。因此,在设计点云标记方法时需要考虑点云中点的排序的不变性,即对
种数据形式的不变性。
(2)点云密度不均匀:激光扫描系统一般通过按照固定角度旋转激光发射器的方式来完成整个场景的扫描,而这一扫描方必然会造成靠近扫描系统的区域点云密度相对较高,而远离扫描系统的区域点云密度则相对较低。此外,由于实际激光(面光源)的集束性与理想状态(点光源)存在一定的差距,因此,对于不同目标之间的邻接区域不能进行很好的测量,从而导致目标边界点云稀疏,甚至可能出现空洞。此外,目标边界区域点云的测量误差比其他区域的会大一点。
(3)点云之间不是相互独立的:点云空间分布的基础是欧式距离空间,点与点之间的连接关系也是基于欧氏距离与角度构建的。因而,点云中的点之间不是相互独立的,而是具有空间相关性,其局部邻域会包含有一定的结构信息。局部邻域结构信息有助于区分目标的边界,因而在设计点云标记算法时需要考虑给定点及其邻域点的邻接关系。
(4)存在遮挡与自遮挡、重叠现象。由于遮挡与自遮挡,采集到的点云数据通常均存在缺失现象,如在进行场景数据采集时,位于光轴主方向的目标会遮挡住位于其后方的目标,使得后方目标的点云数据不完整。此外,由扫描角度的问题而造成的自遮挡也会导致目标点云数据的缺失。以及不同目标之间存在重叠的现比如墙壁与墙壁上的画、桌子与桌子上的书等,其点云数据之间也是相互连通,难以区分。因此在点云标记中需要考虑目标之间的邻接关系以对其进行区分。
(5)点云标记对刚性变换具有不变性。目标点的类别属性与点的原始状态相关,与旋转、平移变换后的点无关。因而,点云特征学习必须考虑特征的旋转不变性、平移不变性。也就是说,对点云进行旋转、平移等刚性变换,不会改变点云的标记结果。
如图2所示,为本发明给出的基于多尺度特征学习的三维点云标记方法的流程示意图,下面结合图2对所述的基于多尺度特征学习的三维点云标记方法进行说明。
步骤S10,获取待标记的三维点云数据集,并提取该三维点云数据中各点的多维特征形成点云特征矩阵;
步骤S11,将所述点云特征矩阵作为多尺度特征学习网络的输入以计算所述三维点云数据集中的各点的多尺度空间特征;
步骤S12,将所述多尺度空间特征输入多层感知器中以实现对三维点云中各点的属性标记。
上述步骤S10-步骤S12中给出的基于多尺度特征学习的三维点云标记方法中,通过多尺度特征学习网络计算三维点云数据集中各点的多尺度空间特征,进而基于该多尺度特征实现对点云数据的精细标记,能够有效提高点云标记性能,确保点云标记精度。
详细地,在步骤S10中对三维点云数据中的各点提取多为特征时,首先将输入点云分成几个底面(XY平面)为1m×1m的点云块,进而在点云块上随机的选取N个点,然后将选取好的点云集输入多层感知器(Multi-Layer Perception,MLP),以学习得到每个点的1024维特征。
步骤S11中的多尺度特征学习网络是提取用于三维点云标记的高描述性的多尺度特征,如图3所示为该多尺度特征提取网络模型结构,所述多尺度特征学习网络包括特征串联融合模块和用于学习三维点云数据集中各点的不同尺度特征的多个特征学习子网络,其中,DS(Down-Sampling)表示采用最远点采样以及K近邻选择方法的特征下采样操作,UI(UpInterpolation)表示基于距离的特征上插值操作,MP(Max-Pooling)表示最大池化操作,S(vertical Stack)表示堆叠操作,C(Concatenation)表示特征串联融合操作,图3(d)代表不同尺度(如r1、r2等)下获取的特征描述。
那么,如图4所示,在上述步骤S11中将所述点云特征矩阵作为多尺度特征学习网络的输入以计算所述三维点云数据集中的各点的多尺度空间特征的步骤包括下述步骤S110和步骤S111。
步骤S110,将所述点云特征矩阵分别输入各所述特征学习子网络中,以使每个特征学习子网络基于该点云特征矩阵提取对应各点的局部区域特征信息,并将该局部区域特征信息扩展至所述三维点云数据集中的各点,以得到不同尺度下的点云空间特征;
步骤S111,将基于各所述特征学习子网络得到的多个不同尺度下的点云空间特征输入所述特征串联融合模块以对多个不同尺度下的点云特征信息进行特征融合得到多尺度空间特征。
在步骤S110-步骤S111中,如图3(c)所示,单一尺度上的特征学习网络(single-scale Feature Learning Block,FLB),其实质是一个改进型的PointNet。具体来说,FLB由2个子单元组成,即特征下采样单元(Down-Sampling Unit,DSU,如图3(a)所示)和特征上采样单元(Up-Sampling Unit,USU,如图3(b)所示)。DSU用于从输入的点云特征矩阵中提取局部区域特征。如图3(a)所示,DSU首先随机选取一组关键点并在关键点周边选取固定数量的邻域点,基于这些邻域点构建局部区域。然后,通过一个MLP层和最大值池化层提取在该局部区域的采样点特征,也即局部区域的全局特征。对于点云标记而言,进行的是逐点的类别标记,因而需要获取每个点的特征。
基于此考虑,本发明实施例还给出了特征上采样模块USU,用于将DSU中得到的采样点特征扩展到原始点云中的所有点,如图3(b)所示。其中,USU首先采用了一个基于距离的特征插值层(Up Interpolation,UI)来生成新的特征,进而利用一个MLP层对插值生成的特征进行泛化以使其更有利于点云标记任务。
详细地,如图3(a)所示,为特征下采样单元(DSU)的网络结构示意图。给定包含N个点的点云,DSU以前层网络学习到点云特征矩阵(如每个点的D维特征)作为网络输入。将所述点云特征矩阵分别输入各所述特征学习子网络中,以使每个特征学习子网络基于该点云特征矩阵提取对应各点的局部区域特征信息,并将该局部区域特征信息扩展至所述三维点云数据集中的各点,以得到不同尺度下的点云空间特征;以及将基于各所述特征学习子网络得到的多个不同尺度下的点云空间特征输入所述特征串联融合模块以对多个不同尺度下的点云特征信息进行特征融合得到多尺度空间特征。
具体地,DSU采用迭代最远点采样法(Farthest Point Sampling,FPS)从给定的点云中选出N'(N'<N)个点。其中,FPS能够保证所选择的点对于点云中的其他点而言都是最远的点。与随机采样相比,在选定的点数相同的情况下,FPS可以更好地覆盖整个三维点云空间。接下来,采用球形搜索方法为每个选择的点构建局部邻域。对每个选择的点,在与其距离为r的半径范围内选取K个邻域点以表示其邻域。其中,半径r即代表当前的尺度。通常而言,与选定点的距离小于r的点的数量
始终要大于或小于K。在
时,对点集进行随机采样得到K个点。当
时,采用随机复制的方法获取K个点。这样,在进行最远点采样与邻域构建后,会得到N'×K×D维的特征矩阵,即N'个局部邻域中包含K个点,每个点包含D维特征。然后,将得到的局部特征输入一个MLP层以及MP层(对局部邻域内部的点进行逐点池化),得到采样后的特征描述,N'×D'维特征矩阵,该描述包含了局部邻域的全局信息。
在利用DSU从所述从初始输入点云特征矩阵中提取局部邻域特征,表现为点集数量的减少(从N到N',且N'<N)。但是,对于三维点云标记而言,需要提取每个点的特征描述。因此,本发明实施例设计了一个如图3(b)所示的特征上采样的网络结构,用以将DSU下采样得到的特征描述扩展至初始的三维点云数据集中的每一个点。实际实施时,如图5所示,可利用下述步骤S112-步骤S113完成将该局部区域特征信息扩展至所述三维点云数据集中的各点,以得到不同尺度下的点云空间特征。
步骤S112,从完成池化的局域空间中选取一个点作为待插值点,并将该待插值点的第三预设数量个邻域点作为邻域点集;
步骤S113,对所述邻域点集中的各邻域点的特征矢量进行加权平均以得到待插值点的特征矢量;
步骤S114,重复执行上述步骤S112-步骤S113,直到完成对池化后的局域空间中各点的特征泛化操作,并将扩展结果作为当前尺度下的点云空间特征信息。
详细地,上述的上采样单元(USU)的核心思路是采用加权平均的方式获取缺失的特征。在UI层中,假设在DSU中抽取出的点集中选取待插值点x的k个邻域点{xi},然后对这k个点的特征矢量{Fi}进行加权平均以计算得到待插值点的特征矢量F,具体如式(2)所示。
其中,
x表示待插值点,x
i表示待插值点的邻域点,F
i表示点x
i的特征矢量,k表示邻域点的数量,w
i表示权重参数,d(x,x
i)表示待插值点x与邻域点x
i之间的欧氏距离,r为搜索半径。
在给定尺度范围内的点与待计算特征的点具有更好的相关性,从而保证插值的有效性。在得到插值特征后,增加一个MLP层对上采样后的点云特征进行进一步泛化,使得其更适用于点云标记任务。
进一步地,步骤S11中,在将点云特征矩阵输入所述多尺度特征学习网络时,还可基于局部与全局特征融合模块对所述点云特征矩阵进行点云内部信息融合,并将完成信息融合后的点云特征矩阵作为所述多尺度特征学习网络的输入;以及基于局部与全局特征融合模块对所述多尺度空间特征再次进行点云内部信息融合,并将完成信息融合的多尺度空间特征作为所述多层感知器的输入。
详细地,如图6所示,为局部与全局信息融合模块(LGAB)的网络结构,其中MP(Max-Pooling)表示最大池化操作,S(vertical Stack)表示堆叠操作,C(Concatenation)表示特征串联融合操作。假设LGAB以N×D点云特征矩阵作为输入,该点云特征矩阵表示每个点自身的信息,首先对输入的局部特征进行逐点的最大值池化操作(MP),得到1×D的全局特征,即邻域点的共同信息。然后对全局特征进行堆叠扩维(S),并与输入的局部特征进行串联(C)以获取融合特征。即LGAB提供了点的自身局部信息以及邻域共同信息的融合表达。
基于上述描述,结合MS-FLB和LGAB,如图7所示,本发明实施例给出了三个复杂程度不一的用于三维点云标记的网络结构。
·简单网络(LGABs):主要是使用LGAB模块,将LGAB结构应用到基础网络中除最后一层以外的每一个MLP层。
·中型网络(MS-LGABs):在简单网络LGABs中增加了MS-FLB模块。考虑到室内外场景中目标的尺度范围,本发明在MS-FLB中使用了三个不同的尺度并设置其半径值r为0.1m、0.2m、0.4m。此外,MS-FLB的输入特征描述及其不同尺度下的输出特征描述也进行了串联融合。
·复杂网络(C-MS-LGABs):在中型网络MS-LGABs的基础上增加了对不同层的特征进行融合的操作。具体的,对中间三个LGAB层的输出特征描述进行串联融合。
实际实施时,为了提高多尺度特征学习网络的泛化能力以及防止过拟合,每个MLP中均采用了批归化处理(Batch Normalization,BN)。另外,在最后一个MLP层之前增加一个dropout层,其dropout比例设置可以为0.5。
基于对上述基于多尺度特征学习的三维点云标记方法的描述,发明人还对其中涉及的MS-FLB与LGAB在三维点云标记任务汇总发挥的作用性能进行验证,在室内与室外数据集上,采用点集交并比(Intersection over Union,IoU)、整体准确率(Overall Accuracy,OA)两个评价指标,对本发明给出的基于多尺度特征学习的三维点云标记方法与现有的经典三维点云标记算法进行了定量比较。其中,OA为标记正确的点数与总体点数的比值,表示了标记方法对整体点云的分类识别性能。集合为A,算法标记为该类目标的点的集合为B,其分布如图8所示,则IoU的计算公式如下所示
其中,[A]表示集合A中的点数。不难看出,IoU指标给出了算法模型对每一类目标的细节把握。对数据集中所有类别目标的IoU进行加权平均即得到数据集上平均IoU,表征了算法模型对数据集中细节信息的整体表征能力。
(1)数据集
本发明实施例选取了三个经常使用的三维点云数据集,包括斯坦福大学室内数据集(Stanford large-scale 3D Indoor Spaces dataset,S3DIS)、Semantic3D数据集、仿真KITTI(virtual KITTI,vKITTI)数据集。这三个数据集具有比较好的代表性,包括了室内和室外场景点云、小场景和大场景点云、高密度和低密度点云。
·S3DIS:S3DIS是一个大型室内场景点云数据集。该数据集包含从6个大范围室内区域利用MaTTerport采集到的点云数据。每个点都人工标记了相应的语义类别,共有13个类别,包括7类建筑物部件(天花板、地板、墙、横梁(beam)、立柱(column)、窗户、门)、5类家具(桌子、椅子、沙发、书柜、墙板(board))以及阴影(cluTTer)。为进行有效验证,可采用6折交叉验证的评估方法。进行测试时的训练数据与测试数据组成如表1所示。图9(a)展示了S3DIS数据集中部分彩色点云数据。
·Semantic3D:Semantic3D数据集提供了用静态激光扫描仪采集到的30幅点云数据,总共包含超过40亿个点。该数据集是在室外区域采集得到的,
表1
包括农场、市政厅、运动场、城堡以及购物广场等。发布者提供了两个数据集,一个包含所有原始数据的完整数据集semantic-8,以及一个采样后的数据集reduced-8。数据集中训练数据被人工标记了类别标签,包含人造地形(man-made terrain)、天然地形(natural terrain)、高植被(high vegetation)、矮植被(low vegetation)、建筑物、人造景观(hard scape)、工艺品(scaNNing artefact)和车辆等8个类别。此外,还用0来标记那些没有准确类别信息的点,这些点在训练时需要被剔除。由于数据集中测试数据的人工标记结果并没有正式公开,本文选取公开的训练数据进行测试。同样的,这里仍然采用6折交叉验证的评估方法。基于此,本发明选取reduced-8数据集中的前6个场景数据进行算法测试,如图9(b)所示,训练数据与测试数据的分组情况与表1类似。
·vKITTI:为进行室外三维点云标记测试,从5个不同的室外场景中采集到的单目视频序列。每个视频序列均提供了对应的像素级深度标记以及语义标记。利用摄影测量的原理,将二维图像数据以及标记结果转换到三维空间即得到了vKITTI数据集,如图9(c)所示。此外,序列数据被分割为6个相互之间没有重叠的子序列,每个子序列包含15组场景数据。同样的,采用6折交叉验证对算法进行验证,训练数据与测试数据的分组情况如表1所示。
(2)网络实现与参数设置
在数据预处理阶段,首先将原始点云以XY平面为基准(默认Z轴方向为高程方向),按照1m×1m的区域标准栅格化为相应的点云块。在训练数据集上,每个点云块分别在X和Y方向上存在0.5m的重叠区域。然后,从每个点云块中随机选取2048个点作为深度神经网络的输入。在点云块中点数小于2048时,随机重复分块中的部分点以获得符合数量要求的点集。少于10个点的点云块不用做训练。此外,本文在进行数据分块前,通过在点云数据中加入均值为0、标准差为0.05的正态分布的位置噪声以增加训练样本,进而提高网络参数对噪声的稳健性。
在测试时,相邻点云块之间不存在重叠区域且不进行样本扩增。采用动量值为0.9的Adam优化算法对网络参数进行训练优化,其中初始学习率为0.001,batch的大小为24。在训练期间,为获取最优网络参数,采用一种基于验证准确性的早停止策略(early-stopping)。在训练的同时在测试集上进行验证,如果验证得到的总体标记准确率在上升,则更新网络参数;如果准确率在下降,则网络参数保持不变直到准确率重新开始增长;如果网络参数在连续10轮训练后仍然没有更新则停止训练,或者达到最大训练轮数(100轮)后停止训练。
本发明基于Python语言、采用Tensorflow的深度学习框架来实现提出的三个网络结构。实验硬件环境为:Intel Core i7 6700K CPU,48G内存,GTX 1080Ti显卡(支持CUDA8.0、cuDNN 5.1)。
(3)基于不同网络结构的标记结果与分析
分别基于深度神经网络模型(LGABs,MS-LGABs和C-MS-LGABs)在三维点云标记中的应用效果进行测试,并与现有的标记算法PointNet、MS+CU(2)、SEGCloud和3DContextNet进行了对比。本实验中,只采用点云的几何坐标信息,即XYZ坐标进行数据处理。基于PointNet的实验结果是利用原作者提供的代码与本发明给出的参数进行训练、测试得到的结果。
定量结果分析
表2-表4中分别给出了不同算法在三维数据集上的统计标记结果,其中,带*标记的算法采用随机采样的方法来选择训练和测试点云块,其余算法采用网格化的方法提取点云块。C-MS-LGABs在S3DIS、Semantic3D、vKITTI数据集上分别取得了52.6%、59.1%、40.2%的平均交并比(IoU),以及81.7%、84.3%、83.4%的总体标记准确率(OA)。不难看出,C-MS-LGABs在三个数据集上均取得了最优标记性能。此外,Ms-LGABs的标记性能与C-MS-LGABs相当。这是由于MS-LGABs和C-MS-LGABs均包含有LGAB与MS-FLB模块,能够学习到点云中的多尺度空间结构信息,提供更为丰富的细节信息。相比较于3DContextNet与MS-CU中采用的空间邻域信息,
表2
C-MS-LGABs和MS-LGABs提取的空间邻域信息更具有描述性,更能适应三维点云标记的实际应用。尽管SEGCLloud采用了全连接条件随机场(Fully CoNNected ConditionalRandom Field,FC-CRF)进行后处理优化,但是C-MS-LGABs与MS-LGABs取得了更高的平均IoU。实验结果充分说明了本文提出的LGAB与MS-FLB模块能够提取具有强表征能力的特征描述并能很好的应用到三维标记任务中。
表3
由表2的实验结果也可以看出,本发明给出的LGAB和MS-FLB网络模块,在三维点云标记中发挥重要作用。首先,LGABs中主要应用了LGAB模块,实现了局部与全局信息的融合。相比较于基准算法PointNet,在S3DIS数据库上,LGABs在平均IoU方面取得了13.5%的提升,在OA方面取得了9.4%的提升(见表2)。其次,MS-LGABs中增加了多尺度特征学习模块MS-FLB,进一步提升了神经网络对细节信息的把握。在S3DIS数据集上,相比较于PointNet和LGABs,MS-LGABs在平均IoU以及OA方面均取得了显著提升。最后,C-MS-LGABs中进一步增加了前三个网络层的特征融合。
表4
由表2可以看出,与MS-LGABs相比,C-MS-LGABs在S3DIS数据集上只是略有性能改善。表3-表4中也有类似的情况。实验结果充分说明,多尺度特征学习以及局部与全局信息的融合对提升三维点云标记性能具有重要作用,尤其是多尺度特征学习。在不同的数据集上,以PointNet作为基准,本发明给出的网络模型(LGABs、MS-LGABs、C-MS-LGABs)在vKITTI数据集上取得了较为显著的性能改善,在S3DIS和Semantic3D数据集上取得的性能改善则要小很多。这是由于S3DIS和Semantic3D数据集中点云密度普遍较高(见图9),而vKITTI数据集中的点云密度则要小很多。对于稠密点云,采用比较简单的方法(比如,PointNet)即可提取出较为丰富的特征描述,但这些简单的方法不能适用于稀疏点云。
定性结果分析
图10-图12中展示了不同算法在不同数据集下的部分标记结果,从左至右依次为:输入彩色点云,基于PointNet、LGABs、MS-LGABs、C-MS-LGABs的标记结果,真实标记结果。从图10可以看出,LGABs、MS-LGABs、和C-MSLGABs在S3DIS数据集上的标记结果更为平滑,边界清晰,错误的标记杂点较少。
比较图11和图12中的结果,C-MS-LGABs取得的标记性能也要优于PointNet。这是由于,C-MS-LGABs能够学习到表征能力更强的特征描述。
在室内场景中,建筑物部件(如地板(floor)、天花板(ceiling)和墙壁(wall)等,如图10所示)与其他物体具有明显的结构差异,因而PointNet和本发明给出的网络模型均能够很好的将这三类目标区分开来。对于高度重叠的目标(比如墙)。
定性结果分析
图10-图12中展示了不同算法在不同数据集下的部分标记结果,从左至右依次为:输入彩色点云,基于PointNet、LGABs、MS-LGABs、C-MS-LGABs的标记结果,真实标记结果。从图10可以看出,LGABs、MS-LGABs、和C-MSLGABs在S3DIS数据集上的标记结果更为平滑,边界清晰,错误的标记杂点较少。比较图11和12中的结果,C-MS-LGABs取得的标记性能也要优于PointNet。这是由于C-MS-LGABs能够学习到表征能力更强的特征描述。
在室内场景中,建筑物部件(如地板(floor)、天花板(ceiling)和墙壁(wall)等,如图10所示)与其他物体具有明显的结构差异,因而PointNet和本发明给出的网络模型均能够很好的将这三类目标区分开来。对于高度重叠的目标(比如墙)。
类别混淆矩阵分析
图13展示了C-MS-LGABs网络模型在三个数据集上获得的类别混淆矩阵。混淆矩阵网格中的数值为类别标记准确率(accuracy per class)即标记为该类的点数与实际类别总体点数的比值,其颜色也代表了准确率的大小。从图13(a)可以看出,S3DIS数据集中,天花板(ceiling)、地板(floor)和门(door)均被很好的标记,均取得了超过88%的标记准确率。同时,立柱(column)、横梁(beam)、窗户(window)、书柜(bookcase)、墙板(board)和椅子(chair)的标记准确度在50%-80%之间。也就是说,数据集中大部分类别的目标均能较好的被标记(比如,准确率高于50%)。值得注意的是,沙发(sofa)、墙壁(wall)和阴影(cluTTer)的标记准确度较低,在30%到50%之间。桌子(table)的标记精度为27%,在13类目标中最低。主要原因是桌子和地板包含有类似的大平面(桌面),且桌面一般均会遮挡住地板,因而容易产生混淆。在vKITTI数据集上,6类目标(包括建筑物(building)、交通标志(traffic sign)、汽车(car)、栏杆(guard rail)、杂项物体(misc)和植被(vegetation))取得了高于73%的标记精度,其余7类目标的标记精度低于40%,如图13(b)所示。在vKITTI数据集上的标记精度普遍较低主要是由于vKITTI数据集中的点云数据密度较低而且非常不均匀,因而不利于进行稳定的局部特征提取,进而导致标记性能较差。不同的是,在Semantic3D数据集上,除了矮植被(low vegetation)以外,几乎所有类别的标记准确度都在55%以上,如图13(c)所示。
基于不同输入数据得到的标记结果与分析
在网络结构上,C-MS-LGABs与MS-LGABs只是有轻微的差异,且均包含有本发明给出的两个模块(LGAB与MS-FLB),两者在不同的数据集上取得了类似的标记效果,但是C-MS-LGABs的计算量明显要大很多。基于此考虑,本节采用MS-LGABs来分析不同输入数据下的算法标记性能。具体的,以PointNet作为基准算法,采用几何坐标信息(XYZ坐标)与颜色信息(RGB信息)进行训练与测试,其统计结果如表5所示。由于颜色信息会为标记任务提供额外的信息,因而必然会提升算法标记精度。具体来说,增加颜色信息后,MS-LGABs在三个数据集上分别取得了56.4%,59.4%,46.8%的平均IoU以及84.1%,85.4%,88.2%的整体识别率(OA),明显要优于PointNet。相比较于只采用坐标信息的标记结果,增加颜色信息后MS-LGABs相对于PointNet算法改善并不明显。这是由于,点云的XYZ坐标已经提供了足够用于三维点云标记的信息。也就是说,MS-LGABs可以较好的解决不存在颜色信息的三维点云标记任务。
表5
部件分割实验
本发明在MS-LGABs的基础上设计了一个用于三维物体部件分割的深度神经网络并在ShapeNet三维物体部件数据集上进行了实验验证。与三维点云标记类似,三维物体部件分割需要为三维物体点云数据中的每个点分配一个部件语义标签。因此,三维部件分割问题也可以转换为一个逐点标记问题,进而可以利用本发明给出的网络模型求解。
本发明采用ShapeNet部件数据集进行算法测试与验证。该数据集包含16,881个标记过的三维目标和50个部件语义类别。由于ShapeNet部件数据集中的物体尺寸要小于场景数据集(比如,S3DIS、Semantic3D和vKITTI数据集)中的物体尺寸,本文将MS-FLB中的尺度参数(即半径)分别设为0.05m、0.1m、0.2m。另外,LGAB仅应用于MS-FLB之前的MLP层,MS-FLB之后的网络层保持为MLP。此外,参照PointNet,本发明在网络中增加了一个用于三维目标识别的分支网络,最终构建了改进型的MS-LGABs网络(Modified MS-LGABs,M-MS-LGABs)用于有效部件分割。
进一步地,请结合参阅图6,本发明实施例提供的基于多尺度特征学习的三维点云标记装置100包括点云特征提取模块110、多尺度学习模块120和属性标记模块130。
所述点云特征提取模块110,用于获取待标记的三维点云数据集,并提取该三维点云数据中各点的多维特征形成点云特征矩阵;本实施例中,步骤S10可由所述点云特征提取模块110执行,具体过程请参考步骤S10,在此不再赘述。
所述多尺度学习模块120,用于将所述点云特征矩阵作为多尺度特征学习网络的输入以计算所述三维点云数据集中的各点的多尺度空间特征;本实施例中,步骤S11可由所述多尺度学习模块120执行,具体过程请参考步骤S11,在此不再赘述。可选地,所述多尺度学习模块120包括多尺度学习单元和特征融合单元。
所述多尺度学习单元,用于将所述点云特征矩阵分别输入各所述特征学习子网络中,以使每个特征学习子网络基于该点云特征矩阵提取对应各点的局部区域特征信息,并将该局部区域特征信息扩展至所述三维点云数据集中的各点,以得到不同尺度下的点云空间特征;其中,所述多尺度学习单元包括点云选取子单元、局域构建子单元、特征池化子单元、领域集创建子单元、特征矢量计算子单元和重复调用执行子单元。
点云选取子单元,用于基于迭代最远点采样法从所述三维点云数据集中选取第一预设数量个点;
局域构建子单元,用于针对所述第一预设数量个点中的每个点,以该点为原点,以预设值为半径搜索第二预设数量个邻域点进行局部区域构建以得到局域空间;
特征池化子单元,用于对所述局域空间中包含的各点进行逐点池化,得到包含局部邻域全局信息的局部区域特征信息。
领域集创建子单元,用于从完成池化的局域空间中选取一个点作为待插值点,并将该待插值点的第三预设数量个邻域点作为邻域点集;
特征矢量计算子单元,用于对所述邻域点集中的各邻域点的特征矢量进行加权平均以得到待插值点的特征矢量;
重复调用执行子单元,用于重复调用上述领域集创建子单元和特征矢量计算子单元,直到完成对池化后的局域空间中各点的特征泛化操作,并将扩展结果作为当前尺度下的点云空间特征信息。
可以理解的是,关于上述点云选取子单元、局域构建子单元、特征池化子单元、领域集创建子单元、特征矢量计算子单元和的具体描述可参照前述步骤S11的描述,本实施例在此不再赘述。
所述特征融合单元,用于将基于各所述特征学习子网络得到的多个不同尺度下的点云空间特征输入所述串联融合模块以对多个不同尺度下的点云特征信息进行特征融合得到多尺度空间特征。
所述属性标记模块130,用于将所述多尺度空间特征输入多层感知器中以实现对三维点云中各点的属性标记。本实施例中,步骤S12可由所述属性标记模块130执行,具体过程请参考步骤S12,在此不再赘述。
综上所述,本发明实施例提供的一种基于多尺度特征学习的三维点云标记方法和装置,通过将在不同尺度下学习到的单一尺度特征进行融合,以实现对不同尺度下的点云结构信息的学习,能够有效缓解点云密度不一带来的点云标记问题,提高点云标记精度。
在本发明的描述中,术语“设置”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的预设数量个实施例的装置、方法和计算机程序产品可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分。所述模块、程序段或代码的一部分包含一个或预设数量个用于实现规定的逻辑功能。
也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。