一种基于运动片元拼接的多角色人体运动合成方法与流程

文档序号:14774346发布日期:2018-06-23 02:39阅读:504来源:国知局
一种基于运动片元拼接的多角色人体运动合成方法与流程

本发明属于计算机视觉运动合成领域,尤其是涉及到基于运动片元的多角色人体运动合成片元抽样方法和拼接方法。



背景技术:

随着计算机视觉技术和动画合成技术的高速发展,虚拟现实、计算机动画、影视制作和游戏娱乐逐渐成为国内外研究人员追捧的研究热点。人体运动合成一直是计算机图形学中一个热门研究课题,涉及计算机图形学、计算机视觉、虚拟现实、人工智能和机器学习等多个学科知识。多角色交互场景模拟在电影、游戏、仿真中应用场景众多,角色交互包括角色与环境之间的交互。角色与角色间的交互,交互形成的视觉效果和趣味性对观众具有非常大的吸引力。在多角色交互模型中,各个角色在交互过程中需要做到空间上动作协调,时间上运动同步,这往往需要很大的计算量,消耗大量的运算时间和硬件资源,因此,如何高效并真实的构建虚拟人群运动场景成为了计算机图形学领域的一大难点。

与传统的运动合成方法相比,基于运动片元拼接的运动合成方法可以充分利用运动数据库,将运动数据预处理后构建生成运动片元,运动片元是自定义的运动模块,其中包括角色信息、交互信息和环境信息。然后通过对运动片元的抽样和拼接来实现合成动画中角色位置和交互的最佳分布,同时需要避免角色碰撞和重叠,常规的穷举法显然是无法胜任的,本方法采用随机抽样和确定性组合搜索算法来解决离散和连续方面的问题.构建生成的运动片元是可变形的,提高了拼接的灵活性并可以降低片元拼接的难度,可变形片元保证拼接过程的平滑过渡,同时保证其连惯性。



技术实现要素:

为了克服现有人体运动合成方法实现的交互复杂程度不高,人类行为的多样性有限和人际互动的时空密度不足的问题,本发明提出一种基于运动片元抽样拼接的运动合成方法,通过收集变形运动补丁解决空间对齐和时间同步问题,每个运动片元描述一段多角色交互运动的片段,在空间和时间上对其拼接;运动片元拼接产生一个多虚拟角色随机交互的无缝仿真系统,拼接算法采用随机抽样和确定性搜索解决解决拼接中离散和连续方面的问题,拼接算法可以自动生成多角色交互的高度复杂动画;实现的交互复杂程度、人类行为的多样性和人际互动的时空密度都远高于目前动画技术水平。

本发明解决其技术问题所采用的技术方案是:

一种基于运动片元拼接的多角色人体运动合成方法,所述方法包括以下步骤:

1)运动数据采集,过程如下:

将长视频分解为连续的帧,提取每一帧中行人所处的位置(x,y),每个行人具有唯一的编号标识;最终每个行人的路径表示为离散像素点集T={pi=(xi,yi)|i=1,...,n},其中n表示视频的帧数,(xi,yi)表示该行人在第i帧时所处的位置;

将运动数据库中运动实例表示为高维向量{Mn(t)|n=1,...,N,t=1,...,Tn},其中,N是运动实例数,Tn是第n个运动实例的帧,向量Mn(t)={tk0,qk1,qk2,...,qkJ|k=1,...,K}表示第t帧时各个角色的运动姿势,其中,tk0表示根节点的平移位置,qk1,qk2,...,qkJ表示所有关节点的旋转角度,J表示关节数,K表示该运动实例中包含的角色个数;

2)可变形运动模型构建,过程如下:

将初始运动序列Mn分解为两个数据集:规整后的运动实例Sn和对应的时间规整函数Wn,即对应人体运动的几何变化和时间变化两部分;

Sn是高维向量,表示第n个运动实例的所有帧姿势,需要将PCA(主成分分析)作用于Sn,构造一个可变形几何模型

其中,表示运动数据库中所有运动的平均运动,a=(a1,...,am)是载荷矩阵,m为基向量个数,是低维几何向量;那么,降维后的第t帧姿势的可变形几何模型表示为

对W(t)进行如下转换

Z(t)=ln(W(t)-W(t-1)) (3)

然后对Zn进行主成分分析,构造一个可变形时间模型

其中,表示所有对齐曲线的均值,b=(b1,...,bn)是载荷矩阵,

n为基向量个数,是低维时间向量;那么,降维后的第t帧姿势的可变形时间模型表示为

将上述两个式子结合起来,得到原始空间中的可变形时间模型:

通过对上述两部分变化使用PCA降维,获得了ai和bi两个向量,以及由和张成的两个低维子空间,分别描述了几何特征和时间特征;将可变形几何模型和可变形时间模型相结合,构造一个完整的可变形运动模型

其中,操作表示将运动序列Sn用时间规整函数Wn进行规整;

3)构建角色运动片元,过程如下:

根据3个标准从原始运动数据提取运动片元片段,

接触:运动角色之间的物理接触;

接近:即使角色没有身体接触,两个角色间身体很接近的情况也不能忽视,一方会对另一方的接近做出反应,反应程度由连续运动帧中角色移动距离决定,连续帧窗口[i-n,i+n]的第i帧的估计移动距离

其中,是指两个运动角色间水平平移和旋转的姿体差异,实验过程设定了Si的阈值,根据阈值将角色间身体接近的情况筛选出来,从而提取运动片元;

同步性:即使两个角色没有彼此接近,如果两个角色能同时进行相同的动作,说明它们能意识到对方的行为,也代表两者之间发生了有效交互事件,假设运动数据包括两个角色A和B的交互运动,角色A有它的运动数据和索引x,角色B有它的运动数据和索引y,如果A和B在参考时间内动作相符,则两个角色之间的同步因子为

其中,r(A,B)表示两个角色正方向的夹角,从A的脸部到B的上半身的向量,根据同步因子估计出A是否能意识到B此刻的行动;

4)运动片元随机抽样和确定性搜索,过程如下:

4.1)片元随机抽样算法,经过随机抽样步骤,得到一个较为粗糙的拼接图;

4.2)片元确定性搜索算法;

5)运动片元拼接方法,过程如下:自动无缝拼接片元构建虚拟场景,或是在用户定义的时空区域内填充片元。

进一步,所述4.1)中,片元随机抽样算法的过程如下:

4.1.1),初始化拼接图P,初始温度T,最大迭代次数Tmax,最大抽样次数kmax,初始化k为0;

4.1.2),如果k<kmax进入续4.1.3),否则结束;

4.1.3),随机抽取一个运动片元Pnew,拼接到现有拼接图P上,P'=P∪Pnew;

4.1.4),计算增量ΔE=E(P')-E(P),能量函数其中,Nc表示已经拼接好的出/入口对数,Nd表示单个出/入口个数,α是用来平衡片元密度与单个出/入口个数的一个常数;

4.1.5),如果ΔE≥0并且P'有效,则进入4.1.6);否则转到4.1.7);

4.1.6),接受P',即P=P',k初始化为0,进入4.1.7);

4.1.7),逐渐以ΔT减少T,且T→0,k=k+1,转到4.1.2)。

再进一步,所述4.2)中,片元确定性搜索算法的过程如下:

4.2.1),现有拼接图P,P中单个出/入口的个数N(P),P中单个出/入口集D,最大迭代次数kmax,初始化迭代次数k为0;

4.2.2),判断D是否为空,如果D为空,则结束本程序;否则初始化i=1,…,N(P),d为D中第i个出/入口,进入4.2.3);

4.2.3),如果i>N(P),则结束本程序;否则从D中获得新的d,进入4.2.4);

4.2.4),如果k≥kmax,转到4.2.3);否则选择运动片元Pnew,满足条件Pnew能与d相匹配,拼接到现有拼接图P上,P'=P∪Pnew;

4.2.5),如果N(P')≤N(P),进入4.2.6);否则N(P')>N(P),新增的出/入口数目比匹配消除的出/入口数目更多,则舍弃Pnew,k=k+1,转到4.2.4);

4.2.6),如果k<kmax,则进入4.2.7);否则转到4.2.10);

4.2.7),判断P'是否有效,如果P'有效则进入4.2.8);否则转到4.2.9);

4.2.8),接受P',即P=P',将Pnew中新增的单个出/入口添加到D中,转到4.2.3);

4.2.9),新的P'无效,对Pnew进行一定的变形,获得新的Pnew,从而得到P'=P∪Pnew,k=k+1,转到4.2.6);

4.2.10),没有匹配的Pnew与d相连,则舍弃d所在运动片元,将新增加的单个出/入口添加到D中;i=i+1,转到4.2.3)。

更进一步,所述步骤5)中,所述可将使用片元拼接创建整个场景的方法为自底向上的方法,从一个空场景到创建整个场景的过程,首先放置第一块片元,接着以第一块片元为中心,逐层向外,拼接上第二块、第三块片元等,如此迭代拼接,直至整个场景构建完毕,新增加的片元在拼接时受到已有片元的约束,在时空上要满足约束条件。

或者是:所述可将使用片元拼接创建整个场景的方法分为自顶向下的方法,给定一个几何形状,在障碍物以外的区域填充运动片元的过程。

利用几何方法对无障碍物区域进行划分,分解为三角形或四边形,先用大块的运动片元对场景进行填充,再用小块的运动片元填补空隙。

本发明的有益效果主要表现在:针对人体运动合成方法实现的交互复杂程度不高,人类行为的多样性有限和人际互动的时空密度不足的问题,提出了一种基于运动片元拼接的多角色人体运动合成方法。构建可变形运动模型,通过收集变形运动补丁构建运动片元解决运动合成过程中拼接灵活度问题,每个运动片元描述一段多角色交互运动的片段,在空间和时间上对其拼接。运动片元拼接产生一个多虚拟角色随机交互的无缝仿真系统。拼接算法采用随机抽样和确定性搜索解决解决拼接中离散和连续方面的问题。此方法合成的人体运动动画交互复杂程度高,人类行为的多样性丰富和人际互动的时空密度大。

附图说明

图1是该基于运动片元合成方法过程总架构图。

图2是本发明构建片元过程中有效事件识别示意图,其中,(a)角色接触,(b)角色接近,(c)角色同步。

图3是本发明所提方法构建生成的有效运动片元示意图。

图4是本发明所提方法运动拼接示意图,其中,(a)自底向上的拼接方法,

(b)自顶向下的拼接方法。

图5是本发明所提方法生成的多角色人体运动合成动画,其中,(a)合成动画总览图,(b)各个角色间打斗,鸡跳等交互动作示意图。

图6是基于运动片元拼接的多角色人体运动合成方法的流程图。

具体实施方式

下面结合附图对本发明作进一步描述。

参照图1~图6,一种基于运动片元拼接的多角色人体运动合成方法,方法总体技术架构如图1所示,包括以下步骤:

1)运动数据采集,过程如下:

将长视频分解为连续的帧,提取每一帧中行人所处的位置(x,y),每个行人具有唯一的编号标识;最终每个行人的路径表示为离散像素点集T={pi=(xi,yi)|i=1,...,n},其中n表示视频的帧数,(xi,yi)表示该行人在第i帧时所处的位置;

将运动数据库中运动实例表示为高维向量{Mn(t)|n=1,...,N,t=1,...,Tn},其中,N是运动实例数,Tn是第n个运动实例的帧,。向量Mn(t)={tk0,qk1,qk2,...,qkJ|k=1,...,K}表示第t帧时各个角色的运动姿势,其中,tk0表示根节点的平移位置,qk1,qk2,...,qkJ表示所有关节点的旋转角度,J表示关节数,K表示该运动实例中包含的角色个数;

2)可变形运动模型构建,过程如下:

将初始运动序列Mn分解为两个数据集:规整后的运动实例Sn和对应的时间规整函数Wn,即对应人体运动的几何变化和时间变化两部分;

Sn是高维向量,表示第n个运动实例的所有帧姿势,需要将PCA(主成分分析)作用于Sn,构造一个可变形几何模型

其中,表示运动数据库中所有运动的平均运动,a=(a1,...,am)是载荷矩阵,m为基向量个数,是低维几何向量;那么,降维后的第t帧姿势的可变形几何模型表示为

对W(t)进行如下转换

Z(t)=ln(W(t)-W(t-1)) (3)

然后对Zn进行主成分分析,构造一个可变形时间模型

其中,表示所有对齐曲线的均值,b=(b1,...,bn)是载荷矩阵,

n为基向量个数,是低维时间向量;那么,降维后的第t帧姿势的可变形时间模型表示为

将上述两个式子结合起来,得到原始空间中的可变形时间模型:

通过对上述两部分变化使用PCA降维,获得了ai和bi两个向量,以及由和张成的两个低维子空间,分别描述了几何特征和时间特征;将可变形几何模型和可变形时间模型相结合,构造一个完整的可变形运动模型

其中,操作表示将运动序列Sn用时间规整函数Wn进行规整;

3)运动片元构建,过程如下:

根据3个标准从原始运动数据提取运动片元片段,

接触:运动角色之间的物理接触;

接近:即使角色没有身体接触,两个角色间身体很接近的情况也不能忽视,一方会对另一方的接近做出反应,反应程度由连续运动帧中角色移动距离决定,连续帧窗口[i-n,i+n]的第i帧的估计移动距离

其中,是指两个运动角色间水平平移和旋转的姿体差异,实验过程设定了Si的阈值,根据阈值将角色间身体接近的情况筛选出来,从而提取运动片元;

同步性:即使两个角色没有彼此接近,如果两个角色能同时进行相同的动作,说明它们能意识到对方的行为,也代表两者之间发生了有效交互事件,假设运动数据包括两个角色A和B的交互运动,角色A有它的运动数据和索引x,角色B有它的运动数据和索引y,如果A和B在参考时间内动作相符,则两个角色之间的同步因子为

其中,r(A,B)表示两个角色正方向的夹角,从A的脸部到B的上半身的向量,根据同步因子估计出A是否能意识到B此刻的行动;

检测到角色间发生有效事件后,还需要从一系列运动片元中确定它们的边界(入口/出口),处理片元边界问题需要注意以下几点:首先,我们希望片元边界处是没有事件的,任何发生在边界的交互事件都会增加拼接难度,其次,我们希望片元拼接尽可能紧凑,小片元在密集场景下显得更加灵活,最后,我们希望在片元边界处角色身体姿势不要太多样,边界处多样的身体姿势将导致拼接过程非常困难。本方法生成的运动片元如图3所示

4)运动片元抽样过程,过程如下:

4.1)片元随机抽样算法,过程如下:

给定一个运动片元集,我们首先对其进行随机抽样合成粗糙的拼接图。主要分为以下几步:

第一步,初始化拼接图P,初始温度T,最大迭代次数Tmax,最大抽样次数kmax,初始化k为0;

第二步,如果k<kmax则继续下一步,否则结束本算法;

第三步,随机抽取一个运动片元Pnew,拼接到现有拼接图P上,P'=P∪Pnew;

第四步,计算增量ΔE=E(P')-E(P),能量函数其中,Nc表示已经拼接好的出/入口对数,Nd表示单个出/入口个数,α是用来平衡片元密度与单个出/入口个数的一个常数;

第五步,如果ΔE≥0并且P'有效,则继续下一步;否则转到第七步;

第六步,接受P',即P=P',k初始化为0,继续下一步;

第七步,逐渐以ΔT减少T,且T→0,k=k+1,转到第二步。

经过随机抽样步骤,可以得到一个较为粗糙的拼接图,尽管随机抽样中的能量函数能减少单个出/入口个数,但是往往收敛较慢。接下来使用确定性搜索方法对其进行细化。

4.2)片元确定性搜索算法,过程如下:

第一步,现有拼接图P,P中单个出/入口的个数N(P),P中单个出/入口集D,最大迭代次数kmax,初始化迭代次数k为0;

第二步,判断D是否为空,如果D为空,则结束本程序;否则初始化i=1,…,N(P),d为D中第i个出/入口,继续下一步;

第三步,如果i>N(P),则结束本程序;否则从D中获得新的d,继续下一步;

第四步,如果k≥kmax,转到第三步;否则选择运动片元Pnew,满足条件Pnew能与d相匹配,拼接到现有拼接图P上,P'=P∪Pnew;

第五步,如果N(P')≤N(P),继续下一步;否则N(P')>N(P),新增的出/入口数目比匹配消除的出/入口数目更多,则舍弃Pnew,k=k+1,转到第四步;

第六步,如果k<kmax,则继续下一步;否则转到第十步;

第七步,判断P'是否有效,如果P'有效则继续下一步;否则转到第九步;

第八步,接受P',即P=P',将Pnew中新增的单个出/入口添加到D中,转到第三步;

第九步,新的P'无效,对Pnew进行一定的变形,获得新的Pnew,从而得到P'=P∪Pnew,k=k+1,转到第六步;

第十步,没有匹配的Pnew与d相连,则舍弃d所在运动片元,将新增加的单个出/入口添加到D中;i=i+1,转到第三步。

5)运动片元拼接方法,过程如下:

运动片元拼接的目标是能够自动无缝拼接片元构建虚拟场景,或是在用户定义的时空区域内填充片元。由此,可将使用片元拼接创建整个场景的方法分为自底向上和自顶向下两类,如图4(a)所示,自底向上的拼接方法,如图4(b)所示,自顶向下的拼接方法。

自底向上的方法是从一个空场景到创建整个场景的过程。首先放置第一块片元,接着以第一块片元为中心,逐层向外,拼接上第二块、第三块片元等,如此迭代拼接,直至整个场景构建完毕。新增加的片元在拼接时受到已有片元的约束,在时空上要满足约束条件。

自顶向下的方法是给定一个几何形状,在障碍物以外的区域填充运动片元的过程。这种方法适合虚拟城市建模。可以利用几何方法对无障碍物区域进行划分,一般可分解为三角形、四边形等多边形结构。一般先用大块的运动片元对场景进行填充,再用小块的运动片元填补空隙。

对于构建静态场景,在拼接运动片元的第一阶段随机抽样中,我们对大块片元分配更高的权值,尽可能选择角色多、空间范围大、持续时间长的片元,加快拼接过程,降低计算开销。在第二阶段确定性搜索中,在第一阶段拼接图的基础上,继续填充小块的、单人的片元,使整个拼接图连续、紧密。拼接结果如图5(a)所示,角色打斗、鸡跳等交互画面如图5(b)所示,动态环境的构建与静态环境构建相似,此外还需要解决碰撞避免、相互渗透的问题。由于我们的可变形运动模型中能嵌入环境接触信息,因此能很好得解决这些问题。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1