点云数据的存储方法及装置制造方法及图纸

技术编号:15691002 阅读:142 留言:0更新日期:2017-06-24 03:51
本发明专利技术属于计算机信息技术领域,具体涉及一种点云数据的存储方法及装置。本发明专利技术提供的点云数据的存储方法包括:计算点云数据的包围盒;按照八叉树结构对所述包围盒进行递归切分,所述八叉树结构的每个层级对应一个点距;在每次切分后,根据当前层级的点距判断切分得到的每个子单元空间内的点是否属于当前层级,以文件的形式存储属于当前层级的点的信息,其中,切分得到的每个子单元空间对应当前层级内的一个节点,每个节点对应一个文件。本发明专利技术提供的点云数据的存储方法及装置,降低了点云数据的存储量,提高了点云数据的读取、查询、渲染效率。

Method and device for storing point cloud data

The invention belongs to the field of computer information technology, in particular relates to a storage method and a device for point cloud data. Including the storage method of point cloud data provided by the invention: calculating bounding box of point cloud data; according to the octree structure of the bounding box of recursive segmentation, the octree structure of each level corresponds to a point in time; segmentation, according to the current level of each sub point to judge the segmentation unit in the space of points belonging to the current level, stored in the form of files belonging to the current level of information, wherein, each unit has a corresponding spatial segmentation hierarchy within the current node, each node corresponds to a file. The invention provides a storage method and device for point cloud data, which reduces the storage capacity of point cloud data, and improves the reading, querying and rendering efficiency of point cloud data.

【技术实现步骤摘要】
点云数据的存储方法及装置
本专利技术涉及计算机信息
,具体涉及一种点云数据的存储方法及装置。
技术介绍
云点数据是指扫描资料以点的形式记录,每一个点包含有三维坐标,有些可能含有颜色信息(RGB)或反射强度信息(Intensity)。通常在进行扫描时获得的数据会根据扫描的空间大小呈几何增长,因此通过计算机进行点云数据的存储、查询、读取等操作通常需要大量的计算,时效性很差。
技术实现思路
针对现有技术中的缺陷,本专利技术提供的点云数据的存储方法及装置,降低了点云数据的存储量,提高了点云数据的读取、查询、渲染效率。第一方面,本专利技术提供的一种点云数据的存储方法,包括:计算点云数据的包围盒;按照八叉树结构对所述包围盒进行递归切分,所述八叉树结构的每个层级对应一个点距;在每次切分后,根据当前层级的点距判断切分得到的每个子单元空间内的点是否属于当前层级,以文件的形式存储属于当前层级的点的信息,其中,切分得到的每个子单元空间对应当前层级内的一个节点,每个节点对应一个文件。本实施例提供的点云数据的存储方法,从根节点到所有的中间节点以及叶节点,每个节点对应的文件中都包含点数据,且所有文件中没有重复的点,解决了点云数据分布不均匀时,等距分割后各个子单元空间内包含点的数量差异很大的问题。降低了数据存储的冗余量,节省了存储空间。按点距逐层存储的方式,在加载和渲染时可以按照需要显示的精度逐层调度,随着加载和渲染的节点数越多,渲染出来的效果就更好。优选地,还包括:根据点云总数和所述包围盒的体积确定根节点的点距;根据根节点的点距逐层确定每个层级的点距,下一层级的点距小于上一层级的点距。优选地,所述根据根节点的点距逐层确定每个层级的点距,包括:下一层级的点等于小于上一层级的点距的一半。优选地,所述根据当前层级的点距判断切分得到的每个子单元空间内的点是否属于当前层级,包括:根据当前层级的点距将子单元空间网格化;遍历子单元空间内的点,根据点的位置信息判断点所处的网格,若所述网格未被占据,则确定该点属于当前层级且标记所述网格被占据;若所述网格已被占据则该点放到下一层级进行判断。优选地,在每次切分后,还包括:判断当前层级是否小于预设的最大分割深度;若当前层级大于等于预设的最大分割深度,则终止切分;若当前层级小于预设的最大分割深度,则对切分得到的每个子单元空间分别进行如下操作:判断子单元空间内的点的数量是否小于预设的最少包含点数,若小于,则终止对所述子单元空间的切分。优选地,所述以文件的形式存储属于当前层级的点的信息,包括:以Lob格式文件存储属于当前层级的点的信息。优选地,所述文件以分层的结构进行存放,为满足分层要求的节点建立文件夹,所述文件夹中包括该节点的文件,该节点在当前层内所有子节点的文件,一个索引文件;所述索引文件包含所述文件夹中所有节点的索引以及每个节点包含的点的数量;若所述文件夹中最大层级的节点还包括子节点,则所述文件夹中还包括下一层文件夹。第二方面,本专利技术提供的一种点云数据的存储装置,包括:包围盒计算模块,用于计算点云数据的包围盒;递归切分模块用于,按照八叉树结构对所述包围盒进行递归切分,所述八叉树结构的每个层级对应一个点距;数据存储模块,用于在每次切分后,根据当前层级的点距判断切分得到的每个子单元空间内的点是否属于当前层级,以文件的形式存储属于当前层级的点的信息,其中,切分得到的每个子单元空间对应当前层级内的一个节点,每个节点对应一个文件。本实施例提供的点云数据的存储装置,从根节点到所有的中间节点以及叶节点,每个节点对应的文件中都包含点数据,且所有文件中没有重复的点,解决了点云数据分布不均匀时,等距分割后各个子单元空间内包含点的数量差异很大的问题。降低了数据存储的冗余量,节省了存储空间。按点距逐层存储的方式,在加载和渲染时可以按照需要显示的精度逐层调度,随着加载和渲染的节点数越多,渲染出来的效果就更好。优选地,还包括点距计算模块,用于:根据点云总数和所述包围盒的体积确定根节点的点距;根据根节点的点距逐层确定每个层级的点距,下一层级的点距小于上一层级的点距。优选地,所述点距计算模块中,根据根节点的点距逐层确定每个层级的点距,包括:下一层级的点等于小于上一层级的点距的一半。附图说明图1为本专利技术实施例所提供的点云数据的存储方法的流程图;图2为按八叉树结构进行切分的示意图;图3为不同层级的节点单独、组合渲染的效果图;图4为按八叉树结构进行递归切分的一个示例;图5为节点文件以分层的结构进行存放的一个示例;图6为本专利技术实施例所提供的点云数据的存储装置的结构框图。具体实施方式下面将结合附图对本专利技术技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,因此只是作为示例,而不能以此来限制本专利技术的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本专利技术所属领域技术人员所理解的通常意义。如图1所示,本实施例提供的一种点云数据的存储方法,包括:步骤S1,计算点云数据的包围盒。其中,包围盒为能够包含所有点云数据且体积最小的几何体,如球体、立方体等。最常见的包围盒算法有AABB包围盒(Axis-alignedboundingbox),包围球(Sphere),方向包围盒OBB(Orientedboundingbox)以及固定方向凸包FDH(Fixeddirectionshulls或k-DOP)。为适应八叉树结构的切分,本实施例优选采用AABB包围盒的算法,该算法为本领域通用的算法,在此不再赘述。步骤S2,按照八叉树结构对包围盒进行递归切分,八叉树结构的每个层级对应一个点距。其中,八叉树结构是四叉树结构在三维空间中的扩展,是一种描述和检索三维立体空间的有层次性的树状结构。以包围盒为八叉树结构的根节点,将包围盒切分为八个子单元空间,得到第一层级的八个节点,并为每个子单元空间进行编号,编号是为了区分开每个子单元空间,确定每个子单元空间的空间位置,切分方式参见图2,对每个子单元空间再按照上述方式进行切分,直到满足递归切分的终止条件。八叉树结构中的每一个节点对应切分得到的一个子单元空间。其中,点距为每个层级中点与点的最小距离,点距可以表示层级中点的系数程度。下一层级的点距小于上一层级的点距,以此达到逐层提高数据精度的目的。步骤S3,在每次切分后,根据当前层级的点距判断切分得到的每个子单元空间内的点是否属于当前层级,以文件的形式存储属于当前层级的点的信息,其中,切分得到的每个子单元空间对应当前层级内的一个节点,每个节点对应一个文件。其中,属于当前层级的点在下一层级的切分过程中不会再参与判断。对于不属于当前层级的点,在下一层级的切分过程中再进行判断。其中,点的信息包括点在三维空间中的坐标,还可以包括点的颜色信息或反射强度信息等。其中,对于不再进行切分的节点不会建立其节点下的子文件,对于不包含点的节点不会建立对应的文件,这样可以减少文件的存储量,在加载调用数据时提高检索的效率。本实施例提供的点云数据的存储方法,从根节点到所有的中间节点以及叶节点,每个节点对应的文件中都包含点数据,且所有文件中没有重复的点,解决了点云数据分布不均匀时,等距分割后各个子单元空间内包含点的数量差异很大的问题。降低了数据存储的冗余量,节省本文档来自技高网...
点云数据的存储方法及装置

【技术保护点】
一种点云数据的存储方法,其特征在于,包括:计算点云数据的包围盒;按照八叉树结构对所述包围盒进行递归切分,所述八叉树结构的每个层级对应一个点距;在每次切分后,根据当前层级的点距判断切分得到的每个子单元空间内的点是否属于当前层级,以文件的形式存储属于当前层级的点的信息,其中,切分得到的每个子单元空间对应当前层级内的一个节点,每个节点对应一个文件。

【技术特征摘要】
1.一种点云数据的存储方法,其特征在于,包括:计算点云数据的包围盒;按照八叉树结构对所述包围盒进行递归切分,所述八叉树结构的每个层级对应一个点距;在每次切分后,根据当前层级的点距判断切分得到的每个子单元空间内的点是否属于当前层级,以文件的形式存储属于当前层级的点的信息,其中,切分得到的每个子单元空间对应当前层级内的一个节点,每个节点对应一个文件。2.根据权利要求1所述的方法,其特征在于,还包括:根据点云总数和所述包围盒的体积确定根节点的点距;根据根节点的点距逐层确定每个层级的点距,下一层级的点距小于上一层级的点距。3.根据权利要求2所述的方法,其特征在于,所述根据根节点的点距逐层确定每个层级的点距,包括:下一层级的点等于小于上一层级的点距的一半。4.根据权利要求1所述的方法,其特征在于,所述根据当前层级的点距判断切分得到的每个子单元空间内的点是否属于当前层级,包括:对切分得到的每个子单元空间分别进行如下操作:根据当前层级的点距将子单元空间网格化;遍历子单元空间内的点,根据点的位置信息判断点所处的网格,若所述网格未被占据,则确定该点属于当前层级且标记所述网格被占据;若所述网格已被占据则该点放到下一层级进行判断。5.根据权利要求1所述的方法,其特征在于,在每次切分后,还包括:判断当前层级是否小于预设的最大分割深度;若当前层级大于等于预设的最大分割深度,则终止切分;若当前层级小于预设的最大分割深度,则对切分得到的每个子单元空间分别进行如下操作:判断子单元空间内的点的数量是...

【专利技术属性】
技术研发人员:贾庆雷马柳青周淮浦
申请(专利权)人:苏州中科图新网络科技有限公司
类型:发明
国别省市:江苏,32

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

1