一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于平面多连通形状的调和插值的动画生成方法

2022-10-26 18:22:29 来源:中国专利 TAG:


1.本发明涉及动画生成技术领域,尤其涉及一种基于平面多连通形状的调和插值的动画生成方法。


背景技术:

2.动画生成是一种对于给定的某一形状物体的关键动画帧,相应的得到一系列连续的中间动画帧,使得给定的关键动画帧被连续的动画序列连接起来的技术。现有的技术通常分为两种,一种是对于给定的形状物体进行网格化,将得到的网格数据结构作为处理对象,通过插值关键帧对应的网格结构得到对应的中间帧的网格结构,进而重建出中间帧的形状;第二种方法是,将给定的形状物体看作是一种平面映射函数,将函数作为处理对象,通过插值关键帧对应的函数得到中间帧对应的函数,进而得到中间帧的形状。
3.发明人对现有的两种平面动画生成方法进行研究发现第一种方法具有插值结果和网格化的结果具有高度相关性,为了得到精细的中间插值结果需要极为精细的网格化数据,而这往往意味着此类方法的时间开销十分巨大;而现有的第二种方法对于原始的形状物体具有极强的局限性,现有的技术只能够处理函数的定义域为单连通区域的情形,对于定义域更加复杂的多连通情形无法得到完整的中间帧结果。


技术实现要素:

4.有鉴于此,本发明提供了一种基于平面多连通形状的调和插值的动画生成方法,用以解决现有的方法中,插值的中间结果高度相关于网格质量,生成耗费大量时间,及对于具有复杂边界的原始形状无法得到有效的中间结果,这两个主要问题。
5.本发明的技术方案为:一种基于平面多连通形状的调和插值的动画生成方法,包括:
6.选定原始平面形状,设定关键帧;
7.输入中间帧数目n;
8.按顺序插值生成n个中间帧,并将所有的生成结果按序存储在数组ibn中;
9.输出ibn中的n个结果;
10.按序连续播放所有帧,得到连续动画。
11.上述的方法,可选的,选定原始平面形状,设定关键帧,包括:
12.给定原始形状后确定形状边界和对应的二维平面定义域;
13.计算并存储对应于定义域的多连通平面区域的调和函数基函数;
14.设定关键帧,并计算对应于关键帧的几何量。
15.上述的方法,可选的,按顺序插值生成n个中间帧,并将所有的生成结果按序存储在数组ibn中,包括:
16.针对当前的计数器,计算对应的中间时刻;
17.线性插值关键帧的几何量,得到对应于中间时刻的几何量;
18.构建一个关于中间时刻的几何量的优化问题,用于计算对应于这个中间时刻几何量的,由对应于原始形状的连通平面区域的调和函数基函数构成的函数映射;
19.使用迭代求解器,计算优化问题对应的函数映射;
20.将得到的对应于中间时刻的函数映射,作用于原始的定义域上,得到对应的中间时刻形状;
21.将得到的中间时刻形状按序存储于ibn数组中。
22.有益效果:
23.与现有技术相比,本发明具有以下优点:
24.本发明公开了一种基于平面多连通形状的调和插值的动画生成方法,对比现有的第一类方法,本方法放弃将网格化结果作为插值对象,有效的避免由网格的精细程度导致的方法运算时间较长的问题;对比现有的第二类方法,本方法极大的扩充了现有的基于函数映射的方法的可用对象,将原有的只能够处理简单的单连通区域形状的方法,扩展到能够处理更加一般的具有复杂边界的多连通区域形状。同时,本方法为了进一步提高运算速度,在迭代求解优化问题的过程中,设计并使用了一种高效的可并行的迭代下降方法。
附图说明
25.图1为本技术实施例公开的平面动画生成方法的整体流程图;
26.图2为本技术实施例公开的平面动画生成方法的整体流程图中103的具体流程图;
27.图3为本技术实施例公开的103流程图中1035迭代求解器的具体流程图;
28.图4为本技术实施例公开的平面动画生成方法的结果展示;
29.图5为本技术实施例公开的101中对于选定的原始平面形状确定的形状边界及二维平面定义域的结果展示;
30.图6为本技术实施例公开的101中对于定义一般的平面多连通区域的调和函数表达式的一个示意图。
具体实施方式
31.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本发明中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于所示的这些实施例,而是要符合与本发明所公开的原理和新颖特点相一致的最宽的范围。
33.本发明公开了一种基于平面多连通形状的调和插值的动画生成方法,引用在平面动画生成过程中,可以用于处理更加的平面形状,并保持极高的计算效率。生成平面动画的整体执行流程如图1所示,包括步骤:
34.101、选定原始平面形状,设定关键帧;
35.本发明实施例中,给定原始平面形状后首先需要确定形状边界和对应的二维平面定义域ω,如图5所示,对于左侧输入的原始形状,得到的形状边界为右侧所示的边界,而边界包围的区域即为对应于形状边界的二维平面定义域。然后对于确定的形状边界,本发明使用已发表的文章gpu-accelerated locally injective shape deformation.acm trans.graph.36,6(nov.2017)中提及的多连通区域的调和函数表示方法,得到对应于平面定义域ω的基函数表示,此时若假定区域的边界为由m个顶点构成的多边形p={z1,z2,

,zm},其中z为多边形顶点,多连通区域中共有n个空洞,且空洞的中心点为{ρ1,...,ρn},函数可以表示为:
[0036][0037][0038]
其中,是对应边界点zj的柯西重心坐标表示。图6中给出了一个一般的多连通区域上的记号表示,其中z为边界顶点,灰色区域为平面的多连通区域,中间的空白区域为一个连通区域中的空洞,点ρ1对应于此空洞的中心点。同时,本发明记dj(z)为cj(z)对应的一阶导函数,其表达式为:
[0039][0040]
最后确定一组关键帧,例如本发明中为两帧关键帧,如图4中(a)(c)所示,本实施例中默认关键帧的数目为2,需要注意到对于大于2的情形,可以简单的将其两两重新分组,进行动画生成,因而不具备操作上的任何难度。将两个确定的关键帧对应的调和函数分别记为f0和f1,本发明方法计算其对应的边界几何量m0和m1,其中几何量的具体计算公式为:
[0041]
m=j
tj[0042]
公式中的j表示平面映射函数对应的jacobian矩阵。
[0043]
102、输入中间帧数目n;
[0044]
本发明实施例中,需要指定对于设定的一组关键帧之间,应该对应得到的中间帧的数目n,一般选取n=500,即每两个选定的关键帧之间最终会得到500个中间帧作为最终的结果,用于生成动画序列。
[0045]
103、按顺序插值生成n个中间帧,并将所有的生成结果按顺序存储在数组ibn中;
[0046]
本发明的实施例中103的具体流程将于下文中对于图2的讲解中说明。
[0047]
104、输出ibn中的n个结果;
[0048]
本发明实施例中,将103中存储于数组ibn中的所有中间帧结果,按照jpg的图片存储格式保存在相应的磁盘存储地址中。图4中(b1)(b2)(b3)(b4)给出了一些中间帧的重建结果。
[0049]
105、按序连续播放所有帧,得到连续动画;
[0050]
本发明实施例中,对于104中输出的n个中间结果图像,采用matlab数学软件自带的视频合成功能,将一系列中间帧图片按序连续播放并生成一个avi格式的视频数据,将其存储在相应的磁盘存储地址中。
[0051]
本发明实施例中103的具体计算求解过程,如图2所示,其中包括步骤:
[0052]
1031、初始化计数器k=1;
[0053]
1032、计算对应于当前计数器k的中间时刻t;
[0054]
1033、线性插值关键帧的几何量,得到中间帧对应时刻t的几何量m
t

[0055]
本发明实施例中,由于默认处理的关键帧的数量为2,在步骤101中已经计算得到关键帧对应的边界几何量m0和m1,对于中间时刻t对应的边界几何量m
t
,本发明使用线性插值,及:
[0056]mt
=(1-t)m0 tm1[0057]
1034、使用m
t
构建优化问题;
[0058]
本发明实施例中,假定线性插值的边界几何量是由1033步骤计算得到的,而目标函数映射对应的几何量为那么针对区域边界上的某一采样点ω的优化能量形式为:
[0059][0060]
进而针对区域边界上的所有采样点的优化能量形式为:
[0061][0062]
1035、使用迭代求解器,得到中间帧对应的函数映射f
t

[0063]
本发明实施例中,用来解决1034中设计的优化问题的求解器为newton求解器。本发明设计的newton求解器的具体流程将于下文中对于图3的讲解中说明。
[0064]
1036、对应的中间帧形状结果为s
t
=f
t
(ω);
[0065]
本发明实施例中,ω来自101中确定的平面多连通定义域,f
t
来自于1035中迭代求解器最终的输出结果。
[0066]
1037、将s
t
按序存储在ibn数组中;
[0067]
1038、计算器k=k 1;
[0068]
1039、判断生成的中间帧是否达到指定数目;
[0069]
本发明实施例中,n来自于102中用户指定的需要生成的中间帧的数目。通过判断当前计数器k与n的大小关系,当k《n时,生成的中间帧的数目还未达到指定的数目,流程应当继续跳转至1032继续生成下一时刻的中间帧结果;当k《n的判断失败时,意味着已经生成的中间帧数目已经达到指定要求,循环生成中间帧的程序步骤103结束,程序跳转至104。
[0070]
本发明实施例中1035的newton迭代求解器具体解决过程,如图3所示,其中包括步骤:
[0071]
10351、设定初始值ψ0,计数器j=0;
[0072]
本发明实施例中,每次newton求解器初始化时,初始值ψ0来自于前一帧的最终结果。其中求解器中的实际变量为来源于101中相对当前多连通区域的函数表示。
[0073]
10352、计算优化能量e;
[0074]
本发明实施例中,能量的计算使用1034中提及的能量形式。
[0075]
10353、计算优化能量e的梯度g;
[0076]
本发明实施例中,梯度g的计算公式为:
[0077][0078]
其中,e为10352中计算得到的优化能量,hi为1034中提及的能量公式中的目标函数的几何量此时对应的hi的具体表达式为:
[0079][0080][0081][0082][0083][0084]
10354、计算优化能量e的hessian矩阵的投影h;
[0085]
本发明实施例中,hessian矩阵的原始形式为:
[0086][0087]
其中,h1展开的形式为:
[0088][0089][0090]
对应k的矩阵特征值为:
[0091][0092][0093]
对于特征值的大小关系,本方法分为3中不同情况进行处理:
[0094]
情况一,λ
1,2
≥λ
3,4
≥0,k

=k;
[0095]
情况二,0≥λ
1,2
≥λ
3,4
,k

=0;
[0096]
情况三,λ
1,2
≥0≥λ
3,4

[0097][0098]
最终,hessian矩阵的投影h的表达式为:
[0099][0100]
10355、计算下降方向dψ;
[0101]
本发明实施例中,通过求解线性方程组得到当前迭代的下降方向。
[0102]
10356、计算下降步长s;
[0103]
本发明实施例中,使用二分法判断下降步长,当步长满足局部单调性后,停止缩短,并将其设置为当前迭代的下降步长。
[0104]
10357、计数器j=j 1;
[0105]
10358、计算能量变化量δe,新的变量值ψj;
[0106]
本发明实施例中,当前第j次迭代的能量变化量δe=e
j-1-ej,新的变量值
[0107]
10359、判断迭代求解器是否终止;
[0108]
本发明实施例中,通过判断当前迭代的能量变化量的大小来决定是否终止当前迭代过程,并输出最终结果。
[0109]
最后,还需要说明的是,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体
意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0110]
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0111]
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0112]
以上对本发明所提供的一种基于平面多连通形状的调和插值的动画生成方法进行了详细介绍,本发明中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献