基于深度学习的流体动画加速方法研究
发布时间:2021-11-01 10:12
计算机流体动画在生产生活中得到大量应用,比如3D游戏、3D动画、影视、广告等,基于网格的欧拉方法是基于物理的模拟方法中的一种,但是对计算资源的大量需求限制了它的应用。近年来兴起的基于多层神经网络的深度学习具有强大的拟合能力和较快的计算速度,因此可以用来对基于物理的流体模拟进行加速。由于投影步计算占据了基于网格的方法大部分计算资源,因此本文研究利用深度学习对欧拉流体动画的投影步进行加速。已有的使用深度学习对流体动画进行加速的方法,在训练数据集、输入输出、网络类型等方面都有差异,而各方法又声明取得了一些好的效果,因此加速流体动画深度学习的输入输出、网络类型等方面如何进行配置仍然不清楚。本文对损失函数和输入特征向量进行分析和实验,发现损失函数应该约束压强、速度散度,可选地也可以约束速度和压强梯度,输入特征向量应该包括几何标志、上一帧压强以及速度或速度散度。基于对网络输入的分析,本文将几何标志数据跳跃连接到网络的每一层中,在多方面改善了生成流体的效果。基于对投影步泊松方程的分析,本文将空洞卷积引入到流体动画的加速中,以使网络输出层具有更大的感受野,解决了已有神经网络生成的烟雾向两侧伸展太少的问...
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:74 页
【学位级别】:硕士
【部分图文】:
离散网格
电子科技大学硕士学位论文Mantaflow具有以下特点:可以在Linux,MacOS和Windows上有或没有GUI的情况下使用;使用MAC网格,PCG压力求解器和MacCormack对流进行欧拉流体模拟;灵活的粒子系统;用于液体的FLIP模拟;表面网格跟踪;使用水平集和快速进行算法进行自由表面模拟;小波和表面湍流;K-epsilon湍流建模与合成;Maya和Blender导出以进行渲染。在本文的实验中使用了Mantaflow,因为实验需要将Mantaflow的网格标志信息拷贝到numpy,而Mantaflow0.12版本没有这个功能,因此本实验在Mantaflow0.12版本中增加了这部分代码,并按照指定流程在Ubuntu18.04上进行了编译。2.2深度学习2.2.1神经网络简介机器学习是一种能从数据中学习的算法,Mitchell对机器学习的定义是,对于某类任务T和性能度量P,如果一个计算机程序通过经验E的改进,能在由性能度量P度量的任务T上的性能得到提升,那么这个计算机程序就从经验中得到了学习[17]。机器学习算法有决策树、支持向量机、神经网络等,而当前的深度学习通常指的是具有多个隐藏层的神经网络。神经网络通过相对简单的概念来学习复杂的概念,从而发现数据集中的复杂结构[18]。图2-2(a)是一个包含一个输入层、一个输出层、一个隐藏层的简单的全连接神经网络,其中圆圈代表神经元(图2-2(b)),连线表示数据流向,所有相邻的两层神经元之间全部互相连接(全连接网络),其中的隐藏层可以有多层,所有网络层神经元的数量可以调整。每个神经元是一个数据处理单元,包括线性求和与非线性函数两个部分。除了全连接网络,还有卷积网络、循环网络、递归网络、图神经网络、深度信念网络、生成对抗网络、自动编码器等。(a)神经网络[19](b)神经元[19]图2-2神经网络简介10
第二章基于深度学习加速流体动画研究综述图2-3神经网络发展[19]2.2.2神经网络发展目前为止,深度学习或者说神经网络大致经过了一个“三起两落”的历程,如图2-3所示。首先,1958年计算科学家Rosenblatt提出的具有一个输入层、一个输出层的感知器,现场演示了器学习识别简单图像的过程,在当时引起了轰动,神经网络进入了第一个高潮。直到1969年Minsky指出感知器只能做简单的线性分类任务,甚至不能解决简单的异或问题;而如果将计算层增加到两层,计算量就会过大,而且没有有效的学习算法,于是神经网络陷入低谷。然后,1986年Rumelhar等[20]提出了反向传播(Backpropagation,BP)算法,解决了两层神经网络的训练问题,从而带动了研究两层神经网络的热潮,与单层神经网络不同,理论证明两层神经网络可以无限逼近任意连续函数。但是,训练神经网络需要大量时间,优化困难,隐藏层的节点数需要调参,使用不太方便,而Vapnik等人在1992年发明的SVM[21](SupportVectorMachines,支持向量机),由于具有无需调整参数、高效、有全局最优解的优点,迅速取代神经网络算法成为了主流,神经网络再次陷入低谷。在2006年Hinton[22]使用神经网络对数据进行降维,其中通过RBM(RestrictedBoltzmannmachine,受限玻尔兹曼机)对神经网络中的参数进行逐层预训练,以实现对网络中参数的初始化,最终取得了优于传统降维方法的效果,对促进深度学习的发展起到了较大的作用。11
本文编号:3469980
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:74 页
【学位级别】:硕士
【部分图文】:
离散网格
电子科技大学硕士学位论文Mantaflow具有以下特点:可以在Linux,MacOS和Windows上有或没有GUI的情况下使用;使用MAC网格,PCG压力求解器和MacCormack对流进行欧拉流体模拟;灵活的粒子系统;用于液体的FLIP模拟;表面网格跟踪;使用水平集和快速进行算法进行自由表面模拟;小波和表面湍流;K-epsilon湍流建模与合成;Maya和Blender导出以进行渲染。在本文的实验中使用了Mantaflow,因为实验需要将Mantaflow的网格标志信息拷贝到numpy,而Mantaflow0.12版本没有这个功能,因此本实验在Mantaflow0.12版本中增加了这部分代码,并按照指定流程在Ubuntu18.04上进行了编译。2.2深度学习2.2.1神经网络简介机器学习是一种能从数据中学习的算法,Mitchell对机器学习的定义是,对于某类任务T和性能度量P,如果一个计算机程序通过经验E的改进,能在由性能度量P度量的任务T上的性能得到提升,那么这个计算机程序就从经验中得到了学习[17]。机器学习算法有决策树、支持向量机、神经网络等,而当前的深度学习通常指的是具有多个隐藏层的神经网络。神经网络通过相对简单的概念来学习复杂的概念,从而发现数据集中的复杂结构[18]。图2-2(a)是一个包含一个输入层、一个输出层、一个隐藏层的简单的全连接神经网络,其中圆圈代表神经元(图2-2(b)),连线表示数据流向,所有相邻的两层神经元之间全部互相连接(全连接网络),其中的隐藏层可以有多层,所有网络层神经元的数量可以调整。每个神经元是一个数据处理单元,包括线性求和与非线性函数两个部分。除了全连接网络,还有卷积网络、循环网络、递归网络、图神经网络、深度信念网络、生成对抗网络、自动编码器等。(a)神经网络[19](b)神经元[19]图2-2神经网络简介10
第二章基于深度学习加速流体动画研究综述图2-3神经网络发展[19]2.2.2神经网络发展目前为止,深度学习或者说神经网络大致经过了一个“三起两落”的历程,如图2-3所示。首先,1958年计算科学家Rosenblatt提出的具有一个输入层、一个输出层的感知器,现场演示了器学习识别简单图像的过程,在当时引起了轰动,神经网络进入了第一个高潮。直到1969年Minsky指出感知器只能做简单的线性分类任务,甚至不能解决简单的异或问题;而如果将计算层增加到两层,计算量就会过大,而且没有有效的学习算法,于是神经网络陷入低谷。然后,1986年Rumelhar等[20]提出了反向传播(Backpropagation,BP)算法,解决了两层神经网络的训练问题,从而带动了研究两层神经网络的热潮,与单层神经网络不同,理论证明两层神经网络可以无限逼近任意连续函数。但是,训练神经网络需要大量时间,优化困难,隐藏层的节点数需要调参,使用不太方便,而Vapnik等人在1992年发明的SVM[21](SupportVectorMachines,支持向量机),由于具有无需调整参数、高效、有全局最优解的优点,迅速取代神经网络算法成为了主流,神经网络再次陷入低谷。在2006年Hinton[22]使用神经网络对数据进行降维,其中通过RBM(RestrictedBoltzmannmachine,受限玻尔兹曼机)对神经网络中的参数进行逐层预训练,以实现对网络中参数的初始化,最终取得了优于传统降维方法的效果,对促进深度学习的发展起到了较大的作用。11
本文编号:3469980
本文链接:https://www.wllwen.com/wenyilunwen/dongmansheji/3469980.html