一种基于径向基函数网络的地形合成方法与流程

文档序号:16682440发布日期:2019-01-19 00:38阅读:233来源:国知局
一种基于径向基函数网络的地形合成方法与流程

本发明涉及虚拟仿真技术领域,具体涉及一种基于径向基函数网络的地形合成方法,采用数字高程模型(digitalelevationmode,简称dem)的地形数据块,采用径向基函数网络对地形特征的学习及提取;在地形合成时,根据用户手绘草图,结合输入高程数据,利用预先学习的特征,可以合成与用户草图相对应的定制地形。该方法具有简单、有效的特点,能够根据用户手绘草图合成特定的地形。



背景技术:

地形是三维虚拟场景中的主要视觉元素,由于其在实际生活中的广泛应用价值,使得地形合成技术成为了计算机视觉领域的研究热点。无论是在自然灾害预防还是在影视游戏创作中,真实感地形能更好地提高用户的使用体验。目前地形合成技术大致可以分为三类:基于过程性的建模方法、基于物理侵蚀的建模方法及基于用户草图的建模方法。近年来,随着dem地形数据的普及使用,人们开始结合真实地形数据特征,研究基于草图的建模方法,并通过草图控制,实现用户的定制功能。

同时,为了实现地形的智能化合成,近年来机器学习和深度学习飞速发展,研究人员尝试用人工智能方法理解真实地形数据中的隐式特征,并出现了基于卷积神经网络的地形合成方法,并实现了对用户输入山脉轮廓线进行深度信息预测,提高了合成地形的合理性。但是,利用深度学习方法合成地形,存在的主要问题就是网络的结构复杂,网络参数训练难于收敛,这些都是目前智能化地形合成研究中存在的问题。



技术实现要素:

本发明的目的是针对现有技术的不足,并针对地形合成中的实际问题,提出一种基于径向基函数网络的地形合成方法,该方法根据用户手绘草图,结合输入高程数据,利用预先学习的特征,可以合成与用户草图相对应的定制地形。该方法具有简单、有效的特点,能够根据用户手绘草图合成特定的地形。

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

一种基于径向基函数网络的地形合成方法,特点是该方法包括以下具体步骤:

步骤1:准备高程数据块

从srtm网站http://srtm.csi.cgiar.org下载wgs84坐标系统的高程数据块d,d的空间分辨率为90m×90m至200m×200m之间,d中像素点的数目为n,任意点a的高度记为ha;

步骤2:建立训练数据集:

(1)首先,计算任意点a的熵ea:

其中,pk是任意点a的3×3邻域t中第k个点(其高度为hk)的高度分布,k=1,2…,9,pk计算为:

其中,是t中9个邻域点的高度统计,η为t中9个点的高度最小值;δ为常量,取0.0001,ht(t=1,2,…,9)表示t中第t个邻域点的高度;

(2)建立a的特征向量:va=(ea,ha),进一步利用d中每个点的特征向量构建特征向量集s={(es,hs)|1≤s≤n};

(3)从s中随机选取m个特征向量ce=(ee,he)(e=1,2…,m),作为m个聚类中心,3≤m≤5,利用k-means方法,对s中的特征向量聚为m个类:lf(f=1,2…,m);

(4)分别对各类lf(f=1,2…,m)中像素粒子的熵进行求和统计,将具有最大统计熵的类记为lm(1≤m≤m),将lm看作是显著性区域;

(5)用lm建立数据集:lm中特征向量对应的像素粒子集记为g,利用d8算法,采用3×3窗口计算g的骨架b,具体地,利用像素周围的3×3邻域,计算中心与其邻域的周围8个像素作差,将差最大的方向作为骨架方向。g中粒子的特征向量集为u={(dg,hg)|1≤g≤q},dg是g中任意粒子j到b的最短距离,hg为j的高度,q表示g中数据元素的个数;

步骤3:构建径向基函数网络,进行学习训练

建立三层前向传播的径向基函数网络x,其包括输入层、隐含层及输出层:训练时,采用监督学习方法,网络输入是dg,输出的监督数据是hg,g=1,2…,q;在隐含层中,径向基函数采用高斯函数,模型的训练参数包括:高斯核的个数、隐含层神经元的中心(基函数的中心)、方差以及隐含层与输出层之间的权值;训练的损失函数定义为:

其中,pg是x网络输出的预测高度结果,hg作为高度的监督数据,1≤g≤q;

训练过程:(a)将高斯核的个数k初始化为5;(b)训练x,并利用公式(3)计算损失函数f,如果f大于阈值0.01,高斯核的个数k=k+5,并且转步骤(b)进行下一次训练;否则,如果f小于或等于阈值0.01,训练终止;

步骤4:地形合成

用户输入二值图像v作为手绘草图,v采用画图软件画出用户的草图,并保存为二值图像,将v作为骨架,计算v上任意一点到骨架的距离jb(b=1,2…,x),x表示合成地形中像素的个数;

将jb(b=1,2…,x)输入到网络x中,利用x网络中已经训练好的参数进行预测,得到合成地形的每个点的高度值,这样得到合成的地形。

本发明具有简单、实用的特点,根据用户手绘草图,结合输入高程数据,能够合成特定的用户定制的地形。

附图说明

图1为本发明显著性区域检测的结果图;

图2为本发明地形合成的结果图。

具体实施方式

实施例

下面结合附图对本发明进一步说明。

本实施例在pc机上windows1064位操作系统下进行实施,其硬件配置是处理器coretmi5-75003.4ghzcpu,8gb内存,软件环境为matlab2015b,编程采用python语言,结合视觉开源库opencv2.4.4以及开源栅格空间数据转换库gdal。

本发明具体实施例方案是:

一种基于径向基函数网络的地形合成方法,该方法包括以下具体步骤:

步骤1:准备高程数据块

从srtm网站http://srtm.csi.cgiar.org下载wgs84坐标系统的高程数据块d,d的空间分辨率为90m×90m之间,d中像素点的数目为n,任意点a的高度记为ha;

步骤2:建立训练数据集:

(1)首先,计算a的熵ea:

其中,pk是a的3×3邻域t中第k个点(其高度为hk)的高度分布,k=1,2…,9,pk计算为:

其中,是t中9个邻域点的高度统计,η为t中9个点的高度最小值;δ为常量,取0.0001,ht(t=1,2,…,9)表示t中第t个邻域点的高度;

(2)建立a的特征向量:va=(ea,ha),进一步利用d中每个点的特征向量构建特征向量集s={(es,hs)|1≤s≤n};

(3)从s中随机选取3个特征向量ce=(ee,he)(e=1,2,3),作为3个聚类中心,利用k-means方法,对s中的特征向量聚为3个类:lf(f=1,2,3);

(4)分别对各类lf(f=1,2,3)中像素粒子的熵进行求和统计,将具有最大统计熵的类记为lm(1≤m≤3),将lm看作是显著性区域;

(5)用lm建立数据集:lm中特征向量对应的像素粒子集记为g,利用d8算法,采用3×3窗口计算g的骨架b,g中粒子的特征向量集为u={(dg,hg)|1≤g≤q},dg是g中任意粒子j到b的最短距离,hg为j的高度,q表示g中数据元素的个数;

步骤3:构建径向基函数网络,进行学习训练

建立三层前向传播的径向基函数网络x,其包括输入层、隐含层及输出层:训练时,采用监督学习方法,网络输入是dg,输出的监督数据是hg,g=1,2…,q;在隐含层中,径向基函数采用高斯函数,模型的训练参数包括:高斯核的个数、隐含层神经元的中心(基函数的中心)、方差以及隐含层与输出层之间的权值;训练的损失函数定义为:

其中,pg是x网络输出的预测高度结果,hg作为高度的监督数据,1≤g≤q;

训练过程:(a)将高斯核的个数k初始化为5;(b)训练x,并利用公式(3)计算损失函数f,如果f大于阈值0.01,高斯核的个数k=k+5,并且转步骤(b)进行下一次训练;否则,如果f小于或等于阈值0.01,训练终止;

步骤4:地形合成

用户输入二值图像v作为手绘草图,v采用画图软件画出用户的草图,并保存为二值图像,将v作为骨架,计算v上任意一点到骨架的距离jb(b=1,2…,x),x表示合成地形中像素的个数;

将jb(b=1,2…,x)输入到网络x中,利用x网络中已经训练好的参数进行预测,得到合成地形的每个点的高度值,这样得到合成的地形。

图1为根据dem地形数据进行显著性区域检测的结果。图中给出了3组实验结果,每一行为一组结果;在每行中,左侧第1列为输入的高程数据块,右侧的结果显示了显著性区域检测的结果,从图中可以看出,显著性区域对应着dem地形块的细节区,从显著性区域提取特征,创建数据集;

图2为根据用户输入草图进行地形合成的结果。图中给出了3组实验结果,每一行为一组结果;在每行中,左侧第1列结果为输入的高程数据块,中间一列为用户输入的草图;右侧第1列结果为合成的地形结果,从合成的结果可以明显看出,本发明所提出的方法可以根据用户草图实现真实感地形的合成,方法简单方便。

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