CN113868476B - 一种基于局部密度的八叉树点云预处理方法 - Google Patents

一种基于局部密度的八叉树点云预处理方法 Download PDF

Info

Publication number
CN113868476B
CN113868476B CN202111140335.XA CN202111140335A CN113868476B CN 113868476 B CN113868476 B CN 113868476B CN 202111140335 A CN202111140335 A CN 202111140335A CN 113868476 B CN113868476 B CN 113868476B
Authority
CN
China
Prior art keywords
octree
point cloud
point
cube
cloud data
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.)
Active
Application number
CN202111140335.XA
Other languages
English (en)
Other versions
CN113868476A (zh
Inventor
李明昊
王毅
何新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Thermal Power Research Institute Co Ltd
Original Assignee
Xian Thermal Power Research Institute Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Thermal Power Research Institute Co Ltd filed Critical Xian Thermal Power Research Institute Co Ltd
Priority to CN202111140335.XA priority Critical patent/CN113868476B/zh
Publication of CN113868476A publication Critical patent/CN113868476A/zh
Application granted granted Critical
Publication of CN113868476B publication Critical patent/CN113868476B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于局部密度的八叉树点云预处理方法,本发明针对原始数据集进行基于八叉树的点云预处理,采用基于密度值八叉树的拓扑结构进行空间划分,对满足一定密度值的子空间进行八叉树划分,提高了重建效率同时避免的空间资源的浪费,在构建好拓扑结构后对点云数据进行精简压缩,减少部分冗余数据,最后采用半径邻域搜索对点云数据进行查询,为后续点云数据的重建做好基础工作。

Description

一种基于局部密度的八叉树点云预处理方法
技术领域
本发明属于计算机视觉技术领域,具体涉及一种基于局部密度的八叉树点云预处理方法。
背景技术
电厂内电力设备点云数据原始散乱点云数据量庞大,数据处理速度慢,点云之间没有拓扑联系,所以要对原始数据进行点云预处理、点云压缩等操作;点云压缩之前要选择合适的点云拓扑结构进行划分,空间划分可以通过建立数据结构简化点与点之间的操作,提升重建过程的效率和重建效果,所以需要选择合适的数据结构和算法划分空间,点云空间划分方法主要是有三种,K-D树法,八叉树法和包围盒法。
通过研究可以发现,在构建K-D树时,树的更新较为困难,建树与删减的代价很大,对三维空间进行剖分其时间复杂度也相对较高,其次K-D树不能进行随机存储和访问;而包围盒法会将子立方体的点云数据进行均匀处理反而忽视了点云的密度差异,使重建结果过度平滑,无法展示出物体细节特征和密度差异,通过三维扫描仪进行采集可能会产生大量的噪声或者冗余点,所以包围盒也不适用于点云空间划分。
发明内容
针对现有电厂内电力设备点云数据处理速度慢,本发明提供了一种基于局部密度的八叉树点云预处理方法,针对数据量庞大且分布不均匀的电厂点云数据集,利用八叉树实现海量点云之间的空间信息存储和管理,并且八叉树可以根据三维坐标系的坐标位置和八叉树的公式编码方法计算出点云存储位置,所以立方体内的索引值从而实现随机存取的数据,可以对电厂设备内子空间的点云数据进行快速的检索和操作。
为了实现上述目的,本发明采用的技术方案是:
一种基于局部密度的八叉树点云预处理方法,包括以下步骤;
步骤1:八叉树的构建,八叉树的每个节点中都含有八个子节点,对电力设备的点云数据集进行八叉树划分;对每个子节点进行编码计算,提升运算效率和准确度;
步骤2:基于局部密度的八叉树划分,采用面积密度的方法进行八叉树剖分,计算电力设备内每个子空间的点云数据量,用立方体表面进行密度估计,将低于一定密度值子空间进行删除,然后对包含数据的子空间采用八叉树算法进行进一步剖分;
步骤3:八叉树压缩点云,通过现代传感器捕捉大面积的电力设备数据集,包含的数据量很大,空间坐标覆盖广,点与点之间的数据点相距很大,会存在很多冗余的点云数据所以需要对原始点云数据进行压缩;点云压缩基于八叉树的结构组织进行压缩,采用基于立方体重心的方法,计算每个八叉树子空间的点云数据的重心坐标,将满足邻域内的的点云数据保存;
步骤4:八叉树半径邻域搜索,为了方便对电力设备特征的检索和查找,采用半径邻域搜索的方法,设置查找点以后,以子立方体边长为搜索范围进行半径搜索,保存每个近邻点与查找点的欧氏距离,将满足条件的点集存入集合,该方法可以提升检索效率更快的定位设备内某一点的信息。
所述步骤1具体为:
在首次空间划分时,电力设备的点云数据在某些区域几乎没有点云数据,如果直接使用八叉树划分,以电力设备区域最大边长构建八叉树空间,势必会造成资源的浪费,所以在首次划分时先使用包围盒法对原始场景进行初步划分,在初步划分的过程中将一些没有点云数据的子空间进行删除,减少剖分空间的大小和次数,然后对包含数据的子空间采用八叉树算法进行进步剖分。
以电力设备点云数据的最小立方体边长为划分条件,当划分子空间边长大于规定的最小立方体边长时,即可继续进行划分,最小立方体边长的选取与点云数量有关系,假设初始立方体在x,y,z轴上的边长最大值为Xmax、Ymax、Zmax,点云总数为N,平均每个立方体中的点云个数为n,则初始立方体边长描述如公式(1):
L=max(Xmax,Ymax,Zmax) (1)
其中:
max——求括号中的最大值;
最小立方体边长m描述如公式(2):
其中:
k——比例系数。
所述步骤2具体为:
步骤2.1:构建八叉树空间后,对电力设备的点云数据进行首次空间划分时,需要确定能包含电力设备的最小空间,此包围盒在树形结构中作为每个子立方体的根节点;因此需要对电力设备的所有点云数据进行遍历,检索空间坐标系中x,y,z方向的坐标最大值和最小值,计算电力设备在坐标轴的长宽高,以此确定初步包围盒的大小,描述如公式(3):
其中:
Length、Width、Height——分别代表包围盒的长宽高(米);
XMax、XMin、YMax、YMin、YMin、ZMax、ZMin——分别代表点云数据在三维坐标系中x、y、z轴方向的最大值和最小值(米);
步骤2.2:接下来确定后续剖分的八叉树边长,采用基于面积密度的方法进行八叉树剖分,用立方体表面进行密度估计,描述如公式(4):
其中:
N——点云总数据量;
S——立方体表面积(平方米);
则根据面积密度进一步计算每次需要剖分的八叉树边长,则其边长公式m描述如公式(5):
其中:
n——每个子空间的点云数量(个);
步骤2.3:计算八叉树的点云密度,点云密度即八叉树当前空间大小的点云数量,若此立方体的点云密度大于临界值,则对该立方体进行进一步的八叉树剖分,若小于等于临界值则停止剖分,后续只需对大于临界值的子立方体进行八叉树剖分。
所述步骤3具体为:
步骤3:点云压缩基于八叉树的结构组织进行压缩,通过点云数据的压缩,对电力设备点云数据集进行精简,压缩过程在保证不会丢失电力设备的特征信息情况下可以节省存储空间和提升点云压缩的效率,删除的多余数据也可以避免一些无效或者冗余的重建信息,将物体表面的点云数据尽可能精简化存储。
采用基于立方体重心的方法,对于划分结束的子立方体首先计算其重心坐标,并计算每个点到重心的欧式距离,选择距离最小的点作为立方体的中心点,最后以该中心点为圆心,中心点到立方体点云重心的距离为半径,保留半径内部的点云数据起到点云数据压缩的功能,重心G(x,y,z)描述如公式(6),距离公式dis描述如公式(7);
所述步骤4具体为:
步骤4:在设置查找点以后,以子立方体边长为搜索范围进行半径查找,保存每个近邻点与查找点的欧氏距离,描述如公式(8),将满足条件的点集存入集合,采用半径邻域搜索可以方便在验证三角重建时的最大空圆原则,最大空圆原则对于一个满足Delaunay三角形原则的点云空间,任意的三角形面片其外接圆内不会包含除了该三角形顶点的其他点,排除多点共圆的情况,因此可以避免出现三角形重叠的现象,并且半径邻域搜索可以将查找点空间周围所有的点全部遍历,可以提升电力设备点云数据的查找效率和准确性;
其中:
p——点云数据查找点的坐标;
pi——点云数据i个近邻点的坐标。
本发明的有益效果:
(1)更准确
本发明的八叉树结构每个节点中都含有八个子节点,通过对每个子节点进行编码计算,提升了运算效率和准确度,此外,八叉树的树形结构可以很好的对空间进行层次性和有序性的划分。
(2)更效率
八叉树的节点类型分为两种,一种是分支节点,另一种为叶子结点,分支节点记录了体元之间的拓扑链接结构,叶子结点则是记录体元的属性信息,这样当划分后的节点不存在信息时则为空节点,这样可以提升遍历的效率同时也能更加高效的对点云数据进行处理。
(3)节省资源
本发明基于密度值八叉树的拓扑结构进行空间划分,对满足一定密度值的子空间进行八叉树划分,提高了重建效率同时避免的空间资源的浪费。
附图说明
图1为八叉树序列化编码示意图。
图2为八叉树剖分编码示意图。
图3a、图3b、图3c、图3d分别为划分深度为1、2、3、8的四种电力设备八叉树空间划分示意图。
图4为半径邻域搜索流程图。
图5为电力设备某一点半径邻域搜索示意图。
具体实施方式
下面结合实施例对本发明作进一步详细说明。
以电厂内电力设备作为输入进行研究,使用基于局部密度的八叉树点云空间划分和基于半径邻域搜索的点云搜索策略进行点云预处理,主要从八叉树动态划分子空间个数、平均点云数据量、半径搜索效果对本发明有效性进行评估,包括如下步骤:
步骤1,八叉树的构建。
创建八叉树对象Octree存储八叉树节点,根据包围盒的边长和点云数量进行八叉树编码,对三维空间的x,y,z的每个维度都进行编码,最后每个节点都有自己特定的二进制编码,该八叉树的序列化编码为:01000000 00000010 00100100,图1展示了八叉树序列化编码过程。
步骤2,基于局部密度的八叉树划分。
从根节点开始用八叉树的方式剖分立方体状态和编码,节点表示无点云数据的子立方体,节点表示有点云数据但点云密度不满足剖分条件的立方体,节点表示符合条件可以继续剖分的立方体,图2展示了八叉树剖分编码示意图,图3a、图3b、图3c、图3d为电力设备采用八叉树空间划分示意图。
步骤3,八叉树压缩点云。
点云压缩基于八叉树的结构组织进行压缩,并采用基于立方体重心的方法,对于划分结束的子立方体首先计算其重心坐标,并计算每个点到重心的欧式距离,选择距离最小的点作为立方体的中心点,最后以该中心点为圆心,中心点到立方体点云重心的距离为半径,保留半径内部的点云数据起到点云数据压缩的功能。
步骤4,八叉树半径邻域搜索。
设置初始查找点,同时创建向量pointIdxRadiusSearch用来存放近邻的索引值和pointRadiusSquaredDistance用来存放近邻点的欧氏距离,同时设置好搜索半径radius;以查找点为圆心、以radius为半径进行邻域搜索,将在半径范围的邻域点进行标记设置颜色,进行标记的点即为点云数据半径邻域搜索的近邻点,
为了让半径邻域搜索更为明显的展示出来,采用电力设备数据集为测试集,查找初始点为points[200000],对该查找点采用半径邻域搜索,为了更好地展示出邻域搜索的实验效果,将搜索半径范围调整到2。图4展示了半径邻域搜索流程图,图5展示了基于半径邻域搜索的效果。
由于电塔点云数据集分布不均衡,八叉树进行层次划分时,会出现一些立方体内没有点云数据的情况,继续递归分割可能会造成资源浪费并降低效率,所以通过计算最小边长分割八叉树空间不具有太大的意义。因此需要对八叉树内点云数据量进行统计分析,如果立方体内的点云数据小于某个阈值,则不需要继续的该立方体进行八叉树的递归分层。
通过分析可知,本发明基于局部密度的八叉树点云预处理方法,针对大型电力设备点云数据的海量性和冗余性,只对满足一定密度梯度的点云数据进行划分,避免资源的浪费,同时也提升了点云的预处理速度,并且本发明采用半径邻域搜索算法在点云表面重建过程中可以提升点云表面重建效率。

Claims (3)

1.一种基于局部密度的八叉树点云预处理方法,其特征在于,包括以下步骤;
步骤1:八叉树的构建,八叉树的每个节点中都含有八个子节点,对电力设备的点云数据集进行八叉树划分;对每个子节点进行编码计算;
步骤2:基于局部密度的八叉树划分,采用面积密度的方法进行八叉树剖分,计算电力设备内每个子空间的点云数据量,用立方体表面进行密度估计,将低于一定密度值子空间进行删除,然后对包含数据的子空间采用八叉树算法进行进一步剖分;
步骤3:八叉树压缩点云,通过现代传感器捕捉大面积的电力设备数据集,点云压缩基于八叉树的结构组织进行压缩,采用基于立方体重心的方法,计算每个八叉树子空间的点云数据的重心坐标,将满足邻域内的的点云数据保存;
步骤4:八叉树半径邻域搜索,采用半径邻域搜索的方法,设置查找点以后,以子立方体边长为搜索范围进行半径搜索,保存每个近邻点与查找点的欧氏距离,将满足条件的点集存入集合;
所述步骤2具体为:
步骤2.1:构建八叉树空间后,对电力设备的点云数据进行首次空间划分时,需要确定能包含原始场景最小的空间,此包围盒在树形结构中作为每个子立方体的根节点;因此需要对所有点云数据进行遍历,检索空间坐标系中x,y,z方向的坐标最大值和最小值,计算电力设备在三个坐标轴的长宽高,以此确定初步包围盒的大小,描述如公式(3):
其中:
Length、Width、Height——分别代表包围盒的长宽高(米);
XMax、XMin、YMax、YMin、YMin、ZMax、ZMin——分别代表点云数据在三维坐标系中x、y、z轴方向的最大值和最小值(米);
步骤2.2:接下来确定后续剖分的八叉树边长,采用基于面积密度的方法进行八叉树剖分,用立方体表面进行密度估计,描述如公式(4):
其中:
N——点云总数据量;
S——立方体表面积(平方米);
则根据面积密度进一步计算每次需要剖分的八叉树边长,则其边长公式m描述如公式(5):
其中:
n——每个子空间的点云数量(个);
步骤2.3:计算八叉树的点云密度,点云密度即八叉树当前空间大小的点云数量,若此立方体的点云密度大于临界值,则对该立方体进行进一步的八叉树剖分,若小于等于临界值则停止剖分,后续只需对大于临界值的子立方体进行八叉树剖分;
所述步骤3具体为:
步骤3:点云压缩基于八叉树的结构组织进行压缩,并采用基于立方体重心的方法,对于划分结束的子立方体首先计算其重心坐标,并计算每个点到重心的欧式距离,选择距离最小的点作为立方体的中心点,最后以该中心点为圆心,中心点到立方体点云重心的距离为半径,保留半径内部的点云数据起到点云数据压缩的功能,重心G(x,y,z)描述如公式(6),距离公式dis描述如公式(7);
2.根据权利要求1所述的一种基于局部密度的八叉树点云预处理方法,其特征在于,所述步骤1具体为:
在首次空间划分时,先使用包围盒法对原始场景进行初步划分,在初步划分的过程中将一些没有点云数据的子空间进行删除,减少剖分空间的大小和次数,然后对包含数据的子空间采用八叉树算法进行进步剖分;
以电力设备点云数据的最小立方体边长为划分条件,当划分子空间边长大于规定的最小立方体边长时,即可继续进行划分,最小立方体边长的选取与点云数量有关系,假设初始立方体在x,y,z轴上的边长最大值为Xmax、Ymax、Zmax,点云总数为N,平均每个立方体中的点云个数为n,则初始立方体边长描述如公式(1):
L=max(Xmax,Ymax,Zmax) (1)
其中:
max——求括号中的最大值;
最小立方体边长m描述如公式(2):
其中:
k——比例系数。
3.根据权利要求1所述的一种基于局部密度的八叉树点云预处理方法,其特征在于,所述步骤4具体为:
步骤4:在设置查找点以后,以子立方体边长为搜索范围进行半径查找,保存每个近邻点与查找点的欧氏距离,描述如公式(8),将满足条件的点集存入集合,采用半径邻域搜索可以方便在验证三角重建时的最大空圆原则,最大空圆原则对于一个满足Delaunay三角形原则的点云空间,任意的三角形面片其外接圆内不会包含除了该三角形顶点的其他点,排除多点共圆的情况,并且半径邻域搜索可以将查找点空间周围所有的点全部遍历;
其中:
p——点云数据查找点的坐标;
pi——点云数据i个近邻点的坐标。
CN202111140335.XA 2021-09-28 2021-09-28 一种基于局部密度的八叉树点云预处理方法 Active CN113868476B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111140335.XA CN113868476B (zh) 2021-09-28 2021-09-28 一种基于局部密度的八叉树点云预处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111140335.XA CN113868476B (zh) 2021-09-28 2021-09-28 一种基于局部密度的八叉树点云预处理方法

Publications (2)

Publication Number Publication Date
CN113868476A CN113868476A (zh) 2021-12-31
CN113868476B true CN113868476B (zh) 2024-03-12

Family

ID=78991569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111140335.XA Active CN113868476B (zh) 2021-09-28 2021-09-28 一种基于局部密度的八叉树点云预处理方法

Country Status (1)

Country Link
CN (1) CN113868476B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114998456B (zh) * 2022-06-20 2023-06-30 西安邮电大学 基于局部相似度的三维点云属性压缩方法
CN116049924B (zh) * 2023-03-07 2023-07-04 武汉益模科技股份有限公司 一种基于Cuda的三维零件差异分析方法
CN116051755B (zh) * 2023-04-03 2023-06-16 芯知科技(江苏)有限公司 三维数据压缩传输方法及装置
CN116664775B (zh) * 2023-06-02 2024-08-02 中国电建集团昆明勘测设计研究院有限公司 基于八叉树迭代的边界散乱点云有序化方法
CN117036621B (zh) * 2023-10-08 2024-02-09 山东瑞鑫时空信息科技有限公司 基于物联网的地理信息测绘仪数据管理方法
CN118283276A (zh) * 2024-03-29 2024-07-02 中钢集团马鞍山矿山研究总院股份有限公司 基于自适应点云压缩算法的点云Web可视化方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109345619A (zh) * 2018-08-10 2019-02-15 华北电力大学(保定) 基于类八叉树编码的海量点云空间管理方法
CN113178004A (zh) * 2021-04-28 2021-07-27 北京东方耀阳信息技术有限公司 一种基于超核八叉树海量点云显示方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10805646B2 (en) * 2018-06-22 2020-10-13 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109345619A (zh) * 2018-08-10 2019-02-15 华北电力大学(保定) 基于类八叉树编码的海量点云空间管理方法
CN113178004A (zh) * 2021-04-28 2021-07-27 北京东方耀阳信息技术有限公司 一种基于超核八叉树海量点云显示方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
二进制编码八叉树的海量点云邻域快速搜索算法;姜晓通;戴宁;程筱胜;张长东;郭保苏;;计算机辅助设计与图形学学报;20180531(第05期);第824-832页 *

Also Published As

Publication number Publication date
CN113868476A (zh) 2021-12-31

Similar Documents

Publication Publication Date Title
CN113868476B (zh) 一种基于局部密度的八叉树点云预处理方法
CN111325837B (zh) 一种基于地面三维激光点云的边坡dem生成方法
CN109345619B (zh) 基于类八叉树编码的海量点云空间管理方法
CN102682103B (zh) 一种面向海量激光雷达点云模型的三维空间索引方法
CN114332366B (zh) 数字城市单体房屋点云立面3d特征提取方法
Lu et al. Massive point cloud space management method based on octree-like encoding
CN107392875A (zh) 一种基于k近邻域划分的点云数据去噪方法
WO2022121525A1 (zh) 三维场景数据的渲染方法及装置、存储介质、电子装置
CN111583404B (zh) 海量倾斜摄影三维模型数据调度方法及系统
CN101021954A (zh) 三维扫描的点云精简方法
CN102750730B (zh) 一种特征保持的点云数据精简方法
CN102890828A (zh) 基于法向夹角的点云数据精简方法
CN112614216B (zh) 一种变曲率自适应点云数据下采样方法
CN113094463A (zh) 一种非结构化点云存储方法、装置、设备及介质
CN116030218A (zh) 四面体网格划分方法、装置、系统及存储介质
CN117932974B (zh) 一种水库水下数字高程模型的构建方法
CN113763529B (zh) 一种基于三维扫描的变电站建模方法
CN115661374A (zh) 一种基于空间划分和模型体素化的快速检索方法
CN115047825B (zh) 一种数控加工铣削实时显示的方法
CN112465949A (zh) 基于嵌套八叉树的大规模点云数据组织方法
CN113971718B (zh) 一种对三维点云模型进行布尔运算的方法
CN113342999B (zh) 一种基于多层跳序树结构的变分辨率点云简化方法
Zhao et al. A new k nearest neighbours algorithm using cell grids for 3d scattered point cloud
CN117171375A (zh) 地下洞室海量点云数据的双层快速索引方法及系统
CN113763563B (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