基于GPU的三维重建方法、装置、电子设备及介质制造方法及图纸

技术编号:37307110 阅读:26 留言:0更新日期:2023-04-21 22:51
本申请提供一种基于GPU的三维重建方法、装置、电子设备及介质。该方法包括:获取CPU写入GPU的存储空间的二维数据,二维数据包括至少一个二维模型的模型数据,模型数据包括至少三个二维矢量及每个二维矢量的高度信息,同一二维模型中,不同的二维矢量的高度信息一致,二维数据是CPU对原始数据进行数据解析得到的;根据二维数据进行立面重建处理和顶面重建处理,得到立面重建数据和顶面重建数据;根据立面重建数据和顶面重建数据绘制三维模型。本申请的方法,GPU负责重建计算,从而减少了CPU向GPU传输的数据量,同时降低了CPU的存储数据量。量。量。

【技术实现步骤摘要】
基于GPU的三维重建方法、装置、电子设备及介质


[0001]本申请涉及图像重建技术,尤其涉及一种基于GPU的三维重建方法、装置、电子设备及介质。

技术介绍

[0002]随着地理信息系统(Geographic Information System,GIS)的高速发展对GIS数据的可视化需求也进一步提升。GIS数据中建筑物信息,是以一个经纬度坐标序列来描绘一个建筑物轮廓,辅以高度信息的一个高度压缩的格式。在可视化过程中,需要将该格式信息重建为标准图形系统可以识别的三维模型格式。
[0003]传统的重建技术是将GIS数据解析后,将代表建筑物的坐标序列生成一个二维矢量轮廓,再在CPU上逐一计算出建筑物的各个顶点等信息,生成对应的三维模型数据,该数据保存在本地内存或磁盘中,最后再交由三维图形系统进行绘制。
[0004]上述方案若应用于大数据场景中,由于数据量较大,CPU需要较长时间才能得到重建后的数据,且将重建后的数据传输至GPU也需要较长时间,所以无法实现实时响应。即使在不需要实时重建的场景下,仅存储重建后的数据,也会需求比原始GIS数据更多的存储空间,对计算机的硬件资源提出了更高的要求。

技术实现思路

[0005]本申请提供一种基于GPU的三维重建方法、装置、电子设备及介质,使GPU侧负责重建计算,从而一方面减少CPU向GPU传输的数据量,加速了重建计算的效率,另一方面减少了CPU侧需要存储的数据量,从而降低了对于计算机硬件资源的需求。
[0006]一方面,本申请提供一种基于GPU的三维重建方法,由GPU侧执行,该方法包括:
[0007]获取CPU写入GPU的存储空间的二维数据,所述二维数据包括至少一个二维模型的模型数据,所述模型数据包括至少三个二维矢量及每个二维矢量的高度信息,同一二维模型中,不同的二维矢量的高度信息一致,所述二维数据是所述CPU对原始数据进行数据解析得到的;
[0008]根据所述二维数据进行立面重建处理和顶面重建处理,得到立面重建数据和顶面重建数据;
[0009]根据所述立面重建数据和顶面重建数据绘制三维模型。
[0010]在另一种可能实现的方式中,对于每个二维模型的模型数据,所述根据所述二维数据进行立面重建处理,得到立面重建数据,包括:
[0011]将所述二维模型中每个二维矢量作为一个目标线段,所述二维矢量的起点和终点为所述二维矢量对应的目标线段的两个端点;
[0012]基于所述目标线段及所述二维矢量对应的高度信息,确定平行于所述目标线段的重构线段;
[0013]基于所述目标线段、所述重构线段及所述高度信息进行重构,以得到三维立面;
[0014]对所述三维立面进行对角分割,得到与所述二维矢量对应的两个三角面各自的顶点数据和法线数据,并将所述顶点数据和所述法线数据作为所述立面重建数据。
[0015]在另一种可能实现的方式中,对于每个二维模型的模型数据,所述根据所述二维数据进行顶面重建处理,得到顶面重建数据,包括:
[0016]根据所述模型数据包括的二维矢量,得到待重建顶面;
[0017]若所述二维模型包括N个二维矢量,则将所述待重建顶面分割为N

2个三角形,所述N不小于3,所述N

2个三角形的各个顶点为所述二维矢量的起点或终点;
[0018]将所述N

2个三角形的顶点数据及法线方向作为所述顶面重建数据。
[0019]在另一种可能实现的方式中,所述将所述待重建顶面分割为N

2个三角形,包括:
[0020]以任一第一顶点出发,建立所述第一顶点与第二顶点的连接,得到N

2个三角形,所述第二顶点与所述第一顶点为不相邻顶点。
[0021]在另一种可能实现的方式中,所述根据所述立面重建数据和顶面重建数据绘制三维模型,包括:
[0022]基于每二维矢量对应的立面重建数据和顶面重建数据,进行三维模型的绘制;
[0023]记录所述待重建顶面各个区域的被覆盖次数;
[0024]对所述待重建顶面中所述被覆盖次数为偶数的区域进行裁剪,得到与所述二维模型对应的三维模型。
[0025]在另一种可能实现的方式中,所述根据所述二维数据进行立面重建处理和顶面重建处理,得到立面重建数据和顶面重建数据之前,所述方法还包括:
[0026]获取所述CPU发送的绘制批次,所述绘制批次用于指示所述二维数据的处理批次;
[0027]所述根据所述二维数据进行立面重建处理和顶面重建处理,得到立面重建数据和顶面重建数据,包括:
[0028]按照所述绘制批次,并行地对所述绘制批次内的二维数据进行立面重建处理和顶面重建处理,得到所述二维数据的立面重建数据和顶面重建数据。
[0029]第二方面,本申请提供一种基于GPU的三维重建装置,包括第一获取模块、第一处理模块及绘制模块,其中,
[0030]第一获取模块,用于获取CPU写入GPU的存储空间的二维数据,所述二维数据包括至少一个二维模型的模型数据,所述模型数据包括至少三个二维矢量及每个二维矢量的高度信息,同一二维模型中,不同的二维矢量的高度信息一致,所述二维数据是所述CPU对原始数据进行数据解析得到的;
[0031]第一处理模块,用于根据所述二维数据进行立面重建处理和顶面重建处理,得到立面重建数据和顶面重建数据;
[0032]绘制模块,用于根据所述立面重建数据和顶面重建数据绘制三维模型。
[0033]在另一种可能实现的方式中,所述第一处理模块具体用于:
[0034]将所述二维模型中每个二维矢量作为一个目标线段,所述二维矢量的起点和终点为所述二维矢量对应的目标线段的两个端点;
[0035]基于所述目标线段及所述二维矢量对应的高度信息,确定平行于所述目标线段的重构线段;
[0036]基于所述目标线段、所述重构线段及所述高度信息进行重构,以得到三维立面;
[0037]对所述三维立面进行对角分割,得到与所述二维矢量对应的两个三角面各自的顶点数据和法线数据,并将所述顶点数据和所述法线数据作为所述立面重建数据。
[0038]在另一种可能实现的方式中,所述第一处理模块具体用于:
[0039]根据所述模型数据包括的二维矢量,得到待重建顶面;
[0040]若所述二维模型包括N个二维矢量,则将所述待重建顶面分割为N

2个三角形,所述N不小于3,所述N

2个三角形的各个顶点为所述二维矢量的起点或终点;
[0041]将所述N

2个三角形的顶点数据及法线方向作为所述顶面重建数据。
[0042]在另一种可能实现的方式中,所述将所述待重建顶面分割为N

2个三角形,包括:
[0043]以任一第一顶点出发,建立所述第一顶点与第二顶点的连接,得到N

2个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于GPU的三维重建方法,其特征在于,包括:获取CPU写入GPU的存储空间的二维数据,所述二维数据包括至少一个二维模型的模型数据,所述模型数据包括至少三个二维矢量及每个二维矢量的高度信息,同一二维模型中,不同的二维矢量的高度信息一致,所述二维数据是所述CPU对原始数据进行数据解析得到的;根据所述二维数据进行立面重建处理和顶面重建处理,得到立面重建数据和顶面重建数据;根据所述立面重建数据和顶面重建数据绘制三维模型。2.根据权利要求1所述的方法,其特征在于,对于每个二维模型的模型数据,所述根据所述二维数据进行立面重建处理,得到立面重建数据,包括:将所述二维模型中每个二维矢量作为一个目标线段,所述二维矢量的起点和终点为所述二维矢量对应的目标线段的两个端点;基于所述目标线段及所述二维矢量对应的高度信息,确定平行于所述目标线段的重构线段;基于所述目标线段、所述重构线段及所述高度信息进行重构,以得到三维立面;根据每个二维矢量的矢量方向,对所述三维立面进行对角分割,得到与所述二维矢量对应的两个三角面各自的顶点数据和法线数据,并将所述顶点数据和所述法线数据作为所述立面重建数据。3.根据权利要求2所述的方法,其特征在于,对于每个二维模型的模型数据,所述根据所述二维数据进行顶面重建处理,得到顶面重建数据,包括:根据所述模型数据包括的二维矢量,得到待重建顶面;若所述二维模型包括N个二维矢量,则将所述待重建顶面分割为N

2个三角形,所述N不小于3,所述N

2个三角形的各个顶点为所述二维矢量的起点或终点;将所述N

2个三角形的顶点数据及法线方向作为所述顶面重建数据。4.根据权利要求3所述的方法,其特征在于,所述将所述待重建顶面分割为N

2个三角形,包括:以任一第一顶点出发,建立所述第一顶点与第二顶点的连接,得到N

2个三角形,所述第二顶点与所述第一顶点为不相邻顶点。5.根据权利要求3所述的方法,其特征在于,所述根据所述立面重建数据和顶面重建数据绘制三维模型,包括:基于每个二维模型对应的立面重建数据和顶面重建数据,进行三维模型的绘制;记录所述待重建顶面各个区域的被覆盖次数;对所述待重建顶面中所述被覆盖次数为偶数的区域进行裁剪,得到与所述二维模型对应的三维模型。6.根据权利要求1所述的方法,其特征在于,所述根据所述二维数据进行立面重建处理和顶面重建处理,得到立面重建数据和顶面重建数据之前,所述方法还包括:获取所述CPU发送的绘制批次,所述绘制批次用于指示所述二维数据的处理批次;所述根据所述二维数据进行立面重建处理和顶面重建处理,得到立面重建数据和顶面重建数据,包括:
按照所述绘制批次,并行地...

【专利技术属性】
技术研发人员:沈博宋雨伦李大中谢云龙吕烨
申请(专利权)人:联通数字科技有限公司
类型:发明
国别省市:

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

1