基于数据驱动的流体动画加速生成方法技术

技术编号:13882857 阅读:87 留言:0更新日期:2016-10-23 14:56
一种基于数据驱动的流体动画加速生成方法,利用训练样本训练完成之后的人工神经网络作为求解器,在欧拉法流体模拟过程中投影步的求解十分迅速,并且可以在快速求解的同时保持较小的求解误差,从而保证了求解结果的准确性。本发明专利技术利用之前在投影步前后计算得到的训练数据,经过人工神经网络的训练,调整人工神经网络的传输节点权值,直接得到最终的计算模型,完全避免原本耗时的投影步数值计算过程。本发明专利技术适用于欧拉法模拟流体动画时,大幅加速求解投影步计算。

【技术实现步骤摘要】

本专利技术涉及的是一种图像处理领域的技术,具体是一种借助大量训练数据以及人工神经网络,极大加速欧拉法生成流体动画过程中最为耗时的投影步的方法。
技术介绍
基于物理的流体模拟是计算机图形学中的重要研究方向之一。基于物理的流体模拟过程需要求解Navier‐Stokes方程(NS方程)。但因为此方程是一个非线性偏微分方程,拉格朗日法与欧拉方法分别被用于NS方程的离散化求解中。在高精度流体模拟领域,欧拉方法被广泛应用。但是,欧拉法需要在投影步求解泊松方程得到压强,消耗了大量的计算资源。近年来,大数据以及机器学习方法被逐渐用于各个研究领域。作为深度学习的基础结构,人工神经网络是一种模仿生物神经网络的结构和功能的计算模型,常用来对输入和输出间复杂的关系进行建模。人工神经网络可以通过增加隐藏层的数目来有效增强输入数据与输出数据之间的隐藏非线性关系,从而非常适合用于NS方程中投影步的非线性计算过程的建模。同时,经过大量数据训练完成的人工神经网络求解投影步,可以大大加速投影步的求解过程。目前,已有的加速方法是采用更高效的数值方法加速求解流体方程,尤其是泊松方程的求解过程,例如取代早期的高斯赛德尔迭代法的预处理共扼梯度法。加速求解的另一种思路是使用复合网格,目的是将更多的计算资源分配在我们更感兴趣的区域,最终在保持动画视觉效果不变的条件下加速了计算过程。但复合网格的问题在于对于不同的流体场景鲁棒性较差,而且维护不同形状网格的运动过程非常复杂。数据驱动的方法已经在各种物理过程的模拟中广泛使用。在流体模拟领域,最常见的方法就是降维,将求解过程转换到一个低维度的空间后再求解,例如主成分分析。虽然在视觉效果上有着大量缺失,但是计算过程可以大大加速;另一种常见的数据驱动方法就是插值,通过已有的流体模拟数据预测生成未直接模拟的场景中的流体运动过程。中国专利文献号CN201110077969,公开日2011‐08‐10,提供了一种“基于可移动欧拉网格的模拟驱动的烟雾模拟方法”。该专利提出了一种基于欧拉网格的烟雾模拟方法,主要包括三个步骤:1)使用欧拉网格离散化计算出烟雾的运动状态;2)使用模型驱动欧拉网格中的烟雾运动,同时计算其运动状态变化;3)使用改进的体绘制方法使得模拟的烟雾可视化。该专利利用模型驱动的方法加速了烟雾模拟速度。但是当无法准确模拟模型中不存在的的烟雾状态,应用局限性较大。Adrien Treuille等人在《ACM Transaction on Graphics》上发表的《Model reduction for real‐time fluids》(2006年)一文中通过收集大量场景的模拟计算数据,利用主成分分析方法找到维度较低的基函数,从而将原有的求解空间大幅降维,在低维空间中求解后再将解映射回到高维空间。但是这种方法极大地损失了动画的模拟精度,同时在低维空间上求解速度有着进一步加快的潜力。Lubor Ladicky和Barbara Solenthaler等人在《ACM Transaction on Graphics》上发表的《Data‐driven Fluid Simulations using Regression Forests》(2015年)一文中提出将整个拉格朗日方法中的流体模拟过程视为一个回归问题。预处理步骤中,通过历史数据训练回归森林。训练完成后,输入邻域粒子的状态,就可以根据已有数据快速得到当前粒子下一帧的近似速度值。然而这种方法在欧拉方法中的流体模拟过程中并不能适用。
技术实现思路
本专利技术的目的在于克服上述现有技术存在的不足,提出了一种基于数据驱动的流体动画加速生成方法,针对框架中最为耗时的投影步求解方式进行基于数据驱动的改进,从而使得本专利技术易于拓展到各种基于欧拉法的方法中。本专利技术通过以下技术方案实现:本专利技术涉及一种基于数据驱动的流体动画加速生成方法,包括以下步骤:步骤一,采集流体动画模拟的欧拉法中投影步的训练样本并生成训练数据集,即采用Navier‐Stokes方程表征流体运动的物理描述,该方程包括描述流体单元速度的基本方程,即第①部分和限制流体运动过程中的不可压缩性的第②部分,具体为:①②其中:表示流体单元密度,u表示流体单元速度,t表示流体动画模拟时间,p表示流体压强,∈表示流体粘度,f表示流体所受到的外力。常规的欧拉法如Jos Stam在《ACM SIGGRAPH’99PROCEEDINGS》上发表的《Stable Fluids》中提到的稳定欧拉法,即首先将整个求解空间划分为若干个规则的立方体欧拉网格,再去求解上述方程。本专利技术采用改进型的欧拉法,包括:对流步、外力步、扩散步和基于数据驱动的投影步,对流步的求解过程表示流体在对流过程中,属性值(压强、速度)不发生任何变化,只是不断发生位置的移动。外力项与扩散步的核心求解过程在于得到每个流体网格中计算流体单元的受力情况,并且计算加速度之后对速度进行修改即可。其中投影步的求解使用的是耗时的常规数值解法(例如共轭梯度法、高斯塞德尔迭代法等)。所述的基于数据驱动的投影步具体是指:第n帧中投影步的流体单元x的速度un(x)由流体动画模拟的时间步长Δt,流体单元密度ρ,流体压强p求解得到:通过欧拉法进行离散化求解之后,得到具体的求解过程需要依靠于该流体单元上下左右前后6个位置的流体单元的相关属性,因此得到离散化的方程为:其中:xi,j,k表示所在三维空间位置为(x,y,z)处的流体单元,un(x)表示流体单元x的速度,Δt表示流体动画模拟的时间步长,ρ表示流体单元密度,h表示网格法流体单元的网格边长。利用共轭梯度法求解该离散化的方程,并记录此方程求解所需的已知量作为输入向量,此方程的未知量作为输出向量,输入向量与输出向量组成一组样本;对于欧拉法求解过程中每一帧、离散空间中每一个网格,均收集一组样本作为训练数据集。步骤二,利用步骤一中得到的训练数据集构建并训练人工神经网络。所述的人工神经网络的结构从输入到输出的顺序为:输入层、隐含层、输出层,该人工神经网络采用Geoffrey E.Hinton和Ruslan R.Salakhutdinov于2006年在《Science》上发表的名为《Reducing the Dimensionality of Data with Neural Networks》中提到的方法进行构建和训练。构建与训练的具体步骤为:2.1)输入层的节点数与步骤一中输入向量的维度相同,每组样本的输入向量中各个维度的值与输入层对应节点的值相同。输入层的每一个节点均与最左侧隐含层中每个节点互相连接。2.2)输出层的节点数与步骤一中输出向量的维度相同,每组样本的输出向量中各个维度的值与输出层对应节点的值相同。最右侧隐含层中每个节点均与输出层的每一个节点互相连接。2.3)隐含层是对于一个或多个层的统称,具体的层数视人工神经网络需要描述的非线性关系的复杂程度决定。隐含层层数、隐含节点数以及不同层节点之间的连接权值需要步骤一中的训练数据集以所有样本与输出层的误差和最小为优化目标不断循环训练、调整。所述的循环,其停止条件为输出层误差缩小到阈值之内或输出层误差的下降梯度缩小到阈值之内,同时在此基础上使得隐含层的层数与各层上的节点数更少,即消耗更少的计算资本文档来自技高网
...

【技术保护点】
一种基于数据驱动的流体动画加速生成方法,其特征在于,包括以下步骤:步骤一,采集流体动画模拟的欧拉法中投影步的训练样本并生成训练数据集;步骤二,利用步骤一中得到的训练数据集构建并训练人工神经网络;步骤三,利用训练后的人工神经网络实施欧拉法,逐帧进行流体动画模拟并得到对应该帧的投影结果,用该投影结果更新欧拉法中每个网格内的属性值并绘制当前帧流体动画。

【技术特征摘要】
1.一种基于数据驱动的流体动画加速生成方法,其特征在于,包括以下步骤:步骤一,采集流体动画模拟的欧拉法中投影步的训练样本并生成训练数据集;步骤二,利用步骤一中得到的训练数据集构建并训练人工神经网络;步骤三,利用训练后的人工神经网络实施欧拉法,逐帧进行流体动画模拟并得到对应该帧的投影结果,用该投影结果更新欧拉法中每个网格内的属性值并绘制当前帧流体动画。2.根据权利要求1所述的方法,其特征是,所述的步骤一,具体为:采用Navier‐Stokes方程表征流体运动的物理描述,该方程包括描述流体单元速度的基本方程,即第①部分和限制流体运动过程中的不可压缩性的第②部分:其中:ρ表示流体单元密度,u表示流体单元速度,t表示流体动画模拟时间,p表示流体压强,∈表示流体粘度,f表示流体所受到的外力。3.根据权利要求1所述的方法,其特征是,所述的欧拉法包括:对流步、外力步、扩散步和基于数据驱动的投影步。4.根据权利要求1或3所述的方法,其特征是,所述的基于数据驱动的投影步具体是指:第n帧中投影步的流体单元x的速度un(x)由流体动画模拟的时间步长Δt,流体单元密度ρ,流体压强p求解得到:通过欧拉法进行离散化求解之后,得到具体的求解过程需要依靠于该流体单元上下左右前后6个位置的流体单元的相关属性,因此得到离散化的方程为:其中:xi,j,k表示所在三维空间位置为(x,y,z)处的流体单元,un(x)表示流体单元x的速度,Δt表示流体动画模拟的时间步长,ρ表示流体单元密度,h表示网格法流体单元的网格边长;利用共轭梯度法求解该离散化的方程,并记录此方程求解所需的已知量作为输入向量,此方程的未知量作为输出向量,输入向量与输出向量组成一组样本;对于欧拉法求解过程中每一帧、离散空间中每一个网格,均收集一组样本作为训练数据集。5.根据权利要求1所述的方法,其特征是,所述的构建...

【专利技术属性】
技术研发人员:杨成杨旭波肖祥云
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海;31

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

1