CN115409907A - 点云模型的压缩方法、装置及系统 - Google Patents
点云模型的压缩方法、装置及系统 Download PDFInfo
- Publication number
- CN115409907A CN115409907A CN202211021568.2A CN202211021568A CN115409907A CN 115409907 A CN115409907 A CN 115409907A CN 202211021568 A CN202211021568 A CN 202211021568A CN 115409907 A CN115409907 A CN 115409907A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- cloud data
- voxels
- octree structure
- effective
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
Abstract
本申请提供了一种点云模型的压缩方法、装置及系统,该方法包括:采用多个点云数据构建八叉树结构,其中,八叉树结构具有N层节点,每个节点的内部不存在点云数据,或者存在至少一个点云数据,N为正整数;采用统一计算设备架构的核函数,对八叉树结构的第N层节点进行压缩处理,得到压缩后的八叉树结构,基于统一计算设备架构的并行计算框架和八叉树结构,能够支持海量点云数据的实时高效的管理,支持对八叉树结构的节点对应的散乱点云数据进行实时高效的压缩,从而提高了八叉树结构的使用效率,进而解决了现有技术中八叉树结构的使用效率较低的问题。
Description
技术领域
本申请涉及点云模型处理技术领域,具体而言,涉及一种点云模型的压缩方法、装置、计算机可读存储介质及点云模型的压缩系统。
背景技术
现常用的点云数据组织方式有规则网格、KD树、R树、BSP树、四叉树和八叉树等。规则网格采用点云网格化,适合静态小规模海量点云数据;KD树采用点二分,适合用于离散的点云,由于更新索引比较困难,不适合管理海量点云数据;R树的特点在于其较为灵活,但是在查找和交互性上有待提升;BSP树采用空间二分划分区域,但是树生成算法复杂,存在实现困难和效率较低缺点;四叉树作为点云数据的空间索引方法,通过将已知区域的空间划分为四个子空间,在划分时规定一个阈值,当区域中对象空间数据的个数小于阈值时,停止划分,此方法易于实现,但是组织的速度较为缓慢,容易产生冗余数据;八叉树作为一种树形结构,可以用来对三维点云数据进行组织并建立索引,存在结构简单、易于遍历、算法实现方便等特点,利用这种八叉树的数据组织结构很适合对海量点云进行存储。
八叉树的实现方式主要有指针八叉树、线性八叉树。指针八叉树采用一组指针来记录节点父子之间的关系,由于指针高效的随机访问特性,用这种方法查询效率高,但需要大量的指针存储空间。线性八叉树只保存叶节点的空间位置和属性,其中空间位置通过编码来表示,查询过程就是对编码的遍历和比较,查询效率较低,但结构更紧凑,可以直接访问任一叶节点。
海量点云经过数据结构组织后,还需要进一步进行点云的压缩算法。一般常用的点云压缩算法包含:基于比例压缩算法、基于距离的压缩算法。比例压缩算法是一种常用的散乱点云数据压缩方法,算法简单,耗时短,压缩快,该算法容易丢失边界特征以及曲率变化较大区域的集合特征;基于距离的压缩算法常用基于平均距离的立方体压缩,对点云模型的任一区域,都采取相同的简化精度,将空间点云模型均匀划分,用每个立方体中所有数据点的平均点来代替这个立方体所有的数据达到压缩的目的,算法简单,压缩快,能保留全局特征,该算法很适合海量点云的压缩。
对于点云数据组织方式和压缩算法大多数是采用CPU方案来实现。对于八叉树数据结构的实现,存在构建时间相对较长、内存要求较高和频繁读写磁盘文件等缺点;对于压缩算法存在压缩时间较长、效率较低等缺点。
发明内容
本申请的主要目的在于提供一种点云模型的压缩方法、装置、计算机可读存储介质及点云模型的压缩系统,以解决现有技术中八叉树结构的使用效率较低的问题。
根据本发明实施例的一个方面,提供了一种点云模型的压缩方法,该方法包括:采用多个点云数据构建八叉树结构,其中,所述八叉树结构具有N层节点,每个所述节点的内部不存在所述点云数据,或者存在至少一个所述点云数据,N为正整数;采用统一计算设备架构的核函数,对所述八叉树结构的第N层节点进行压缩处理,得到压缩后的八叉树结构。
可选地,采用统一计算设备架构的核函数,对所述八叉树结构的第N层节点进行压缩处理,得到压缩后的八叉树结构包括:对所述八叉树结构的第N层节点进行均分处理,得到多个体素,每个所述体素的内部不存在所述点云数据,或者存在至少一个所述点云数据;对所有的所述点云数据进行编码处理,得到多个与所述点云数据对应的点云编码;根据所述体素,确定有效体素的集合,其中,所述有效体素的集合包括多个有效体素,所述有效体素用于表征存在至少一个所述点云数据的体素;采用所述统一计算设备架构的核函数中,并根据所述有效体素的集合和与所述有效体素的集合中的有效体素对应的点云编码,从各有效体素中选取一个点云数据来作为所述有效体素中所有的点云数据的集合,以得到所述压缩后的八叉树结构。
可选地,在对所有的所述点云数据进行编码处理,得到多个与所述点云数据对应的点云编码之后,所述方法还包括:构建点云映射表,所述点云映射表用于表征所述点云数据和与所述点云数据对应的点云编码的映射关系;采用所述统一计算设备架构的Thrust库中的编码排序算法,并根据多个与所述点云数据对应的点云编码和所述点云映射表,对所有的所述点云数据进行排序。
可选地,采用所述统一计算设备架构的核函数中,并根据所述有效体素的集合和与所述有效体素的集合中的有效体素对应的点云编码,从各有效体素中选取一个点云数据来作为所述有效体素中所有的点云数据的集合包括:根据所述统一计算设备架构的核函数,并根据所述有效体素的集合和与所述有效体素的集合中的有效体素对应的点云编码,通过二分查找算法并行计算所述有效体素的集合中的所有的所述有效体素对应的起始索引编号和终止索引编号,所述起始索引编号为所述有效体素中编号最小的点云数据所对应编号,所述终止索引编号为所述有效体素中编号最大的点云数据所对应编号;采用所述统一计算设备架构的核函数和平均求和算法,并根据所有的所述点云数据、所述点云映射表和所有的所述有效体素对应的起始索引编号和终止索引编号,从各有效体素中选取一个点云数据来作为所述有效体素中所有的点云数据的集合。
可选地,在对所述八叉树结构的第N层节点进行均分处理,得到多个体素之后,所述方法还包括:采用所述统一计算设备架构的Thrust库中的reduce算法统计各所述体素的点云数据的最大包围盒,其中,各所述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最小值和最大值,并根据各所述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最小值,确定最小点,根据各所述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最大值,确定最大点,根据所述最小点和最大点,确定所述最大包围盒在三维空间中占据的空间范围。
可选地,对所有的所述点云数据进行编码处理,得到多个与所述点云数据对应的点云编码包括:采用立方体均匀划分编码方式,对所有的所述点云数据进行编码处理,得到多个对应的点云编码,所述立方体均匀划分编码方式为平均划分的方法。
可选地,所述点云数据包括点云的位置信息和颜色信息。
根据本发明实施例的另一方面,还提供了一种点云模型的压缩装置,该装置包括构建单元和压缩单元,构建单元用于采用多个点云数据构建八叉树结构,其中,所述八叉树结构具有N层节点,每个所述节点的内部不存在所述点云数据,或者存在至少一个所述点云数据,N为正整数;压缩单元用于采用统一计算设备架构的核函数,对所述八叉树结构的第N层节点进行压缩处理,得到压缩后的八叉树结构。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行任意一种所述的点云模型的压缩方法。
根据本发明实施例的另一方面,还提供了一种点云模型的压缩系统,该系统包括一个或多个处理器,存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的点云模型的压缩方法。
在本发明实施例中,基于统一计算设备架构的并行计算框架和八叉树结构,能够支持海量点云数据的实时高效的管理,支持对八叉树结构的节点对应的散乱点云数据进行实时高效的压缩,从而提高了八叉树结构的使用效率,进而解决了现有技术中八叉树结构的使用效率较低的问题。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了根据本申请实施例的点云模型的压缩方法的流程图;
图2示出了根据本申请实施例的立方体均匀划分编码的示意图;
图3示出了根据本申请实施例的点云模型的压缩装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。
正如背景技术中所说的,对于八叉树数据结构的实现,存在构建时间相对较长、内存要求较高和频繁读写磁盘文件等缺点;对于压缩算法存在压缩时间较长、效率较低等缺点,为了解决现有技术中八叉树结构的使用效率较低的问题,本申请的一种典型的实施方式中,提供了一种点云模型的压缩方法、装置、计算机可读存储介质及点云模型的压缩系统。
根据本申请的实施例,提供了一种点云模型的压缩方法。
图1是根据本申请实施例的点云模型的压缩方法的流程图。如图1所示,该方法包括以下步骤:
步骤S101,采用多个点云数据构建八叉树结构,其中,上述八叉树结构具有N层节点,每个上述节点的内部不存在上述点云数据,或者存在至少一个上述点云数据,N为正整数;
八叉树结构的构建包括:
八叉树的包围盒计算:借助Thrust(基于CUDA实现的并行算法库,CUDA即ComputeUnified Device Architecture为统一计算设备架构)的reduce算法统计海量点云的八叉树的最大包围盒,与后续的最大包围盒计算方法相同,在此不再加以赘述;
点云编码:采用一种morton码的规则算法,点云的xyz编码采用三位来表达点的空间位置信息,因此八叉树最多包含10层数据结构,对于采样点v在m(1≤m≤10)层的x位的值按照如下规则计算,m层中心点center可通过第一步计算的八叉树的包围盒计算,如果v.x小于m-1层节点中心点center.x,对应的x位的值位0,反之为1。y位和z位在m层的值和x位计算方法相同,最后按照xyz顺序排列成m层该点的编码,计算方法借助Thrust库中的transform算法。经过编码后每个点的morton码格式为:x1y1z1x2y2z3……x10y10z10;
点云排序:首先创建跟原始点云数组长度对应的索引数组(与后续构建映射关系相同,在此不再加以赘述),借助Thrust库中sort_by_key算法,并根据点云编码和点云索引进行排序;
八叉树节点创建:将上述点云编码、点云索引等信息传递到八叉树构建的核函数中,从第一层一直递归划分到10层节点结构,计算每层八叉树子节点包含的点云起始和结束索引编号,最终完成八叉树结构的并行计算构建。
步骤S102,采用统一计算设备架构的核函数,对上述八叉树结构的第N层节点进行压缩处理,得到压缩后的八叉树结构。
在本申请的一种实施例中,采用统一计算设备架构的核函数,对上述八叉树结构的第N层节点进行压缩处理,得到压缩后的八叉树结构包括:对上述八叉树结构的第N层节点进行均分处理,得到多个体素,每个上述体素的内部不存在上述点云数据,或者存在至少一个上述点云数据;对所有的上述点云数据进行编码处理,得到多个与上述点云数据对应的点云编码;根据上述体素,确定有效体素的集合,其中,上述有效体素的集合包括多个有效体素,上述有效体素用于表征存在至少一个上述点云数据的体素;采用上述统一计算设备架构的核函数中,并根据上述有效体素的集合和与上述有效体素的集合中的有效体素对应的点云编码,从各有效体素中选取一个点云数据来作为上述有效体素中所有的点云数据的集合,以得到上述压缩后的八叉树结构。从各有效体素中选取一个点云数据来作为上述有效体素中所有的点云数据的集合的过程中,可以是随机选取一个点云数据,也可以是取平均值构成一个虚拟点云数据来代表从各有效体素中选取一个点云数据来作为上述有效体素中所有的点云数据的集合,虚拟点云数据并不是所有点云数据中的一个点,包含点云较多的体素压缩比较高,从而可根据数据的实际分布情况进行非均匀的压缩,降低整个模型的非有效数据,尽量保留有效数据。结果既保留了模型的特征,又达到了压缩的目的。
在本申请的一种实施例中,在对所有的上述点云数据进行编码处理,得到多个与上述点云数据对应的点云编码之后,上述方法还包括:构建点云映射表,上述点云映射表用于表征上述点云数据和与上述点云数据对应的点云编码的映射关系;采用上述统一计算设备架构的Thrust库中的编码排序算法(即sort_by_key算法),并根据多个与上述点云数据对应的点云编码和上述点云映射表,对所有的上述点云数据进行排序。通过对点云数据进行编码后再排序,从而得到处于同一体素的点云数据在结果序列中是连续排列的结果。Thrust库的排序算法采用并行化设计,可大比例提高海量点云数据的排序效率。
在本申请的一种实施例中,采用上述统一计算设备架构的核函数中,并根据上述有效体素的集合和与上述有效体素的集合中的有效体素对应的点云编码,从各有效体素中选取一个点云数据来作为上述有效体素中所有的点云数据的集合包括:根据上述统一计算设备架构的核函数,并根据上述有效体素的集合和与上述有效体素的集合中的有效体素对应的点云编码,通过二分查找算法并行计算上述有效体素的集合中的所有的上述有效体素对应的起始索引编号和终止索引编号,上述起始索引编号为上述有效体素中编号最小的点云数据所对应编号,上述终止索引编号为上述有效体素中编号最大的点云数据所对应编号;采用上述统一计算设备架构的核函数和平均求和算法,并根据所有的上述点云数据、上述点云映射表和所有的上述有效体素对应的起始索引编号和终止索引编号,从各有效体素中选取一个点云数据来作为上述有效体素中所有的点云数据的集合。在该核函数中完成每个体素内点云数据的位置和颜色的平均求和算法,将生成的新点云数据代替该体素内的所有的点云数据的集合,以达到压缩八叉树结构的目的。主要是针对每一个体素,在上一步中排序好的点云序列中去使用二分查找算法找到该体素对应的点云开始和结束索引,经过上一步排序后的点云,如果在同一体素中,其在序列中是连续排列的。该步骤的作用主要是帮助体素找到对应的点云,从而为后续基于体素的压缩提供基础。
在本申请的一种实施例中,在对上述八叉树结构的第N层节点进行均分处理,得到多个体素之后,上述方法还包括:采用上述统一计算设备架构的Thrust库中的reduce算法统计各上述体素的点云数据的最大包围盒,其中,各上述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最小值和最大值,并根据各上述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最小值,确定最小点,根据各上述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最大值,确定最大点,根据上述最小点和最大点,确定上述最大包围盒在三维空间中占据的空间范围。
具体地,例如X轴、Y轴和Z轴上的最小值分别为1、2和3,X轴、Y轴和Z轴上的最大值分别为6、7和8,那么最大点即为(6,7,8),最小点为(1,2,3),根据(6,7,8)和(1,2,3)构建最大包围盒。最大点和最小点不一定是点云数据中的点。
在本申请的一种实施例中,对所有的上述点云数据进行编码处理,得到多个与上述点云数据对应的点云编码包括:采用立方体均匀划分编码方式,对所有的上述点云数据进行编码处理,得到多个对应的点云编码,上述立方体均匀划分编码方式为平均划分的方法。图2是根据本申请实施例的立方体均匀划分编码的示意图,如图2所示,具体地,针对每个体素的编码方式采用类似于自然数的10进制法:体素编码=m方向编码+n方向编码×m+l方向编码×m×n其中m,n,l可自由设定,通常可设置为255,512,1024等。假设m=1024,则m方向编码为0,1,2…,1023。n方向编码和l方向编码同理。举例说明:假设m=1024,n=512,l=512,m方向编码为2,n方向编码为10,l方向编码为20,则最终体素编码为:2+1024×10+20×1024×512=1049600。
上述步骤中,基于统一计算设备架构的并行计算框架和八叉树结构,能够支持海量点云数据的实时高效的管理,支持对八叉树结构的节点对应的散乱点云数据进行实时高效的压缩,从而提高了八叉树结构的使用效率,进而解决了现有技术中八叉树结构的使用效率较低的问题。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本申请的一种实施例中,上述点云数据包括点云的位置信息和颜色信息。
本申请实施例还提供了一种点云模型的压缩装置,需要说明的是,本申请实施例的点云模型的压缩装置可以用于执行本申请实施例所提供的用于点云模型的压缩方法。以下对本申请实施例提供的点云模型的压缩装置进行介绍。
图3是根据本申请实施例的点云模型的压缩装置的示意图。如图3所示,该装置包括构建单元10和压缩单元20,构建单元10用于采用多个点云数据构建八叉树结构,其中,上述八叉树结构具有N层节点,每个上述节点的内部不存在上述点云数据,或者存在至少一个上述点云数据,N为正整数;压缩单元20用于采用统一计算设备架构的核函数,对上述八叉树结构的第N层节点进行压缩处理,得到压缩后的八叉树结构
上述装置中,基于统一计算设备架构的并行计算框架和八叉树结构,能够支持海量点云数据的实时高效的管理,支持对八叉树结构的节点对应的散乱点云数据进行实时高效的压缩,从而提高了八叉树结构的使用效率,进而解决了现有技术中八叉树结构的使用效率较低的问题。
在本申请的一种实施例中,压缩单元包括第一处理模块、第二处理模块、第一确定模块和生成模块,第一处理模块用于对上述八叉树结构的第N层节点进行均分处理,得到多个体素,每个上述体素的内部不存在上述点云数据,或者存在至少一个上述点云数据;第二处理模块用于对所有的上述点云数据进行编码处理,得到多个与上述点云数据对应的点云编码;第一确定模块用于根据上述体素,确定有效体素的集合,其中,上述有效体素的集合包括多个有效体素,上述有效体素用于表征存在至少一个上述点云数据的体素;生成模块用于采用上述统一计算设备架构的核函数中,并根据上述有效体素的集合和与上述有效体素的集合中的有效体素对应的点云编码,从各有效体素中选取一个点云数据来作为上述有效体素中所有的点云数据的集合,以得到上述压缩后的八叉树结构。
在本申请的一种实施例中,压缩单元包括构建模块和排序模块,构建模块用于在对所有的上述点云数据进行编码处理,得到多个与上述点云数据对应的点云编码之后,构建点云映射表,上述点云映射表用于表征上述点云数据和与上述点云数据对应的点云编码的映射关系;排序模块用于采用上述统一计算设备架构的Thrust库中的编码排序算法,并根据多个与上述点云数据对应的点云编码和上述点云映射表,对所有的上述点云数据进行排序。
在本申请的一种实施例中,生成模块包括处理子模块和生成子模块,处理子模块用于根据上述统一计算设备架构的核函数,并根据上述有效体素的集合和与上述有效体素的集合中的有效体素对应的点云编码,通过二分查找算法并行计算上述有效体素的集合中的所有的上述有效体素对应的起始索引编号和终止索引编号,上述起始索引编号为上述有效体素中编号最小的点云数据所对应编号,上述终止索引编号为上述有效体素中编号最大的点云数据所对应编号;生成子模块用于采用上述统一计算设备架构的核函数和平均求和算法,并根据所有的上述点云数据、上述点云映射表和所有的上述有效体素对应的起始索引编号和终止索引编号,从各有效体素中选取一个点云数据来作为上述有效体素中所有的点云数据的集合。
在本申请的一种实施例中,压缩单元包括第二确定模块,第二确定模块用于在对上述八叉树结构的第N层节点进行均分处理,得到多个体素之后,采用上述统一计算设备架构的Thrust库中的reduce算法统计各上述体素的点云数据的最大包围盒,其中,各上述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最小值和最大值,并根据各上述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最小值,确定最小点,根据各上述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最大值,确定最大点,根据上述最小点和最大点,确定上述最大包围盒在三维空间中占据的空间范围。
在本申请的一种实施例中,第二处理模块包括编码子模块,编码子模块用于采用立方体均匀划分编码方式,对所有的上述点云数据进行编码处理,得到多个对应的点云编码,上述立方体均匀划分编码方式为平均划分的方法。
在本申请的一种实施例中,上述点云数据包括点云的位置信息和颜色信息。
上述点云模型的压缩装置包括处理器和存储器,上述构建单元和压缩单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决现有技术中八叉树结构的使用效率较低的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述点云模型的压缩方法。
本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述点云模型的压缩方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:采用多个点云数据构建八叉树结构,其中,上述八叉树结构具有N层节点,每个上述节点的内部不存在上述点云数据,或者存在至少一个上述点云数据,N为正整数;采用统一计算设备架构的核函数,对上述八叉树结构的第N层节点进行压缩处理,得到压缩后的八叉树结构。本文中的设备可以是服务器、PC、PAD、手机等。
本发明实施例提供了一种点云模型的压缩系统,该系统包括一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的点云模型的压缩方法。基于统一计算设备架构的并行计算框架和八叉树结构,能够支持海量点云数据的实时高效的管理,支持对八叉树结构的节点对应的散乱点云数据进行实时高效的压缩,从而提高了八叉树结构的使用效率,进而解决了现有技术中八叉树结构的使用效率较低的问题。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:采用多个点云数据构建八叉树结构,其中,上述八叉树结构具有N层节点,每个上述节点的内部不存在上述点云数据,或者存在至少一个上述点云数据,N为正整数;采用统一计算设备架构的核函数,对上述八叉树结构的第N层节点进行压缩处理,得到压缩后的八叉树结构。
为了本领域技术人员能够更加清楚地了解本申请的技术方案,以下将结合具体的实施例来说明本申请的技术方案和技术效果。
实施例
本申请还提供了一种点云模型的压缩方案,该方案包括以下步骤:
步骤1:采用多个点云数据构建八叉树结构,其中,上述八叉树结构具有N层节点,每个上述节点的内部不存在上述点云数据,或者存在至少一个上述点云数据,N为正整数;
步骤2:对上述八叉树结构的第N层节点进行均分处理,得到多个体素,每个上述体素的内部不存在上述点云数据,或者存在至少一个上述点云数据;
步骤3:采用上述统一计算设备架构的Thrust库中的reduce算法统计各上述体素的点云数据的最大包围盒,其中,各上述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最小值和最大值,并根据各上述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最小值,确定最小点,根据各上述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最大值,确定最大点,根据上述最小点和最大点,确定上述最大包围盒在三维空间中占据的空间范围;
步骤4:对所有的上述点云数据进行编码处理,得到多个与上述点云数据对应的点云编码包括:采用立方体均匀划分编码方式,对所有的上述点云数据进行编码处理,得到多个对应的点云编码,上述立方体均匀划分编码方式为平均划分的方法
步骤5:构建点云映射表,上述点云映射表用于表征上述点云数据和与上述点云数据对应的点云编码的映射关系;采用上述统一计算设备架构的Thrust库中的编码排序算法(即sort_by_key算法),并根据多个与上述点云数据对应的点云编码和上述点云映射表,对所有的上述点云数据进行排序;
步骤6:根据上述体素,确定有效体素的集合,其中,上述有效体素的集合包括多个有效体素,上述有效体素用于表征存在至少一个上述点云数据的体素;
步骤7:根据上述统一计算设备架构的核函数,并根据上述有效体素的集合和与上述有效体素的集合中的有效体素对应的点云编码,通过二分查找算法并行计算上述有效体素的集合中的所有的上述有效体素对应的起始索引编号和终止索引编号,上述起始索引编号为上述有效体素中编号最小的点云数据所对应编号,上述终止索引编号为上述有效体素中编号最大的点云数据所对应编号;
步骤8:采用上述统一计算设备架构的核函数和平均求和算法,并根据所有的上述点云数据、上述点云映射表和所有的上述有效体素对应的起始索引编号和终止索引编号,从各有效体素中选取一个点云数据来作为上述有效体素中所有的点云数据的集合,以得到上述压缩后的八叉树结构。
基于统一计算设备架构的并行计算框架和八叉树结构,能够支持海量点云数据的实时高效的管理,支持对八叉树结构的节点对应的散乱点云数据进行实时高效的压缩,从而提高了八叉树结构的使用效率,进而解决了现有技术中八叉树结构的使用效率较低的问题。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
1)、本申请的点云模型的压缩方法,基于统一计算设备架构的并行计算框架和八叉树结构,能够支持海量点云数据的实时高效的管理,支持对八叉树结构的节点对应的散乱点云数据进行实时高效的压缩,从而提高了八叉树结构的使用效率,进而解决了现有技术中八叉树结构的使用效率较低的问题。
2)、本申请的点云模型的压缩装置,基于统一计算设备架构的并行计算框架和八叉树结构,能够支持海量点云数据的实时高效的管理,支持对八叉树结构的节点对应的散乱点云数据进行实时高效的压缩,从而提高了八叉树结构的使用效率,进而解决了现有技术中八叉树结构的使用效率较低的问题。
3)、本申请的点云模型的压缩系统,基于统一计算设备架构的并行计算框架和八叉树结构,能够支持海量点云数据的实时高效的管理,支持对八叉树结构的节点对应的散乱点云数据进行实时高效的压缩,从而提高了八叉树结构的使用效率,进而解决了现有技术中八叉树结构的使用效率较低的问题。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种点云模型的压缩方法,其特征在于,包括:
采用多个点云数据构建八叉树结构,其中,所述八叉树结构具有N层节点,每个所述节点的内部不存在所述点云数据,或者存在至少一个所述点云数据,N为正整数;
采用统一计算设备架构的核函数,对所述八叉树结构的第N层节点进行压缩处理,得到压缩后的八叉树结构。
2.根据权利要求1所述的方法,其特征在于,采用统一计算设备架构的核函数,对所述八叉树结构的第N层节点进行压缩处理,得到压缩后的八叉树结构,包括:
对所述八叉树结构的第N层节点进行均分处理,得到多个体素,每个所述体素的内部不存在所述点云数据,或者存在至少一个所述点云数据;
对所有的所述点云数据进行编码处理,得到多个与所述点云数据对应的点云编码;
根据所述体素,确定有效体素的集合,其中,所述有效体素的集合包括多个有效体素,所述有效体素用于表征存在至少一个所述点云数据的体素;
采用所述统一计算设备架构的核函数中,并根据所述有效体素的集合和与所述有效体素的集合中的有效体素对应的点云编码,从各有效体素中选取一个点云数据来作为所述有效体素中所有的点云数据的集合,以得到所述压缩后的八叉树结构。
3.根据权利要求2所述的方法,其特征在于,在对所有的所述点云数据进行编码处理,得到多个与所述点云数据对应的点云编码之后,所述方法还包括:
构建点云映射表,所述点云映射表用于表征所述点云数据和与所述点云数据对应的点云编码的映射关系;
采用所述统一计算设备架构的Thrust库中的编码排序算法,并根据多个与所述点云数据对应的点云编码和所述点云映射表,对所有的所述点云数据进行排序。
4.根据权利要求3所述的方法,其特征在于,采用所述统一计算设备架构的核函数中,并根据所述有效体素的集合和与所述有效体素的集合中的有效体素对应的点云编码,从各有效体素中选取一个点云数据来作为所述有效体素中所有的点云数据的集合,包括:
根据所述统一计算设备架构的核函数,并根据所述有效体素的集合和与所述有效体素的集合中的有效体素对应的点云编码,通过二分查找算法并行计算所述有效体素的集合中的所有的所述有效体素对应的起始索引编号和终止索引编号,所述起始索引编号为所述有效体素中编号最小的点云数据所对应编号,所述终止索引编号为所述有效体素中编号最大的点云数据所对应编号;
采用所述统一计算设备架构的核函数和平均求和算法,并根据所有的所述点云数据、所述点云映射表和所有的所述有效体素对应的起始索引编号和终止索引编号,从各有效体素中选取一个点云数据来作为所述有效体素中所有的点云数据的集合。
5.根据权利要求2所述的方法,其特征在于,在对所述八叉树结构的第N层节点进行均分处理,得到多个体素之后,所述方法还包括:
采用所述统一计算设备架构的Thrust库中的reduce算法统计各所述体素的点云数据的最大包围盒,其中,各所述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最小值和最大值,并根据各所述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最小值,确定最小点,根据各所述体素的点云数据在三维空间的X轴、Y轴和Z轴上的最大值,确定最大点,根据所述最小点和最大点,确定所述最大包围盒在三维空间中占据的空间范围。
6.根据权利要求2所述的方法,其特征在于,对所有的所述点云数据进行编码处理,得到多个与所述点云数据对应的点云编码,包括:
采用立方体均匀划分编码方式,对所有的所述点云数据进行编码处理,得到多个对应的点云编码,所述立方体均匀划分编码方式为平均划分的方法。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述点云数据包括点云的位置信息和颜色信息。
8.一种点云模型的压缩装置,其特征在于,包括:
构建单元,用于采用多个点云数据构建八叉树结构,其中,所述八叉树结构具有N层节点,每个所述节点的内部不存在所述点云数据,或者存在至少一个所述点云数据,N为正整数;
压缩单元,用于采用统一计算设备架构的核函数,对所述八叉树结构的第N层节点进行压缩处理,得到压缩后的八叉树结构。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1至7中任意一项所述的点云模型的压缩方法。
10.一种点云模型的压缩系统,其特征在于,包括:一个或多个处理器,存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1至7中任意一项所述的点云模型的压缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211021568.2A CN115409907A (zh) | 2022-08-24 | 2022-08-24 | 点云模型的压缩方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211021568.2A CN115409907A (zh) | 2022-08-24 | 2022-08-24 | 点云模型的压缩方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115409907A true CN115409907A (zh) | 2022-11-29 |
Family
ID=84162409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211021568.2A Pending CN115409907A (zh) | 2022-08-24 | 2022-08-24 | 点云模型的压缩方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115409907A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116030104A (zh) * | 2023-03-29 | 2023-04-28 | 山东港口渤海湾港集团有限公司 | 点云最近邻数据结构构建方法及其系统 |
-
2022
- 2022-08-24 CN CN202211021568.2A patent/CN115409907A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116030104A (zh) * | 2023-03-29 | 2023-04-28 | 山东港口渤海湾港集团有限公司 | 点云最近邻数据结构构建方法及其系统 |
CN116030104B (zh) * | 2023-03-29 | 2023-08-11 | 山东港口渤海湾港集团有限公司 | 点云最近邻数据结构构建方法及其系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Meister et al. | A survey on bounding volume hierarchies for ray tracing | |
CN102682103B (zh) | 一种面向海量激光雷达点云模型的三维空间索引方法 | |
Cignoni et al. | External memory management and simplification of huge meshes | |
Shevtsov et al. | Highly parallel fast KD‐tree construction for interactive ray tracing of dynamic scenes | |
US9396512B2 (en) | Fully parallel construction of k-d trees, octrees, and quadtrees in a graphics processing unit | |
US8570322B2 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
CN105160706B (zh) | 一种单机多核环境下约束地形并行构建方法 | |
Weiss et al. | Simplex and diamond hierarchies: Models and applications | |
CN113287154A (zh) | 基础设施模型几何形状到图块格式的转换 | |
CN114943810B (zh) | 基于osgb的倾斜摄影切片的优化方法、终端、装置和介质 | |
JP7368623B2 (ja) | 点群処理の方法、コンピュータシステム、プログラム及びコンピュータ可読記憶媒体 | |
CN113287153A (zh) | Hlod树的动态前端驱动生成 | |
CN113094463A (zh) | 一种非结构化点云存储方法、装置、设备及介质 | |
CN115409907A (zh) | 点云模型的压缩方法、装置及系统 | |
CN115994197A (zh) | GeoSOT网格数据计算方法 | |
Mahmoud et al. | RXMesh: a GPU mesh data structure | |
Cabiddu et al. | Large mesh simplification for distributed environments | |
CN106575296B (zh) | 用于托管的分析的动态n维立方体 | |
Áfra | Interactive ray tracing of large models using voxel hierarchies | |
Kocon et al. | Point cloud indexing using Big Data technologies | |
Liu et al. | A Delaunay triangulation algorithm based on dual-spatial data organization | |
Aleardi et al. | Array-based compact data structures for triangulations: Practical solutions with theoretical guarantees | |
Danovaro et al. | Level-of-detail for data analysis and exploration: A historical overview and some new perspectives | |
Guo et al. | A 3D Surface Reconstruction Method for Large‐Scale Point Cloud Data | |
Kim et al. | Utilizing extended geocodes for handling massive three-dimensional point cloud data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |