一种基于单幅图像的河流网络过程式生成方法与流程

文档序号:12305607阅读:186来源:国知局
一种基于单幅图像的河流网络过程式生成方法与流程

本发明属于计算机图形学领域,特别是涉及一种数据驱动的自然场景快速过程化建模的方法。



背景技术:

3d建模在影视制作、游戏开发、虚拟现实等领域都是必不可少的环节之一,但是3d建模的过程非常繁琐,对于大规模的自然场景,使用3dmax或者maya等软件会耗费过多的人力和时间资源。过程化建模技术是一种基于规则的建模方法,运用该技术可以对特定的场景或者物体等进行快速的建模,从而大大的提升建模的效率。过程化建模比较适合生成具有重复子结构或自相似特征的物体,如植物、道路、地形、城市等。如果定义合适的语法规则和输入参数,则过程化建模可以生成各种逼真的3d内容。

河流以其多样性和可观赏性,在虚拟场景中可以大大的增强用户体验,对于自然场景来说是不可缺少的一部分。然而由于河流复杂的拓扑结构、丰富的形状几何类型以及它同地形的关联,使用传统建模软件对河流网络进行建模是非常困难的。并且由于传统的过程化建模技术输出内容的不可控性,结合交互式编辑与过程化建模的方法可以增强结果的控制性,但是交互编辑的工作量是不可忽视的。现有的专门针对河流网络的建模方法主要有2种,一种是基于交互式编辑的方法,另一种是传统的过程式生成方法。前者需要考虑河流与地形的复杂的拓扑结构、丰富的形状几何类型以及河流同地形的关联,需要耗费较大的人力工作;后者由于过程式方法的随机性,不能很好的依据参数控制输出结果。如果能在指定的地形上很好的生成符合用户意图河流网格,并且使用尽量少的操作,则对河流网络建模是一个非常大的改进。



技术实现要素:

本发明的目的在于使用较少的交互操作实现在指定地形上的河流网络建模,提出了一种基于单幅图像的河流网络过程式生成方法,该方法使用河流图像作为输入,能够大大简化过程化建模中调整参数的过程,生成逼真的河流网络,并且具有一定的可控性。

实现本发明目的的具体技术方案是:

一种基于单幅图像的河流网络过程式生成方法,该方法包含以下步骤:

a)使用参数模型将自然界中的河流网络的形状特性和几何特性量化的表示出来,具体包括:

i)形状参数模型

使用形状参数来控制河流网络的形状特性,具体包括河流的弯曲度、支流和汇流的数目、湖泊的大小和数目;河流网络结构被表示为一个有向无环图n为河流之间的交界点,ε为河流的河段;其中nr表示河流河段的个数;dr表示河流起点到终点的直线距离;ksm和ksv分别表示所有河段弯曲系数的期望和方差,河段的弯曲系数k计算如下:

其中,u为该河段的实际长度,d为该河段起始点到终点的直线距离;参数dsm和dsv分别表示所有河段直线距离的期望和方差;参数nb、nc和nl分别表示支流、汇流以及湖泊的个数;参数slm和slv分别表示湖泊大小的期望和方差;

ii)几何参数模型

使用几何参数来控制河流的河道几何特性,具体包括河道的宽度和深度、湖泊的深度;河段的宽度和深度随河道等级的递增而递减,主流的河道等级均为1,随着河流分叉,河道等级保持不变或者增加1;参数ωr和χrw分别表示等级为1的河道宽度及河道宽度随河道等级下降的系数;参数hr和χrh分别表示等级为1的河道深度及河道深度随河道等级的增加而下降的系数:

ω=ωr×(χrw)λ(2)

h=hr×(χrh)λ(3)

其中ω和h为等级为λ的河道的宽度和深度;参数表示河流分叉时河道等级递增的概率;参数hlm和hlv分别表示湖泊深度的期望和方差;

b)输入河流网络图片,计算该河流网络的形状参数的值,具体包括:

输入河流网络图片,使用grabcut方法从图像中分割出河流部分,并提取河流网络骨骼结构;标记河流的主流部分并指定河流的起点和终点,遍历河流骨骼结构,并将其表示为有向无环图对于的所有不是主流的边ε,若ε的上游有河段则将其标记为支流,若ε的下游有河段则将其标记为汇流;然后计算输入河流网络的形状参数的值

c)输入地形高度图,基于河流的形状参数和几何参数过程式的生成地形一致的河流网络,具体包括:

i)待生成河流网络的形状参数计算

给定待生成河流网络的地形的高度图并指定待生成河流的起始位置ps和终止位置pm,选取的ps的地形高度必须高于pm的地形高度,待生成河流网络的直线距离为:

待生成河流网络的其余形状参数的值计算如下:

其中对待生成河流网络的河段长度和湖泊大小进行了按场景规模比例计算,为待生成河流网络的形状参数,根据需要生成河流的几何特征(河道的宽度和深度、湖泊的深度)输入河流的几何参数

ii)河流网络生成

河流网络的河段均使用b样条进行插值;在待生成河流网络的地形,首先生成从河流起始位置到终止位置的主流;为使生成的主流符合地形的起伏,使用考虑地形高度的中点位移法对b样条的型值点进行位置调整,选取的型值点约束要求如下:

其中p为待调整型值点的位置,rs和rm为待调整的河段的起点和终点,为地形高度的梯度,计算积分时只取的正数部分;使用考虑地形高度的中点位移法将主流调整完毕后,在主流上随机选取个点添加进中,并将主流分裂为个河段;在扩散河流网络的过程中,每次在下面步骤中随机选取一种满足条件的步骤进行扩散,重复迭代扩散直到没有满足条件的步骤:

①、扩散支流,如果中支流的数量小于则执行此步骤,随机选取中一条河段ri,添加新的支流bi到中,bi的起点为ri的终点,bi的直线距离从正态分布中采样,bi的弯曲系数从正态分布由采样,bi的河道等级在ri的河道等级基础上以概率增加1,bi的宽度和深度按照公式(2)和公式(3)计算;

②、扩散汇流,如果中汇流的数量小于则执行此步骤,随机选取中两条河段ri和rj,添加新的汇流ci到中,ci的起点为ri的终点,ci的终点为rj的起点,ci的弯曲系数从正态分布中采样,ci的河道等级在ri的河道等级基础上以概率增加1,ci的宽度和深度按照公式(2)和公式(3)计算;

③、扩散湖泊,如果中湖泊的数量小于则执行此步骤,随机选取中一条河段ri,在ri的终点处添加新的湖泊li,li的大小从正态分布n(slm,slv)中采样,li的深度从正态分布中采样;

d)使用模拟退火算法对生成场景进行优化,具体包括:

在每次优化迭代的过程中,对生成的河流网络进行调整,并计算当前河流网络与输入河流网络的距离函数的值:

其中ξc和ξl分别为河流弯曲度的距离以及被河流包围的陆地面积的距离;ξc计算如下:

其中ci和分别为输入河流网络和当前河流网络中河段的弯曲度,m为河流网络河段的数目;ξl计算如下:

其中分别表示河流网络中的被河流包围陆地面积;若距离函数的值减少则接受优化调整,否则以概率接受调整,其中δe为距离函数增加的部分,t为退火算法当前的温度;经过模拟退火优化,收敛得到的结果为最终的河流网络。

本发明的有益效果:

本发明使用河流的俯视照片或卫星影像等作为输入,提取输入图像的河流特性,并将其运用在新的地形上,具有非常简洁的交互。本发明还使用模拟退火算法对输出结果进行进一步优化,以符合输入图像的河流特性。

总之,应用本发明可以快速地对河流网络进行建模,与传统方法相比,具有更少的用户交互并具有一定的结果可控性。

附图说明

图1为本发明流程图;

图2为本发明考虑地形高度的中点位移法示意图;

图3为本发明使用三种不同的河流参数值生成的对应河流网络图;

图4和图5为本发明使用两个不同的输入河流图像生成的对应河流网络图。

具体实施方式

本发明包括以下步骤:

1)河流参数化模型表示

使用参数模型将自然界中的河流网络的弯曲度、支流、汇流以及相连的湖泊特性量化的表示出来,其中使用形状参数控制河流的网络拓扑特性,使用几何参数控制河道几何特性。

2)输入河流图片参数计算

输入河流网络的俯视图像,使用grabcut方法从图像中分割出河流部分,并提取其骨骼结构,基于河流的网络结构计算河流形状参数。

3)依据参数过程式生成河流网络

输入地形高度图,基于河流的形状参数和几何参数过程式的生成地形一致的河流网络。

4)河流网络优化

评估生成河流网络与输入河流图片的距离函数的值,并使用模拟退火算法迭代优化生成河流网络。

本发明的河流参数化模型表示步骤具体为:

使用形状参数来控制河流网络的形状特性,具体包括河流的弯曲度、支流和汇流的数目、湖泊的大小和数目;河流网络结构被表示为一个有向无环图n为河流之间的交界点,ε为河流的河段;其中nr表示河流河段的个数;dr表示河流起点到终点的直线距离;ksm和ksv分别表示所有河段弯曲系数的期望和方差,河段的弯曲系数k计算如下:

其中,u为该河段的实际长度,d为该河段起始点到终点的直线距离;参数dsm和dsv分别表示所有河段直线距离的期望和方差;参数nb、nc和nl分别表示支流、汇流以及湖泊的个数;参数slm和slv分别表示湖泊大小的期望和方差。

使用几何参数来控制河流的河道几何特性,具体包括河道的宽度和深度、湖泊的深度;河段的宽度和深度随河道等级的递增而递减,主流的河道等级均为1,随着河流分叉,河道等级保持不变或者增加1;参数ωr和χrw分别表示等级为1的河道宽度及河道宽度随河道等级下降的系数;参数hr和χrh分别表示等级为1的河道深度及河道深度随河道等级的增加而下降的系数:

ω=ωr×(χrw)λ(2)

h=hr×(χrh)λ(3)

其中ω和h为等级为λ的河道的宽度和深度;参数表示河流分叉时河道等级递增的概率;参数hlm和hlv分别表示湖泊深度的期望和方差。

本发明的输入河流图片参数计算步骤具体为:

输入河流网络图片,使用grabcut方法从图像中分割出河流部分,并提取河流网络骨骼结构;标记河流的主流部分并指定河流的起点和终点,遍历河流骨骼结构,并将其表示为有向无环图对于的所有不是主流的边ε,若ε的上游有河段则将其标记为支流,若ε的下游有河段则将其标记为汇流;然后计算输入河流网络的形状参数的值

本发明的过程式生成河流网络步骤具体为:

给定待生成河流网络的地形的高度图并指定待生成河流的起始位置ps和终止位置pm,选取的ps的地形高度必须高于pm的地形高度,待生成河流网络的直线距离为:

待生成河流网络的其余形状参数的值计算如下:

其中对待生成河流网络的河段长度和湖泊大小进行了按场景规模比例计算,为待生成河流网络的形状参数,根据需要生成河流的几何特征(河道的宽度和深度、湖泊的深度)手动输入河流的几何参数

河流网络的河段均使用b样条进行插值;在待生成河流网络的地形,首先生成从河流起始位置到终止位置的主流;为使生成的主流符合地形的起伏,使用考虑地形高度的中点位移法对b样条的型值点进行位置调整,选取的型值点约束要求如下:

其中p为待调整型值点的位置,rs和rm为待调整的河段的起点和终点,为地形高度的梯度,计算积分时只取的正数部分;使用考虑地形高度的中点位移法将主流调整完毕后,在主流上随机选取个点添加进中,并将主流分裂为个河段;在扩散河流网络的过程中,每次在下面步骤中随机选取一种满足条件的步骤进行扩散,重复迭代扩散直到没有满足条件的步骤:

①、扩散支流,如果中支流的数量小于则执行此步骤,随机选取中一条河段ri,添加新的支流bi到中,bi的起点为ri的终点,bi的直线距离从正态分布中采样,bi的弯曲系数从正态分布由采样,bi的河道等级在ri的河道等级基础上以概率增加1,bi的宽度和深度按照公式(2)和公式(3)计算;

②、扩散汇流,如果中汇流的数量小于则执行此步骤,随机选取中两条河段ri和rj,添加新的汇流ci到中,ci的起点为ri的终点,ci的终点为rj的起点,ci的弯曲系数从正态分布中采样,ci的河道等级在ri的河道等级基础上以概率增加1,ci的宽度和深度按照公式(2)和公式(3)计算;

③、扩散湖泊,如果中湖泊的数量小于则执行此步骤,随机选取中一条河段ri,在ri的终点处添加新的湖泊li,li的大小从正态分布n(slm,slv)中采样,li的深度从正态分布中采样。

本发明的优化生成河流网络的步骤具体为:

使用模拟退火框架使得生成河流网络更加符合输入河流网络的特性。在每次优化迭代的过程中,对生成的河流网络进行调整,若调整后的河流网络更接近输入河流,则接受调整,否则以一定概率接受调整,具体算法流程如算法1所示,其中t0为模拟退火算法初始温度,每次迭代温度t以速率α冷却。

算法1.河流网络优化算法

t=t0

对i从1到n

对j从1到m

进行调整得到

如果

作为输出河流,结束算法

如果δe<0则

否则以概率

t=t×α

算法1中计算两个河流网络的距离如下:

其中ξc和ξl分别为河流弯曲度的距离以及被河流包围的陆地面积的距离;ξc计算如下:

其中ci和分别为输入河流网络和当前河流网络中河段的弯曲度,m为河流网络河段的数目;ξl计算如下:

其中分别表示河流网络中的被河流包围陆地面积;若距离函数的值减少则接受优化调整,否则以概率接受调整,其中δe为距离函数增加的部分,t为退火算法当前的温度;经过模拟退火优化,收敛得到的结果为最终的河流网络。

本发明的具体实现过程为:

如图1所示,首先用户提供河流网络的俯视图片,该图片可以为航拍照片或者直接从地理信息系统中下载得到。然后使用grabcut方法分割输入图片并提取河流骨骼结构,从而获取输入河流网络的模型参数。然后结合输入地形高度图过程式生成河流网络,之后迭代使用模拟退火算法对输出场景进行优化,最后得到输出河流网络。

本发明基于单幅图像与输入地形图进行河流网络过程式生成,效果展示说明如下:

图3展示了本发明的参数模型生成场景的多样性,图片左侧为河流网络图,图片右侧为对应的3d场景。图3a、3b、3c展示了本发明在不同的地形上生成了丰富的河流网络,且河流网络变化非常大。

图4展示了在山地地形下输出的河流结果。左上为从googleearth提取的河流图片;右上为在地形高度图上生成的河流网络展示;图片中间和下方为生成的三维场景。可以看出,我们的方法生成的河流很好的沿着地形扩散,并且与输入图像具有很大的相似性。

图5展示了输入图像为具有汇流及多条小型支流的河流网络。本发明在平原地区生成了相似的河流网络。

以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。

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