CN108920574A - 大规模三维点云数据的高效邻域搜索方法 - Google Patents
大规模三维点云数据的高效邻域搜索方法 Download PDFInfo
- Publication number
- CN108920574A CN108920574A CN201810653675.4A CN201810653675A CN108920574A CN 108920574 A CN108920574 A CN 108920574A CN 201810653675 A CN201810653675 A CN 201810653675A CN 108920574 A CN108920574 A CN 108920574A
- Authority
- CN
- China
- Prior art keywords
- point
- hash table
- point set
- plies
- layered
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000003672 processing method Methods 0.000 claims abstract 2
- 125000001967 indiganyl group Chemical group [H][In]([H])[*] 0.000 claims description 6
- 230000003044 adaptive effect Effects 0.000 claims description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 239000004744 fabric Substances 0.000 abstract 1
- 230000006870 function Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005056 compaction Methods 0.000 description 1
- 230000032798 delamination Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种大规模三维点云数据邻域搜索处理方法,解决搜索效率低、减少硬件资源占用,方法是:1依据点集在三个坐标方向设置分层厚度,2确定点集在三个坐标方向上的布大小,3比较点集的大小,取最大值所在方向对点集进行分层,4根据分层厚度将点集分割为N z 个子集,5将层数沿两个方向个扩展一层,6确定给定点所在层数,建立给定点所在层及相邻三个空间的哈希表,7给定点在哈希表中的地址将点集中的点云数据分映射到哈希表,8利用三个哈希表对相应的点集内的所有点进行邻域搜索处理,9对点集内的所有点进行处理,10释放哈希表中的所有元素。有益效果为:消耗的资源减少、存储空间反复使用,资源使用率高,减小了哈希表数组的长度,提升了数据访问效率。
Description
所属技术领域:
本发明属于数据处理领域,特别是一种大规模三维点云数据的高效邻域搜索方法。
背景技术
随着技术发展,大规模三维点云数据的应用越来越广泛,庞大的数据量使得三维点云的数据处理面临效率和存储空间等方面的严峻考验。三维点云数据的邻域搜索是法线计算、模型渲染、特征提取、数据精简、数据平滑及曲面重建等处理的基础。因此,大规模三维点云数据的邻域搜索问题对三维数据处理具有决定性的影响。
大规模三维点云数据往往具有形状复杂、密度不均、数据散乱的特点,如何建立大规模三维点云的空间拓扑结构并实现高效的邻域搜索,需要综合考虑效率与硬件存储空间等因素。建立大规模三维点云数据的空间拓扑结构,是根据给定点的坐标建立空间索引,利用索引将点的空间邻接关系搜索范围最小化,提高点云局部搜索效率。我们知道,点云的空间拓扑结构有K-D tree和哈希表等。其中哈希表的效率较高。然而,利用普通计算机建立针对大规模三维点云数据的哈希表往往超出其处理效率及硬件存储空间的极限,这表现在:
(1)哈希表的建立与点云的空间密度密切相关。随着点云空间密度的增大哈希表的总量呈几何级数增长,造成硬件资源的巨大消耗以及三维点云处理效率的急剧降低。
(2)哈希表的建立过程以点云整体作为对象,数量庞大的空间点占据了绝大部分资源,且作为点云的组成部分,已经建立索引的数据点在所有点的空间索引建立完成之前始终占据宝贵的存储空间,不能及时回收资源,而当前需要参与处理的数据点仅占很小的一部分,这造成资源的极大浪费,降低了处理效率和处理能力。
基于以上原因,建立大规模三维点云数据的空间拓扑结构实现高效的邻域搜索是点云数据处理的前提,能极大地提高大规模点云数据的应用领域。
发明内容
旨在提高大规模三维点云数据的邻域搜索速度并降低这一过程对硬件资源的消耗。
本发明通过高效的建立大规模三维点云数据的空间拓扑结构,实现点云邻域的高效搜索,同时降低计算过程中对硬件资源的消耗。本发明在方法上采用空间分层处理策略,将三维点云数据在某一方向上分割为多层点云,每层点云数据仅与前面一层及后面一层具有邻接关系。采用逐层处理的方式,依据当前待处理数据所在层数动态更新哈希表元素,即:建立当前需要处理的数据层后面一层的哈希表。保留当前以及前面一层的哈希表,释放不再参与处理的哈希表。
本发明为实现发明目的采用的技术方案是:大规模三维点云数据邻域搜索处理方法,该方法基于哈希表实现对大规模三维点云数据搜索处理,其特征在于:该方法由以下步骤实现:
步骤1.给定一组三维点集S={Xt=(xt,yt,zt)∈R3|t=1,…,N};
其中N为点的数量;
依据点集S在三个坐标方向上的分布区间[xmin,xmax]、[ymin,ymax]、[zmin,zmax],采用公式(1)获得自适应分层,设置每次厚度为L;
步骤2.令点集在三个坐标方向上的分布大小为:
步骤3.比较Dx、Dy、Dz的大小,选择Dx、Dy、Dz中的最大值所在方向对点集进行分层,如当Dx、Dy、Dz中的最大值为Dz时,选择Dz方向对点集进行分层,如当Dx、Dy、Dz中的最大值为Dy时,选择方向Dy对点集进行分层,如当Dx、Dy、Dz中的最大值为Dx时,选择方向Dx对点集进行分层;
层数由下式计算:
Nz=Dz/L (3)
步骤4.根据分层厚度L将点集S分割为Nz个子集{Si,i=1,...,Nz};
对于给定点集S中任意点的坐标(x,y,z),其所在层数为:
i=z/L+1 (4)
步骤5.将层数沿Z轴正负两个方向个扩展一层,则分层总数为Nz+2;
扩展后原点集变设置为{Si,i=0,1,...,Nz,Nz+1};
步骤6.若给定点(x,y,z),给定点(x,y,z)所在层数为[1,Nz]区间内;
设给定点(x,y,z)所在层数为k,则给定点(x,y,z)所在层与k-1及k+1层在空间上邻接,对k-1、k、k+1三层数据,建立三个空间的哈希表H0、H1、H2,其大小均为Nx×Ny;
其中Nx、Ny为X和Y方向哈希表元素个数按公式(4)计算;
步骤7.给定点(x,y,z)在哈希表中的地址由式(5)指定的哈希函数获得;依据该函数将点集S0、S1、S2中的点云数据分别映射到哈希表H0、H1、H2中;
key=n*Ny+m (5)
其中,m和n分别为该点所在哈希表元素在空间中的位置序号:
步骤8.由于S0为空点集,因此将S1视为当前待处理点集,并记录层数k=1,依据哈希表的访问原则,利用三个哈希表H0、H1、H2对相应的点集S1内的所有点进行邻域搜索处理;
步骤9.将S2视为当前待处理点集,并记录k=2,由于H0不参与将利用哈希表H1、H2分别替换H0、H1,利用点集S2重新初始化H2,对点集S2内的所有点进行处理,依次类推,直到k=Nz,即所有包含点的子集都处理完毕;
步骤10.释放哈希表H0、H1、H2中的所有元素。
本发明的有益效果为:一、由于每一层均占据全部资源消耗的1/Nz,本发明中三维点云处理中哈希表所消耗的资源大大减少至3/Nz;二、哈希表存储空间反复使用,无需反复开辟存储空间,不用的数据及时得到释放,资源使用率高,提高了效率;三、极大的减小了哈希表数组的长度,进一步提升了数据访问效率。
下面结合附图对本发明进行详细描述。
附图说明
附图1三维点云分层及哈希表的更新过程。
具体实施方式
根据依据点云密度自适应选择分层大小,通过比较点云数据在X、Y和Z三个坐标方向上的分布区间,决定依那个方向进行分层,根据层数动态更新哈希表元素,实现资源消耗最小化和处理效率最大化。该方案由以下步骤实现:
步骤1.给定一组三维点集S={Xt=(xt,yt,zt)∈R3|t=1,…,N},其中N为点的数量。依据点集S在三个坐标方向上的分布区间[xmin,xmax]、[ymin,ymax]、[zmin,zmax],采用公式(1)获得自适应分层大小L。
步骤2.令点集在三个坐标方向上的分布大小为:
步骤3.比较Dx、Dy、Dz的大小,选择最大值所在方向对点集进行分层。下面以Dz最大时为例,介绍分层后的处理过程,当Dx、Dy最大时处理方式类似。这样做的优点是可以最小化对硬件的资源消耗。层数由下式计算:
Nz=Dz/L (3)
步骤4.根据分层大小L将点集S分割为Nz个子集{Si,i=1,...,Nz}。对于给定点集S中任意点的坐标(x,y,z),其所在层数为:
i=z/L+1 (4)
步骤5.为了避免边界处理,将层数沿Z轴正负两个方向个扩展一层,则分层总数为Nz+2。扩展后原点集变为{Si,i=0,1,...,Nz,Nz+1}。
步骤6.若给定点(x,y,z),其所在层数必然在[1,Nz]区间内。设所在层数为k,则该点所在层仅与k-1及k+1层在空间上邻接。相应的对k-1、k、k+1三层数据,建立三个空的哈希表H0、H1、H2,其大小均为Nx×Ny,其中Nx、Ny为X和Y方向哈希表元素个数按公式(4)计算。
步骤7.给定点(x,y,z)在哈希表中的地址可由式(5)指定的哈希函数获得。依据该函数将点集S0、S1、S2中的点云数据分别映射到哈希表H0、H1、H2中。
key=n*Ny+m (5)
其中,m和n分别为该点所在哈希表元素在空间中的位置序号:
步骤8.由于S0为空点集,因此将S1视为当前待处理点集,并记录层数k=1。依据哈希表的访问原则,利用三个哈希表H0、H1、H2对相应的点集S1内的所有点进行邻域搜索等处理。
步骤9.将S2视为当前待处理点集,并记录k=2。由于H0不参与将利用哈希表H1、H2分别替换H0、H1。利用点集S2重新初始化H2。对点集S2内的所有点进行处理。依次类推,直到k=Nz,即所有包含点的子集都处理完毕。
步骤10.释放哈希表H0、H1、H2中的所有元素。
Claims (1)
1.一种大规模三维点云数据邻域搜索处理方法,该方法基于哈希表实现对大规模三维点云数据搜索处理,其特征在于:该方法由以下步骤实现:
步骤1.给定一组三维点集S={Xt=(xt,yt,zt)∈R3|t=1,…,N};
其中N为点的数量;
依据点集S在三个坐标方向上的分布区间[xmin,xmax]、[ymin,ymax]、[zmin,zmax],采用公式(1)获得自适应分层,设置每次厚度为L;
步骤2.令点集在三个坐标方向上的分布大小为:
步骤3.比较Dx、Dy、Dz的大小,选择Dx、Dy、Dz中的最大值所在方向对点集进行分层,如当Dx、Dy、Dz中的最大值为Dz时,选择Dz方向对点集进行分层,如当Dx、Dy、Dz中的最大值为Dy时,选择方向Dy对点集进行分层,如当Dx、Dy、Dz中的最大值为Dx时,选择方向Dx对点集进行分层;
层数由下式计算:
Nz=Dz/L (3)
步骤4.根据分层厚度L将点集S分割为Nz个子集{Si,i=1,...,Nz};
对于给定点集S中任意点的坐标(x,y,z),其所在层数为:
i=z/L+1 (4)
步骤5.将层数沿Z轴正负两个方向个扩展一层,则分层总数为Nz+2;
扩展后原点集变设置为{Si,i=0,1,...,Nz,Nz+1};
步骤6.若给定点(x,y,z),给定点(x,y,z)所在层数为[1,Nz]区间内;
设给定点(x,y,z)所在层数为k,则给定点(x,y,z)所在层与k-1及k+1层在空间上邻接,对k-1、k、k+1三层数据,建立三个空间的哈希表H0、H1、H2,其大小均为Nx×Ny;
其中Nx、Ny为X和Y方向哈希表元素个数按公式(4)计算;
步骤7.给定点(x,y,z)在哈希表中的地址由式(5)指定的哈希函数获得;依据该函数将点集S0、S1、S2中的点云数据分别映射到哈希表H0、H1、H2中;
key=n*Ny+m (5)
其中,m和n分别为该点所在哈希表元素在空间中的位置序号:
步骤8.由于S0为空点集,因此将S1视为当前待处理点集,并记录层数k=1,依据哈希表的访问原则,利用三个哈希表H0、H1、H2对相应的点集S1内的所有点进行邻域搜索处理;
步骤9.将S2视为当前待处理点集,并记录k=2,由于H0不参与将利用哈希表H1、H2分别替换H0、H1,利用点集S2重新初始化H2,对点集S2内的所有点进行处理,依次类推,直到k=Nz,即所有包含点的子集都处理完毕;
步骤10.释放哈希表H0、H1、H2中的所有元素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810653675.4A CN108920574B (zh) | 2018-06-22 | 2018-06-22 | 大规模三维点云数据的高效邻域搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810653675.4A CN108920574B (zh) | 2018-06-22 | 2018-06-22 | 大规模三维点云数据的高效邻域搜索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108920574A true CN108920574A (zh) | 2018-11-30 |
CN108920574B CN108920574B (zh) | 2022-09-30 |
Family
ID=64420546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810653675.4A Active CN108920574B (zh) | 2018-06-22 | 2018-06-22 | 大规模三维点云数据的高效邻域搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108920574B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342999A (zh) * | 2021-05-07 | 2021-09-03 | 上海大学 | 一种基于多层跳序树结构的变分辨率点云简化方法 |
JP2023505649A (ja) * | 2020-06-03 | 2023-02-10 | テンセント・アメリカ・エルエルシー | 点群コーディングのための幾何学的占有情報へのハッシュベースのアクセス |
CN117152164A (zh) * | 2023-11-01 | 2023-12-01 | 武汉精一微仪器有限公司 | 一种透明多层材料的点云数据分层方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130297574A1 (en) * | 2012-05-02 | 2013-11-07 | Level Set Systems, Inc. | Method and apparatus for compressing three-dimensional point cloud data |
CN104318622A (zh) * | 2014-10-25 | 2015-01-28 | 大连理工大学 | 一种室内场景非均匀三维点云数据的三角网格建模方法 |
CN105630905A (zh) * | 2015-12-14 | 2016-06-01 | 西安科技大学 | 一种基于散乱点云数据的分层式压缩方法及装置 |
-
2018
- 2018-06-22 CN CN201810653675.4A patent/CN108920574B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130297574A1 (en) * | 2012-05-02 | 2013-11-07 | Level Set Systems, Inc. | Method and apparatus for compressing three-dimensional point cloud data |
CN104318622A (zh) * | 2014-10-25 | 2015-01-28 | 大连理工大学 | 一种室内场景非均匀三维点云数据的三角网格建模方法 |
CN105630905A (zh) * | 2015-12-14 | 2016-06-01 | 西安科技大学 | 一种基于散乱点云数据的分层式压缩方法及装置 |
Non-Patent Citations (4)
Title |
---|
J. MAENPAA等: "A Self-tuning Distributed Hash Table (DHT) for REsource LOcation And Discovery (RELOAD) draft-ietf-p2psip-self-tuning-07.txt", 《IETF 》 * |
孙军华等: "基于分层块状全局搜索的三维点云自动配准", 《光学精密工程》 * |
孟祥林: "三维图像重构的点云精简算法", 《黑龙江科技学院学报》 * |
杨军等: "一种大规模点云k邻域快速搜索算法", 《武汉大学学报(信息科学版)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023505649A (ja) * | 2020-06-03 | 2023-02-10 | テンセント・アメリカ・エルエルシー | 点群コーディングのための幾何学的占有情報へのハッシュベースのアクセス |
JP7345652B2 (ja) | 2020-06-03 | 2023-09-15 | テンセント・アメリカ・エルエルシー | 点群コーディングのための幾何学的占有情報へのハッシュベースのアクセス |
CN113342999A (zh) * | 2021-05-07 | 2021-09-03 | 上海大学 | 一种基于多层跳序树结构的变分辨率点云简化方法 |
CN113342999B (zh) * | 2021-05-07 | 2022-08-05 | 上海大学 | 一种基于多层跳序树结构的变分辨率点云简化方法 |
CN117152164A (zh) * | 2023-11-01 | 2023-12-01 | 武汉精一微仪器有限公司 | 一种透明多层材料的点云数据分层方法、装置及电子设备 |
CN117152164B (zh) * | 2023-11-01 | 2024-02-09 | 武汉精一微仪器有限公司 | 一种透明多层材料的点云数据分层方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108920574B (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108920574A (zh) | 大规模三维点云数据的高效邻域搜索方法 | |
Li et al. | A limited resource model of fault-tolerant capability against cascading failure of complex network | |
CN106650147B (zh) | 一种基于有界不确定性的连续体结构非概率拓扑优化方法 | |
CN103593243B (zh) | 一种可动态扩展的增加虚拟机资源集群系统 | |
CN103914265B (zh) | 集群细粒度内存管理方法 | |
CN108196935B (zh) | 一种面向云计算的虚拟机节能迁移方法 | |
CN104317553B (zh) | 一种基于稀疏矩阵技术快速形成及读写电力系统节点导纳矩阵数据的方法 | |
CN104133661A (zh) | 基于列存储的多核并行哈希分区优化方法 | |
CN102306157B (zh) | 数据中心环境下一种面向节能的高可靠数据存储方法 | |
CN105824686A (zh) | 一种虚拟机宿主机的选择方法和选择系统 | |
CN107193813A (zh) | 数据表连接方式处理方法及装置 | |
CN101499052B (zh) | 一种面向粒子模型的多层直连集群并行计算系统中的节点 | |
CN107391502A (zh) | 时间间隔的数据查询方法、装置及索引构建方法、装置 | |
CN104360982B (zh) | 一种基于可重构芯片技术的主机系统目录结构实现方法和系统 | |
CN106406762A (zh) | 一种重复数据删除方法及装置 | |
CN104331271A (zh) | 用于cfd的并行计算方法及系统 | |
CN108595259B (zh) | 一种基于全局管理的内存池管理方法 | |
CN101937360A (zh) | 一种创建虚拟机的方法和装置 | |
CN105893605A (zh) | 面向时空数据k近邻查询的分布式计算平台及查询方法 | |
CN109101316B (zh) | 一种能效相关的云计算平台资源调度方法 | |
CN111754383B (zh) | 一种GPU上的基于warp重用与着色分区的强连通图检测方法 | |
CN114138102A (zh) | 一种基于多区域划分的云计算数据中心能耗优化方法 | |
Yelmewad et al. | Near optimal solution for traveling salesman problem using GPU | |
CN103310077A (zh) | 轧后件顺序拉伸成体的建模方法 | |
CN105094850B (zh) | 一种基于节点层关联映射的简易业务流程模型的建立方法及应用 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231207 Address after: Room 115, 1st Floor, Songbei Park Building, Heilongjiang University of Science and Technology Science Park, No. 2468 Puyuan Road, Songbei District, Harbin City, Heilongjiang Province, 150022 Patentee after: Heilongjiang Quanneng Interface Technology Co.,Ltd. Address before: 150022 No. 2468 Puyuan Road, Songbei District, Harbin City, Heilongjiang Province Patentee before: HEILONGJIANG University OF SCIENCE AND TECHNOLOGY |
|
TR01 | Transfer of patent right |