点云数据的平滑方法、装置、电子设备及存储介质与流程

文档序号:32606792发布日期:2022-12-20 17:47阅读:215来源:国知局
点云数据的平滑方法、装置、电子设备及存储介质与流程

1.本技术涉及地图数据处理技术领域,尤其涉及一种点云数据的平滑方法、装置、电子设备及存储介质。


背景技术:

2.目前,随着电子技术的不断发展,地图所能够呈现给人们的内容也越来越丰富。除了平面地图之外,3d地图、卫星地图以及实景地图的出现都给人们对于地图的感知带来了更加丰富的体验,并能够为用户以及车辆提供更多的例如辅助导航、自动驾驶等服务。
3.现有技术中,为了实现地图数据的制作,供应商通过地图采集车等地图采集设备对待处理区域内道路的矢量数据进行采集,地图采集车上设置的高精度雷达用于采集点云数据、以及高清晰摄像头用于采集图像数据,随后,供应商的后台服务器可以根据地图采集设备所采集的点云数据以及图像数据,共同计算得到地图数据。
4.采用现有技术,由于采集条件的限制、参考系不同等原因,地图数据中停车场出入口等位置在制作点云数据时,在位置两侧可能前后点云数据段出现断裂的问题,而如何消除点云数据所存在的断裂,让断裂点云数据平滑连接起来,是本领域亟需解决的技术问题。


技术实现要素:

5.本技术提供一种点云数据的平滑方法、装置、电子设备及存储介质,以消除点云数据存在的断裂,让断裂的点云数据平滑连接。
6.本技术第一方面提供一种点云数据的平滑方法,包括:根据待平滑的第二点云数据段的经纬度坐标,确定所述第二点云数据段的曲率;其中,在经纬度平面上,所述第二点云数据段的第一端与第一点云数据段的第二端相对;所述第一点云数据段的第二端和所述第二点云数据的第一端包括对应于相同位置的第一点云数据集;根据所述第二点云数据段的曲率,修改所述第二点云数据段中点云数据集的经纬度坐标,使所述第二点云数据段与所述第一点云数据段中第二点云数据集的点云数据连续,且所述第二点云数据段的曲率保持不变;其中,所述第二点云数据集包括所述第一点云数据段中除所述第一点云数据集之外的点云数据。
7.在本技术第一方面一实施例中,所述根据待平滑的第二点云数据段的经纬度坐标,确定所述第二点云数据段的曲率之前,还包括:对所述第一点云数据段和所述第二点云数据段中所有点云数据的经纬度坐标进行配准处理,确定所述第一点云数据段和所述第二点云数据段中对应于相同位置的第一点云数据集。
8.在本技术第一方面一实施例中,所述根据待平滑的第二点云数据段的经纬度坐标,确定所述第二点云数据段的曲率,包括:根据所述第二点云数据段中所有点云数据的经纬度坐标,确定所述第二点云数据段的弯折方向;根据所述弯折方向最内侧的多个点云数据的变化得到最小曲率;根据所述弯折方向最外侧的多个点云数据的变化得到最大曲率;根据所述最小曲率和最大曲率之间的预设曲率变化规律,将所述第二点云数据段中的点云
数据划分为多个层,并得到所述第二点云数据段中多个层对应的多个曲率。
9.在本技术第一方面一实施例中,所述根据所述第二点云数据段的曲率,修改所述第二点云数据段中点云数据集的经纬度坐标,包括:对于第二点云数据段中每一层点云数据,根据所述第二点云数据段中该层的第一端点、第二端点和曲率,确定所述第二点云数据段中该层的第一曲率圆心;根据所述第二点云数据段中该层的第二端点、第三端点和曲率,确定修改后的第二曲率圆心;其中,所述第三端点为所述第一点云数据段中所述第二点云数据集和所述第一点云数据集的交点对应的点云数据;根据所述第一曲率圆心和所述第二曲率圆心,将所述第一端点所述第二端点之间的每一个点云数据的经纬度坐标,在经纬度坐标上按照点云数据在所述第二点云数据段内的时间占比,修改为所述第三端点、和所述第二端点之间目标位置的经纬度坐标。
10.在本技术第一方面一实施例中,所述根据所述第一曲率圆心和所述第二曲率圆心,将所述第一端点和所述第二端点之间的每一个点云数据的经纬度坐标,在经纬度坐标上按照点云数据在所述第二点云数据段内的时间占比,修改为所述第三端点所述第二端点之间目标位置的经纬度坐标,包括:对于所述第一点云数据段中的第一点云数据,计算所述第一点云数据、第二端点与所述第一曲率圆心之间的第二夹角,并计算所述第一端点、所述第二端点与所述第一曲率圆心之间的第一夹角,得到所述第二夹角和所述第一夹角的比例关系;确定所述第三端点、所述第二端点与所述第二曲率圆心之间的第三夹角中,与所述比例关系相同的第四夹角;根据所述第四夹角、所述第二端点与所述第二曲率圆心,确定所述第一点云数据对应的目标位置;将所述第一点云数据的经纬度坐标修改为所述目标位置的经纬度坐标。
11.在本技术第一方面一实施例中,还包括:在经纬度坐标上按照点云数据在所述第二点云数据段内的时间占比,将所述第二点云数据段中第一端点到第二端点之间点云数据的高程坐标,修改为所述第三端点和所述第二端点之间目标位置的经纬度坐标。
12.在本技术第一方面一实施例中,按照所述时间占比,修改所述第二点云数据段中点云数据的高程坐标,包括:对于所述第一点云数据段中的第一点云数据,计算所述第一点云数据与所述第一端点之间的第二gps时间,并计算所述第一端点和所述第二端点之间的第一gps时间,得到所述第二gps时间与所述第一gps时间的比例关系;确定所述第三端点和所述第二端点之间的第三gps时间中,与所述比例关系相同的第四gps时间;根据所述第四gps时间和所述第二端点,确定所述第一点云数据对应的目标位置;将所述第一点云数据的高程坐标修改为所述目标位置的高程坐标。
13.本技术第二方面提供一种点云数据的平滑装置,可用于执行如本技术第一方面提供的点云数据的平滑方法,该装置包括:确定模块,用于根据待平滑的第二点云数据段的经纬度坐标,确定所述第二点云数据段的曲率;其中,在经纬度平面上,所述第二点云数据段的第一端与第一点云数据段的第二端相对;所述第一点云数据段的第二端和所述第二点云数据的第一端包括对应于相同位置的第一点云数据集;平滑模块,根据所述第二点云数据段的曲率,修改所述第二点云数据段中点云数据集的经纬度坐标,使所述第二点云数据段与所述第一点云数据段中第二点云数据集的点云数据连续,且所述第二点云数据段的曲率保持不变;其中,所述第二点云数据集包括所述第一点云数据段中除所述第一点云数据集之外的点云数据。
14.本技术第三方面提供一种电子设备,包括:处理器以及存储器;其中,存储器中存储有计算机程序,当处理器执行计算机程序时,处理器可用于执行如本技术第一方面任一项所述的点云数据的平滑方法。
15.本技术第四方面提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时可用于执行如本技术第一方面任一项所述的点云数据的平滑方法。
16.综上,本技术提供的点云数据的平滑方法及装置,根据待平滑点云数据段的曲率,在原有点云数据段变化趋势的基础上,对断裂位置处的点云数据进行平滑处理,从而能够将地图数据中点云数据的断裂位置连接起来,进而可以有效消除点云数据的断裂、消除误差,提高地图数据的准确度,改善地图数据的质量。
附图说明
17.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
18.图1为本技术应用场景的示意图;
19.图2为一种地图数据中点云数据的可视化的示意图;
20.图3为本技术提供的点云数据的平滑方法一实施例的流程示意图;
21.图4为本技术提供的确定点云数据段的示意图;
22.图5为本技术提供的第二点云数据段的曲率示意图;
23.图6a为本技术提供的第二点云数据集一实施例的示意图;
24.图6b为本技术提供的第二点云数据集另一实施例的示意图;
25.图7为本技术提供的点云数据平滑后的示意图;
26.图8为本技术提供的点云数据的平滑方法另一实施例的流程示意图;
27.图9为本技术提供的点云切片的示意图;
28.图10为本技术提供的点云数据的经纬度坐标的修改流程示意图;
29.图11为本技术提供的点云数据的经纬度坐标的修改流程示意图;
30.图12为本技术提供的点云数据的高程坐标的修改流程示意图。
具体实施方式
31.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
32.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何
变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
33.图1为本技术应用场景的示意图,如图1示出了获取点云数据的场景,其中,地图采集设备a可以是地图数据供应商的工作人员所驾驶的地图采集车辆,则当地图采集车辆a在直线的道路a和弯折的道路b上行驶时,通过地图采集车上设置的雷达、摄像机、gps定位装置等传感设备,采集得到包括道路本身以及道路所在环境信息的点云数据,用图1中一个圆形黑点来表示一条点云数据,可以理解的是,每条点云数据上,相邻点云数据在时间上是连续的,则地图采集车辆a将行驶经过的道路a和道路b上的连续点云数据均发回供应商的后台服务器,由工作人员对点云数据进行后续的处理。
34.在如图1所示场景的一些情况下,当地图采集设备如图中21的道路b上行驶时,由于在区域10和区域20交界处,采集设备搜索到的卫星较少、gps信号较弱,或者由于对区域20的点云数据由于进行了slam算法进行处理,又或者是误差的累计、参考系不同等因素,都可以造成虽然地图采集车辆采集到的点云数据是连续的,但是在处理后的地图数据中,点云数据容易在两个区域的连接处21等位置产生误差。
35.例如,图2为一种地图数据中点云数据的可视化的示意图,如图2所示示出了如图1所示的场景中,地图采集车辆a采集到的点云数据经过处理后,在区域10和区域20处,点云数据所产生的误差的示意图。其中,可以明显看出,在连接处21两侧,区域10和区域20的点云数据各自连续,但是在连接处21,点云数据出现了“断裂”,在断点两侧的点云数据虽然可能对应于同一个位置,但是在得到的地图数据中的经纬度坐标上,二者并没有在一个位置,而这种断裂的点云数据将极大地影响供应商所提供的地图数据的准确度,降低地图数据的品质。
36.因此,如何消除如图2所示的地图数据的点云数据中的断裂位置,是本技术所解决的技术问题,其中,本技术通过地图数据中保持点云数据的断裂位置曲率不变的方式,在原有点云数据变化趋势的基础上,对断裂位置处的点云数据进行平滑处理,从而将地图数据中点云数据的断裂位置连接起来,进而可以有效消除点云数据的断裂、消除误差,提高地图数据的准确度,改善地图数据的质量。
37.下面以具体地实施例对本技术的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
38.图3为本技术提供的点云数据的平滑方法一实施例的流程示意图,如图3所示,本实施例提供的点云数据的平滑方法的执行主体可以是具有相关数据处理能力的电子设备,例如,电脑、服务器、工作站等,本技术实施例中以执行主体为电子设备作为示例,具体地,如图3所示的点云数据的平滑方法包括:
39.s101:确定地图数据中的第一点云数据段和第二点云数据段。
40.其中,作为执行主体的电子设备在对点云数据进行平滑之前,首先需要确定待平滑的点云数据。以图2为例,第一点云数据段包括道路b上连接处21左侧区域10的连续的多个点云数据,第二点云数据段包括道路b上;连接处21右侧的连续多个点云数据。同时,第一点云数据段和第二点云数据段之间在经纬度平面上存在断点,第一点云数据段在断点一侧的第二端与第一点云数据段在断点一侧的第一端相对,并且第一点云数据段和第二点云数
据段在断点两侧包括至少一个对应于相同位置的点云数据,将该相同的至少一个点云数据记为第一点云数据集。
41.可选地,所述第一点云数据段和第二点云数据段可以是工作人员向电子设备发送指令而指定的,或者,可以是电子设备遍历地图数据中点云数据时根据经纬度坐标之间变化趋势所确定的;并且,每个点云数据段中的点云数据的数量不做限定,可以是指定的、可以是预设的,或者也可以是工作人员向电子设备发送指令而指定的。
42.在一种具体的实现方式中,图4为本技术提供的确定点云数据段的示意图,其中,作为执行主体的电子设备可以在其显示屏幕提供的显示页面30上显示如图2所示的道路内的点云数据,则当工作人员通过显示页面确定当前所显示的点云数据在连接处21处存在断点时,可以通过鼠标、键盘等交互设备在显示页面30上通过选择框31框出该断点,则第一点云数据段311包括被选择框31所框出的在连接处21左侧的点云数据a-e,第二点云数据段312包括被选择框31所框出的在连接处21右侧的点云数据f-j,第一点云数段311的第二端e与第二点云数据段312的第一端f相对。需要说明的是,如图2-4所示的点云数据的数量仅为示例,可以理解的是,在a-e、f-j之间还可以包括更多数量的点云数据,并且图中以一行点云数据作为示例,可以理解的是,点云数据还可以在同一个道路上按照多行分别,使得点云数据存在一定的“厚度”。
43.s102:根据第一点云数据段中第一点云数据集,对第二点云数据段中的第一点云数据集进行配准。
44.其中,由于第一点云数据段和第二点云数据段在断点的两侧各自包括第一点云数据集中相同的点云数据,这些点云数据由于制作时断点两侧参考系不同、环境不同等因素,导致了即使他们是同一个经纬度位置的点云数据,但是在第一点云数据段和第二点云数据段的经纬度坐标并不相同,因此需要首先找到这些点云数据、随后将第二点云数据段中的点云数据的坐标通过旋转矩阵和平移向量的方式移动到第一点云数据段中的坐标内,从而保持断点两侧,对应用相同位置的点云数据的一致,并且在后续曲率的平滑过程中,不会对第一点云数据段中已知准确的点云数据进行处理,这个确定对应于相同位置点云数据的过程被称为点云数据的“配准”。此外,本技术还有一个前提是,第一点云数据段所对应的区域10是已知的准确区域,可以是工作人员处理过或者确认过的,第一点云数据段内的点云数据在经纬度坐标上是准确的,则可以根据区域10内的第一点云数据段为基准,实现对第二点云数据段中第一点云数据集的配准。
45.在具体的实现过程中,可以通过最近点搜索法(iterative closest point,简称:icp)算法,确定第一点云数据段和第二点云数据段在断点的两侧所包括的对应于相同位置的点云数据,其数量可以是4对或者4对以上,数量越多则配准的准确率越高。具体地,icp算法的核心是将如下公式一的目标函数最小化:
[0046][0047]
其中,n为最邻近点对的个数,pi为第二点云数据段中的一个点云数据,qi为第一点云数据段中与pi对应的最近点,r为旋转矩阵,t为平移向量。则当通过公式一确定第一点云数据段和第二点云数据段的n个最近邻点对之后,通过最小二乘法计算得到最优的旋转
矩阵r和平移向量t。当获得了一个新的旋转矩阵r和平移矩阵t时,导致一些点旋转后的位置发生变化,一些最邻近点对也相应的发生了变化。则需要再次迭代公式一进行计算后,直到计算得到的旋转矩阵r和平移矩阵t小于特定值,或者公式一种目标函数小于特定值、或者最近邻点对不再变化后,确定最终计算得到的第一点云数据段和第二点云数据段之间的旋转矩阵r和平移向量t。
[0048]
最终,对于第二点云数据段中第一点云数据集中的点云数据,可以直接按照旋转矩阵r和平移向量t,对经纬度数据集进行修改,使得第二点云数据段中第一点云数据集的经纬度数据与第二点云数据集中第一点云数据集相同,实现第一点云数据段和第二点云数据段的配准,后续能够在对第二点云数据段的曲率进行调整时,保持第一点云数据段中的第二点云数据集合内的点云数据不变,而通过对第二点云数据段中点云数据的修改,同步实现对第一点云数据段内第一点云集合进行的修改;其中,第二点云数据集包括第一点云数据段中除第一点云数据集之外的点云数据。
[0049]
s103:根据第二点云数据段的经纬度坐标,确定第二点云数据段的曲率。
[0050]
具体地,图5为本技术提供的第二点云数据段的曲率示意图,其中,本实施例所计算的曲率可以具体是第二点云数据段的最大曲率和最小曲率,曲率是指曲线上连续的点做切线,并在切线方向角对弧长的转动率,是一个通过微分形式表示的数值,用于表示曲线偏离直线的程度,曲率越大则曲线弯曲程度越大。如图5所示,在经纬度平面上,第二点云数据段f-j之间包括多个点云数据,且点云数据因道路上的不同车道等原因呈现不同的层分布,使得点云数据的分布存在一定的厚度。则首先选取该f-j的曲线弯折方向的最内侧上,不共线的3个点云数据,x、y和z,并根据这3个点云数据的时间范围,得到第二点云数据段的最小外接圆及圆心o。随后,根据圆心o和第二点云数据段上所有点云数据之间,在经纬度平面上的平面距离,可以得到相邻点云数据的最小曲率。相应地,选取曲线弯折方向上最外侧上不共线的3个点云数据,可以根据这3个点云数据的时间范围,得到第二点云数据段的最大外接圆及圆心,并得到最大曲率。具体地,在s103中可以对第二点云数据段中的点云数据按照不同的曲率半径进行切片处理,使得所有点云数据可以按照不同的层分别进行计算,其中,所述切片可以理解为对第二点云数据中连续的多个点云数据进行分层,每层或者每个切片内,对应的曲率半径不同,使得对应的曲率也不同。例如,首先可以将第二点云数据段中的最大曲率和最小曲率转化曲率半径,其中,曲率半径为曲率的倒数,则最小曲率半径为最大曲率的倒数、最大曲率半径为最小曲率的倒数,随后,设定一定距离的阈值,对曲率半径进行分段,并且阈值距离越小、对后续点云数据的平滑效果越好。其中,在得到分段的点云曲率半径后,通过遍历整个第二点云数据段中每个点云数据与圆心o的距离,依靠分段的曲率半径,将第二点云数据中所有点云数据进行分段,划分为多个区间,每个区间内包括一个或多个点云数据,相邻区间之间的曲率半径不同。示例性地,在图5所示的示例中,将第二点云数据段中的点云数据可以进行切片处理为不同的层c1、c2和c3,则可以得到不同层的不同曲率半径,r1、r2和r3等。
[0051]
s104:根据s103中确定的第二点云数据的曲率,对第二点云数据段中所有点云数据的经纬度坐标进行修改,从而实现第一点云数据段中的第二点云数据集和第二点云数据段中的第一点云数据集之间连续,且保持第二点云数据段的曲率不变,进而完成对第一点云数据段和第二点云数据段的平滑处理。
[0052]
其中,第二点云数据包括所述第一点云数据段中,除第一点云数据集之外的点云数据。可以理解的是,若s103中确定的第二点云数据的曲率后,对第二点云数据进行分层得到c1、c2和c3三层后,在s104中分别对三层的点云数据的经纬度坐标进行修改,而若s103中确定的第二点云数据只有一层时,在s104中只需要对该层点云数据的经纬度坐标进行修改,本技术后续以对应第二点云数据中包括点云数据f-j的一个层的经纬度坐标进行修改作为示例,对其他层的处理方式相同。
[0053]
示例性地,图6a为本技术提供的第二点云数据集一实施例的示意图,如图6a中以第一点云数据段a-e,第二点云数据段f-j作为示例,每个数据段各自包括多个连续的点云数据,假设第一点云数据段中的点云数据d-e,与第二点云数据段中的点云数据f-g分别对应于相同的第一点云数据集,经过s102中将第一点云数据集进行配准之后,在s104中需要处理的是点云数据f-j之间的点云数据。在第一点云数据段中的第一数据段d-e由于与第二点云数据段中的第一数据段f-g对应于相同的位置,因此,在第二点云数据段中的第一端的断点从f平移到d,同时,在第二点云数据段中第二端的断点j不进行处理,其目的是保持点云数据j与图4中选择框31右侧点云数据的连续,避免因对选择框31之内的点云数据进行处理,而新增新的断裂、漏洞等情况。需要说明的是,图6a中以图5中切片后的一个层的点云数据作为示例,在实际计算中还需对图5中每一层点云数据进行相同的计算。
[0054]
具体地,在图6a所示的示例中,确定第一点云数据集为第一点云数据段d-e之间的点云数据,第二点云数据集为第一点云数据段内a-d之间的点云数据,结合s103中确定的第二点云数据段f-j的曲率值,以及第二点云数据段中的第一端点f和第二端点j,可以得到第二点云数据段f-j对应的第二曲率半径r1,以及曲率的圆心o,此时第二点云数据段f-j对应于图中foj的圆弧。随后,图6b为本技术提供的第二点云数据集另一实施例的示意图,其中,根据第三端点d(第三端点d为第一点云数据集的端点,也就是第一点云数据段和第二点云数据段之间重合的第一个点)和第二端点j为端点,结合曲率所计算出的第二曲率半径r1,可以得到d-j之间的圆心o’,相当于将图6a中原有的圆心o移动至了图6b中的圆心o’,随后,可以按照与图6a中相同的分布,以圆心o到圆心o’的变化方式,对f-j之间的点云数据的经纬度坐标进行调整,使得如图6b中f-j之间的点云数据,在经纬度坐标上,从原始的f-j的变化趋势调整到d-j的变化趋势,并且在d-j之间的曲率与f-j之间的曲率半径相同,同时,第一点云数据段中的第二点云数据集a-d与第二点云数据段中的第一点云数据集f-g连续,最终得到a-j之间平滑后的点云数据为a-d实线部分和d-j的虚线部分。
[0055]
具体地,在图6a到图6b的具体的平滑过程中,按照每一个点云数据在整个f-j的点云数据段中的时间占比,对点云数据的经纬度坐标进行调整,使得调整后的点云数据在d-j的点云数据段中的时间占比也保持不变。例如,在图6a所示的示例中,在第二点云数据段f-j之间,点云f-g的gps时间为t1-t2,对应于图中foj的圆弧,从而得到第一端点f、第二端点j和第一曲率圆心o之间的第一夹角β,以第二点云数据段中的任一第一点云数据h作为示例,则该第一点云数据h与点云数据f对应的gps时间为t1-t3,则根据(t3-t1)/(t2-t1)可以计算出点云数据h在整个f-j的点云数据段内的占比,从而得到第一点云数据h、第一端点f和第一曲率圆心o之间的第二夹角α。随后在图6b所示的示例中,按照点云数据段d-j的整个时间占比,在第一曲率圆心o移动至第二曲率圆心o’的情况下,保持第一端点f、第二端点j和第一曲率圆心o之间的第一夹角β不变,以及保持第二夹角α和第一夹角β的比例不变的情况
下,可以根据时间占比(t3-t1)/(t2-t1)计算出第一点云数据h对应的目标位置h’。最终,可以根据目标位置h’的经纬度坐标,将第一点云数据h的经纬度坐标修改为目标位置h’的经纬度坐标,实现对第一点云数据h的修改。按照上述相同的方式,可以对第二点云数据段f-j中所有点云数据按照时间占比,进行经纬度坐标的移动,使得移动后的数据段d-j在保持曲率半径、曲率不变的基础上,还能够保持原f-j的变化趋势。
[0056]
图7为本技术提供的点云数据平滑后的示意图,如图4所示的选择框31内的点云数据经过本技术实施例的处理之后,实现了如图7中的状态,消除了选择框31内原本存在的断点,将断点两侧的第一点云数据段和第二点云数据段平滑连接,并且选择框内第二点云数据段的曲率,与平滑之前第二点云数据段的曲率相同,并且,第二点云数据段第二端也能够与选择框31右侧的点云数据连续起来。从而在原有点云数据变化趋势的基础上,对断裂位置处的点云数据进行平滑处理,因此,本技术实施例能够将地图数据中点云数据的断裂位置连接起来,进而可以有效消除点云数据的断裂、消除误差,提高地图数据的准确度,改善地图数据的质量。
[0057]
进一步地,在本技术上述实施例中,能够对如图7中经纬度坐标下点云数据的经纬度平面坐标进行平滑处理,而在另一些实施例中,除了对点云数据的经纬度坐标进行调整,对于点云数据中的高程坐标,同样也可以通过平滑处理的方式,使其在高程平面上连续。本技术实施例中同样可以根据高程坐标变化率不变的基本思路,在对点云数据进行平滑时,根据第二点云数据段中点云数据在第二点云数据段中的时间占比,对每个点云数据的高程值进行加权调整。
[0058]
例如,以图6所示作为示例,假设第一点云数据段中的点云数据d-e,与第二点云数据段中的点云数据f-g分别对应于相同的第一点云数据集,此时,在已知第一点云数据集一侧的第一端点d和第二端点j的高程坐标的基础上,对第二目云数据段f-j之间的点云数据的高程值进行平滑处理。其中,在第二点云数据段f-j之间,点云f-g的gps时间为t1-t2,以第二点云数据段中的任一第一点云数据h作为示例,则该第一点云数据h与点云数据f对应的gps时间为t1-t3,则计算出(t3-t1)/(t2-t1)的比例关系。随后在图6b所示的示例中,按照第三端点d-第二端点j之间保持时间占比(t3-t1)/(t2-t1)不变的情况下,确定第一点云数据h对应的目标位置h’,最终可以根据目标位置h’的高程坐标,将第一点云数据h的高程坐标修改为目标位置h’的高程坐标,实现对第一点云数据h的高程坐标的修改。
[0059]
在一种具体的实现中,上述过程可以通过如下公式进行表示,假设第二目云数据段f-j之间点云数据的gps时间最小值为t
gpsmin
、gps时间的最大值为t
gpsmax
,则在如图3所示的停车场入口31的断点处车辆可以根据gps时间的变化有两种变化趋势:第一点云数据段-第二点云数据段的gps时间逐渐递减,以及第一点云数据段-第二点云数据段的gps时间逐渐递增。则设当前正在处理的第二目云数据段中的点云数据的gps时间为

t,则该点云数据对应的权值可以通过如下公式二表示:
[0060][0061]
则将公式二计算出的权重值f(

t),代入在点云配准的过程中,得到如下公式三
中的点云配准公式:
[0062][0063]
其中,第二目云数据段中原始的点云数据的经纬度x-y和高程坐标z,记为(x,y,z),将公式二代入公式三后,得到调整后的点云数据的坐标(xa,ya,za)如公式四所示:
[0064][0065]
将公式四中高程坐标相关的数据进行提取后,可以得到如公式五示出的平滑高程方程。
[0066]
za=f(δt)zs+(1-f(δt))z=f(δt)zs+(1-f(δt))z
ꢀꢀꢀꢀ
公式五
[0067]
综上,本实施例能够消除点云数据在高程坐标上存在的断点,使得点云数据高程坐标上也进行平滑,因此可以进一步提高地图数据的准确度,从而更加有效地改善地图数据的质量。
[0068]
下面结合附图8-12,对本技术实施例提供的点云数据的平滑方法一种具体的应用进行说明。
[0069]
图8为本技术提供的点云数据的平滑方法另一实施例的流程示意图,如图8所示,作为执行主体的电子设备在得到待平滑的两段点云数据后,首先确定点云数据的时间范围和点云曲率,随后进行切片,并对第二点云数据段内重复的第一点云数据集内的点云数据进行配准。随后,通过分别计算第二点云数据段中点云数据的经纬度坐标(x,y)和高程坐标(z),实现对第二点云数据段的平滑处理,消除了第一点云数据段和第二点云数据段之间的断点。
[0070]
图9为本技术提供的点云切片的示意图,如图9示出了图8中对点云数据进行切片的流程,其中,首先计算第二点云数据段的曲率范围,以及曲率半径范围,并根据变化阈值,将第二点云数据段切分为不同的区间,每个区间内的曲率视为相同,相邻不同区间的曲率不同。
[0071]
图10为本技术提供的点云数据的经纬度坐标的修改流程示意图,示出了如图8中对点云数据的经纬度坐标(x,y)进行修改的流程。其中,通过每个区间的点云数据在整个区间的时间占比,计算出第二点云数据段整体的曲率,随后根据该曲率对第二点云数据段内点云数据进行修改。而基于点云切片结果,根据曲率半径大小逐个进行处理。当处理点云切片分段结果时,首先需要找到点云切片分段结果的最大时间和最小时间,并获取对应的点云平面坐标;然后通过之前获取的圆心坐标位置,可计算出对应的点云分段接片结果和圆心形成一个扇形,并能计算出对应的扇形圆心角;接着遍历点云切片分段中的每个点云,计算出其占对应扇形圆心角的比例;最后通过点云平面坐标平滑方程和其所占扇形圆心角的权重比列,确定发出对应的点云平面坐标(x,y)。
[0072]
图11为本技术提供的点云数据的经纬度坐标的修改流程示意图,其中,在图10所示的基础上,为了防止第二点云数据段的第二端与未在选择框内的另外一侧出现断裂,不
匹配的情况,为了避免产生上述情况,故在上述的点云配准基础之上做出改善。具体地,点云平面坐标平滑方程主要需要使用到点云切片分段的最大时间和最小时间的点云坐标,将最小时间的点云平面坐标与之前获得的旋转矩阵r和平移矩阵t做配准,得到平滑之后的最小时间的点云平面,至于最大时间的点云平面坐标不做改变,这样是为了与前后点云坐标进行连接起来,避免点云出现断裂,漏洞等情况。通过点云切片分段的曲率半径,可认为点云曲率半径前后平滑结果不变,通过曲率半径和点云平滑之后的两端点云坐标,可以求出对应平滑之后扇形的平滑坐标方程,再通过首尾两点及对应的获得的平滑之后的圆心坐标,可将平滑坐标方程转化为关于权重值的点云平面坐标方程。
[0073]
图12为本技术提供的点云数据的高程坐标的修改流程示意图,其中,示出了如图8中对点云数据的高程坐标(z)进行修改的流程。具体地,基于点云切片结果,根据曲率半径大小逐个进行处理。当处理点云切片分段结果时,首先需要找到点云切片分段结果的最大时间和最小时间;接着遍历点云切片分段中的每个点云,获得其个点云的点云时间,计算出其占总分段点云时间范围的比例;最后通过点云平滑的高程方程和其所占点云时间范围的权重比列,确定出对应的点云高程值z。
[0074]
在前述实施例中,对本技术实施例提供的点云数据的平滑方法进行了介绍,而为了实现上述本技术实施例提供的方法中的各功能,作为执行主体的电子设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
[0075]
例如,本技术还提供一种点云数据的平滑装置包括:确定模块和平滑模块,其中,确定模块用于根据待平滑的第二点云数据段的经纬度坐标,确定第二点云数据段的曲率;其中,在经纬度平面上,第二点云数据段的第一端与第一点云数据段的第二端相对;第一点云数据段的第二端和第二点云数据的第一端包括对应于相同位置的第一点云数据集;平滑模块用于根据第二点云数据段的曲率,修改第二点云数据段中点云数据集的经纬度坐标,使第二点云数据段与第一点云数据段中第二点云数据集的点云数据连续,且第二点云数据段的曲率保持不变;其中,第二点云数据集包括第一点云数据段中除第一点云数据集之外的点云数据。具体地,点云数据的平滑装置中的各模块分别执行的上述步骤的具体原理及实现方式可参考本技术前述实施例中的点云数据的平滑方法,不再赘述。
[0076]
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
[0077]
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:
一个或多个特定集成电路(application specific integrated circuit,asic),或,一个或多个微处理器(digital signal processor,dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,soc)的形式实现。
[0078]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0079]
本申还提供一种电子设备,包括:处理器以及存储器;其中,存储器中存储有计算机程序,当处理器执行计算机程序时,处理器可用于执行如本技术前述实施例中任一的点云数据的平滑方法。
[0080]
本技术还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被执行时可用于执行如本技术前述实施例中任一的点云数据的平滑方法。
[0081]
本技术实施例还提供一种运行指令的芯片,所述芯片用于执行如本技术前述任一实施例中由电子设备所执行的点云数据的平滑方法。
[0082]
本技术实施例还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在存储介质中,至少一个处理器可以从所述存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序时可实现如本技术前述任一实施例中由电子设备所执行的点云数据的平滑方法。
[0083]
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0084]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1