三维地形模型生成方法、装置、电子设备及存储介质与流程

文档序号:24242209发布日期:2021-03-12 13:17阅读:180来源:国知局
三维地形模型生成方法、装置、电子设备及存储介质与流程

本发明涉及三维模型构建技术领域,尤其涉及一种三维地形模型生成方法、装置、电子设备及存储介质。



背景技术:

三维地形建模是建立描述某一部分地球表面及其特征的曲面模型,能够真实反映地表特征和地表现象,其在地理信息、工程建设、影视动画、虚拟仿真等领域得到了越来越广泛的应用。

三维地形建模需要输入的地形数据源为等高线数据,而后基于等高线进行曲面建模,根据等高线拟合3d地形,通常采用三角剖分来构建地形,不过效果差,会产生额外的坡度变化线,不符合地形是连续平滑的事实。

因此如何实现三维地形模型表面更加平滑,可视化效果更好成为了亟需解决的技术问题。



技术实现要素:

本发明的主要目的在于提供一种三维地形模型生成方法、装置、电子设备及存储介质,旨在如何实现三维地形模型表面更加平滑,可视化效果更好的问题。

为实现上述目的,本发明提供的一种三维地形模型生成方法,该方法包括:

获取构成目标模型的等高线,对所述等高线进行均匀采样得到三维采样点,基于所述三维采样点构建网格;

将所述三维采样点分布在所述网格的网格中,并将落入所述网格中的三维采样点的z坐标值作为该网格的基础高程值;

基于所述网格上现有的基础高程值,利用预设的插值算法在所述网格的空白网格中插入新增高程值;及

基于所述基础高程值及新增高程值在所述网格上生成三维地形模型;

其中,所述插值算法为:

找到采样点集中距离当前网格点最近的多个点;

使用以下公式对当前网格点进行插值:

使用岭回归方法对网格曲面进行初步平滑,在插值方程中加入正则化项:

其中:

是当前网格点;

是当前网格点的高程值;

表示距离当前网格点最近的点的高程值,下标的数字越小对应的距离越小;

代表权重,表示当前网格点的高程值分别取多个点的高程值的权重;

代表正则化系数。

优选地,当存在多个所述三维采样点落入同一个网格中时,将多个所述三维采样点的z坐标值取平均值存入对应的网格中。

优选地,所述“基于所述新增点和三维采样点在所述网格上构建三维地形模型”包括:

将所述网格进行均匀划分成至少两个面积等同的单元块,通过异步线程分别对每个所述单元块进行同步运算得到所述三维地形模型。

优选地,所述“将所述网格进行均匀划分成至少两个面积等同的单元块”步骤包括:

被划分的相邻两个所述单元块之间预留有重叠网格。

优选地,所述“被划分的相邻两个所述单元块之间预留有重叠网格”步骤包括:

利用预设平滑算法对所述重叠网格进行卷积平滑处理,以重置所述重叠网格的高程值。

优选地,当所述重叠网格仅包含两个单元块时,单个待卷积平滑处理的网格的高程值的预设平滑算法包括:

取任一待卷积平滑处理的所述网格及其四周的八个网格构成的九个网格对应的高程值求平均值,将所述平均值除以二得到重置的高程值;

当所述重叠网格包含四个单元块时,单个待卷积平滑处理的网格的高程值的预设平滑算法包括:

取任一待卷积平滑处理的所述网格及其四周的八个网格构成的九个网格对应的高程值求平均值,将所述平均值除以四得到重置的高程值。

为实现上述目的,本发明还进一步提供一种三维地形模型生成装置,所述三维地形模型生成装置包括:

构建模块,用于获取构成目标模型的等高线,对所述等高线进行均匀采样得到三维采样点,基于所述三维采样点构建网格;

预处理模块,用于将所述三维采样点分布在所述网格的网格中,并将落入所述网格中的三维采样点的z坐标值作为该网格的基础高程值;

插入模块,用于基于所述网格上现有的基础高程值,利用预设的插值算法在所述网格的空白网格中插入新增高程值;及

生成模块,用于基于所述基础高程值及新增高程值在所述网格上生成三维地形模型;

其中,所述插值算法为:

找到采样点集中距离当前网格点最近的多个点;

使用以下公式对当前网格点进行插值:

使用岭回归方法对网格曲面进行初步平滑,在插值方程中加入正则化项:

其中:

是当前网格点;

是当前网格点的高程值;

表示距离当前网格点最近的点的高程值,下标的数字越小对应的距离越小;

代表权重,表示当前网格点的高程值分别取多个点的高程值的权重;

代表正则化系数。

优选地,当存在多个所述三维采样点落入同一个网格中时,将多个所述三维采样点的z坐标值取平均值存入对应的网格中。

为实现上述目的,本发明还进一步提供一种电子设备,所述电子设备包括:

存储器,存储至少一个指令;及

处理器,执行所述存储器中存储的指令以实现上述所述的三维地形模型生成方法。

为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有三维地形模型生成程序,所述三维地形模型生成程序可被一个或者多个处理器执行,以实现如上所述的三维地形模型生成方法的步骤。

本发明提出的三维地形模型生成方法、装置、电子设备及存储介质,通过获取构成目标模型的等高线,对所述等高线进行均匀采样得到三维采样点,基于所述三维采样点构建网格;将所述三维采样点分布在所述网格的网格中,并将落入所述网格中的三维采样点的z坐标值作为该网格的基础高程值;基于所述网格上现有的基础高程值,利用预设的插值算法在所述网格的空白网格中插入新增高程值;及基于所述基础高程值及新增高程值在所述网格上生成三维地形模型。本发明能实现三维地形模型表面更加平滑,可视化效果更好。

附图说明

图1为本发明一实施例提供的三维地形模型生成方法的流程示意图;

图2为本发明一实施例提供的三维地形模型生成装置的模块示意图;

图3为本发明一实施例提供的实现三维地形模型生成方法的电子设备的内部结构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参附图做进一步说明。

具体实施方式

为了使本发明的目的、技术本实施例及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术本实施例可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术本实施例的结合出现相互矛盾或无法实现时应当认为这种技术本实施例的结合不存在,也不在本发明要求的保护范围之内。

本发明提供一种三维地形模型生成方法。参照图1所示,为本发明一实施例提供的三维地形模型生成方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。

该方法包括:

s110,获取构成目标模型的等高线,对所述等高线进行均匀采样得到三维采样点,基于所述三维采样点构建网格。

在本实施例中,目标模型指的是三维地形模型,通过获取构成目标模型的等高线,对等高线进行均匀采样得到三维采样点,基于三维采样点构建网格。网络中的每一个网格的四个顶点对应于相应位置上的像素点。从数据结构的角度出发,认为每一个像素点对应于一个二维数组中相应的一个元素,数组元素的索引下标分别对应于这个像素点在位图中的排列位置。为了获取dem表面中节点在三维空间中的坐标,将每一个二维元素的一维下标和二维下标分别对应于某一个节点的x坐标和y坐标,节点的高程值对应于该数组元素,用r[i][j](0<=i<=m;0<=j<=n)来表示。本发明加载一幅规模为259×261的位图作为构建地形网络的原始数据。初始化地形的最大高度和最小高度,确定网格之间的网格间距。

s120,将所述三维采样点分布在所述网格的网格中,并将落入所述网格中的三维采样点的z坐标值作为该网格的基础高程值。

在本实施例中,将三维采样点分布在网格的网格中,并将落入网格中的三维采样点的z坐标值作为该网格的基础高程值,当存在多个三维采样点落入同一个网格中时,将多个三维采样点的z坐标值取平均值存入对应的网格中。

s130,基于所述网格上现有的基础高程值,利用预设的插值算法在所述网格的空白网格中插入新增高程值。

由于根据实际获取的有限三维采样点构建的三维地形网格会存在表面部平滑的问题,影响可视化效果,因此,在本实施例中,通过基于网格上现有的基础高程值,利用预设的插值算法在网格的空白网格中插入新增高程值,实现在网格中插入更多的点,从而使得构建的三维地形模型表面更加平滑,可视化效果更好。

其中,所述插值算法为:

找到采样点集中距离当前网格点最近的多个点,例如三个;

使用以下公式对当前网格点进行插值:

使用岭回归方法对网格曲面进行初步平滑,在插值方程中加入正则化项:

其中:

是当前网格点;

是当前网格点的高程值;

表示距离当前网格点最近的点的高程值,下标的数字越小对应的距离越小;

代表权重,表示当前网格点的高程值分别取多个点的高程值的权重,受当前像素点和高程采样点的距离影响,越近权重越大,反之越小;

代表正则化系数。数值趋于0的正数。

相较于常规的插值算法,本发明引入了正则化函数,能够使所有插入的新增高程值之间存在线性相关,始终处于平稳的数值范围内,进而来提升新增高程值的稳定性与可靠性,避免插入的新增高程值存在偏大或偏小的情况,导致影响构建的三维地形模型的平滑效果。

s140,基于所述基础高程值及新增高程值在所述网格上生成三维地形模型。

在本实施例中,基于基础高程值及新增高程值在网格上生成平滑度及可视化效果更好的三维地形模型。

在另一实施例中,该方法还包括以下步骤:

将所述网格进行均匀划分成至少两个面积等同的单元块,通过异步线程分别对每个所述单元块进行同步运算得到所述三维地形模型。

在本实施例中,通过将网格进行均匀划分成至少两个面积等同的大小相同的单元块,采用异步线程分别对每个单元块进行同步运算得到三维地形模型,能够加快模型构建速度,假如划分成四个单元块,便相当于只要原先处理时间的四分之一。

在另一实施例中,该方法还包括以下步骤:

在被划分的相邻两个所述单元块之间预留重叠网格。

为了避免被切分成的单元块在分开运算时存在数据孤立的情况发生,导致构建的模型之间存在断层,因此,在本实施例中,在被划分的相邻两个单元块之间预留重叠网格,提升单元块之间的数据关联性。

在另一实施例中,该方法还包括以下步骤:

利用预设平滑算法对所述重叠网格进行卷积平滑处理,以重置所述重叠网格的高程值。

由于重叠网格在经过多线程的运算后,会出现重叠网格被重复运算多次,导致由重叠网格构建出来的部分模型存在不平滑的问题,因此,在本实施例中,利用预设平滑算法对重叠网格进行卷积平滑处理,以重置重叠网格的高程值。

其中,当所述重叠网格仅包含两个单元块时,单个待卷积平滑处理的网格的高程值的预设平滑算法包括:

取任一待卷积平滑处理的所述网格及其四周的八个网格构成的九个网格对应的高程值求平均值,将所述平均值除以二得到重置的高程值;

当所述重叠网格包含四个单元块时,单个待卷积平滑处理的网格的高程值的预设平滑算法包括:

取任一待卷积平滑处理的所述网格及其四周的八个网格构成的九个网格对应的高程值求平均值,将所述平均值除以四得到重置的高程值。

如图2所示,是本发明三维地形模型生成装置100的功能模块图。

本发明所述三维地形模型生成装置100可以安装于电子设备中。根据实现的功能,所述三维地形模型生成装置100可以包括构建模块110、预处理模块120、插入模块130及生成模块140。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。

在本实施例中,关于各模块/单元的功能如下:

构建模块110,用于获取构成目标模型的等高线,对所述等高线进行均匀采样得到三维采样点,基于所述三维采样点构建网格。

在本实施例中,目标模型指的是三维地形模型,通过获取构成目标模型的等高线,对等高线进行均匀采样得到三维采样点,基于三维采样点构建网格。网络中的每一个网格的四个顶点对应于相应位置上的像素点。从数据结构的角度出发,认为每一个像素点对应于一个二维数组中相应的一个元素,数组元素的索引下标分别对应于这个像素点在位图中的排列位置。为了获取dem表面中节点在三维空间中的坐标,将每一个二维元素的一维下标和二维下标分别对应于某一个节点的x坐标和y坐标,节点的高程值对应于该数组元素,用r[i][j](0<=i<=m;0<=j<=n)来表示。本发明加载一幅规模为259×261的位图作为构建地形网络的原始数据。初始化地形的最大高度和最小高度,确定网格之间的网格间距。

预处理模块120,用于将所述三维采样点分布在所述网格的网格中,并将落入所述网格中的三维采样点的z坐标值作为该网格的基础高程值。

在本实施例中,将三维采样点分布在网格的网格中,并将落入网格中的三维采样点的z坐标值作为该网格的基础高程值,当存在多个三维采样点落入同一个网格中时,将多个三维采样点的z坐标值取平均值存入对应的网格中。

插入模块130,用于基于所述网格上现有的基础高程值,利用预设的插值算法在所述网格的空白网格中插入新增高程值。

由于根据实际获取的有限三维采样点构建的三维地形网格会存在表面部平滑的问题,影响可视化效果,因此,在本实施例中,通过基于网格上现有的基础高程值,利用预设的插值算法在网格的空白网格中插入新增高程值,实现在网格中插入更多的点,从而使得构建的三维地形模型表面更加平滑,可视化效果更好。

其中,所述插值算法为:

找到采样点集中距离当前网格点最近的多个点,例如三个;

使用以下公式对当前网格点进行插值:

使用岭回归方法对网格曲面进行初步平滑,在插值方程中加入正则化项:

其中:

是当前网格点;

是当前网格点的高程值;

表示距离当前网格点最近的点的高程值,下标的数字越小对应的距离越小;

代表权重,表示当前网格点的高程值分别取多个点的高程值的权重,受当前像素点和高程采样点的距离影响,越近权重越大,反之越小;

代表正则化系数。数值趋于0的正数。

相较于常规的插值算法,本发明引入了正则化函数,能够使所有插入的新增高程值之间存在线性相关,始终处于平稳的数值范围内,进而来提升新增高程值的稳定性与可靠性,避免插入的新增高程值存在偏大或偏小的情况,导致影响构建的三维地形模型的平滑效果。

生成模块140,用于基于所述基础高程值及新增高程值在所述网格上生成三维地形模型。

在本实施例中,基于基础高程值及新增高程值在网格上生成平滑度及可视化效果更好的三维地形模型。

在另一实施例中,该装置还包括划分模块,用于:

将所述网格进行均匀划分成至少两个面积等同的单元块,通过异步线程分别对每个所述单元块进行同步运算得到所述三维地形模型。

在本实施例中,通过将网格进行均匀划分成至少两个面积等同的大小相同的单元块,采用异步线程分别对每个单元块进行同步运算得到三维地形模型,能够加快模型构建速度,假如划分成四个单元块,便相当于只要原先处理时间的四分之一。

在另一实施例中,该装置还包括预留模块,用于:

在被划分的相邻两个所述单元块之间预留重叠网格。

为了避免被切分成的单元块在分开运算时存在数据孤立的情况发生,导致构建的模型之间存在断层,因此,在本实施例中,在被划分的相邻两个单元块之间预留重叠网格,提升单元块之间的数据关联性。

在另一实施例中,该装置还包括卷积平滑处理模块,用于:

利用预设平滑算法对所述重叠网格进行卷积平滑处理,以重置所述重叠网格的高程值。

由于重叠网格在经过多线程的运算后,会出现重叠网格被重复运算多次,导致由重叠网格构建出来的部分模型存在不平滑的问题,因此,在本实施例中,利用预设平滑算法对重叠网格进行卷积平滑处理,以重置重叠网格的高程值。

其中,当所述重叠网格仅包含两个单元块时,单个待卷积平滑处理的网格的高程值的预设平滑算法包括:

取任一待卷积平滑处理的所述网格及其四周的八个网格构成的九个网格对应的高程值求平均值,将所述平均值除以二得到重置的高程值;

当所述重叠网格包含四个单元块时,单个待卷积平滑处理的网格的高程值的预设平滑算法包括:

取任一待卷积平滑处理的所述网格及其四周的八个网格构成的九个网格对应的高程值求平均值,将所述平均值除以四得到重置的高程值。

如图3所示,是本发明实现三维地形模型生成方法的电子设备的结构示意图。

所述电子设备1可以包括处理器12、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器12上运行的计算机程序,如三维地形模型生成程序10。

其中,所述存储器11至少包括一种类型的可读存储介质,所述计算机可用存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(smartmediacard,smc)、安全数字(securedigital,sd)卡、闪存卡(flashcard)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如三维地形模型生成程序10的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

所述处理器12在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种判断芯片的组合等。所述处理器12是所述电子设备的判断核心(controlunit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如三维地形模型生成程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。

所述总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、判断总线等。所述总线被设置为实现所述存储器11以及至少一个处理器12等之间的连接通信。

图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器12逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。

进一步地,所述电子设备1还可以包括网络接口13,可选地,所述网络接口13可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。

可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

所述电子设备1中的所述存储器11存储的三维地形模型生成程序10是多个指令的组合,在所述处理器12中运行时,可以实现:

获取构成目标模型的等高线,对所述等高线进行均匀采样得到三维采样点,基于所述三维采样点构建网格;

将所述三维采样点分布在所述网格的网格中,并将落入所述网格中的三维采样点的z坐标值作为该网格的基础高程值;

基于所述网格上现有的基础高程值,利用预设的插值算法在所述网格的空白网格中插入新增高程值;及

基于所述基础高程值及新增高程值在所述网格上生成三维地形模型;

其中,所述插值算法为:

找到采样点集中距离当前网格点最近的多个点;

使用以下公式对当前网格点进行插值:

使用岭回归方法对网格曲面进行初步平滑,在插值方程中加入正则化项:

其中:

是当前网格点;

是当前网格点的高程值;

表示距离当前网格点最近的点的高程值,下标的数字越小对应的距离越小;

代表权重,表示当前网格点的高程值分别取多个点的高程值的权重;

代表正则化系数。

在另一实施例中,该程序还执行以下步骤:

将所述网格进行均匀划分成至少两个面积等同的单元块,通过异步线程分别对每个所述单元块进行同步运算得到所述三维地形模型。

在另一实施例中,该程序还执行以下步骤:

被划分的相邻两个所述单元块之间预留有重叠网格。

在另一实施例中,该程序还执行以下步骤:

利用预设平滑算法对所述重叠网格进行卷积平滑处理,以重置所述重叠网格的高程值。

具体地,所述处理器11对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。

在本发明所提供的几个实施例中,理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。

因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。

此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1