一种基于物理感知深度学习的布料仿真方法及装置
- 国知局
- 2024-11-19 09:44:22
本文属于计算机,具体涉及一种基于物理感知深度学习的布料仿真方法及装置。
背景技术:
1、布料仿真一直是计算机图形学领域的研究焦点,在动漫、游戏等领域发挥着关键作用。目前主流的布料仿真方法为基于物理的仿真和基于学习的变形。这些方法相互借鉴、互不冲突,并且各自有优缺点。
2、基于物理的仿真通过构建布料运动的模型并求解复杂的动力学方程,以获得相应的布料状态。这种方法可以生成真实细腻的服装变形效果,但计算复杂度较高,且需要高昂的计算成本,对于实时的布料动画仍具有一定的局限性。
3、基于学习的仿真通常利用神经网络模型从大量数据中学习布料变形规律,从而对新的数据进行推测。相比于物理方法,该类方法具有较高的效率,自动化程度高,然而,当前基于学习的仿真大多数依赖监督学习,需运行大量的基于离线物理的模拟来收集训练所需的数据,且各类型参数的数据需重复收集,损害了监督解决方案的可扩展性。此外,学习过程通常仅考虑顶点位置与目标之间的差异性,忽视了布料自身的物理属性,导致服装真实感不高、动态连续性较差、细节逼真度不强,且在非常相似的身体运动上进行服装仿真可能产生截然不同的输出结果,可靠性一般。
技术实现思路
1、针对现有技术的上述问题,本文的目的在于,提供一种基于物理感知深度学习的布料仿真方法及装置,以提高布料仿真模拟的准确性。
2、为了解决上述技术问题,本文的具体技术方案如下:
3、一方面,本文提供一种基于物理感知深度学习的布料仿真方法,所述方法包括:
4、获取蒙皮的3d人物模型的运动动作参数;
5、将所述运动动作参数通过解耦描述符转换成静态描述符和动态描述符;
6、通过编码器分别对所述静态描述符和所述动态描述符进行编码处理,得到静态潜在变量和动态潜在变量,并对所述静态潜在变量和动态潜在变量进行相加,等到编码后的特征向量;
7、通过解码器对所述特征向量进行解码处理,得到所述3d人物模型的局部布料的变形状态;
8、通过基于物理仿真的损失函数对网络模型进行训练,使得网络学习满足布料和人体的物理约束,并输出布料状态的预测结果。
9、进一步地,所述获取蒙皮的3d人物模型的运动动作参数,包括:
10、将蒙皮的3d人物模型进行骨骼绑定,获取绑定完成的人体模型;
11、建立布料状态对应的粒子系统,其中粒子系统中每个粒子的粒子位置和速度能基于时间变化;
12、根据所述人体模型和所述粒子系统,获取人体模型的运动动作参数,所述运动动作参数至少包括每个关节的位置信息。
13、进一步地,所述将所述运动动作参数通过解耦描述符转换成静态描述符和动态描述符,包括:
14、将各个关节之间的角度通过三维空间中的正交矩阵映射,得到本地静态描述符,表示为:ggs([ri,1,ri,2,ri,3])=[ri,1,ri,2],其中ri,1,ri,2,ri,3为列向量,映射ggs为三维旋转矩阵转换为低维矩阵的表示空间过程;
15、建立指向重力未偏移方向的单位向量,得到全局静态描述符,表示为:其中,其中是第j个关节的单位向量,rj是对应全局关节方向的旋转矩阵,g是重力向量,|g|是重力向量的模;
16、将本地静态描述符和全局静态描述符连接起来,得到每个关节的静态描述符,表示为:其中,αstatic为第i个关节的静态描述符;
17、根据每个关节的静态描述符和每个关节的位置信息,确定每个关节的动态描述符,表示为:其中,为第i个关节的动态描述符;分别是静态描述符的一阶导数,是关节在局部空间中的加速度。
18、进一步地,所述编码器包括静态编码器和动态编码器;
19、所述静态编码器包括四个相连接的全连接层,该四个全连接层分别具有128、256、512和1024个神经元,并采用selu激活函数,前一层全连接层的输出作为下一层全连接层的输入,以获取静态描述符中的静态潜在变量
20、所述动态编码器包括一组全连接层和一个长短期记忆网络,通过两个全连接层分别应用于每个关节的动态描述符,以获取每个关节的高级特征数组;将所述高级特征数据进行展平并馈送到另外两个全连接层,最后输出通过长短期记忆网络处理,得到动态潜在变量
21、进一步地,所述解码器包括三个全连接层和一个姿态空间变形层;所述解码器的工作过程如下:
22、将所述特征向量输入第一个全连接层,得到第一中间特征,表示为:h1=selu(w1e+b1),其中,w1是权重矩阵,b1是偏置向量,selu是激活函数;
23、将所述第一中间特征输入第二个全连接层,得到第二中间特征,表示为:h2=selu(w2e+b2);
24、将所述第二中间特征输入到第三个全连接层,得到最终特征,表示为:h3=selu(w3e+b3);
25、将所述最终特征经过所述姿态空间变形层生成布料顶点位置,以得到布料变形状态,表示为:vertices=psd(h3)。
26、进一步地,基于物理仿真的损失函数通过如下公式表示:
27、
28、其中,为最终的损失函数;为弯曲损失函数;wbending为弯曲损失权重;为碰撞损失函数;wcollision为碰撞损失权重;为惯性损失函数;wint eria为惯性损失权重;为重力损失函数;wgravity为重力损失权重;为摩擦力损失函数;wfriction为摩擦力权重损失。
29、所述弯曲损失函数表示为:其中,n是布料模型的定点数量,pi是第i个顶点处的曲率半径;
30、所述碰撞损失函数表示为:其中,n是布料模型中顶点的数量,xi是第i个顶点的位置,是与第i个顶点碰撞的障碍物表面上的最近的位置;是第i个顶点和其对应最近点之间的距离,ε是一个表示碰撞距离的阈值。当距离小于阈值时,损失为零;当距离大于阈值时,损失会随着距离的增加而增加;
31、所述惯性损失函数表示为:其中,n是布料模型定点数量,mi是第i个顶点的质量,vi是第i个顶点的速度向量,vi-1是前一个时间步中的第i个顶点的速度向量;
32、所述重力损失函数表示为;其中,m为粒子质量,g为重力向量;
33、所述摩擦力损失函数表示为:其中b是样本数量,n是每个样本中粒子的数量,mjmj是布料中第j个点的质量,g是重力加速度常数,dj是第j个点与人体的距离,μ是摩擦系数。
34、另一方面,本文还提供一种基于物理感知深度学习的布料仿真装置,所述装置包括:
35、获取模块,用于获取蒙皮的3d人物模型的运动动作参数;
36、解耦模块,用于将所述运动动作参数通过解耦描述符转换成静态描述符和动态描述符;
37、编码模块,用于通过编码器分别对所述静态描述符和所述动态描述符进行编码处理,得到静态潜在变量和动态潜在变量,并对所述静态潜在变量和动态潜在变量进行相加,等到编码后的特征向量;
38、解码模块,用于通过解码器对所述特征向量进行解码处理,得到所述3d人物模型的局部布料的变形状态;
39、训练模块,用于通过基于物理仿真的损失函数对网络模型进行训练,使得网络学习满足布料和人体的物理约束,并输出布料状态的预测结果。
40、另一方面,本文还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述所述的方法。
41、最后,本文提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的方法。
42、采用上述技术方案,本文所述的本文提供一种基于物理感知深度学习的布料仿真方法,所述方法包括:获取蒙皮的3d人物模型的运动动作参数;将所述运动动作参数通过解耦描述符转换成静态描述符和动态描述符;通过编码器分别对所述静态描述符和所述动态描述符进行编码处理,得到静态潜在变量和动态潜在变量,并对所述静态潜在变量和动态潜在变量进行相加,等到编码后的特征向量;通过解码器对所述特征向量进行解码处理,得到所述3d人物模型的局部布料的变形状态;通过基于物理仿真的损失函数对网络模型进行训练,使得网络学习满足布料和人体的物理约束,并输出布料状态的预测结果。本文旨在利用基于物理仿真的损失函数,使网络学习满足布料和人体的物理约束,能够在没有任何地面真实数据的情况下学习布料动态行为,实现对布料动态的准确预测,为虚拟场景中的服装仿真和人机交互提供更加逼真和自然的表现。
43、为让本文的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
本文地址:https://www.jishuxx.com/zhuanli/20241118/330006.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表