点云数据的处理方法和装置
文献发布时间:2023-06-19 11:42:32
技术领域
本发明涉及数据处理领域,具体而言,涉及一种点云数据的处理方法和装置。
背景技术
在建筑施工过程中,现场施工环境复杂度高,障碍物分布杂乱,通过激光点云对建筑施工场景进行扫描后,对障碍物的分割识别等处理难度也相应地提高。因此,为了获取更准确的建筑场景三维信息,对激光点云数据进行预处理往往是不可忽略的步骤。
对于建筑施工区域的三维点云数据,为了滤除三维点云中的干扰点,降低后续点云分割步骤复杂度。具体而言,其核心为检测建筑场景内具有不同高度的平面区域,判别可能属于地平面的区域以及其他平面区域,并将其他平面区域内的点云作为干扰点进行过滤。在三维点云处理相关技术领域中,提取点云内平面的方法已经得到广泛应用,例如对路面、房屋内外的墙面、物体表面等区域进行检测识别,常用方法包括最小二乘拟合、随机采样一致性拟合(RANSAC)等,但是此类方法存在计算量大的问题,因此在应用时通常作为一个独立的处理步骤。而在建筑场景的三维点云中,由于现场物料类型多样、堆放杂乱,导致局部表面变化大,平面分层现象多,此时传统拟合方法的计算代价更大,不适用于作为点云的预处理步骤。
针对现有技术中基于点云数据提取障碍物平面的运算量较大的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种点云数据的处理方法和装置,以至少解决现有技术中基于点云数据提取障碍物平面的运算量较大的技术问题。
根据本发明实施例的一个方面,提供了一种点云数据的处理方法,包括:将待处理的点云数据投影至第一维度,得到点云数据的高度信息,其中,第一维度为用于表示空间中的高度的维度;将高度信息在第一维度上进行分段,得到多段高度范围;在每段高度范围中检测构成水平区域的目标点云数据;根据目标点云数据从水平区域中筛选出用于表示障碍物的障碍物区域。
进一步地,在将点云数据投影至第一维度,得到点云数据的高度信息之前,方法还包括:对获取的初始点云数据进行预处理,得到待处理的点云数据,其中,预处理包括如下至少一项:离群值过滤和降采样。
进一步地,将高度信息在第一维度上进行分段,得到多段高度范围,包括:根据高度信息获取每个单位高度分段内所包含的点云数据的数量;按照数量由大至小的顺序,依次确定每个单位高度分段内所包含的点云数据所属的高度范围。
进一步地,按照数量由大至小的顺序,依次确定每个单位高度分段内所包含的点云数据所属的高度范围,包括:在单位高度分段内点云数据的数量大于上方相邻单位高度分段内的数量且大于下方相邻单位高度分段内的数量的情况下,将单位高度分段划分为一个新的高度范围;在单位高度分段内点云数据的数量小于上方相邻单位高度分段内的数量且大于下方相邻单位高度分段内的数量的情况下,将单位高度分段划分为下方相邻单位高度分段所属的高度范围;在单位高度分段内点云数据的数量大于上方相邻单位高度分段内的数量且小于下方相邻单位高度分段内的数量的情况下,将单位高度分段划分为上方相邻单位高度分段所属的高度范围;在单位高度分段内点云数据的数量小于上方相邻单位高度分段内的数量且小于下方相邻单位高度分段内的数量的情况下,将单位高度分段划分为上方相邻单位高度分段和下方相邻单位高度分段中,与单位高度分段的数量差距较小的单位高度分段所属的高度范围。
进一步地,在根据高度信息获取每个单位高度分段内所包含的点云数据的数量之后,获取包含的点云数据的数量少于预设数量的单位高度分段;清除获取的单位高度分段内的点云数据。
进一步地,在每段高度范围中检测构成水平区域的目标点云数据,包括:获取分段对应的高度范围的起点和终点;获取分段中点云数量最大的目标位置;确定由目标位置至起点内的多个梯度值,以及由目标位置至终点内的多个梯度值,其中,梯度值用于表示相邻点云数据的高度差;获取所述多个第一梯度值中的第一最大梯度值和所述多个第二梯度值中的第二最大梯度值;在目标位置与所述第一最大梯度值对应的位置之间的距离小于预设值,且所述目标位置与所述第二最大梯度值对应的位置之间的距离小于预设值的情况下,确定检测到所述水平区域。
进一步地,根据目标点云数据从水平区域中筛选出用于表示障碍物的障碍物区域,包括:将目标点云数据所属高度范围内的点云数据投影至第二维度和第三维度所构成的平面,得到投影平面,其中,第二维度和第三维度所构成的平面垂直于第一维度;获取投影平面的面积;根据投影平面的面积筛选出用于表示障碍物的障碍物区域。
进一步地,在获取投影平面的面积之前,方法还包括:对投影平面进行标准化处理,其中,对投影平面进行标准化处理的步骤包括:将投影平面转换为灰度图;对灰度图进行形态学滤波处理。
进一步地,根据投影平面的面积筛选出用于表示障碍物的障碍物区域,包括:获取满足预设条件的投影平面区域,其中,预设条件包括:投影平面的面积大于预设面积,或投影平面的面积与投影平面的最小外接矩形的面积的比值大于预设值;从投影平面中过滤掉满足预设条件的投影平面区域,得到障碍物区域。
根据本发明实施例的一个方面,提供了一种点云数据的处理装置,包括:投影模块,用于将待处理的点云数据投影至第一维度,得到点云数据的高度信息,其中,第一维度为用于表示空间中的指定维度;分段模块,用于将高度信息在第一维度上进行分段,得到多段高度范围;检测模块,用于在每段高度范围中检测构成水平区域的目标点云数据;筛选模块,用于根据目标点云数据从水平区域中筛选出用于表示障碍物的障碍物区域。
根据本发明实施例的一个方面,提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的点云数据的处理方法。
根据本发明实施例的一个方面,提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述的点云数据的处理方法。
在本发明实施例中,将待处理的点云数据投影至第一维度,得到点云数据的高度信息,其中,第一维度为用于表示空间中的指定维度,将高度信息在第一维度上进行分段,得到多段高度范围,在每段高度范围中检测构成水平区域的目标点云数据,根据目标点云数据从水平区域中筛选出用于表示障碍物的障碍物区域。上述方案通过将待处理的点云数据投影至指定维度,对这一维度的点云数据进行分段处理,从而检测出平面区域,再对平面区域进行筛选,得到障碍物区域。由于对点云数据进行了单一维度的投影和分段,使用单一维度的点云数据进行平面区域的检测,从而大大的降低了数据处理量,提高了数据处理效率,解决了现有技术中基于点云数据提取障碍物平面的运算量较大的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种点云数据的处理方法的流程图;
图2a是一种点云数据的示意图;
图2b是对图2a中的点云数据进行离群值过滤和降采样的效果示意图;
图3是根据本发明实施例的一种可选的点云数据的处理方法的流程图;
图4是根据本发明实施例的一种高度方向投影后进行分段的示意图;
图5a是根据本发明实施例的一种不同高度分段内点云数据投影至第二维度和第三维度的示意图;
图5b是根据本发明实施例的一种待过滤区域的示意图;
图6是根据本发明实施例的一种点云数据的处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种点云数据的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种点云数据的处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,将待处理的点云数据投影至第一维度,得到点云数据的高度信息,其中,第一维度为用于表示空间中的指定维度。
具体的,上述待处理的点云数据可以是通过雷达扫描装置在室内扫描得到的点云数据,点云数据是指在一个三维坐标系统中的一组向量的集合。该三维坐标系统在下述实施例中以x-y-z的坐标系统表示,其中,x,y,z分别表示第二维度、第三维度和第一维度,x-y构成水平面,z表示高度信息。
在上述方案中,指定维度可以为高度,将待处理的点云数据投影至坐标中的高度上,得到点云数据的高度信息。需要注意的是,在将待处理的点云数据投影至第一维度得到点云数据的高度信息之后,并不将其他两个维度的数据删除,而是在该步骤以及步骤S104、步骤S106中以每个点云数据的高度信息来表示点云数据。
步骤S104,将高度信息在第一维度上进行分段,得到多段高度范围。
在上述方案中,将高度信息进行分段,可以是根据单位高度内所包含的点云数据进行分段,以得到多段高度范围。
在进行分段时,可以使用多种不同的分段方式,以使得每段高度范围内点云数据的数量均具有一个峰值。由于由于水平方向与高度方向为垂直关系,因此水平区域的点云在投影后,相应高度的点云数量可能形成局部峰值,因此每个高度范围内的峰值处有可能是水平区域所在位置,上述步骤可以基于这一思想将高度信息进行分段。
在一种可选的实施例中,可以先将高度信息划分为多个单位高度分段,并获取每个单位高度分段所包含的点数据的数量。然后找出多个所包含的点云数据的数量与相邻的单位高度分段相比呈现峰值的单位高度分段,将数量峰值所在的单位高度分段分别作为一个高度范围,其他单位高度分段归入这些已经确定的高度范围。归入的方式可以是,归入点云数据的数量大于自身数量的相邻单位高度分段所属的高度范围。
需要说明的是,障碍物的点云数据主要分布在某一局部高度范围内,将点云数据在高度向上投影后,该局部高度范围内的点云数量包含该物体点云数量的总和,因此相比于其他不包含障碍物的高度位置,该局部高度范围内的点云数量更大;反之,可以通过比较高度方向上点云数量的分布情况,来判断不同高度范围内是否存在障碍物。除此之外,由于物体的尺寸、位置变化、以及存在噪声干扰,因此上述方案在高度方向上划分出大小不固定的分段,以获取不同的高度范围,进而能够在不同的高度范围内检测水平区域。将高度信息划分为多段高度范围,即可应用水平区域的点云在投影后相应高度的点云数量可形成局部峰值的这一特性,分别在每段高度范围内检测水平区域,从而避免滤除三维点云中的干扰点。
步骤S106,在每段高度范围中检测构成水平区域的目标点云数据。
在上述方案中,由于水平方向与高度方向为垂直关系,因此水平区域的点云在投影后,相应高度的点云数量可能形成局部峰值。
在一种可选的实施例中,可以根据步骤S104中的高度范围进行峰值检测,由于水平区域内点云数量在高度方向较为集中,因此可以从每个高度范围内的峰值点云数据所在的位置开始进行搜索,分别搜索峰值两侧具有最大梯度的位置;由于这一位置即有可能是水平区域和非水平区域的交界处,因此可以根据峰值两侧最大梯度位置,确定出构成水平区域的目标点云数据,例如,可以确定峰值两侧最大梯度位置之间的点云数据为构成水平区域的目标点云数据。
步骤S108,根据目标点云数据从水平区域中筛选出用于表示障碍物的障碍物区域。
具体的,对于一个室内区域内的水平区域,可能是室内的障碍物,也可能是室内的地板或者天花板,上述步骤对目标点云数据进行筛选,即对室内的水平区域进行筛选,从而排除地面和天花板等室内结构固有的水平区域,得到障碍物区域。
由上可知,本申请上述实施例待处理的点云数据投影至第一维度,得到点云数据的高度信息,其中,第一维度为用于表示空间中的指定维度;将高度信息在第一维度上进行分段,得到多段高度范围;在每段高度范围中检测构成水平区域的目标点云数据;根据目标点云数据从水平区域中筛选出用于表示障碍物的障碍物区域。上述方案通过将待处理的点云数据投影至高度信息所在的维度,对这一维度的点云数据进行分段处理,从而检测出平面区域,再对平面区域进行筛选,得到障碍物区域。由于对点云数据进行了单一维度的投影和分段,使用单一维度的点云数据进行平面区域的检测,从而大大的降低了数据处理量,提高了数据处理效率,解决了现有技术中基于点云数据提取障碍物平面的运算量较大的技术问题。
作为一种可选的实施例,在将点云数据投影至第一维度,得到点云数据的高度信息之前,上述方法还包括:对获取的初始点云数据进行预处理,得到待处理的点云数据,其中,预处理包括如下至少一项:离群值过滤和降采样。
上述方案通过离群值过滤和降采样,过滤三维点云中的离群噪声点和重复扫描点,进一步降低数据处理量,从而提高数据处理效率。下面对这两种预处理方式分别进行说明。
在使用激光雷达获取建筑场景三维点云过程中,可能存在一些离散的噪声点,且场景中相同位置的点可能被多次扫描到,这些噪声点或重复扫描点对于从点云数据中提取物体信息不具有帮助,反而可能增加处理步骤的计算量,因此需要进行过滤。离群值过滤方法可以如下:首先对每一个点进行邻域搜索,计算该点到其邻域内所有点的平均距离;然后所有点到其邻域的平均距离进行统计分析,假设该平均距离服从高斯分布,并计算所有点的邻域平均距离的均值和标准差;最后,由均值和标准差计算阈值,如阈值取均值加三倍标准差,将邻域平均距离大于阈值的点判别为离群点,并从点云数据中滤除。
在一种可选的实施例中,本实施例中仅利用点云的三维坐标,因此记点云中第i个点的坐标为p
对每个点的平均距离d
上述方案中的降采样可以通过体素来实现,将点云数据换算为体素数据表示。体素表示为三维空间中具有特定大小和方向的立方体所占据空间,通常其大小由参数指定,方向与坐标轴对齐;于是,三维点云空间可以划分为由相邻且不重叠的体素组成,则每个体素空间包含了局部点云。认为体素空间内的局部点云属于重复点,计算局部点云的质心位置,此时质心等于体素内所包含的所有点云数据的位置坐标的均值;删除局部点云数据,将每个体素内局部点云的质心添加为新的点,实现点云数据降采样。
在一种可选的实施例中,体素为三维空间的立方体构成空间,通常将体素立方体的长宽高设为相同值,本实施例中体素立方体长宽高均取δ=0.01cm;将三维点云数据沿三维空间的坐标轴划分为不重叠的相同大小体素立方体,则一个体素空间的坐标范围为:
然后,判断位于该体素空间内的点p
其中h
图2a是一种点云数据的示意图,图2b是对图2a中的点云数据进行离群值过滤和降采样的效果示意图。结合图2a和图2b所示,原始输入点云数据包含11986972个数据点,图2a显示了点云数据某局部区域,白色点为点云存在点的位置。通过上述步骤过滤后的点云数据包含2507998个数据点,数据量约为原始点云的21%,过滤后的点云局部区域如图2b所示。可以看出,处理后点云的整体密度有所降低,且原始点云中存在重复扫描的位置出现了不均匀的条纹效应,而在处理后的点云中则基本上被过滤。
图3是根据本发明实施例的一种可选的点云数据的处理方法的流程图,结合图3所示,在获取三维点云数据之后,可以先对运维点云数据进行离群值过滤和降采样,以降低数据处理量,再进入步骤S102,依次进行高度方向的一维投影、水平区域的检测以及水平点云的过滤,最后输出得到的点云数据,即为用于表示障碍物的点云数据。
作为一种可选的实施例,将高度信息在第一维度上进行分段,得到多段高度范围,包括:根据高度信息获取每个单位高度分段内所包含的点云数据的数量;按照数量由大至小的顺序,依次确定每个单位高度分段内所包含的点云数据所属的高度范围。
在建筑施工场景中,由于存在多个楼层或堆放在不同高度的施工材料,导致三维点云中的物体会形成相互遮挡等现象,增加点云数据处理的难度。因此,先对建筑施工场景三维点云进行高度方向上的预处理,以有效过滤干扰点云。通常,三维点云的高度方向由坐标轴z轴表示,于是将高度方向投影等同于z轴方向投影。假设某物体点云主要分布在某一局部高度范围内,在高度向上投影后,该局部高度范围内点云数量包含该物体点云数量的总和。因此相比于其他不存在物体的高度位置,该局部高度范围内的点云数量更大;反之,通过比较高度方向上点云数量的分布情况,可以判断不同高度范围内是否存在物体。除此之外,由于物体的尺寸、位置变化、以及存在噪声干扰,应在高度方向上划分出大小不固定的范围以获取不同高度的物体。
在上述方案中,由于空间内障碍物的分布与点云数据的数量息息相关,某个高度空间内存在障碍物,其点云数据必然较大,因此依据数量进行点云数据在高度上的分段,能够有效地滤除点云数据中不同高度范围内的干扰,便于对平面区域的搜索。
作为一种可选的实施例,按照数量由大至小的顺序,依次确定每个单位高度分段内所包含的点云数据所属的高度范围,包括:
在单位高度分段内点云数据的数量大于上方相邻单位高度分段内的数量且大于下方相邻单位高度分段内的数量的情况下,将单位高度分段划分为一个新的高度范围;
在单位高度分段内点云数据的数量小于上方相邻单位高度分段内的数量且大于下方相邻单位高度分段内的数量的情况下,将单位高度分段划分为下方相邻单位高度分段所属的高度范围;
在单位高度分段内点云数据的数量大于上方相邻单位高度分段内的数量且小于下方相邻单位高度分段内的数量的情况下,将单位高度分段划分为上方相邻单位高度分段所属的高度范围;
在单位高度分段内点云数据的数量小于上方相邻单位高度分段内的数量且小于下方相邻单位高度分段内的数量的情况下,将单位高度分段划分为上方相邻单位高度分段和下方相邻单位高度分段中,与单位高度分段的数量差距较小的单位高度分段所属的高度范围。
上述步骤分别对四种情况进行了描述,下面以可选的实施例对上述几种情况进行详细说明。
在一种可选的实施例中,本实施例中,设高度方向网格(即上述单位高度)的分辨率为r=0.02cm,然后将点云数据沿z轴进行投影,得到点云数据的高度信息,即当第i个点的坐标满足
对所有点进行投影后,按高度值h从小到大的顺序生成数组,则第i个网格为h
对滤波后的数组计算均值
设投影点云数量n
1)n
2)n
其中,当条件1)和2)同时满足,说明当前网格对应数量为局部极大值,则在网格位置划分一个新的标记l
图4是根据本发明实施例的一种高度方向投影后进行分段的示意图,其中,横轴表示高度网格h_i,纵轴表示高度网格的点云数量的归一化值,即点云数量除以数组中最大的值;曲线线条和圆点表示归一化后每个高度网格对应的数组的值,由矩形线条框出了具有相同标记的高度范围。忽略标记为0的高度网格,本实施例的高度划分结果包含5个高度范围:25:12-100;174:168-196;200:197-207;233:228-236;238:237-242,其中,以25:12-100为例,25表示该高度范围内数组的极大值所在网格位置
本申请上述方案按照每个单位高度分段中所包含的点云数据的数量,确定每个单位高度分段所属的高度范围,从而将点云数据划分成为多段高度范围。该方案在确定每个单位高度分段所属的高度范围时,通过上述几个步骤,将点云数据的数量少的单位高度分段向数量多的单位高度分段中聚集,并按照所包含的点云数据的数量由大至小的顺序,依次确定每个单位高度分段所属的高度范围。通过这样的方式,使得每个高度范围内的点云数量均呈现出中间多,两端低的趋势,也即每个高度范围内均具有一个单位高度分段的数据量处于峰值。由于构成水平区域的目标点云数据通常会聚集在同一高度,使得处于同一高度的数量较多的点云数据大概率是构成水平区域的目标点云数据,因此上述方案构成的每个高度范围中均有可能包含了一个水平区域,在这种情况下,再在每个高度范围内寻找构成水平区域的目标点云数据,从而能够滤除三维点云中的干扰点,降低点云分割的复杂度,进而具有更高的效率。
作为一种可选的实施例,在根据高度信息获取每个单位高度分段内所包含的点云数据的数量之后,上述方法还包括:获取包含的点云数据的数量少于预设数量的单位高度分段,清除获取的单位高度分段内的点云数据。
上述方案通过清除数量少于预设数量的单位高度中的点云数据,对一些噪声点云数据或意义不大的点云数据进行了清除。
在一种可选的上述中,滤波后数组的值为:
作为一种可选的实施例,在每段高度范围中检测构成水平区域的目标点云数据,包括:获取分段对应的高度范围的起点和终点;获取分段中点云数量最大的目标位置;确定由目标位置至起点内的多个梯度值,以及由目标位置至终点内的多个梯度值,其中,梯度值用于表示相邻点云数据的高度差;获取所述多个第一梯度值中的第一最大梯度值和所述多个第二梯度值中的第二最大梯度值;在目标位置与所述第一最大梯度值对应的位置之间的距离小于预设值,且所述目标位置与所述第二最大梯度值对应的位置之间的距离小于预设值的情况下,确定检测到所述水平区域。
当一个高度范围内存在水平区域时,水平区域所在位置的点云数量较多,而非水平区域所在位置的点云数量较少,因此水平区域和非水区域的交界处的梯度值较大,上述方案正是基于这一原理,假设点云数量最大的目标位置为水平区域的中心,并分别向两个方向搜索假设的水平区域与非水平区域的交界处(即最大的梯度值所在的位置),再根据目标位置和最大梯度值所在位置之间的距离进一步判断假设的水平区域是否为真实的水平区域。
在上述方案中,对每个高度范围内的点云数据进行检测。由于水平方向与高度方向为垂直关系,因此水平区域的点云在投影至高度这一维度后,相应高度的点云数量可能形成局部峰值。该局部峰值所在位置即为上述的目标位置。根据分段结果进行峰值检测,由于水平区域内点云数量在高度方向较为集中,峰值检测过程从每个高度划分范围内的峰值开始,基于高度网格内点云数量的梯度进行搜索,分别搜索峰值两侧具有最大梯度的位置;最终,当峰值到两侧最大梯度位置的距离小于阈值th
需要说明的是,在进行峰值检测时候,将峰值两侧点云数量较低的其他网格位置删除,可进一步减少数据处理量,提高处理效率。
在一种可选的实施例中,对高度分段结果进行检测,例如对标记为l
计算左侧和右侧的最大梯度值所在位置:
当目标位置与最大梯度值位置的距离小于th
基于图4的高度划分范围结果,上述实施例检测到的水平点云区域对应的高度范围为:[22-30],[169-176],[232-236],[237-242],也即,共检测出4个水平点云区域所在的高度范围。
作为一种可选的实施例,根据目标点云数据从水平区域中筛选出用于表示障碍物的障碍物区域,包括:将目标点云数据所属高度范围内的点云数据投影至第二维度和第三维度所构成的平面,得到投影平面,其中,第二维度和第三维度所构成的平面垂直于第一维度;获取投影平面的面积;根据投影平面的面积筛选出用于表示障碍物的障碍物区域。
上述方案用于在检测到的水平点云区域的高度范围内,对属于这一范围内的点云进行二维投影,并滤除面积较大的水平区域,面积较大的水平区域实际表示的是地板或天花板等室内建筑固有的结构,而并不表示障碍物。
由于水平点云区域所在高度范围内同时存在其他非平面的点云,例如某些较高的障碍物,在很大的高度范围内都分布有其点云。因此,需要将上述步骤检测出的高度范围内的点云在水平面上进行二维投影,通过分析投影图中物体的轮廓,判别对应点云是否属于平面区域,进而过滤掉面积较大的平面区域点云,完成点云预处理。
作为一种可选的实施例,在获取投影平面的面积之前,上述方法还包括:对投影平面进行标准化处理,其中,对投影平面进行标准化处理的步骤包括:将投影平面转换为灰度图;对灰度图进行形态学滤波处理。
作为一种可选的实施例,首先获取步骤S106中检测出平面的高度分段,提取位于该高度分段内的点云数据,即
在水平面上进行二维投影,其过程与一维投影相似,设分辨率r=0.02cm,则当点云坐标满足
对二维图像I
其中,minI
对图像
作为一种可选的实施例,根据投影平面的面积筛选出用于表示障碍物的障碍物区域,包括:获取满足预设条件的投影平面区域,其中,预设条件包括:投影平面的面积大于预设面积,或投影平面的面积与投影平面的最小外接矩形的面积的比值大于预设值;从投影平面中过滤掉满足预设条件的投影平面平面,得到障碍物区域。
在一种可选的实施例中,计算轮廓包含区域的面积a
图5a是根据本发明实施例的一种不同高度分段内点云数据投影至第二维度和第三维度的示意图,图5b是根据本发明实施例的一种待过滤区域的示意图,其中从上到下表示在不同高度范围内的点云数据,图5a中白色点为对应高度范围内的点云数据在水平面投影后的图像,图5b中不为黑色的部分表示待过滤区域。
实施例2
根据本发明实施例,提供了一种点云数据的处理装置的实施例,图6是根据本发明实施例的一种点云数据的处理装置的示意图,如图6所示,该装置包括:
投影模块60,用于将待处理的点云数据投影至第一维度,得到点云数据的高度信息,其中,第一维度为用于表示空间中的指定维度;
分段模块62,用于将高度信息在第一维度上进行分段,得到多段高度范围;
检测模块64,用于在每段高度范围中检测构成水平区域的目标点云数据;
筛选模块66,用于根据目标点云数据从水平区域中筛选出用于表示障碍物的障碍物区域。
作为一种可选的实施例,上述装置还包括:预处理模块,用于在将点云数据投影至第一维度,得到点云数据的高度信息之前,对获取的初始点云数据进行预处理,得到待处理的点云数据,其中,预处理包括如下至少一项:离群值过滤和降采样。
作为一种可选的实施例,分段模块包括:第一获取子模块,用于根据高度信息获取每个单位高度分段内所包含的点云数据的数量;第一确定子模块,用于按照数量由大至小的顺序,依次确定每个单位高度分段内所包含的点云数据所属的高度范围。
作为一种可选的实施例,确定子模块包括:
第一划分单元,用于在单位高度分段内点云数据的数量大于上方相邻单位高度分段内的数量且大于下方相邻单位高度分段内的数量的情况下,将单位高度分段划分为一个新的高度范围;
第二划分单元,用于在单位高度分段内点云数据的数量小于上方相邻单位高度分段内的数量且大于下方相邻单位高度分段内的数量的情况下,将单位高度分段划分为下方相邻单位高度分段所属的高度范围;
第三划分单元,用于在单位高度分段内点云数据的数量大于上方相邻单位高度分段内的数量且小于下方相邻单位高度分段内的数量的情况下,将单位高度分段划分为上方相邻单位高度分段所属的高度范围;
第四划分单元,用于在单位高度分段内点云数据的数量小于上方相邻单位高度分段内的数量且小于下方相邻单位高度分段内的数量的情况下,将单位高度分段划分为上方相邻单位高度分段和下方相邻单位高度分段中,与单位高度分段的数量差距较小的单位高度分段所属的高度范围。
作为一种可选的实施例,上述装置还包括:第二获取子模块,用于在根据高度信息获取每个单位高度分段内所包含的点云数据的数量之后,获取包含的点云数据的数量少于预设数量的单位高度分段;清除子模块,用于清除获取的单位高度分段内的点云数据。
作为一种可选的实施例,检测模块包括:第三获取子模块,用于获取分段对应的高度范围的起点和终点;第四获取子模块,用于获取分段中点云数量最大的目标位置;第二确定子模块,用于确定由目标位置至起点内的多个梯度值,以及由目标位置至终点内的多个梯度值,其中,梯度值用于表示相邻点云数据的高度差;第五获取子模块,用于获取所述多个第一梯度值中的第一最大梯度值和所述多个第二梯度值中的第二最大梯度值;第三确定子模块,用于在目标位置与所述第一最大梯度值对应的位置之间的距离小于预设值,且所述目标位置与所述第二最大梯度值对应的位置之间的距离小于预设值的情况下,确定检测到所述水平区域。
作为一种可选的实施例,筛选模块包括:投影子模块,用于将目标点云数据所属高度范围内的点云数据投影至第二维度和第三维度所构成的平面,得到投影平面,其中,第二维度和第三维度所构成的平面垂直于第一维度;第六获取子模块,用于获取投影平面的面积;筛选子模块,用于根据投影平面的面积筛选出用于表示障碍物的障碍物区域。
作为一种可选的实施例,上述装置还包括:处理模块,用于在获取投影平面的面积之前,对投影平面进行标准化处理,其中,处理模块包括:转换子模块,用于将投影平面转换为灰度图;滤波子模块,用于对灰度图进行形态学滤波处理。
作为一种可选的实施例,筛选模块包括:第七获取子模块,用于获取满足预设条件的投影平面区域,其中,预设条件包括:投影平面的面积大于预设面积,或投影平面的面积与投影平面的最小外接矩形的面积的比值大于预设值;过滤子模块,用于从投影平面中过滤掉满足预设条件的投影平面区域,得到障碍物区域。
实施例3
根据本发明实施例,提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行实施例1的点云数据的处理方法。
实施例4
根据本发明实施例,提供了一种处理器,处理器用于运行程序,其中,程序运行时执行实施例1的点云数据的处理方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
- 点云数据处理装置、点云数据处理方法以及程序
- 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法