基于GPU并行计算和哈希表的变电站施工现场三维重建方法与流程

文档序号:30171258发布日期:2022-05-26 10:31阅读:118来源:国知局
基于GPU并行计算和哈希表的变电站施工现场三维重建方法与流程
基于gpu并行计算和哈希表的变电站施工现场三维重建方法
技术领域
1.本发明涉及三维建模技术领域,尤其是一种基于gpu并行计算和哈希表的变电站施工现场三维重建方法。


背景技术:

2.在土木工程中,以点云模型、网格模型和几何模型为形式的三维重建技术被越来越多地用于获取物体的三维表示,其中点云模型是基础。
3.大型变电站场景的三维重建是三维场景导航、信息查询和监控的基础,场景的大尺度对数据的存储和计算提出了较高的要求。
4.目前通过gpu(graphics processing unit,图形处理器)并行计算为计算效率的提升提供了保障,然而由于gpu本身显存的性能限制,大尺度变电站的三维重建的gpu并行计算进入了瓶颈。


技术实现要素:

5.本发明提供了基于gpu并行计算和哈希表的变电站施工现场三维重建方法,用于解决现有gpu并行计算在大尺度变电站三维重建过程中性能受限的问题。
6.为实现上述目的,本发明采用下述技术方案:
7.本发明第一方面提供了一种基于gpu并行计算和哈希表的变电站施工现场三维重建方法,所述方法包括以下步骤:
8.获取变电站施工现场图片的关键帧对应的点云信息;
9.将点云存储在预设的哈希表中,通过隐函数sdf值表示表面;
10.对相邻关键帧重叠部分的点云通过gpu并行运算进行融合;
11.基于融合后的点云生成三维模型。
12.进一步地,所述哈希表将变电站施工现场空间分成体素块,每个体素块代表若干体素,每个体素块对应哈系表中的一个哈希条目。
13.进一步地,每个所述哈希条目包括当前体素块固定点的世界坐标、处理哈希表中哈希条目冲突的便宜指针以及用于操作映射的指针。
14.进一步地,所述将点云存储在预设的哈希表中的过程具体为:
15.获取当前点云固定点的世界坐标,将其存储在哈希表中作为一个哈希条目内容;
16.为当前哈希条目配置对应的便宜指针和映射指针。
17.进一步地,所述对相邻关键帧重叠部分的点云通过gpu并行运算进行融合的具体过程为:
18.检索出相邻关键帧中重叠部分的点云;
19.将重叠部分点云的sdf值放入缓冲区,通过内存与显存复制的形式交互到gpu中,并更新sdf值,将更新后的sdf值交互到内存中。
20.进一步地,所述检索出相邻关键帧中重叠部分的点云具体为:
21.计算其中g表示乘法,表示异或操作,mod表示与操作,n表示哈希表大小,p1,p2,p3均为常量,(x,y,z)表示当前点云固定点的世界坐标;若h(x,y,z)在现有哈希表中,认为当前点云为重叠部分点云。
22.进一步地,所述通过内存与显存复制的形式交互到gpu中,并更新sdf值的具体过程为:
23.在显卡中,布置每个体素对应一个gpu线程,
24.每个体素均执行加权平均f=w
oldfold
+w
newfnew
,其中f
old
表示该顶点原有sdf值,f
new
表示该顶点现有sdf值,w
old
和w
new
表示权值。
25.本发明第二方面提供了一种基于gpu并行计算和哈希表的变电站施工现场三维重建系统,所述系统包括:
26.信息获取单元,用于获取变电站施工现场图片的关键帧对应的点云信息;
27.点云存储单元,用于将点云存储在预设的哈希表中,通过隐函数sdf值表示表面;
28.点云融合单元,用于对相邻关键帧重叠部分的点云通过gpu并行运算进行融合;
29.建模单元,基于融合后的点云生成三维模型。
30.进一步地,所述哈希表将变电站施工现场空间分成体素块,每个体素块代表若干体素,每个体素块对应哈系表中的一个哈希条目。
31.进一步地,所述点云融合单元包括:
32.索引子单元,用于检索出相邻关键帧中重叠部分的点云;
33.融合子单元,用于将重叠部分点云的sdf值放入缓冲区,通过内存与显存复制的形式交互到gpu中,并更新sdf值,将更新后的sdf值交互到内存中。
34.本发明第二方面的所述变电站施工现场三维重建系统能够实现第一方面及第一方面的各实现方式中的方法,并取得相同的效果。
35.发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
36.本发明将哈希表与gpu并行计算相结合,间变电站施工现场空间分成多个体素块,每个体素块代表多个体素,且每个体素块对应哈希表中一个哈希条目,一个哈希条目对应变电站施工现场图片关键帧中的一个点云,在运用gpu进行并行计算时,将每个体素对应一个gpu线程,解决大尺度点云数据存储和计算效率的难题,提高建模效率。
附图说明
37.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
38.图1是本发明所述方法实施例的流程示意图;
39.图2是本发明所述系统实施例的结构示意图。
具体实施方式
40.为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结
构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
41.如图1所示,本发明实施例提供了一种基于gpu并行计算和哈希表的变电站施工现场三维重建方法,所述方法包括以下步骤:
42.s1,获取变电站施工现场图片的关键帧对应的点云信息;
43.s2,将点云存储在预设的哈希表中,通过隐函数sdf值表示表面;
44.s3,对相邻关键帧重叠部分的点云通过gpu并行运算进行融合;
45.s4,基于融合后的点云生成三维模型。
46.步骤s1中,基于现有技术中已有的orb-slam2框架获取关键帧集合,关键帧集合中包括参考关键帧和新进关键帧,分别获取对应的点云、位姿、地图点等信息。
47.步骤s2中,建立一个哈希表用于存储变电站施工现场空间中所有点云。
48.所述哈希表将变电站施工现场空间分成体素块,每个体素块代表若干体素,每个体素块对应哈系表中的一个哈希条目。其中每个体素块可代表8
×8×
8个体素。每个哈希条目包括如下内容:
49.当前体素块固定点的世界坐标(x,y,z)、处理哈希表中哈希条目冲突的便宜指针以及用于操作映射的指针ρ。其中固定点选择体素块左下角顶点。
50.所述将点云存储在预设的哈希表中的过程具体为:
51.获取当前点云固定点的世界坐标,将其存储在哈希表中作为一个哈希条目内容;
52.为当前哈希条目配置对应的便宜指针和映射指针。
53.步骤s3中,所述对相邻关键帧重叠部分的点云通过gpu并行运算进行融合的具体过程为:
54.检索出相邻关键帧中重叠部分的点云;
55.将重叠部分点云的sdf值放入缓冲区,通过内存与显存复制的形式交互到gpu中,并更新sdf值,将更新后的sdf值交互到内存中。
56.所述检索出相邻关键帧中重叠部分的点云具体为:
57.计算其中g表示乘法,表示异或操作,mod表示与操作,n表示哈希表大小,p1,p2,p3均为常量,本实施例中p1,p2,p3分别设置为73865093,19349669,83492791。(x,y,z)表示当前点云固定点的世界坐标;若h(x,y,z)在现有哈希表中,认为当前点云为重叠部分点云。
58.所述通过内存与显存复制的形式交互到gpu中,并更新sdf值的具体过程为:
59.在显卡中,布置每个体素对应一个gpu线程,
60.每个体素均执行加权平均f=w
oldfold
+w
newfnew
,其中f
old
表示该顶点原有sdf值,f
new
表示该顶点现有sdf值,w
old
和w
new
表示权值,本实施例中均取值0.5。
61.如图2所示,本发明实施例还提供了一种基于gpu并行计算和哈希表的变电站施工现场三维重建系统,所述系统包括信息获取单元1、点云存储单元2、点云融合单元3和建模单元4。
62.信息获取单元1用于获取变电站施工现场图片的关键帧对应的点云信息;点云存
储单元2用于将点云存储在预设的哈希表中,通过隐函数sdf值表示表面;点云融合单元3用于对相邻关键帧重叠部分的点云通过gpu并行运算进行融合;建模单元4基于融合后的点云生成三维模型。
63.所述哈希表将变电站施工现场空间分成体素块,每个体素块代表若干体素,每个体素块对应哈系表中的一个哈希条目。
64.所述点云融合单元3包括索引子单元31和融合子单元32。
65.索引子单元31用于检索出相邻关键帧中重叠部分的点云;融合子单元32用于将重叠部分点云的sdf值放入缓冲区,通过内存与显存复制的形式交互到gpu中,并更新sdf值,将更新后的sdf值交互到内存中。
66.上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1