基于HDFS的点云数据处理方法及装置与流程

文档序号:20186841发布日期:2020-03-27 19:11阅读:223来源:国知局
基于HDFS的点云数据处理方法及装置与流程

本发明涉及数据处理领域,尤其涉及一种基于hdfs的点云数据处理方法及装置。



背景技术:

本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

机载激光雷达(lightlaserdetectionandranging,lidar)技术是近年来发展起来的一种可以直接获取地面三维信息的技术,具有传统航空摄影测量无可比拟的优势,已广泛应用于城市建筑物提取、三维重建、架空输电线路巡视。

由于机载激光雷达采集的点云数据量巨大,目前主要采用集中式存储和普通分布式存储两种存储方式,对点云数据的计算一般采用单机或集群计算。对于集中式存储,随着数量增加,集群扩大,很快带来io瓶颈;对于普通分布式存储,由于分布式存储的数据块与内容无关,随着存储规模变大,会引起网络阻塞。

现有的两种存储方式,均存在随着数据量增加,计算量也会增大的问题,很难做到计算能力与存储能力的同步线性扩展。目前解决的方案是采购更好的存储设备,提高计算机性能。



技术实现要素:

本发明实施例提供一种基于hdfs的点云数据处理方法,用以解决现有技术采用集中式或分布式存储点云数据,随着数量增加,计算量也同步增长的技术问题,该方法包括:获取采集的点云数据;将点云数据进行网格化处理,得到点云数据对应的多个地理网格;根据点云数据对应的各个地理网格,将点云数据切分为多个数据块,其中,每个数据块包含一个地理网格的点云数据;将各个数据块存储于hdfs的各个存储节点主机上。

本发明实施例还提供一种基于hdfs的点云数据处理装置,用以解决现有技术采用集中式或分布式存储点云数据,随着数量增加,计算量也同步增长的技术问题,该装置包括:点云数据获取模块,用于获取采集的点云数据;点云数据网格化处理模块,用于将点云数据进行网格化处理,得到点云数据对应的多个地理网格;点云数据切分模块,用于根据点云数据对应的各个地理网格,将点云数据切分为多个数据块,其中,每个数据块包含一个地理网格的点云数据;点云数据网格化分布式存储模块,用于将各个数据块存储于hdfs的各个存储节点主机上。

本发明实施例还提供一种计算机设备,用以解决现有技术采用集中式或分布式存储点云数据,随着数量增加,计算量也同步增长的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的基于hdfs的点云数据处理方法。

本发明实施例还提供一种计算机可读存储介质,用以解决现有技术采用集中式或分布式存储点云数据,随着数量增加,计算量也同步增长的技术问题,该计算机可读存储介质存储有执行上述基于hdfs的点云数据处理方法的计算机程序。

本发明实施例中,在获取到采集的点云数据后,将点云数据进行网格化处理,得到点云数据对应的多个地理网格,然后根据点云数据对应的各个地理网格,将点云数据切分为多个数据块,使得每个数据块包含一个地理网格的点云数据,最后将切分后的各个数据块存储于hdfs的各个存储节点主机上。由于存储到hdfs上的点云数据是按照各个地理网格进行存储的,因而,在对hdfs上的点云数据进行计算处理的时候,可以基于待处理点云数据对应的各个地理网格,查找hdfs上存储待处理点云数据对应各个数据块的存储节点主机,只需要将对点云数据进行计算处理的计算程序调度运行到存储待处理点云数据的存储节点主机上即可。

通过本发明实施例,基于hdfs实现点云数据的网格化分布式存储,不仅能够支持存储空间的横向扩充,而且在分布式计算的时候,能够实现最低程度的跨节点数据访问。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中提供的一种基于hdfs的点云数据处理方法流程图;

图2为本发明实施例中提供的一种提供的一种基于hdfs的点云数据存储系统架构示意图;

图3为本发明实施例中提供的一种提供的一种基于hdfs的点云数据分布式计算调度服务流程图;

图4为本发明实施例中提供的一种基于hdfs的点云数据处理装置示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。

由本发明背景技术部分介绍的内容可知,现有的数据存储方式均无法实现计算能力与存储能力同步线性扩展,发明人经研究发现,虽然数据存储与数据内容无关,但数据计算与数据存储具有直接联系,因而,本发明将hdfs的分块数据与点云数据的地理网格对应起来,在存储点云数据的时候,根据地理网格,将点云数据切分为多个数据块,存储于hdfs的各个存储节点主机上。在对各个地理网格对应的点云数据分布式计算的时候,能够基于各个地理网格定位到相应的数据块,将计算程序调度运行于存储这些数据块的存储节点主机上,能够实现最大程度的本地计算,也即精准的分布式计算,减少跨节点数据访问,实现横向线性扩展的分布式计算。

基于上述发明构思,本发明实施例中提供了一种基于hdfs的点云数据处理方法,图1为本发明实施例中提供的一种基于hdfs的点云数据处理方法流程图,如图1所示,该方法包括如下步骤:

s101,获取采集的点云数据。

作为一种可选的实施方式,上述s101中获取的点云数据可以是通过机载激光雷达采集的地面点云数据。

s102,将点云数据进行网格化处理,得到点云数据对应的多个地理网格。

需要说明的是,为了从采集的点云数据提取到有用的信息,通常要根据点云数据构建地理网格,以实现对点云数据的分类,进而实现对不同地物的提取。现有技术中已经有很多根据点云数据构建地理网格的方法,本发明实施例对此不再赘述。

可选地,在上述s102之后,本发明实施例提供的基于hdfs的点云数据处理方法还可以包括:将属于同一个地理网格内的点云数据编码为同一网格编码。通过将同一个地理网格内的点云数据编码为同一网格编码,能够实现根据点云数据快速查询其所属地理网格的目的。

进一步地,在将属于同一个地理网格内的点云数据编码为同一网格编码之后,作为一种优选的实施方式,对于采集到的所有点云数据,可以构建一个网格编码库,该网格编码库包含各个点云数据的网格编码,以便在对点云数据进行计算处理的时候,可以基于该网格编码库查询待处理点云数据对应的网格编码。

作为一种可选的实施方式,本发明实施例基于geohash算法来实现对点云数据的网格化处理,并将属于同一个地理网格内的点云数据编码为同一geohash字符串。通过以geohash方式建立空间索引,能够提高对空间信息点数据进行经纬度检索的效率。

s103,根据点云数据对应的各个地理网格,将点云数据切分为多个数据块,其中,每个数据块包含一个地理网格的点云数据。

可选地,各个数据块的大小可以是64m或256m。

s104,将各个数据块存储于hdfs的各个存储节点主机上。

可选地,在上述s104之前,本发明实施例提供的基于hdfs的点云数据处理方法还可以包括:采用各个地理网格的网格编码,标识与各个地理网格对应的数据块。本发明实施例基于各个地理网格的网格编码来对各个地理网格对应的数据块进行标识,能够实现基于网格编码,查找存储相应数据块的存储节点主机。

由上可知,本发明实施例提供的基于hdfs的点云数据处理方法,在获取到采集的点云数据后,将点云数据进行网格化处理,得到点云数据对应的多个地理网格,然后根据点云数据对应的各个地理网格,将点云数据切分为多个数据块,使得每个数据块包含一个地理网格的点云数据,最后将切分后的各个数据块存储于hdfs的各个存储节点主机上。由于存储到hdfs上的点云数据是按照各个地理网格进行存储的,因而,在对hdfs上的点云数据进行计算处理的时候,可以基于待处理点云数据对应的各个地理网格,查找hdfs上存储待处理点云数据对应各个数据块的存储节点主机,只需要将对点云数据进行计算处理的计算程序调度运行到存储待处理点云数据的存储节点主机上即可。

通过本发明实施例提供的基于hdfs的点云数据处理方法,基于hdfs实现点云数据的网格化分布式存储,不仅能够支持存储空间的横向扩充,而且在分布式计算的时候,能够实现最低程度的跨节点数据访问。

作为一种优选的实施方式,可将存储各个数据块的文件以相应地理网格的网格编码进行命名。

进一步地,本发明实施例提供的基于hdfs的点云数据处理方法还可以包括:记录各个地理网格与存储相应数据块的存储节点主机之间的映射关系,以便基于该映射关系,根据待处理点云数据对应的地理网格,查找对应的数据块。

在一种可选的实施例中,本发明实施例提供的基于hdfs的点云数据处理方法还可以包括如下步骤:获取待处理点云数据对应的地理网格;根据待处理点云数据对应的地理网格,定位hdfs上存储待处理点云数据对应数据块的存储节点主机,其中,hdfs的存储节点主机上存储有多个数据块,每个数据块包含一个地理网格的点云数据;将对待处理点云数据执行计算处理的计算程序,调度运行到hdfs上存储待处理点云数据对应数据块的存储节点主机。

基于上述实施例,在将对待处理点云数据执行计算处理的计算程序,调度运行到hdfs上存储待处理点云数据对应数据块的存储节点主机之后,作为一种可选的实施方式,本发明实施例提供的基于hdfs的点云数据处理方法还可以包括:获取各个存储节点主机的计算结果;将各个存储节点主机的计算结果合并,得到待处理点云数据的计算结果。

需要说明的是,由于hdfs上预先存储有按照地理网格存储的点云数据,因而,在根据待处理点云数据对应的地理网格,定位hdfs上存储相应地理网格对应点云数据的存储节点主机,进而只需要在存储待处理点云数据的存储节点主机上执行对待处理点云数据执行计算处理的计算程序即可。

优选地,调度运行到存储节点上的计算程序通过posix文件代理网关访问hdfs上存储的待处理点云数据,能够实现posix的文件代理访问,也即计算程序能够透明访问hdfs文件系统。

作为一种优选的实施方式,本发明实施例提供的基于hdfs的点云数据处理方法可以应用但不限于图2所示的点云数据存储系统架构,如图2所示,包括:hadoop分布式文件系统(hdfs)、posix文件代理网关、节点调度服务系统、存储节点主机、网格编码库(geohash编码索引库)和存储节点主机信息库;其中,hdfs用于分布式存储网格化的点云数据;节点调度服务系统与网格编码库和存储节点主机信息库分别连接,基于网格编码库中记录的网格编码与存储节点主机之间的映射关系,根据待处理点云数据对应地理网格的网格编码,定位hdfs上存储待处理点云数据的存储节点主机,并将计算程序调度运行到存储待处理点云数据的存储节点主机上,使得存储节点主机上的计算程序通过posix文件代理网关以posix文件接口透明访问hdfs上存储的数据。

如图2所示,整个存储系统结构,包含如下三个部分:

(1)基于地理网格的数据块生成与分布式存储。

(2)对于上传到hdfs的文件,先基于地理网格进行切片成文件块(每个文件块的大小可以为64m或256m),并进行地理网格编码,生成网格编码库,以相对应的存储节点的二元组(geocode,nodecode)记录在数据库中,其中,geocode为各个地理网格的网格编码,nodecode为hdfs上存储文件块的存储节点主机标识。

(3)通过posix文件代理网关,实现posix的文件代理访问,即算法程序可以透明访问hdfs文件系统。

图3为本发明实施例中提供的一种提供的一种基于hdfs的点云数据分布式计算调度服务流程图,如图3所示,程序注册模块,用于生成对点云数据进行计算处理的的计算程序;计算调度模块,用于根据待处理点云数据对应地理网格的网格编码,从网格编码库中检索对应网格编码的存储节点主机,形成待处理点云数据的存储节点主机链,然后将对待处理点云数据进行计算处理的计算程序,调度运行在存储待处理点云数据的存储节点主机上。

可见,本发明实施例提供的基于hdfs的点云数据处理方法,将点云数据按照地理网格切分为多个数据块存储到hdfs上,不仅实现了基于地理网格的数据分块分布式存储,而且实现了基于分布式数据块分布式集群计算。

以机载激光雷达采集的地面点云数据为例,本发明实施例在通过机载激光雷达采集到地面点云数据后,根据地面点云数据构建地理网格,然后基于geohash对点云文件按照地理网格切分为多个数据块(同一网格的点云数据,基于geohash进行编码预处理),将切分成的数据块与hdfs的存储数据块完全对应起来,并将数据块的文件名称按geohash进行编码。当获取到待处理的点云数据后,先检索对应的geohash编码,基于hdfs快速定位到存储到待处理点云数据的存储节点主机,并将对待处理点云数据进行计算处理的计算程序在存储待处理点云数据的存储节点主机启动。可见,本发明实施例以hdfs的数据块存储与地理网格的数据块关联一致,能够最大程度减少跨节点文件访问计算。可选地,节点计算程序通过posix文件代理网关访问hdfs文件系统,实现文件方式透明访问hdfs文件系统的目的。

基于同一发明构思,本发明实施例中还提供了一种基于hdfs的点云数据处理装置,如下面的实施例所述。由于该装置实施例解决问题的原理与基于hdfs的点云数据处理方法相似,因此该装置实施例的实施可以参见方法的实施,重复之处不再赘述。

图4为本发明实施例中提供的一种基于hdfs的点云数据处理装置示意图,如图4所示,该装置包括:点云数据获取模块401、点云数据网格化处理模块402、点云数据切分模块403和点云数据网格化分布式存储模块404。

其中,点云数据获取模块401,用于获取采集的点云数据;点云数据网格化处理模块402,用于将点云数据进行网格化处理,得到点云数据对应的多个地理网格;点云数据切分模块403,用于根据点云数据对应的各个地理网格,将点云数据切分为多个数据块,其中,每个数据块包含一个地理网格的点云数据;点云数据网格化分布式存储模块404,用于将各个数据块存储于hdfs的各个存储节点主机上。

由上可知,本发明实施例提供的基于hdfs的点云数据处理装置,通过点云数据获取模块401获取采集的点云数据,通过点云数据网格化处理模块402将点云数据进行网格化处理,得到点云数据对应的多个地理网格,然后通过点云数据切分模块403根据点云数据对应的各个地理网格,将点云数据切分为多个数据块,使得每个数据块包含一个地理网格的点云数据,最后通过点云数据网格化分布式存储模块404将切分后的各个数据块存储于hdfs的各个存储节点主机上。由于存储到hdfs上的点云数据是按照各个地理网格进行存储的,因而,在对hdfs上的点云数据进行计算处理的时候,可以基于待处理点云数据对应的各个地理网格,查找hdfs上存储待处理点云数据对应各个数据块的存储节点主机,只需要将对点云数据进行计算处理的计算程序调度运行到存储待处理点云数据的存储节点主机上即可。

通过本发明实施例提供的基于hdfs的点云数据处理装置,基于hdfs实现点云数据的网格化分布式存储,不仅能够支持存储空间的横向扩充,而且在分布式计算的时候,能够实现最低程度的跨节点数据访问。

在一种可选的实施例中,本发明实施例提供的基于hdfs的点云数据处理装置还包括:待处理点云数据获取模块405,用于获取待处理点云数据对应的地理网格;存储节点主机定位模块406,用于根据待处理点云数据对应的地理网格,定位hdfs上存储待处理点云数据对应数据块的存储节点主机;点云数据分布式计算模块407,用于将对待处理点云数据执行计算处理的计算程序,调度运行到hdfs上存储待处理点云数据对应数据块的存储节点主机。

可选地,上述计算程序可以通过posix文件代理网关访问hdfs上存储的待处理点云数据。

在一种可选的实施例中,本发明实施例提供的基于hdfs的点云数据处理装置还包括:点云数据编码模块408,用于将属于同一个地理网格内的点云数据编码为同一网格编码。

在一种可选的实施例中,本发明实施例提供的基于hdfs的点云数据处理装置还包括:数据块标识模块409,用于采用各个地理网格的网格编码,标识与各个地理网格对应的数据块。

在一种可选的实施例中,本发明实施例提供的基于hdfs的点云数据处理装置还包括:映射关系记录模块410,用于记录各个地理网格与存储相应数据块的存储节点主机之间的映射关系。

本发明实施例还提供一种计算机设备,用以解决现有技术采用集中式或分布式存储点云数据,随着数量增加,计算量也同步增长的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的基于hdfs的点云数据处理方法。

本发明实施例还提供一种计算机可读存储介质,用以解决现有技术采用集中式或分布式存储点云数据,随着数量增加,计算量也同步增长的技术问题,该计算机可读存储介质存储有执行上述基于hdfs的点云数据处理方法的计算机程序。

综上所述,本发明实施例提供了一种基于hdfs的点云数据处理方法、装置、计算机设备及计算机可读存储介质,基于分布式存储,将点云数据按照地理网格切分为多个数据块存储到hdfs的各个存储节点主机,数据存储节点基于hdfs可以横向扩充,基于数据在哪里计算在哪里,实现了最低程度的跨节点访问数据,从而实现实现横向线性扩张的分布式计算。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1