一种基于并行处理高效数据生成系统及方法与流程

文档序号:33386326发布日期:2023-03-08 08:23阅读:32来源:国知局
一种基于并行处理高效数据生成系统及方法与流程

1.本发明涉及激光点云处理领域,特别是涉及一种基于并行处理高效数据生成系统及方法。


背景技术:

2.随着测绘信息化发展,测绘信息深入到人们生活的方方面面:从土地规划、城市建设、应急调度、智能交通等公共业务到个人的实景导航、出行路线规划等,简单以符号显示为中心的传统地图已经不能满足现有使用场景需求。
3.为快速、准确、全面采集空间地理信息,移动测量技术应运而生。移动测量依靠激光雷达采集激光原始点云数据和惯导等传感器采集激光雷达的位置姿态数据,但激光原始点云数据并不能直接用于浏览、分析、应用,须先对激光原始点云数据和位置姿态数据进行处理得到激光点云成果数据。
4.现有技术中,采用单机方式对激光原始点云数据和位置姿态数据进行处理得到激光点云成果数据,该种方式对单机配置要求高,且在处理海量数据时效率低,严重制约了激光点云成果数据的业务应用。
5.申请内容
6.(一)申请目的
7.有鉴于此,本发明提出一种基于并行处理高效数据生成系统及方法,以解决现有技术对激光原始点云数据和位置姿态数据进行处理得到激光点云成果数据时需对单机配置要求高,且在处理海量数据时效率低的问题。
8.(二)技术方案
9.本技术公开了一种基于并行处理高效数据生成系统,包括分块模块和多个并行处理模块,所述多个并行处理模块分别与所述分块模块连接;
10.所述分块模块用于对激光原始点云数据进行分块得到多个激光原始点云数据子块,所述分块模块还用于对位置姿态数据进行分块得到多个位置姿态数据子块;所述分块模块将任一所述多个激光原始点云数据子块和与所述任一所述多个激光原始点云数据子块对应的位置姿态数据子块分发到任一所述多个并行处理模块;
11.任一所述多个并行处理模块用于对接收到的任一所述多个激光原始点云数据子块和与所述任一所述多个激光原始点云数据子块对应的位置姿态数据子块进行处理,得到激光点云成果数据。
12.在一种可能的实施方式中,所述分块模块包括激光原始点云数据分块单元、位置姿态数据分块单元和分发单元,所述激光原始点云数据分块单元用于对所述激光原始电云数据进行分块,所述位置姿态数据分块单元用于对所述位置姿态数据进行分块,所述分发单元用于将任一所述多个激光原始点云数据子块和与所述任一所述多个激光原始点云数据子块对应的位置姿态数据子块分发到任一所述多个并行处理模块。
13.在一种可能的实施方式中,所述分块模块按时间间隔对所述激光原始点云数据和
位置姿态数据进行分块,根据所述时间间隔生成所述多个激光原始点云数据子块和所述多个位置姿态数据子块。
14.在一种可能的实施方式中,每个所述并行处理模块与所述分块模块保持心跳连接,每个所述并行处理模块每隔时间t向所述分块模块发送空闲信息,报告自己是否处于空闲状态;所述分块模块接收到每个所述并行处理模块发送的空闲信息后,所述分块模块记录所述并行处理模块的编号和接收到该并行处理模块发送空闲信息的时间,所述分块模块对向其发送空闲信息的所述并行处理模块按接收到所述并行处理模块发送空闲信息的时间顺序排序。
15.在一种可能的实施方式中,任一所述多个并行处理模块包括gpu并行处理单元,所述gpu并行处理单元按时间顺序读取接收到的任一所述多个激光原始点云数据子块中的激光原始点云,每次读取m个激光原始点云,不足m个激光原始点云时,全部读取,对每一个激光原始点云,gpu并行处理单元根据时间匹配读取的每个激光点云和其对应的位置姿态数据,将每个读取的激光原始点云的角度距离转为绝对坐标;当所述并行处理模块接收到的激光原始点云数据子块中的所有激光原始点云的角度距离均转为绝对坐标后,所述并行处理模块将所述激光原始点云数据子块保存为开放点云格式las文件,记作块las。
16.作为本发明的第二方面,本发明还公开了一种基于并行处理高效数据生成方法,包括如下步骤,
17.s1、分块模块对激光原始点云数据进行分块得到多个激光原始点云数据子块,分块模块还对位置姿态数据进行分块得到多个位置姿态数据子块;所述分块模块将任一所述多个激光原始点云数据子块和与所述任一所述多个激光原始点云数据子块对应的位置姿态数据子块分发到任一并行处理模块;
18.s2、任一并行处理模块对接收到的任一所述多个激光原始点云数据子块和与所述任一所述多个激光原始点云数据子块对应的位置姿态数据子块进行处理,得到激光点云成果数据。
19.在一种可能的实施方式中,所述分块模块包括激光原始点云数据分块单元、位置姿态数据分块单元和分发单元,所述激光原始点云数据分块单元用于对所述激光原始电云数据进行分块,所述位置姿态数据分块单元用于对所述位置姿态数据进行分块,所述分发单元用于将任一所述多个激光原始点云数据子块和与所述任一所述多个激光原始点云数据子块对应的位置姿态数据子块分发到任一所述多个并行处理模块。
20.在一种可能的实施方式中,所述分块模块按时间间隔对所述激光原始点云数据和位置姿态数据进行分块,根据所述时间间隔生成所述多个激光原始点云数据子块和所述多个位置姿态数据子块。
21.在一种可能实施方式中,每个所述并行处理模块与所述分块模块保持心跳连接,每个所述并行处理模块每隔时间t向所述分块模块发送空闲信息,报告自己是否处于空闲状态;所述分块模块接收到每个所述并行处理模块发送的空闲信息后,所述分块模块记录所述并行处理模块的编号和接收到该并行处理模块发送空闲信息的时间,所述分块模块对向其发送空闲信息的所述并行处理模块按接收到所述并行处理模块发送空闲信息的时间顺序排序。
22.在一种可能的实施方式中,任一所述多个并行处理模块包括gpu并行处理单元,所
述gpu并行处理单元按时间顺序读取接收到的任一所述多个激光原始点云数据子块中的激光原始点云,每次读取m个激光原始点云,不足m个激光原始点云时,全部读取,对每一个激光原始点云,gpu并行处理单元根据时间匹配读取的每个激光点云和其对应的位置姿态数据,将每个读取的激光原始点云的角度距离转为绝对坐标;当所述并行处理模块接收到的激光原始点云数据子块中的所有激光原始点云的角度距离均转为绝对坐标后,所述并行处理模块将所述激光原始点云数据子块保存为开放点云格式las文件,记作块las。
23.(三)有益效果
24.本发明对比现有技术有如下的有益效果:本发明的主要特点是结合分布式环境和gpu并行化,实现激光点原始数据向成果数据的快速转化。通过分别将原始激光点云数据和位置姿态数据进行分块,形成分块数据处理任务,根据监测的集群资源状态自动分发数据处理任务,形成分布式处理环境,在gpu内并行处理,实现分块数据的快速转化,最终将转化的分块点云数据融合,生成完整的激光点云成果数据。使用集群和gpu并行处理激光点云数据,大幅提高了激光点云数据处理效率,优化资源配置,为激光点云数据在行业中应用,提供了科学、可行的方法。
25.本技术的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本技术的实践中得到教导。本技术的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
26.以下参考附图描述的实施例是示例性的,旨在用于解释和说明本技术,而不能理解为对本技术的保护范围的限制。
27.图1是本技术的系统结构图;
28.图2是本技术的分块模块结构图;
29.图3是本技术的并行处理模块结构图;
30.图4是本技术gpu并行处理结构图;
31.图5是本技术的流程图。
具体实施方式
32.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。
33.因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
34.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
35.如图1,为本发明实施例提供的一种基于并行处理高效数据生成系统,包括分块模块和多个并行处理模块,所述多个个并行处理模块分别与所述分块模块连接,所述多个并行处理模块包括第一并行处理模块、第二并行处理模块、第三并行处理模块.....第n并行处理模块。
36.所述分块模块用于对激光原始点云数据进行分块得到多个激光原始点云数据子块,所述分块模块还用于对位置姿态数据进行分块得到多个位置姿态数据子块;所述分块模块将任一所述多个激光原始点云数据子块和与所述任一所述多个激光原始点云数据子块对应的位置姿态数据子块分发到任一所述多个并行处理模块;任一所述多个并行处理模块用于对接收到的任一所述多个激光原始点云数据子块和与所述任一所述多个激光原始点云数据子块对应的位置姿态数据子块进行处理,得到激光点云成果数据。
37.通过分别将原始激光点云数据和位置姿态数据进行分块,形成分块数据处理任务,根据监测的集群资源状态自动分发数据处理任务,形成分布式处理环境,在gpu内并行处理,实现分块数据的快速转化,最终将转化的分块点云数据融合,生成完整的激光点云成果数据。使用集群和gpu并行处理激光点云数据,大幅提高了激光点云数据处理效率。
38.所述分块模块包括激光原始点云数据分块单元、位置姿态数据分块单元和分发单元,所述激光原始点云数据分块单元用于对所述激光原始电云数据进行分块,所述位置姿态数据分块单元用于对所述位置姿态数据进行分块,所述分发单元用于将任一所述多个激光原始点云数据子块和与所述任一所述多个激光原始点云数据子块对应的位置姿态数据子块分发到任一所述多个并行处理模块;所述分块模块按时间间隔对所述激光原始点云数据和位置姿态数据进行分块,根据所述时间间隔生成所述多个激光原始点云数据子块和所述多个位置姿态数据子块。所述时间间隔相等为预设的dt,对原始激光点云数据进行分块,总块数为n:
39.n=(te-ts)/dt
40.其中,ts为原始激光点云数据开始记录时间,te为原始激光点云数据结束记录时间。
41.前n-1块点云开始时间和结束时间为:
[0042][0043]
其中,tsi为第i块点云开始记录时间,tei为第i块点云结束记录时间。
[0044]
则第n块原始激光点云数据子块开始时间和结束时间为:
[0045][0046]
其中,tsn为第n块原始激光点云数据子块开始记录时间,ten为第n块原始激光点云数据子块结束记录时间。
[0047]
如图2中,依据每一块原始激光点云数据子块的开始记录时间和结束记录时间对原始激光点云数据进行分块,并记录为blocki,表示第i块原始激光点云数据子块。
[0048]
同时根据每一块的开始记录时间和结束记录时间对位置姿态数据进行分段,并记录为possegi,表示第i段位置姿态数据。
[0049]
如图3中,结合对应点云块和位置姿态段,生成数据处理任务taski,表示第i个任
务,所述分块模块将数据处理任务分发到并行处理模块中。
[0050]
每个所述并行处理模块与所述分块模块保持心跳连接,每个所述并行处理模块每隔时间t向所述分块模块发送空闲信息,报告自己是否处于空闲状态;所述分块模块接收到每个所述并行处理模块发送的空闲信息后,所述分块模块记录所述并行处理模块的编号和接收到该并行处理模块发送空闲信息的时间,所述分块模块对向其发送空闲信息的所述并行处理模块按接收到所述并行处理模块发送空闲信息的时间顺序排序,所述分块模块按时间顺序将数据处理任务分发到并行处理模块中,分块模块还会每隔时间t检查每个并行处理模块的任务队列,如果每个并行处理模块的任务队列中存在待处理任务,分块模块则取出任务向最先进入空闲状态的并行处理模块分发。
[0051]
如图4中,任一所述多个并行处理模块包括gpu并行处理单元,所述gpu并行处理单元按时间顺序读取接收到的任一所述多个激光原始点云数据子块中的激光原始点云,每次读取m个激光原始点云,不足m个激光原始点云时,全部读取,对每一个激光原始点云,gpu并行处理单元根据时间匹配读取的每个激光点云和其对应的位置姿态数据,将每个读取的激光原始点云的角度距离转为绝对坐标;当所述并行处理模块接收到的激光原始点云数据子块中的所有激光原始点云的角度距离均转为绝对坐标后,所述并行处理模块将所述激光原始点云数据子块保存为开放点云格式las文件,记作块las。
[0052]
gpu每次读取的m个激光原始点云满足:
[0053]k×
m<s

[0054]
其中,k为每一个原始点云存储大小,m为点数,s内为并行处理模块的内存大小。
[0055]
进一步地,记录las文件与对应的激光原始点云数据子块开始时间,规定最终成果las文件大小为m;根据激光原始点云数据子块开始时间先后顺序,将块las文件写入最终成果las文件,如果超过m,则新建一个las文件写入。
[0056]
如图5中,作为本技术的第二方面还提供了一种基于并行处理高效数据生成方法,包括如下步骤:
[0057]
s1、分块模块对激光原始点云数据进行分块得到多个激光原始点云数据子块,分块模块还对位置姿态数据进行分块得到多个位置姿态数据子块;所述分块模块将任一所述多个激光原始点云数据子块和与所述任一所述多个激光原始点云数据子块对应的位置姿态数据子块分发到任一并行处理模块;所述分块模块包括激光原始点云数据分块单元、位置姿态数据分块单元和分发单元,所述激光原始点云数据分块单元用于对所述激光原始电云数据进行分块,所述位置姿态数据分块单元用于对所述位置姿态数据进行分块,所述分发单元用于将任一所述多个激光原始点云数据子块和与所述任一所述多个激光原始点云数据子块对应的位置姿态数据子块分发到任一所述多个并行处理模块;所述分块模块按时间间隔对所述激光原始点云数据和位置姿态数据进行分块,根据所述时间间隔生成所述多个激光原始点云数据子块和所述多个位置姿态数据子块。所述时间间隔相等为预设的dt,对原始激光点云数据进行分块,总块数为n:
[0058]
n=(te-ts)/dt
[0059]
其中,ts为原始激光点云数据开始记录时间,te为原始激光点云数据结束记录时间。
[0060]
前n-1块点云开始时间和结束时间为:
[0061][0062]
其中,tsi为第i块点云开始记录时间,tei为第i块点云结束记录时间。
[0063]
则第n块原始激光点云数据子块开始时间和结束时间为:
[0064][0065]
其中,tsn为第n块原始激光点云数据子块开始记录时间,ten为第n块原始激光点云数据子块结束记录时间,依据每一块原始激光点云数据子块的开始记录时间和结束记录时间对原始激光点云数据进行分块,并记录为blocki,表示第i块原始激光点云数据子块。
[0066]
同时根据每一块的开始记录时间和结束记录时间对位置姿态数据进行分段,并记录为possegi,表示第i段位置姿态数据。结合对应点云块和位置姿态段,生成数据处理任务taski,表示第i个任务,所述分块模块将数据处理任务分发到并行处理模块中。
[0067]
每个所述并行处理模块与所述分块模块保持心跳连接,每个所述并行处理模块每隔时间t向所述分块模块发送空闲信息,报告自己是否处于空闲状态;所述分块模块接收到每个所述并行处理模块发送的空闲信息后,所述分块模块记录所述并行处理模块的编号和接收到该并行处理模块发送空闲信息的时间,所述分块模块对向其发送空闲信息的所述并行处理模块按接收到所述并行处理模块发送空闲信息的时间顺序排序,所述分块模块按时间顺序将数据处理任务分发到并行处理模块中,分块模块还会每隔时间t检查每个并行处理模块的任务队列,如果每个并行处理模块的任务队列中存在待处理任务,分块模块则取出任务向最先进入空闲状态的并行处理模块分发。
[0068]
s2、任一并行处理模块对接收到的任一所述多个激光原始点云数据子块和与所述任一所述多个激光原始点云数据子块对应的位置姿态数据子块进行处理,得到激光点云成果数据,任一所述多个并行处理模块包括gpu并行处理单元,所述gpu并行处理单元按时间顺序读取接收到的任一所述多个激光原始点云数据子块中的激光原始点云,每次读取m个激光原始点云,不足m个激光原始点云时,全部读取,对每一个激光原始点云,gpu并行处理单元根据时间匹配读取的每个激光点云和其对应的位置姿态数据,将每个读取的激光原始点云的角度距离转为绝对坐标;当所述并行处理模块接收到的激光原始点云数据子块中的所有激光原始点云的角度距离均转为绝对坐标后,所述并行处理模块将所述激光原始点云数据子块保存为开放点云格式las文件,记作块las。
[0069]
gpu每次读取的m个激光原始点云满足:
[0070]k×
m<s

[0071]
其中,k为每一个原始点云存储大小,m为点数,s内为并行处理模块的内存大小。
[0072]
进一步地,记录las文件与对应的激光原始点云数据子块开始时间,规定最终成果las文件大小为m;根据激光原始点云数据子块开始时间先后顺序,将块las文件写入最终成果las文件,如果超过m,则新建一个las文件写入。
[0073]
最后说明的是,以上实施例仅用以说明本技术的技术方案而非限制,尽管参照较佳实施例对本技术进行了详细说明,本领域的普通技术人员应当理解,可以对本技术的技术方案进行修改或者同替换,而不脱离本技术技术方案的宗旨和范围,其均应涵盖在本技术的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1