一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

点云检测和分割方法、装置,以及,电子设备与流程

2022-07-31 06:19:33 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及点云检测和分割方法、装置,以及,电子设备及计算机可读存储介质。


背景技术:

2.点云数据(point cloud data)是指在一个三维坐标系统中的一组向量的集合。空间信息以点的形式记录,每一个点包含有三维坐标。根据点云采集设备的数据采集能力的差异,有些点云数据中可能还含有颜色信息(rgb)或反射强度信息(intensity)等。以通过激光雷达采集的点云数据为例,点云数据包括三维空间中点的位置坐标和反射强度信息。点云数据广泛用于自动驾驶领域中进行目标物检测和识别。例如,用于汽车、无人机等自动驾驶领域的目标物检测和识别。在点云数据的应用过程中,通常要采用点云检测和分割技术,以基于点云数据进行目标物检测和点云分割。其中,点云检测技术指通过对点云数据进行处理,检测出出点云数据匹配的场景中的目标物的位置,而点云分割技术指识别出点云数据中每个点匹配的目标物类别,便于后续进行自动驾驶控制。
3.现有技术中,通常采用不同的网络模型分别执行点云检测和点云分割任务。由于点云数据具有稀疏性和无规则性的特点,因此,通常采用的检测网络和分割网络的结构比较复杂,导致获取点云检测结果和点云分割结果需要的计算量很高。
4.可见,现有技术中的点云检测和分割方法还需要改进。


技术实现要素:

5.本技术实施例提供一种点云检测和分割方法,有助于提升点云检测和点云分割的效率。
6.第一方面,本技术实施例提供了一种点云检测和分割方法,包括:
7.对待处理点云进行柱状体素化处理,获取构成所述待处理点云的若干柱状体素;
8.对所述若干柱状体素进行特征提取和映射,获取所述待处理点云的体素特征;
9.将所述体素特征映射到鸟瞰图,得到所述待处理点云对应的鸟瞰图特征;
10.通过预先训练的多任务神经网络的主干网络,对所述鸟瞰图特征进行特征提取,得到点云特征向量;
11.通过所述多任务神经网络的点云检测网络分支,基于所述点云特征向量进行目标物检测,输出点云检测结果;以及,通过所述多任务神经网络的点云分割网络分支,基于所述点云特征向量进行点云分割,输出点云分割结果。
12.第二方面,本技术实施例提供了一种点云检测和分割装置,包括:
13.柱状体素化模块,用于对待处理点云进行柱状体素化处理,获取构成所述待处理点云的若干柱状体素;
14.体素特征获取模块,用于对所述若干柱状体素进行特征提取和映射,获取所述待处理点云的体素特征;
15.鸟瞰图特征映射模块,用于将所述体素特征映射到鸟瞰图,得到所述待处理点云对应的鸟瞰图特征;
16.点云特征提取模块,用于通过预先训练的多任务神经网络的主干网络,对所述鸟瞰图特征进行特征提取,得到点云特征向量;
17.点云检测和分割模块,用于通过所述多任务神经网络的点云检测网络分支,基于所述点云特征向量进行目标物检测,输出点云检测结果;以及,通过所述多任务神经网络的点云分割网络分支,基于所述点云特征向量进行点云分割,输出点云分割结果。
18.第三方面,本技术实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本技术实施例所述的点云检测和分割方法。
19.第四方面,本技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本技术实施例公开的点云检测和分割方法的步骤。
20.本技术实施例公开的点云检测和分割方法,通过对待处理点云进行柱状体素化处理,获取构成所述待处理点云的若干柱状体素;之后,对所述若干柱状体素进行特征提取和映射,获取所述待处理点云的体素特征,并将所述体素特征映射到鸟瞰图,得到所述待处理点云对应的鸟瞰图特征;最后,通过预先训练的多任务神经网络的主干网络,对所述鸟瞰图特征进行特征提取,得到点云特征向量;通过所述多任务神经网络的点云检测网络分支,基于所述点云特征向量进行目标物检测,输出点云检测结果;以及,通过所述多任务神经网络的点云分割网络分支,基于所述点云特征向量进行点云分割,输出点云分割结果,有助于提升点云检测和点云分割的效率。
21.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
22.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
23.图1是本技术实施例一的点云检测和分割方法流程示意图;
24.图2是本技术实施例一的点云体素化处理效果示意图
25.图3是本技术实施例一中采用的多任务神经网络结构示意图;
26.图4是本技术实施例一中点云分割结果映射示意图;
27.图5是本技术实施例二的点云检测和分割装置结构示意图之一;
28.图6是本技术实施例二的点云检测和分割装置结构示意图之二
29.图7示意性地示出了用于执行根据本技术的方法的电子设备的框图;以及
30.图8示意性地示出了用于保持或者携带实现根据本技术的方法的程序代码的存储单元。
具体实施方式
31.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
32.实施例一
33.本技术实施例公开的一种点云检测和分割方法,如图1所示,所述方法包括:步骤110至步骤150。
34.步骤110,对待处理点云进行柱状体素化处理,获取构成所述待处理点云的若干柱状体素。
35.本技术实施例中所述的待处理点云为:点云采集设备(如激光雷达传感器)采集到的点云中感兴趣区域内的点云。
36.以本技术实施例中所述的点云检测和分割方法应用于汽车自动驾驶场景为例,设置在车辆上的激光雷达传感器采集的原始点云是若干无序点的数据集,其中,每个点的数据可以采用维度为4的数据表示,例如,表示为:(x,y,z,i),其中,x,y,z是点的空间位置坐标,i表示该点的反射强度。
37.对于点云采集设备采集的原始点云,首先需要进行点云预处理,以获得符合要求的点集。例如,对于原始点云,去除其中nan值(空值),或者,去除其中数值非常大的点,以过滤点云噪声。点云预处理的具体实施方案可以参见现有技术,本技术实施例中对点云预处理采用的技术方案不做限定,此处亦不再赘述。
38.点云采集设备(如激光雷达传感器)采集到的点云是三维的不规则空间区域内的点,在对点云进行检测和分割之前,首先需要从中确定一个规则的空间区域内的点云。例如,通过限定x,y和z方向的坐标范围,取一块大的立方体区域中的点云,其余的舍弃,这个立方体区域的大小可以表示为:[xmax-xmin,ymax-ymin,zmax-zmin],其中,xmax和xmin分别表示x方向的坐标最大值和最小值,ymax和ymin分别表示y方向的坐标最大值和最小值,zmax和zmin分别表示z方向的坐标最大值和最小值。
[0039]
进一步的,获取前文确定的大立方体区域中感兴趣区域内的点的数据,便于后续对感兴趣区域内的点云进行点云检测和点云分割。本技术的一些实施例中,感兴趣区域内的点的坐标可以通过(x,y,z)表示,其中,xmin《x《xmax,ymin《y《ymax,zmin《z《zmax,单位是米。
[0040]
本技术的一些实施例中,感兴趣区域中的点根据点云质量确定。例如,距离车辆较远位置的点云比较稀疏,打到车上的点数较少,可以设置最小点数为一个较小数值(例如:点数值等于5),然后,根据这个点数找到相应数量的点,并根据一个最大距离的点,确定一个空间区域。本技术的一些实施例中,对于同样的点云质量(如同样的点云采集设备采集的点云),这个距离可以通过采集点云数据的质量预先确定,在应用过程中不再改变。
[0041]
感兴趣区域的确定方法可以参见现有技术中点云检测或点云分割方案中采用的确定感兴趣区域的方法,本技术实施例中,对确定感兴趣区域的具体实施方式不做限定。
[0042]
由于点云采集设备采集到的点云中包括的点非常多,因此,基于点进行特征提取,用于点云检测点云分割时,会消耗大量的计算资源,因此,本技术实施例中,首先对原始点
云进行体素化处理,后续,基于体素进行特征提取,可以有效减少数据处理量,节省计算资源。
[0043]
本技术的一些实施例中,所述对待处理点云进行柱状体素化处理,获取构成所述待处理点云的若干柱状体素,包括:按照第一坐标轴和第二坐标轴的坐标分布,将所述待处理点云中的点划分至若干柱状体素。本技术的一些实施例中,所述第一坐标轴和第二坐标轴为三维空间坐标系的两个不同坐标轴,所述的柱状体素为棱柱状体素。例如,图2中左侧所示的点云经过体素化处理后,可以得到如图2中右侧所示的长方体体素(即柱状体素)210。
[0044]
以第一坐标轴为x轴,第二坐标轴为y轴,可以将感兴趣区域内的点分别沿着x轴和y轴方向,划分成长方体体素,z轴方向不做划分,划分得到的每个体素的大小可以表示为[xv,yv,zmax-zmin],其中,xv表示体素沿x轴方向的长度,yv表示体素沿y轴方向的长度,zmax-zmin表示体素沿z轴方向的高度,单位是米。按照前述柱状体素生成方法,对应一个感兴趣区域,将可以划分得到w
×
h个柱状体素,其中,
[0045][0046]
以感兴趣区域中x的范围为(0,102.4),y的范围为(0,50),z的范围为(0,100),柱状体素大小为0.2
×
0.2
×
100为例,则x轴方向柱状体素个数w等于(102.4-0)/0.2=512,y轴方向柱状体素个数h等于(50-0)/0.2=250,则感兴趣区域被划分为512
×
250个柱状体素。后续,这些柱状体素被视为图像像素,用于进行感兴趣区域的特征提取。本技术的一些实施例中,经过体素化处理之后,感兴趣区域的点云可以表示为w
×h×
1的体素图像,体素图像的维度为w
×h×
1。
[0047]
本技术的一些实施例中,所述柱状体素的大小是通过实验确定的。例如,可以预设一些体素大小,分别做点云检测和点云分割实验,分析体素大小对检测和分割结果及性能的影响,最后确定最有的体素大小。
[0048]
本技术的一些实施例中,所述对待处理点云进行柱状体素化处理,获取构成所述待处理点云的若干柱状体素之后,还包括:获取所述若干柱状体素的第一点云分割标签,其中,所述第一点云分割标签中包括:每个所述柱状体素的位置信息。对于划分得到的w
×
h个柱状体素,这些柱状体素组成了体素维度为w
×h×
1的体素图像,该体素图像的第一点云分割标签,即上述w
×
h个柱状体素的第一点云分割标签,可以通过一张大小为w
×
h的位置信息表表示,例如表示为(w,h,1)。所述第一点云分割标签用于后续根据柱状体素的分割结果确定点云的分割结果。
[0049]
本技术的一些实施例中,所述获取所述若干柱状体素的第一点云分割标签,包括:对于每个所述柱状体素,将所述柱状体素的位置信息,作为所述柱状体素匹配的第一点云分割标签。例如,所述第一点云分割标签可以通过一张大小为w
×
h的位置信息表表示,例如表示为(w,h,1)。该位置信息表中,包括w
×
h组位置信息,每组位置信息对应一个柱状体素,例如,每组位置信息用于表示相应柱状体素在x轴和y轴上的坐标范围。由此可见,每组位置信息还可以用于表示点云中划分至与该组位置信息对应的柱状体素中的点的坐标范围。本技术的一些实施例中,可以通过在所述位置信息表中记录相应柱状体素的坐标范围,从而建立点云中的点与该柱状体素之间的映射关系。本技术的另一些实施例中,还可以采用其
他方式建立点云中的点与柱状体素之间的映射关系。本技术实施例中,对映射关系的具体表现形式不做限定。
[0050]
步骤120,对所述若干柱状体素进行特征提取和映射,获取所述待处理点云的体素特征。
[0051]
在获取到构成待处理点云(如前述感兴趣区域的点云)的若干柱状体素之后,可以将柱状体素看作为图像的像素,对由所述若干柱状体素构成的体素图像进行特征提取和映射,获取所述体素图像的特征,由于所述体素图像的特征是基于柱状体素内点的分布数据提取的,因此,可以充分表达待处理点云的特征。
[0052]
本技术的一些实施例中,所述对所述若干柱状体素进行特征提取和映射,获取所述待处理点云的体素特征,包括:对于每个所述柱状体素,获取划分至所述柱状体素中的所有点的中心点,并计算划分至所述柱状体素中的每个点与所述中心点之间的坐标距离;对于每个所述柱状体素,将划分至所述柱状体素中的所有点的点特征,拼接为所述柱状体素的体素特征,其中,每个所述点的所述点特征包括:所述点的位置坐标和反射强度信息;对所述柱状体素的体素特征进行拼接,得到所述若干柱状体素的拼接特征;对所述拼接特征进行特征映射,获取所述待处理点云的体素特征。
[0053]
例如,对于前述步骤中得到的各个柱状体素,每个柱状体素中会包含一定数量的点。以某一柱状体素中包括k个点为例,首先根据这k个点的原始点云数据中的位置坐标,计算这k个点的坐标平均值作为这k个点的中心点坐标;然后,将这k个点的位置坐标分别减去前述坐标平均值,得到并采用xc,yc,zc表示所述柱状体素中的点与所述中心点之间的坐标距离;之后,将每个柱状体素中的点特征用数据x,y,z,i,xc,yc,zc表示。这样,一个包含k个点的柱状体素的特征可以表示为长度为k
×
7的特征,即柱状体素的特征可以通过包括的所有点的点特征表示。
[0054]
进一步的,对于包括n个柱状体素的待处理点云(如前述感兴趣区域的点云),其体素特征可以通过对该待处理点云进行体素化处理后得到的n个柱状体素的特征进行表示。例如,对于包括n个柱状体素的待处理点云,将对其进行体素化处理后得到的n个柱状体素的特征(如前述长度为k
×
7的特征)进行拼接,得到一个长度为n
×k×
7的拼接特征。
[0055]
本技术的一些实施例中,如果某一柱状体素中没有点,可以将该柱状体素舍弃。
[0056]
接下来,进一步对获取的拼接特征进行特征映射,得到所述待处理点云的预设维度的体素特征。例如,对于n个柱状体素的拼接特征,可以通过预先训练的特征提取网络对所述拼接特征进行特征映射,得到长度为n
×
d的特征,其中,d表示每个柱状体素的特征维度数。本技术的一些实施例中,所述特征提取网络可以由全连接层、归一化层和一维最大池化层maxpool1d串行连接构建,最后,输出n
×
d维度的特征,其中d为全连接层输出的维度。
[0057]
步骤130,将所述体素特征映射到鸟瞰图,得到所述待处理点云对应的鸟瞰图特征。
[0058]
本技术的一些实施例中,所述将所述体素特征映射到鸟瞰图,得到所述待处理点云对应的鸟瞰图特征,包括:根据所述第一点云分割标签中每个所述柱状体素的所述位置信息,获取每个所述柱状体素中包括的点的数量;对于每个所述柱状体素,根据所述柱状体素中包括的点的数量,将所述体素特征中与所述柱状体素对应的特征,映射到与所述第一
点云分割标签匹配的鸟瞰图的相应位置上,得到所述待处理点云对应的鸟瞰图特征;其中,所述根据所述柱状体素中包括的点的数量,将所述体素特征中与所述柱状体素对应的特征,映射到与所述第一点云分割标签匹配的鸟瞰图的相应位置上,包括:在所述柱状体素中包括的点的数量大于0的情况下,将所述体素特征中与所述柱状体素对应的特征向量,映射到与所述第一点云分割标签匹配的鸟瞰图的相应位置上;在所述柱状体素中包括的点的数量等于0的情况下,将与所述第一点云分割标签匹配的鸟瞰图的相应位置上的特征向量设置为0。
[0059]
如前文所述,每个柱状体素与第一点云分割标签中的一个标签数据(即一组位置信息)对应,例如,长度为w
×
h的第一点云分割标签中,第一个标签数据对应坐标范围为(0,0)至(0.2,0.2)的柱状体素。在本步骤中,可以初始化一张与第一点云分割标签维度匹配的鸟瞰图,例如,初始化一张大小为w
×
h的鸟瞰图,使得鸟瞰图上具有w
×
h个像素,每个像素的特征通过d维特征向量表示,每个像素对应一个柱状体素。这样,对于前述步骤得到的长度为n
×
d的体素特征,可以将该体素特征中包括的n个柱状体素各自的特征向量,分别映射到所述鸟瞰图上的相应位置,得到大小为w
×h×
d的鸟瞰图特征。
[0060]
本技术的一些实施例中,由于点云的稀疏性,某些柱状体素中可能没有点,这样,在进行特征映射时,所述鸟瞰图上与不包括点的所述柱状体素相对应的位置,可以将其特征向量设置为零向量。
[0061]
步骤140,通过预先训练的多任务神经网络的主干网络,对所述鸟瞰图特征进行特征提取,得到点云特征向量。
[0062]
本技术的一些实施例中,如图3所示,所述多任务神经网络包括:主干网络310、点云检测网络分支320和云分割网络分支330。
[0063]
其中,所述主干网络310可以采用现有技术中通用的卷积神经网络。例如,本技术的一些实施例中,如图3所示,所述主干网络310进一步包括:三个不同尺度的级联的特征提取模块和一个特征拼接层(concat),其中,每个特征提取模块包括:不同数量的特征映射模块(cbr),一个上采样层,以及,一个特征映射模块(cbr)。每个特征提取模块包括的特征映射模块(cbr)数量可以分别是4、6、6,特征映射模块(cbr)可以由卷积层、批量归一化层和relu激活函数级联构成。以输入特征的大小为w
×
h为例,这三个特征提取模块输出的特征的尺寸分别是所述特征拼接层用于将上述三个特征提取模块输出的特征进行拼接。这样,将大小为w
×h×
d的所述鸟瞰图特征输入至主干网络310之后,上述三个特征提取模块分别对输入的鸟瞰图特征进行卷积运算、上采样、归一化和激活处理,最后通过特征拼接层进行拼接后,得到的特征向量维度为c是特征通道数。
[0064]
步骤150,通过所述多任务神经网络的点云检测网络分支,基于所述点云特征向量进行目标物检测,输出点云检测结果;以及,通过所述多任务神经网络的点云分割网络分支,基于所述点云特征向量进行点云分割,输出点云分割结果。
[0065]
接下来,主干网络310输出的点云特征向量,将分别输入至点云检测网络分支320和云分割网络分支330,由这两个网络分支分别进行下一步处理。
[0066]
下面分别结合点云检测网络分支320和云分割网络分支330的网络结构,对点云检
测任务和点云分割任务的执行方案进行举例说明。
[0067]
本技术的一些实施例中,点云检测网络分支320包括四个检测头,分别用于输出是否存在热力图的检测结果、检测到的目标物位置、目标物大小和目标物的旋转角度。本技术的一些实施例中,点云检测网络分支320包括的每个检测头均由特征提取模块和卷积层级联构成,其中,特征提取模块进一步由卷积层、批量归一化层和激活函数组成。每个检测头分别对输入的点云特征向量进行特征编码和变换映射,最终输出相应的预测结果。例如,对应检测热力图的检测头,对大小为的点云特征向量中每个位置分别进行预测,输出相应位置是否为热力图上的关键点;又例如,对应检测目标物的检测头,对大小为的点云特征向量中进行预测,输出检测到的目标物的位置(x,y,z);再例如,对应输出目标物大小的检测头,输出目标物的大小(dx,dy,dz);对应输出目标物旋转角度的检测头,输出目标物的旋转角度θ。
[0068]
本技术的一些实施例中,如图3所示,所述点云分割网络分支330由上采样模块、特征提取模块和卷积层级联构成,其中,特征提取模块进一步由卷积层、批量归一化层和激活函数组成。所述上采样层首先对,主干网络310输出的点云特征向量进行上采样处理,然后,由卷积层、批量归一化层和激活函数依次对上采样处理得到的向量进行特征转换和映射,最后,经由卷积层输出对应柱状体素的分割结果。
[0069]
以主干网络输出的点云特征向量大小为举例,点云分割网络分支330通过对输入的点云特征向量执行上采样、卷积运算、批量归一化、激活映射等处理,最终输出一维度为(w,h,n_class)的数据。其中,w和h是指输出数据的维度对应输入特征图的宽度和高度;n_classs表示点云语义类别的数量。以待处理点云体素化处理后得到w
×
h个柱状体素,w=512,h=512,点云语义类别的数量为例,点云分割网络分支330的输出数据大小为:512*512*11,表示在这512
×
512个位置上,每个位置都有一组分割结果预测值,数量是11,这11个分割结果预测值取值在0-1之间,总和为1,表示每个柱状体素属于相应点云语义类别的概率值。进一步的,可以取最大概率值对应的点云语义类别,作为相应柱状体素匹配的点云语义类别。
[0070]
本技术的一些实施例中,点云语义类别根据具体应用场景确定。例如,对于汽车自动驾驶应用中采集的点云,可以定义点云语义类别包括但不限于以下任意一种或多种:建筑物、绿植、地面、栅栏、路沿、车道线、车辆等。
[0071]
这样,通过所述多任务神经网络的点云分割网络分支,基于所述点云特征向量进行点云分割处理,所述点云分割网络分支将输出所述点云特征向量匹配的所述若干柱状体素(即对待处理点云进行体素化处理后得到的所有柱状体素)的点云分割结果。
[0072]
由前文描述可知,所述点云分割网络分支输出的分割结果是基于投影到鸟瞰图上的特征进行语义分割得到的分割结果,而在后续的点云数据处理中,需要获取点云中点的分割结果,因此,需要将基于柱状体素的分割结果转换成对点云中点的分割结果。本技术的一些实施例中,所述点云分割结果包括:每个所述柱状体素匹配的点云语义类别,所述通过所述多任务神经网络的点云分割网络分支,基于所述点云特征向量进行点云分割,输出点云分割结果之后,还包括:根据所述柱状体素的位置信息,将所述柱状体素匹配的所述点云
语义类别映射到所述待处理点云中,得到所述待处理点云中点的分割结果。
[0073]
本技术的一些实施例中,所述根据所述柱状体素的位置信息,将所述柱状体素匹配的所述点云语义类别映射到所述待处理点云中,得到所述待处理点云中点的分割结果,包括:根据所述柱状体素的位置信息,获取每个所述柱状体素中包含的所述待处理点云中的点;对于每个所述柱状体素,将所述柱状体素匹配的点云语义类别,作为所述柱状体素中包含的所述点匹配的点云语义类别。由前文描述可知,每个柱状体素与鸟瞰图下的一个位置相对应,通过这个映射关系得到柱状体素的分割结果,可以认为是点云中柱状区域的点云语义分割结果。如图4所示,鸟瞰图中每个方框对应一个柱状体素,鸟瞰图中每个方框匹配的图像位置对应的分割结果,可以看作该方框对应的柱状体素的分割结果。又由前文描述可知,每个柱状体素对应待处理点云中的一个空间区域,该空间区域中可能包含0个或多个点,则可以进一步将每个柱状体素的分割结果(即匹配的点云语义类别)作为该柱状体素中包括的每个点的点云语义类别,至此完成点云中点的语义分割。例如,对于坐标范围为(0,0)至(0.2,0.2)的柱状体素,如果该柱状体素的分割结果为“路沿”,则可以确定待处理点云中,坐标范围在(0,0)至(0.2,0.2)内的点匹配的点云语义类别均为“路沿”。
[0074]
为了便于读者更好的理解本技术实施例中公开的点云检测和分割方法,下面对所述多任务神经网络的训练方案进行举例说明。
[0075]
如前所述,预先训练的多任务神经网络包括:主干网络310、点云检测网络分支320,以及,点云分割网络分支330,本技术的一些实施例中,所述通过预先训练的多任务神经网络的主干网络,对所述鸟瞰图特征进行特征提取,得到点云特征向量之前,还包括:基于若干体素化点云训练样本,训练多任务神经网络;其中,所述体素化点云训练样本是根据对若干点云分别进行柱状体素化处理后得到的柱状体素构建的;对于每条所述体素化点云训练样本,样本数据包括:若干柱状体素,样本标签包括:相应样本数据匹配的第二点云分割标签;所述第二点云分割标签用于标识相应样本数据中每个所述柱状体素匹配的点云语义类别真实值;所述柱状体素匹配的点云语义类别真实值为:点云中被划分至相应柱状体素内的点所覆盖的点云语义类别中,覆盖率最大的所述点云语义类别。
[0076]
构建体素化点云训练样本时,生成样本数据的具体实施方式参见前述步骤中相应实施方式,如获取待处理点云,以及,对待处理点云进行体素化处理,得到若干柱状体素的具体实施方式,此处不再赘述。
[0077]
进一步的,对于每个点云进行体素化处理后的得到的所有柱状体素,每个柱状体素内会包含一定数量的点,这些点都由人工标注了点云语义类别,在本技术的一些实施例中,通过对柱状体素中的点进行统计,数量最多的一类点匹配的点云语义类别,被标注为柱状体素的点云语义类别。例如,对于某一柱状体素,包括3个点,这3个点分别被标注了点云语义类别(如小型汽车、大型汽车、自行车、三轮车、行人、锥筒、绿植,地面,栅栏,路沿,车道线等),假设分别是(建筑物、建筑物、绿植),那么取数量最多的建筑物作为这个柱状体素匹配的点云语义类别。某一点云进行体素化处理后得到的所有柱状体素匹配的点云语义类别按照体素位置进行排列,即得到该点云生成的样本数据匹配的点云语义类别标签(即第二点云分割标签)。
[0078]
以样本数据为w
×
h个柱状体素为例,该样本数据的样本标签为可以表示为一个w
×
h的标签矩阵,该标签矩阵中每一个元素为相应柱状体素匹配的点云语义类别的标识。
[0079]
本技术的一些实施例中,所述样本标签还包括:点云检测标签,所述点云检测标签用于标识相应样本数据中的目标物检测结果真实值。例如,对于每个用于生成训练样本的点云,手动标注该点云中目标物在热力图上的关键点、目标物的空间位置坐标、立体尺寸、旋转角度,并将标准的信息作为该点云生成的训练样本的点云检测标签。
[0080]
本技术的一些实施例中,所述基于若干体素化点云训练样本,训练多任务神经网络,包括:对于每条所述体素化点云训练样本,分别执行以下点云检测和分割操作,得到相应体素化点云训练样本的点云检测结果预测值和点云分割结果预测值:对所述体素化点云训练样本中包括的若干柱状体素进行特征提取和映射,获取所述体素化点云训练样本的体素特征;将所述体素特征映射到鸟瞰图,得到所述体素化点云训练样本对应的鸟瞰图特征;通过所述主干网络,对所述鸟瞰图特征进行特征提取,得到点云特征向量;通过所述点云检测网络分支,基于所述点云特征向量进行目标物检测,输出所述体素化点云训练样本的点云检测结果预测值;以及,通过所述点云分割网络分支,基于所述点云特征向量进行点云分割,输出所述体素化点云训练样本点云分割结果预测值;根据各所述体素化点云训练样本的点云检测结果预测值和相应的点云检测标签,计算所述多任务神经网络的点云检测损失,以及,根据各所述体素化点云训练样本的点云分割结果预测值和相应的第二点云分割标签,计算所述多任务神经网络的点云分割损失,之后,以优化所述点云检测损失和所述点云分割损失为目标,迭代训练所述多任务神经网络。
[0081]
对所述体素化点云训练样本中包括的若干柱状体素进行特征提取和映射,获取所述体素化点云训练样本的体素特征的具体实施方式,参见前文中提取待处理点云的体素特征的具体实施方式,此处不再赘述。
[0082]
将所述体素特征映射到鸟瞰图,得到所述体素化点云训练样本对应的鸟瞰图特征的具体实施方式,参见前文中的相关描述,此处不再赘述。
[0083]
通过所述主干网络,对所述鸟瞰图特征进行特征提取,得到点云特征向量的具体实施方式,参见前文中的相关描述,此处不再赘述。
[0084]
通过所述点云检测网络分支,基于所述点云特征向量进行目标物检测,输出所述体素化点云训练样本的点云检测结果预测值的具体实施方式,参见前文中得到待处理点云的检测结果的相关描述,此处不再赘述。
[0085]
通过所述点云分割网络分支,基于所述点云特征向量进行点云分割,输出所述体素化点云训练样本点云分割结果预测值的具体实施方式参见前文中得到待处理点云的分割结果的相关描述,此处不再赘述。
[0086]
在多任务神经网络的训练阶段,分别根据各所述体素化点云训练样本的点云检测结果预测值和相应的点云检测标签,计算所述多任务神经网络的点云检测损失。其中,点云检测损失包括四部分,分别是:热力图预测损失、位置预测损失、大小预测损失和旋转角度预测损失。
[0087]
本技术的一些实施例中,位置预测损失、大小预测损失和旋转角度预测损失可以采用均方误差表达。例如,通过所有所述体素化点云训练样本的目标物位置(如空间位置坐标)的预测值和样本标签中的目标物位置真实值的均方误差,表示多任务神经网络的位置预测损失;通过所有所述体素化点云训练样本的目标物大小(如立体尺寸)的预测值和样本标签中的目标物大小真实值的均方误差,表示多任务神经网络的大小预测损失;通过所有
所述体素化点云训练样本的目标物旋转角度的预测值和样本标签中的目标物旋转角度真实值的均方误差,表示多任务神经网络的旋转角度预测损失。
[0088]
本技术的一些实施例中,所述热力图预测损失采用逐像素的focal loss损失函数(即焦点损失函数)计算。
[0089]
假设目标物的位置为p,经过下采样计算后得到热力图上的关键点(p
x
,py),通过高斯核将计算出的数据分布到热力图上。如果多个目标物的高斯核重叠,那么将取最大值,高斯核的公式可以表示为:
[0090][0091]
其中,x和y为待检测图像中枚举的步长块位置,为目标尺度自适应方差,y
xyc
为高斯核映射之后的每个关键点的高斯热图数据表示。
[0092]
然后,采用逐像素的focal loss损失函数计算热力图的损失,公式如下:
[0093][0094]
其中,m表示目标物总数;表示网络预测出的有目标物的可能性,取值范围为(0,1);y
xyc
表示是否有目标物的真实值,取值范围为(0,1);α和β为超参数,取值根据经验设定,例如,可以取α=2,β=4。
[0095]
在多任务神经网络的训练阶段,分别根据各所述体素化点云训练样本的点云分割结果预测值和相应的第二点云分割标签,计算所述多任务神经网络的点云分割损失。例如,可以通过点云分割结果预测值和相应的第二点云分割标签的交叉熵,来表达点云分割损失。
[0096]
进一步的,融合点云检测损失和点云分割损失,计算多任务神经网络的损失,并以整个网络的损失最小为目标,优化所述主干网络、点云检测网络分支和云分割网络分支的网络参数,从而完成多任务神经网络的训练。
[0097]
通过同时进行点云检测任务和点云分割任务对应的网络分支,不仅可以提升主干网络提取特征的表征能力,还可以实现在训练过程中两个任务相互促进,从而提升点云检测和分割的精度。
[0098]
本技术实施例公开的点云检测和分割方法,通过对待处理点云进行柱状体素化处理,获取构成所述待处理点云的若干柱状体素;之后,对所述若干柱状体素进行特征提取和映射,获取所述待处理点云的体素特征,并将所述体素特征映射到鸟瞰图,得到所述待处理点云对应的鸟瞰图特征;最后,通过预先训练的多任务神经网络的主干网络,对所述鸟瞰图特征进行特征提取,得到点云特征向量;通过所述多任务神经网络的点云检测网络分支,基于所述点云特征向量进行目标物检测,输出点云检测结果;以及,通过所述多任务神经网络的点云分割网络分支,基于所述点云特征向量进行点云分割,输出点云分割结果,有助于提升点云检测和点云分割的效率。
[0099]
通过一个多任务神经网络的主干网络对点云特征向量进行特征提取和映射,之后分别输入至点云检测任务对应的网络分支和点云分割任务对应的网络分支,分别进行点云
检测和点云分割,实现了点云检测任务和点云分割任务共享点云特征提取网络的输入,相比于采用两个神经网络独立进行点云检测和点云分割,节省了点云特征提取消耗的计算量,有效提升了点云检测和点云分割的效率。
[0100]
现有技术中的点云检测任务通常包括:点云预处理、特征提取,以及检测头预测步骤,现有技术中的点云分割任务通常包括:点云预处理、特征提取,以及点云分割步骤,而点云预处理和特征提取这部分的时间消耗以及资源消耗(cpu,gpu等)占据了整个任务消耗的90%。从时间上举例,如检测任务耗时20ms,分割任务耗时20ms,其中,点云预处理和特征提取占据18ms,两个任务采用独立网络模型之心给,则需要消耗40ms,而如果采用本技术实施例中公开的采用一个网络进行点云检测和分割方法,消耗的总时长为18 2 2=22ms,大大提升了点云检测和分割的效率,并且节约了点云预处理和特征提取消耗的资源。
[0101]
另一方面,通过将待处理点云进行体素化处理,基于柱状体素进行特征提取和映射,用于实现点云检测和分割,与直接从点云中提取特征相比,可以降低特征提取难度,从而降低网络模型的的复杂度。
[0102]
进一步的,将点云以及其点云分割标签转换到鸟瞰图下,在鸟瞰图下进行特征提取以及检测和分割,速度快而且效果好。最后,通过将模型输出的点云语义分割结果转化到点云中的每个点上,完成基于点对点云进行语义分割任务,有效提升了点云分割的速度。
[0103]
实施例二
[0104]
本技术实施例公开的一种点云检测和分割装置,如图5所示,包括:
[0105]
柱状体素化模块510,用于对待处理点云进行柱状体素化处理,获取构成所述待处理点云的若干柱状体素;
[0106]
体素特征获取模块520,用于对所述若干柱状体素进行特征提取和映射,获取所述待处理点云的体素特征;
[0107]
鸟瞰图特征映射模块530,用于将所述体素特征映射到鸟瞰图,得到所述待处理点云对应的鸟瞰图特征;
[0108]
点云特征提取模块540,用于通过预先训练的多任务神经网络的主干网络,对所述鸟瞰图特征进行特征提取,得到点云特征向量;
[0109]
点云检测和分割模块550,用于通过所述多任务神经网络的点云检测网络分支,基于所述点云特征向量进行目标物检测,输出点云检测结果;以及,通过所述多任务神经网络的点云分割网络分支,基于所述点云特征向量进行点云分割,输出点云分割结果。
[0110]
本技术的一些实施例中,如图6所示,所述点云分割结果包括:每个所述柱状体素匹配的点云语义类别,所述装置还包括:
[0111]
第一点云分割标签获取模块511,用于获取所述若干柱状体素的第一点云分割标签,其中,所述第一点云分割标签中包括:每个所述柱状体素的位置信息;
[0112]
分割结果转换模块560,用于根据所述柱状体素的位置信息,将所述柱状体素匹配的所述点云语义类别映射到所述待处理点云中,得到所述待处理点云中点的分割结果。
[0113]
本技术的一些实施例中,所述根据所述柱状体素的位置信息,将所述柱状体素匹配的所述点云语义类别映射到所述待处理点云中,得到所述待处理点云中点的分割结果,包括:
[0114]
根据所述柱状体素的位置信息,获取每个所述柱状体素中包含的所述待处理点云
中的点;
[0115]
对于每个所述柱状体素,将所述柱状体素匹配的点云语义类别,作为所述柱状体素中包含的所述点匹配的点云语义类别。
[0116]
本技术的一些实施例中,所述体素特征获取模块520,进一步用于:
[0117]
对于每个所述柱状体素,获取划分至所述柱状体素中的所有点的中心点,并计算划分至所述柱状体素中的每个点与所述中心点之间的坐标距离;
[0118]
对于每个所述柱状体素,将划分至所述柱状体素中的所有点的点特征,拼接为所述柱状体素的体素特征,其中,每个所述点的所述点特征包括:所述点的位置坐标和反射强度信息;
[0119]
对所述柱状体素的体素特征进行拼接,得到所述若干柱状体素的拼接特征;
[0120]
对所述拼接特征进行特征映射,获取所述待处理点云的体素特征。
[0121]
本技术的一些实施例中,所述鸟瞰图特征映射模块530,进一步用于:
[0122]
根据所述第一点云分割标签中每个所述柱状体素的所述位置信息,获取每个所述柱状体素中包括的点的数量;
[0123]
对于每个所述柱状体素,根据所述柱状体素中包括的点的数量,将所述体素特征中与所述柱状体素对应的特征,映射到与所述第一点云分割标签匹配的鸟瞰图的相应位置上,得到所述待处理点云对应的鸟瞰图特征;其中,
[0124]
所述根据所述柱状体素中包括的点的数量,将所述体素特征中与所述柱状体素对应的特征,映射到与所述第一点云分割标签匹配的鸟瞰图的相应位置上,包括:
[0125]
在所述柱状体素中包括的点的数量大于0的情况下,将所述体素特征中与所述柱状体素对应的特征向量,映射到与所述第一点云分割标签匹配的鸟瞰图的相应位置上;
[0126]
在所述柱状体素中包括的点的数量等于0的情况下,将与所述第一点云分割标签匹配的鸟瞰图的相应位置上的特征向量设置为0。
[0127]
本技术的一些实施例中,预先训练的多任务神经网络包括:主干网络、点云检测网络分支,以及,点云分割网络分支,所述装置还包括:
[0128]
多任务神经网络训练模块(图中未示出),用于基于若干体素化点云训练样本,训练多任务神经网络;
[0129]
其中,所述体素化点云训练样本是根据对若干点云分别进行柱状体素化处理后得到的柱状体素构建的;对于每条所述体素化点云训练样本,样本数据包括:若干柱状体素,样本标签包括:相应样本数据匹配的第二点云分割标签;所述第二点云分割标签用于标识相应样本数据中每个所述柱状体素匹配的点云语义类别真实值;所述柱状体素匹配的点云语义类别真实值为:点云中被划分至相应柱状体素内的点所覆盖的点云语义类别中,覆盖率最大的所述点云语义类别。
[0130]
本技术的一些实施例中,所述样本标签还包括:点云检测标签,所述点云检测标签用于标识相应样本数据中的目标物检测结果真实值,所述基于若干体素化点云训练样本,训练多任务神经网络,包括:
[0131]
对于每条所述体素化点云训练样本,分别执行以下点云检测和分割操作,得到相应体素化点云训练样本的点云检测结果预测值和点云分割结果预测值:
[0132]
对所述体素化点云训练样本中包括的若干柱状体素进行特征提取和映射,获取所
述体素化点云训练样本的体素特征;
[0133]
将所述体素特征映射到鸟瞰图,得到所述体素化点云训练样本对应的鸟瞰图特征;
[0134]
通过所述主干网络,对所述鸟瞰图特征进行特征提取,得到点云特征向量;
[0135]
通过所述点云检测网络分支,基于所述点云特征向量进行目标物检测,输出所述体素化点云训练样本的点云检测结果预测值;以及,通过所述点云分割网络分支,基于所述点云特征向量进行点云分割,输出所述体素化点云训练样本点云分割结果预测值;
[0136]
根据各所述体素化点云训练样本的点云检测结果预测值和相应的点云检测标签,计算所述多任务神经网络的点云检测损失,以及,根据各所述体素化点云训练样本的点云分割结果预测值和相应的第二点云分割标签,计算所述多任务神经网络的点云分割损失,之后,以优化所述点云检测损失和所述点云分割损失为目标,迭代训练所述多任务神经网络。
[0137]
本技术实施例公开的点云检测和分割装置,用于实现本技术实施例一中所述的点云检测和分割装置方法,装置的各模块的具体实施方式不再赘述,可参见方法实施例相应步骤的具体实施方式。
[0138]
本技术实施例公开的点云检测和分割装置,通过对待处理点云进行柱状体素化处理,获取构成所述待处理点云的若干柱状体素;之后,对所述若干柱状体素进行特征提取和映射,获取所述待处理点云的体素特征,并将所述体素特征映射到鸟瞰图,得到所述待处理点云对应的鸟瞰图特征;最后,通过预先训练的多任务神经网络的主干网络,对所述鸟瞰图特征进行特征提取,得到点云特征向量;通过所述多任务神经网络的点云检测网络分支,基于所述点云特征向量进行目标物检测,输出点云检测结果;以及,通过所述多任务神经网络的点云分割网络分支,基于所述点云特征向量进行点云分割,输出点云分割结果,有助于提升点云检测和点云分割的效率。
[0139]
通过一个多任务神经网络的主干网络对点云特征向量进行特征提取和映射,之后分别输入至点云检测任务对应的网络分支和点云分割任务对应的网络分支,分别进行点云检测和点云分割,实现了点云检测任务和点云分割任务共享点云特征提取网络的输入,相比于采用两个神经网络独立进行点云检测和点云分割,节省了点云特征提取消耗的计算量,有效提升了点云检测和点云分割的效率。
[0140]
另一方面,通过将待处理点云进行体素化处理,基于柱状体素进行特征提取和映射,用于实现点云检测和分割,与直接从点云中提取特征相比,可以降低特征提取难度,从而降低网络模型的的复杂度。
[0141]
进一步的,将点云以及其点云分割标签转换到鸟瞰图下,在鸟瞰图下进行特征提取以及检测和分割,速度快而且效果好。最后,通过将模型输出的点云语义分割结果转化到点云中的每个点上,完成基于点对点云进行语义分割任务,有效提升了点云分割的速度。
[0142]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0143]
以上对本技术提供的一种点云检测和分割方法及方法进行了详细介绍,本文中应
用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其一种核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
[0144]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0145]
本技术的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本技术实施例的电子设备中的一些或者全部部件的一些或者全部功能。本技术还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本技术的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0146]
例如,图7示出了可以实现根据本技术的方法的电子设备。所述电子设备可以为pc机、移动终端、个人数字助理、平板电脑等。该电子设备传统上包括处理器710和存储器720及存储在所述存储器720上并可在处理器710上运行的程序代码730,所述处理器710执行所述程序代码730时实现上述实施例中所述的方法。所述存储器720可以为计算机程序产品或者计算机可读介质。存储器720可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。存储器720具有用于执行上述方法中的任何方法步骤的计算机程序的程序代码730的存储空间7201。例如,用于程序代码730的存储空间7201可以包括分别用于实现上面的方法中的各种步骤的各个计算机程序。所述程序代码730为计算机可读代码。这些计算机程序可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(cd)、存储卡或者软盘之类的程序代码载体。所述计算机程序包括计算机可读代码,当所述计算机可读代码在电子设备上运行时,导致所述电子设备执行根据上述实施例的方法。
[0147]
本技术实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本技术实施例一所述的点云检测和分割方法的步骤。
[0148]
这样的计算机程序产品可以为计算机可读存储介质,该计算机可读存储介质可以具有与图7所示的电子设备中的存储器720类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩存储在所述计算机可读存储介质中。所述计算机可读存储介质通常为如参考图8所述的便携式或者固定存储单元。通常,存储单元包括计算机可读代码730’,所述计算机可读代码730’为由处理器读取的代码,这些代码被处理器执行时,实现上面所描述的方法中的各个步骤。
[0149]
本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本技术的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。
[0150]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本技术的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0151]
在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本技术可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0152]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献