一种海量点云数据的处理方法技术

技术编号:22058177 阅读:30 留言:0更新日期:2019-09-07 16:18
本发明专利技术公开了一种海量点云数据的处理方法,包括点云数据的存储、渲染和捕捉,其中存储方法利用非平衡八叉树存储点云数据,将非平衡八叉树中的同一个叶子节点中的点集合连续存储在同一文件中,从而提高查找的速度;并在非平衡八叉树存储的基础上对存储的点云数据进行渲染和捕捉,提高获取速度,从而提高点云显示和捕捉的效率。

A Processing Method for Massive Point Cloud Data

【技术实现步骤摘要】
一种海量点云数据的处理方法
本专利技术涉及点云数据处理领域,尤其涉及一种海量点云数据的存储、渲染和捕捉方法。
技术介绍
目前,随着大数据的到来,硬件设备的不断升级,目前通过测量仪器获得产品外观表面的点数据集合称之为点云,由于每一个扫描获得的点都包含三维坐标,还有可能含有颜色信息或反射强度信息,因此点云数据越来越庞大,随之应用行业也越来越广泛,因此点云显示和捕捉的效率也必须随之进行提升。而现有的点云存储格式,如las格式,虽然支持了海量数据的存储,但是对于快速渲染必须额外建立空间索引才能提高显示效率,但是额外建立空间索引这种方法获取得到的点是离散的,导致降低了获取的速度,导致显示效率和捕捉效率得不到提高;而且建立空间索引的算法一般采取八叉树或KD-Tree或者多种算法结合的方式进行,其建立空间索引的算法效率在渲染和捕捉的效率是不平衡的,因此对于快速渲染和捕捉没有一个很好的解决方案。
技术实现思路
为了克服现有技术的不足,本专利技术的目的在于提供一种海量点云数据的数据处理方法,采用非平衡八叉树存储方式提高数据获取的速度,从而提高点云显示和捕捉的效率。本专利技术的目的采用如下技术方案实现:一种海量点云数据的处理方法,包括:步骤S1:利用非平衡八叉树存储点云数据,将非平衡八叉树中的同一个叶子节点中的点集合连续存储在同一文件中;步骤S2:设置的最大渲染点数,在步骤S1非平衡八叉树存储方法的基础上获知特定叶子节点中的点的个数,按比例抽稀点数据并对其进行渲染绘制;其中特定叶子节点为进入非平衡八叉树进行相交判断后所获得的相交的叶子节点;步骤S3:设置捕捉射线或包围盒的精度,在步骤S1非平衡八叉树存储方法的基础上逐个对特定叶子节点的点组进行最近点判断,捕捉并返回第一个满足精度要求的点;其中特定叶子节点为进入非平衡八叉树进行相交判断后所获得的相交的叶子节点。进一步地,所述步骤S1的存储方法包括:步骤S1.1:将新的单个三维坐标点逐点插入非平衡八叉树中;步骤S1.2:递归进入非平衡八叉树,根据非平衡八叉树的叶子节点空间范围找到步骤S1.1中每个插入坐标点所归属的叶子节点;步骤S1.3:判断步骤S1.2中找到的叶子节点数量是否超过非平衡八叉树的最大叶子节点个数,若未超过,则执行步骤S1.4;若超过,则执行步骤S1.5;步骤S1.4:将所有插入的坐标点分别写入对应的叶子节点的临时文件或者内存中进行存储,执行步骤S1.6;步骤S1.5:分裂叶子节点并往下新增新的叶子节点,新的坐标点从当前节点继续往下传递并插入到新的叶子节点中;重新从步骤S1.2开始循环;步骤S1.6:将非平衡八叉树中的同一个叶子节点所存储的点集合连续存储在同一文件中。进一步地,所述步骤S1.1中新的点数据附带有属性特征,所述属性特征包括但不限于颜色、强度。进一步地,所述步骤S1.6的存储方式为判断待存储的点集合的存储内存是否超出当前文件的剩余内存容量,若超过,则将点集合全部存储在下一个文件中;若未超过,则将该点集合存储在当前文件中,保持叶子里面的节点连续存放在一起。进一步地,所述步骤S2的渲染方法包括:步骤S2.1:根据不同硬件设备性能,设置最大渲染点数;步骤S2.2:进入非平衡八叉树进行相交判断,获取相交的叶子节点;步骤S2.3:按照步骤S1非平衡八叉树的连续存储规律返回相交的叶子节点中点组的首地址,从中获取当前叶子节点的点的个数;步骤S2.4:将点的个数再结合根据步骤S2.1设置的最大渲染点数按比例抽稀点数据,并对其进行绘制。进一步地,所述步骤S2.4中抽稀点数据后对点数据进行属性过滤。进一步地,所述属性过滤包括但不限于高程过滤、强度属性过滤、颜色属性过滤。进一步地,所述步骤S3中的捕捉方法包括:步骤S3.1:传入捕捉的射线或者包围盒,设置精度;步骤S3.2:与内存映射的非平衡八叉树进行相交运算,获得相交的叶子节点;步骤S3.3:按照步骤S1非平衡八叉树的连续存储规律逐个对叶子节点的点组进行最近点判断,直至捕捉到第一个满足精度要求的最近点,并将其进行返回。相比现有技术,本专利技术的有益效果在于:利用非平衡八叉树算法和内存映射方式处理点云数据,对点云数据进行连续存储,减少叶子节点个数和存储的空间,提高查找速度;并在非平衡八叉树存储的基础上对点云数据进行渲染和捕捉,可进一步提升数据获取的速度,从而提高点云显示和捕捉的效率。附图说明图1为本专利技术一种海量点云数据的存储方法的流程示意图;图2为本专利技术一种海量点云数据的渲染方法的流程示意图;图3为本专利技术一种海量点云数据的捕捉方法的流程示意图。具体实施方式下面,结合附图以及具体实施方式,对本专利技术做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。实施例一一种海量点云数据的存储方法,如图1所示,包括:步骤S1.1:将新的单个三维坐标点逐点插入非平衡八叉树中;其中新的三维坐标点除了具有几何位置以外,还包括颜色信息、强度信息,其中颜色信息是通过相机获取彩色影像,然后将对应位置的像素的颜色信息赋予点云中对应的点,而强度信息的获取是激光扫描仪接收装饰采集到的回波强度,强度信息与目标的表面材质、粗糙度、入射角方向以及仪器的发生能量、激光波长有关。步骤S1.2:递归进入非平衡八叉树,根据非平衡八叉树的叶子节点空间范围找到步骤S1.1中每个插入坐标点所归属的叶子节点;所述非平衡八叉树类似与八叉树,其叶子节点个数可以为零到八任一个,非平衡八叉树减少叶子节点个数和存储的空间,方便快速查找,可明显提高查找速度。步骤S1.3:判断步骤S1.2中找到的叶子节点数量是否超过非平衡八叉树的最大叶子节点个数,若未超过,则执行步骤S1.4;若超过,则执行步骤S1.5;步骤S1.4:将所有插入的坐标点分别写入对应的叶子节点的临时文件或者内存中进行存储,可平衡内存与速度,其后执行步骤S1.6;步骤S1.5:分裂叶子节点并往下新增新的叶子节点,新的坐标点从当前节点继续往下传递并插入到新的叶子节点中;重新从步骤S1.2开始循环;步骤S1.6:将非平衡八叉树中的同一个叶子节点所存储的点集合连续存储在同一文件中。其中存储方式为判断待存储的点集合的存储内存是否超出当前文件的剩余内存容量,若超过,则将点集合全部存储在下一个文件中;若未超过,则将该点集合存储在当前文件中。目的是将同一个叶子节点所存储的点集合放在一起,方便后面写入到同一个文件中;采用本实施例的方式将叶子节点的点集合连续存储可便于数据的快速读取,从而提高后续渲染和捕捉的效率。实施例二一种海量点云数据的渲染方法,是在实施例一采用非平衡八叉树存储点云数据的结构基础上进行渲染处理,如图2所示,所述渲染方法包括:步骤S2.1:根据不同硬件设备性能,设置最大渲染点数X;由于不同硬件设备的性能不同,因此设置不同的值,达到快速浏览、不卡顿的同时,尽量显示更多的点以达到渲染出最好的效果,从而提高渲染效率。步骤S2.2:进入非平衡八叉树进行相交判断,获取相交的叶子节点;步骤S2.3:按照步骤S1非平衡八叉树的连续存储规律返回相交的叶子节点中点组的首地址,从中获取当前叶子节点的点的个数;由于本实施例的渲染前提是采用实施例一中的采用非平衡八叉树的连续存储方式对数据进行存储处理,本文档来自技高网...

【技术保护点】
1.一种海量点云数据的处理方法,其特征在于,包括:步骤S1:利用非平衡八叉树存储点云数据,将非平衡八叉树中的同一个叶子节点中的点集合连续存储在同一文件中;步骤S2:设置的最大渲染点数,在步骤S1非平衡八叉树存储方法的基础上获知特定叶子节点中的点的个数,按比例抽稀点数据并对其进行渲染绘制;其中特定叶子节点为进入非平衡八叉树进行相交判断后所获得的相交的叶子节点;步骤S3:设置捕捉射线或包围盒的精度,在步骤S1非平衡八叉树存储方法的基础上逐个对特定叶子节点的点组进行最近点判断,捕捉并返回第一个满足精度要求的点;其中特定叶子节点为进入非平衡八叉树进行相交判断后所获得的相交的叶子节点。

【技术特征摘要】
1.一种海量点云数据的处理方法,其特征在于,包括:步骤S1:利用非平衡八叉树存储点云数据,将非平衡八叉树中的同一个叶子节点中的点集合连续存储在同一文件中;步骤S2:设置的最大渲染点数,在步骤S1非平衡八叉树存储方法的基础上获知特定叶子节点中的点的个数,按比例抽稀点数据并对其进行渲染绘制;其中特定叶子节点为进入非平衡八叉树进行相交判断后所获得的相交的叶子节点;步骤S3:设置捕捉射线或包围盒的精度,在步骤S1非平衡八叉树存储方法的基础上逐个对特定叶子节点的点组进行最近点判断,捕捉并返回第一个满足精度要求的点;其中特定叶子节点为进入非平衡八叉树进行相交判断后所获得的相交的叶子节点。2.根据权利要求1所述的海量点云数据的处理方法,其特征在于,所述步骤S1的存储方法包括:步骤S1.1:将新的单个三维坐标点逐点插入非平衡八叉树中;步骤S1.2:递归进入非平衡八叉树,根据非平衡八叉树的叶子节点空间范围找到步骤S1.1中每个插入坐标点所归属的叶子节点;步骤S1.3:判断步骤S1.2中找到的叶子节点数量是否超过非平衡八叉树的最大叶子节点个数,若未超过,则执行步骤S1.4;若超过,则执行步骤S1.5;步骤S1.4:将所有插入的坐标点分别写入对应的叶子节点的临时文件或者内存中进行存储,执行步骤S1.6;步骤S1.5:分裂叶子节点并往下新增新的叶子节点,新的坐标点从当前节点继续往下传递并插入到新的叶子节点中;重新从步骤S1.2开始循环;步骤S1.6:将非平衡八叉树中的同一个叶子节点所存储的点集合连续存储在同一文件中。3.根据权利要求2所述的海量点云...

【专利技术属性】
技术研发人员:江威张小东曹紫薇朱空军刘合良吴叶周骆红伟
申请(专利权)人:广东满天星云信息技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1