【技术实现步骤摘要】
一种基于Spark平台的点云K邻域的搜索方法及装置
本专利技术涉及计算机应用
,尤其涉及一种基于Spark平台的点云K邻域的搜索方法及装置。
技术介绍
K邻域搜索的定义为查询点从参考点云中找到K个离查询点距离最近的点。K邻域搜索算法是许多点云算法的基础步骤,这些点云算法包括法向量估计、特征提取、噪声点去除、配准等。在点云算法中,一般需要对多个查询点进行批量的K邻域搜索,其中参考点云同样也是查询点云最为常见,例如法向量估计、特征提取、噪声点去除中参考点云同时也是查询点云。目前,通常的做法是,在单机环境下进行点云K邻域的搜索,而在先进传感器技术与应用需求的双重驱动下,点云密度越来越大,点数也越来越多,实践中处理的点云数据一般是海量的,采用目前的搜索方法效率较低,非常耗时。由此可见,现有技术中的点云K邻域搜索方法存在效率低下的技术问题。
技术实现思路
本专利技术实施例提供了一种基于Spark平台的点云K邻域的搜索方法及装置,用以解决或者至少部分解决现有技术中存在的效率低下的技术问题。第一方面,本专利技术提供了一种基于Spark平台的点云K邻域的搜索方法,应用于计算机集 ...
【技术保护点】
1.一种基于Spark平台的点云K邻域的搜索方法,其特征在于,应用于计算机集群,所述计算机集群上搭建有Spark平台,所述方法包括:将参考点云与查询点云存储到所述计算机集群所在的HDFS分布式文件系统中;将所述参考点云和所述查询点云加载至所述Spark平台;以弹性分布式数据集的方式保存所述参考点云和所述查询点云,分别获得参考点云数据集与查询点云数据集;确定所述参考点云数据集的分区个数;根据所述分区个数对所述参考点云数据集构建分布式k‑d树;基于所述分布式k‑d树,对所述查询点云数据集进行并行K邻域搜索。
【技术特征摘要】
1.一种基于Spark平台的点云K邻域的搜索方法,其特征在于,应用于计算机集群,所述计算机集群上搭建有Spark平台,所述方法包括:将参考点云与查询点云存储到所述计算机集群所在的HDFS分布式文件系统中;将所述参考点云和所述查询点云加载至所述Spark平台;以弹性分布式数据集的方式保存所述参考点云和所述查询点云,分别获得参考点云数据集与查询点云数据集;确定所述参考点云数据集的分区个数;根据所述分区个数对所述参考点云数据集构建分布式k-d树;基于所述分布式k-d树,对所述查询点云数据集进行并行K邻域搜索。2.如权利要求1所述的方法,其特征在于,所述将所述参考点云和所述查询点云加载至所述Spark平台,包括:采用Spark平台的文件读取接口从所述HDFS分布式文件系统中读取所述参考点云和所述查询点云,并加载至所述Spark平台。3.如权利要求1所述的方法,其特征在于,所述参考点云数据集存储为文本文件,所述文本文件的每行的格式为:X,Y和Z,X,Y,Z用以表示一个三维的点,为所述参考点云数据集的每个元素预设初始key值为m,所述初始key值用以表征点元素所在的树节点在所述的分布式k-d树中的位置,所述分布式k-d树包括全局k-d树和局部k-d树,所述根据所述分区个数对所述参考点云数据集构建分布式k-d树,包括:全局k-d树的构建和局部k-d树的构建,其中,全局k-d树的构建,包括:步骤S51:采用X,Y和Z轮转的方式确定分割维度,首先选择X维作为根节点的分割维度,然后选择Y维作为根节点两个子节点的分割维度,再选择Z维作为四个子节点的分割维度,接下来重新选择X维作为八个子节点的分割维度,依次轮转;步骤S52:根据当前的分割维度获得分割值,若所述点元素的坐标在所述分割维度上的值小于或等于所述分割值,则将所述点元素的key值更新为2*m,若所述点元素的坐标在所述分割维度上的值大于所述分割值,则将所述点元素的key值更新为2*m+1;其中,步骤S51和步骤S52递归执行,直到构建的全局k-d树的叶子节点个数与所述分区个数相等;局部k-d树的构建,包括:采用预设k-d树创建算法,构建所述局部k-d树。4.如权利要求3所述的方法,其特征在于,所述根据当前的分割维度获得分割值,包括:将所述分割维度作为groupByKey函数的输入,通过所述groupByKey函数输出获得所述分割值。5.如权利要求3所述的方法,其特征在于,为所述全局k-d树中的每个树节点构建分割表,所述分割表中的信息包括节点的key值、分割维度与分割值。6.如权利要求1所述的方法,其特征在于,为所述参考点云数据集的每个元素预设初始key值为m,所述初始key值用以表征点元素所在的树节点在所述的分布式k-d树中的位置,...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。