基于后缀树运动图模型的运动合成方法
技术领域
本发明属于计算机视觉技术领域,具体是一种基于后缀树运动图模型的运动合成方法。
背景技术
随着计算机软硬件的发展,三维动画在各类动画中脱颖而出。当前在国际上,动画产业的风向标逐渐从二维转向了三维。三维动画技术由于其真实性,在现代电影以及游戏产业有着广泛的应用。在我国,除了经济效益,三维动画作为一种大众化的艺术表现形式,对传承和发扬中华民族优秀文化更是有着重要的作用。我国的三维动画产业起步晚,尽管近年来我国的三维动画产业发展速度较快,然而目前与国际先进的水平仍存在一定差距。
三维角色动画制作当中一个非常重要的技术就是运动捕捉技术,运动捕捉技术是指追踪并记录人体动作的技术。同传统的关键帧动画制作方法相比,运动捕捉技术更高效,同时生成的三维角色动画也更为逼真。运动捕捉技术主要可以分为两大类,即有节点运动捕捉技术和无节点运动捕捉技术。近年来,随着Kinect以及Leap Motion等产品的推出,无节点运动捕捉技术得到了迅速的发展,在军事、娱乐、体育、医疗、计算机视觉以及机器人技术等领域有着广泛的应用。然而,在三维角色动画制作领域,由于对动作数据有比较高的精度要求,无节点运动捕捉技术短期内依然不能取代有节点运动捕捉技术。
利用有节点运动捕捉技术制作三维动画的成本较高,首先设备价格昂贵,其次设备的使用成本高昂。而另一方面,越来越多的运动捕捉数据对大众免费开放,如卡内基梅隆大学运动捕捉数据库,波恩大学的运动捕捉数据库HDM05。这就使得运动捕捉数据的可重用性成为了学者们研究的焦点。提高运动捕捉数据可重用性的手段主要包含运动合成技术和动作编辑技术。运动合成技术主要研究如何将现有动作序列组合成新的动作序列,而动作编辑技术主要研究如何对现有动作进行编辑和修改,从而将现有动作改变成另一个不同的动作。动作编辑技术通常作为运动合成技术的一个补充手段,在本发明中我们主要关注运动合成技术。
就运动合成的方法而言,游戏产业中通常使用动作树结构来对动作进行建模,动作树包含了数据库中动作序列之间的过渡关系,通过这些过渡关系,动画制作人可以合成出新的动画,从而实现运动合成,如(M. Lau, J. J. Kuffner: Behavior planning for character animation. ACM SIGGRAPH: 271-280 (2005))。动作树方法可以获得良好的效果,但是需要捕捉一些特殊的动作序列,手动编辑这些序列,并寻找合适的过渡点,耗费大量的人力。使用统计学模型对运动捕捉数据建模是运动合成的另一种方法,例如隐马可夫模型(M. Brand, A. Hertzmann: Style machines. ACM SIGGRAPH: 183-192 (2000)),切换线性动态系统(Y. Li, T. Wang, H. Y. Shum: Motion texture: a two-level statistical model for character motion synthesis. ACM Transactions on Graphics 21: 465-472 (2002)),高斯混合模型(J. Min, J. Chai: Motion graphs++: a compact generative model for semantic motion analysis and synthesis. ACM Transactions on Graphics 31: 439-445 (2012))等。基于统计学模型不像动作树方法那样需要耗费大量人力,然而其运动合成方法同现有的方法模型不一致,对终端用户不够透明。最后一类用于运动合成的方法是基于一种叫做运动图的结构(L. Kovar, M. Gleicher, F. Pighin: Motion graphs. ACM Transactions on Graphics 21: 473-482 (2002)),(专利公开号:CN104504731A),给定一个运动捕捉数据集,该方法可以生成一个有向图结构,该图记录了动作段之间的过渡关系,图中任意一条路径都对应着一个可合成出的动作,这样,通过在图中不同路径进行游走,就可以获得各种各样的动作。在运动图的基础上,(P. Beaudoin, S. Coros, M. van de Panne: Motion-motif graphs. ACM SIGGRAPH: 117-126 (2008))采用了基于模式的运动图方法,该方法将动作分割成模式并找出模式之间的过渡关系从而构造了一个以模式为节点,过渡关系为边的有向图结构。
然而,事实上,在基于运动图的这类运动合成方法中,运动图的连通性与动作段之间过渡的平滑性是矛盾的。如果要求好的连通性,就需要在不是很相似的动作段之间进行过渡对接,那么就会造成不平滑的过渡;而另一方面,如果要求平滑的过渡,就需要在非常相似的动作段之间进行过渡对接,那么自然就不会有好的连通性。连通性和平滑性分别对应着可合成动作的质量和数量,对于基于运动图的运动合成方法研究来说,大部分工作都是在寻找合成动作的质量与数量的平衡。一个能够同时提高两者的方法就是扩大运动捕捉数据的数据集,然而,随着数据集的增大,又会带来另外一个问题,那就是检索用户感兴趣的动作段的时间加长。
发明内容
本发明提供了一种基于后缀树运动图模型用于运动合成方法,该方法中主要涉及两种数据结构,分别为后缀树结构和运动图结构,其中后缀树结构用于动作序列的快速检索;运动图结构为动作序列之间对接合成提供依据,用于高效合成三维角色动画,同步提升可合成动作的质量和质量,有效去除数据中的噪音,帮助用户高效地合成满足需求的角色动画。
本发明技术方案如下:
基于后缀树运动图模型的运动合成方法,包括以下步骤,
步骤1,加载运动捕捉数据库,基于双向巴特沃斯滤波器对运动捕捉数据库中的运动捕捉数据进行滤波;运动捕捉数据的特征为骨骼(待运动合成三维角色动画的人体或者动物的骨骼)的各个关节相对其父关节的三维转动信息,即使用各个关节相对其父关节的三维转动信息作为存储和处理运动捕捉数据的特征;本步骤对数据库中的运动捕捉数据采用双向巴特沃斯滤波器进行滤波处理,从而有效去除数据中的噪音;采用节点相对于其父节点的转动信息作为处理运动捕捉数据的特征,从而有效避免了骨骼框架不同造成的影响。
步骤2,基于所述运动捕捉数据的特征采用自组织映射的方法对运动捕捉数据库中的运动捕捉数据进行聚类,并为每一个类别赋予一个符号表示,采用字符匹配算法对动作序列进行匹配,从而将动作序列表示成符号序列,连续重复出现的字符(符号)只记一次。采用字符匹配算法对动作序列进行匹配,从而更为高效地对动作序列进行匹配。
步骤3,采用Ukkonen算法从符号序列中生成后缀树索引结构,Ukkonen算法是目前构造后缀树较为稳定且高效的算法,算法时间复杂度为O(n)。后缀树索引结构是一种对动作序列进行检索的层次化结构,从而更为有效地对动作序列进行检索。该后缀树索引结构可以在O(n)时间复杂度内构造完成。
步骤4,根据后缀树索引结构中的节点间的关系构造自然过渡关系,将后缀树索引结构中所有节点与所述节点所对应的最高层节点相连,构造有损过渡关系,依据有损过渡关系,基于过渡双方前后n帧的数据,采用三次样条插值的方法获得过渡帧,构造运动图结构。从而使得过渡动作更为平滑,合成动作更为逼真。
步骤5,给定用户输入动作,将所述输入动作映射到符号序列,按照所述符号序列该序列找出对应的后缀树结构中的路径,返回所述路径的最后一个节点,所述最后一个节点所对应的动作序列为运动捕捉数据检索的结果。
步骤6,给定用户输入的若干动作,根据后缀树索引结构,找出所述动作所对应的节点,通过遍历运动图,找出所有包含所述节点的路径,并计算节点的路径长度,最后将由各路径合成的动作按照其路径长度进行排序,路径长度最短的即为最优合成动作。
较优地,步骤4获得过渡帧时,基于过渡双方前后4帧的数据。
所述路径长度为所述路径中所有有损过渡点处基于运动捕捉数据的特征聚类后属于相同类的相似姿势之间的欧几里得距离之和;相似姿势的划分依据步骤2的聚类结果划分,属于同一个聚类的动作为相似姿势。
Ukkonen算法时间复杂度为O(n),当对运动捕捉数据库进行插入和删除操作时,可以在O(1)时间复杂度内完成对后缀树的更新。
本发明有益效果包括:
(1)本发明基于后缀树结构和运动图结构,后缀树结构用于动作序列的快速检索;运动图结构为动作序列之间对接合成提供依据,可以同步提升可合成的动作数量与质量,帮助用户高效地合成满足需求的角色动画,可以更为高效地合成更为逼真的动画,从而降低动画制作过程中的时间、人力成本并提升所合成角色动画的质量;
(2)本发明基于现有运动捕捉数据以合成新的动作序列,从而降低角色动画制作中设备购置与使用的成本;
(3)不同于现有运动合成方法所使用的数据未经过滤波处理,对运动捕捉数据库中的运动捕捉数据采用双向巴特沃斯滤波器进行滤波处理,从而有效去除数据中的噪音;
(4)采用节点相对于其父节点的转动信息作为处理的特征,从而有效避免了骨骼框架不同造成的影响;
(5)基于后缀树索引结构,从而更为有效地对动作序列进行检索;
(6)采用字符匹配算法对动作序列进行匹配,从而更为高效地对动作序列进行匹配;
(7)基于过渡双方前后4帧的数据,采用三次样条插值的方法获得过渡帧,从而使得过渡动作更为平滑,合成动作更为逼真。
附图说明
图1为本发明基于后缀树运动图模型的运动合成方法的流程示意图;
图2为示例运动捕捉数据的符号表示示意图;
图3为示例后缀树索引结构示意图;
图4 为示例运动图结构示意图。
具体实施方式
为使本发明的目的、技术方案、优点更加清楚,下面结合附图对本发明的具体实施方式进行详细说明。
以下将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整的描述和讨论,显然,这里所描述的仅仅是本发明的一部分实例,并不是全部的实例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
如图1所示,基于后缀树运动图模型的运动合成方法,包括以下步骤,
步骤1,加载运动捕捉数据库,基于双向巴特沃斯滤波器对运动捕捉数据库中的运动捕捉数据进行滤波;运动捕捉数据的特征为骨骼的各个关节相对其父关节的三维转动信息,即使用各个关节相对其父关节的三维转动信息作为存储和处理运动捕捉数据的特征;本步骤对数据库中的运动捕捉数据采用双向巴特沃斯滤波器进行滤波处理,从而有效去除数据中的噪音;采用节点相对于其父节点的转动信息作为处理运动捕捉数据的特征,从而有效避免了骨骼框架不同造成的影响。
步骤2,基于所述运动捕捉数据的特征采用自组织映射的方法对运动捕捉数据库中的运动捕捉数据进行聚类,并为每一个类别赋予一个符号表示,采用字符匹配算法对动作序列进行匹配,从而将动作序列表示成符号序列,连续重复出现的字符只记一次,如图2所示,四种类的运动捕捉数据分别赋予A、B、C、D字符表示。采用字符匹配算法对动作序列进行匹配,从而更为高效地对动作序列进行匹配。
步骤3,采用Ukkonen算法从符号序列中生成后缀树索引结构,Ukkonen算法是目前构造后缀树较为稳定且高效的算法,算法时间复杂度为O(n)。图3中给出了图2中动作所对应的后缀树结构。后缀树索引结构是一种对动作序列进行检索的层次化结构,从而更为有效地对动作序列进行检索。该后缀树索引结构可以在O(n)时间复杂度内构造完成。
步骤4,根据后缀树索引结构中的节点间的关系构造自然过渡关系,将后缀树索引结构中所有节点与所述节点所对应的最高层节点相连,构造有损过渡关系,依据有损过渡关系,基于过渡双方前后4帧的数据,采用三次样条插值的方法获得过渡帧,构造运动图结构。从而使得过渡动作更为平滑,合成动作更为逼真。图4中给出了基于图3中后缀树结构所构造的运动图结构。
自然过渡关系是指动作之间连贯,如图2中,动作D-C-B,三个动作连贯,则节点间的关系构造为自然过渡关系,如果动作D-C-B中,动作D直接到动作B,两个动作之间不连贯,需要增加动作连贯动作D、动作B,则动作D、动作B的节点间的关系构造为有损过渡关系。
步骤5,给定用户输入动作,将所述输入动作映射到符号序列,按照所述符号序列找出对应的后缀树结构中的路径,返回所述路径的最后一个节点,所述最后一个节点所对应的动作序列为运动捕捉数据检索的结果。
步骤6,给定用户输入的若干动作,根据后缀树索引结构,找出所述动作所对应的节点,通过遍历运动图,找出所有包含所述节点的路径,并计算节点的路径长度,最后将由各路径合成的动作按照其路径长度进行排序,路径长度最短的即为最优合成动作。
路径长度为所述路径中所有有损过渡点处基于运动捕捉数据的特征聚类后属于相同类的相似姿势之间的欧几里得距离之和。
Ukkonen算法时间复杂度为O(n),当对运动捕捉数据库进行插入和删除操作时,可以在O(1)时间复杂度内完成对后缀树的更新。
以上仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。