CN101840586B - 虚拟人运动规划的方法及其系统 - Google Patents

虚拟人运动规划的方法及其系统 Download PDF

Info

Publication number
CN101840586B
CN101840586B CN2010101408645A CN201010140864A CN101840586B CN 101840586 B CN101840586 B CN 101840586B CN 2010101408645 A CN2010101408645 A CN 2010101408645A CN 201010140864 A CN201010140864 A CN 201010140864A CN 101840586 B CN101840586 B CN 101840586B
Authority
CN
China
Prior art keywords
state
action
punishments
rewards
accumulative total
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2010101408645A
Other languages
English (en)
Other versions
CN101840586A (zh
Inventor
李淳芃
宗丹
夏时洪
王兆其
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN2010101408645A priority Critical patent/CN101840586B/zh
Publication of CN101840586A publication Critical patent/CN101840586A/zh
Application granted granted Critical
Publication of CN101840586B publication Critical patent/CN101840586B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Manipulator (AREA)

Abstract

本发明涉及虚拟人运动规划方法及其系统,方法包括:步骤1,通过运动捕捉设备获得虚拟人的运动数据;步骤2,创建增强学习模型,增强学习模型包括通过采样环境获得的状态、通过采样运动数据获得的动作,配置的状态对应于动作的一次性奖惩值,状态对应于动作的累计奖惩值,初始化累计奖惩值;步骤3,应用一次性奖惩值和累计奖惩值,状态的后续状态对应于各个动作的累计奖惩值,对状态对应于动作的累计奖惩值进行迭代更新;步骤4,对于给定的虚拟人的状态,根据状态对应于动作的累计奖惩值从采集获得的动作中选择从给定的虚拟人的状态到设定的目标状态间的动作。本发明能够选择不同类型的运动片段作为样本数据,并在运动合成时避免耗时计算。

Description

虚拟人运动规划的方法及其系统
技术领域
本发明设计虚拟人合成技术,尤其涉及虚拟人运动规划方法及其系统。
背景技术
近年来,虚拟人合成技术的应用日益广泛。从影视动漫到广告制作、从网络游戏到体育训练、从虚拟维修到安全预演,诸多领域都涉及虚拟人合成技术。然而,作为这些应用的基础,如何对虚拟人的运动进行规划并合成出具有一定智能的虚拟人运动为需要解决的技术问题。
传统的虚拟角色动画大都是由经验丰富的动画师手工编辑生成。动画师通过3D工具软件设定关键帧时刻的人体静态姿态,再生成关键帧之间的中间姿态。由于角色的自由度较高,这种传统的编辑方法需要消耗大量的人力和时间,而且生成的动画结果依赖于动画师的经验。
近些年来,运动捕获设备的出现为虚拟角色动画合成提供了一种新思路。该技术利用专门的设备捕捉演员的真实动作,然后将这些数据映射到动画角色上。这种方法由于运动捕获设备真实地记录了角色的运动,因此能够生成逼真、自然的虚拟角色动画,并且效率较高。然而,捕获的运动数据只能应用于特定的环境,当虚拟环境改变时,直接使用运动捕获数据就会出现问题。其次,直接重用运动捕获数据无法生成需要规划的虚拟人运动。最后,要从一个大的数据库中实时地搜索出合适的运动,以匹配给定环境实现困难。无法将数据驱动方法用于复杂环境的虚拟人运动规划中。
针对虚拟人运动规划中遇到的各种问题,现有技术中具有不同的方法。基于增强学习的运动规划方法是现有技术中有效的运动合成方法之一。所谓增强学习是指从环境状态到动作映射的学习,以使动作从环境中获得的累积回报值最大,从而使虚拟角色在环境中学习得到最佳动作序列。增强学习的方法具体描述参见Near-optimal character animation with continuouscontrol,ACM Transactions on Graphics,2007,26(3):402-408。应用增强学习的方法合成虚拟人运动。其步骤主要包含:(1)在对大规模数据库进行分析的基础上,得到具有相似运动结构的一系列样本运动,使得该类运动具有相同的约束帧,例如,相同的脚着地阶段,从而防止运动融合时产生的脚步滑动等问题;(2)用户定义一个代价函数,用该函数度量给定状态下选择某个运动片段的代价,例如,对于一个沿给定路径行走的动作序列,选择远离该路径的运动片段比选择沿着该路径的运动片段代价要大;(3)在状态空间进行高密度采样,将每个状态的长期代价定义为该状态的值函数;(4)合理选取一组基函数,并用该组基函数的线性组合表示值函数。采用线性规划的方法就可以优化得到基函数的加权系数。然而,这种基于线性规划的增强学习运动合成方法具有如下缺点:(1)该方法基于这样一个前提假设,前提假设为值函数可以看作一组基函数的线性组合,若基函数选择不当,则不能收敛;并且当基函数的数目增加时,优化过程的效率低下。(2)能够处理的运动类型单一,该方法要求样本运动具有相同的约束帧,以防止运动融合过程中可能出现的脚步滑动问题。不同类型的运动由于不具有相同的约束帧,因此无法用于模型训练。
发明内容
为解决上述问题,本发明提供了虚拟人运动规划方法及其系统,能够选择不同类型的运动片段作为样本数据,并在运动合成时避免耗时计算。
本发明公开了一种虚拟人运动规划方法,包括:
步骤1,通过运动捕捉设备获得虚拟人的运动数据;
步骤2,创建增强学习模型,所述增强学习模型包括通过采样环境获得的状态、通过采样所述运动数据获得的动作,配置的状态对应于动作的一次性奖惩值,以及状态对应于动作的累计奖惩值,并初始化所述累计奖惩值;所述状态表示虚拟人在环境中的空间位置和姿态,所述动作表示虚拟人的一组姿态;
步骤3,应用所述一次性奖惩值和所述累计奖惩值,以及所述状态的后续状态对应于各个动作的累计奖惩值,对状态对应于动作的累计奖惩值进行迭代更新,获得收敛的状态对应于动作的累计奖惩值;
步骤4,对于给定的虚拟人的状态,根据所述的状态对应于动作的累计奖惩值从所述采集获得的动作中选择从所述给定的虚拟人的状态到设定的目标状态间的动作。
所述步骤2进一步为,
步骤21,对环境进行抽样,获得多个状态,所述状态组成状态集合;
步骤22,对运动数据序列中的运动片段进行采样选择,以被选择的运动片段作为动作,所述动作组成动作集合;
步骤23,根据设定的目标状态配置一步奖惩矩阵,所述一步奖惩矩阵用于记录每个状态对应于每个动作的一次性奖惩值;
步骤24,创建累计奖惩矩阵,所述累计奖惩矩阵用于记录每个状态对应于每个动作的累计奖惩值,初始化所述累计奖惩矩阵为0。
所述步骤3进一步为,
步骤31,从状态的集合中任意选择一个状态,并从所述动作的集合中选择所述状态的一个可行的动作;
步骤32,根据当前累计奖惩矩阵中所述状态对应于所述动作的累计奖惩值、一步奖惩矩阵中所述状态对应于所述动作的一次性奖惩值、以及当前累计奖惩矩阵中所述状态的后续状态对应于各个动作的累计奖惩值,更新累计奖惩矩阵中所述状态对应于所述动作的累计奖惩值;
步骤33,重复所述步骤31和所述步骤32直至所述累计奖惩矩阵满足预设的收敛条件或重复次数达到预设重复次数值。
所述步骤4进一步为,
步骤41,以给定的虚拟人的状态为初始的当前状态;
步骤42,通过规整化的方法,在状态集合中查找同当前状态最接近的状态;
步骤43,在累计奖惩矩阵中查找所述最接近的状态对应的最大的累计奖惩值,选择同所述累计奖惩值对应的动作为所述状态对应的动作;
步骤44,在所述当前状态上运行所述动作获得新的状态,更新当前状态为所述新的状态;
步骤45,判断所述新的状态是否为设定的目标状态,如果是则终止,否则,执行所述步骤42。
所述步骤4后还包括:
步骤51,将选择的由给定的状态到设定的目标状态之间的动作进行前后拼接,生成动作序列。
预设最大迭代次数为MAXTIME,
所述收敛条件为累计奖惩矩阵连续MAXTIME次不发生变化。
所述步骤32进一步为,
步骤71,按如下公式更新状态对应于动作的累计奖惩值,
Qt+1(st,at)=(1-η)×Qt(st,at)+η×{R(st,at)+γ×max[Qt(st+1,al)]}
其中,l=1,2,...,N-1,N,N为动作集合中动作的数目,η为预设的学习率,γ为预设的折扣因子,R为一步奖惩矩阵,Q为累计奖惩矩阵,max[Qt(st+1,al)]表示后续状态st+1的对应于所有动作的累计奖惩值中的最大值。
本发明还公开了一种虚拟人运动规划系统,包括:
运动捕捉模块,用于通过运动捕捉设备获得虚拟人的运动数据;
模型建立模块,用于创建增强学习模型,所述增强学习模型包括通过采样环境获得的状态、通过采样所述运动数据获得的动作,配置状态对应于动作的一次性奖惩值,以及状态对应于动作的累计奖惩值,并初始化所述累计奖惩值;所述状态表示虚拟人在环境中的空间位置和姿态,所述动作表示虚拟人的一组姿态;
模型学习模块,用于应用所述一次性奖惩值和所述累计奖惩值,以及所述状态的后续状态对应于各个动作的累计奖惩值,对状态对应于动作的累计奖惩值进行迭代更新,获得收敛的状态对应于动作的累计奖惩值;
任务完成模块,用于对于给定的虚拟人的状态,根据所述的状态对应于动作的累计奖惩值从所述采集获得的动作中选择从所述给定的虚拟人的状态到设定的目标状态间的动作。
所述模型建立模块进一步用于对环境进行抽样,获得多个状态,所述状态组成状态集合;对运动数据序列中的运动片段进行采样选择,以被选择的运动片段作为动作,所述动作组成动作集合;根据设定的目标状态配置一步奖惩矩阵,所述一步奖惩矩阵用于记录每个状态对应于每个动作的一次性奖惩值;创建累计奖惩矩阵,所述累计奖惩矩阵用于记录每个状态对应于每个动作的累计奖惩值,初始化所述累计奖惩矩阵为0。
所述模型学习模块进一步用于从状态的集合中任意选择一个状态,并从所述动作的集合中选择所述状态的一个可行的动作;根据当前累计奖惩矩阵中所述状态对应于所述动作的累计奖惩值、一步奖惩矩阵中所述状态对应于所述动作的一次性奖惩值、以及当前累计奖惩矩阵中所述状态的后续状态对应于各个动作的累计奖惩值,更新累计奖惩矩阵中所述状态对应于所述动作的累计奖惩值;重复前述过程直至所述累计奖惩矩阵满足预设的收敛条件或重复次数达到预设重复次数值。
所述任务完成模块进一步用于以给定的虚拟人的状态为初始的当前状态;通过规整化的方法,在状态集合中查找同当前状态最接近的状态;在累计奖惩矩阵中查找所述最接近的状态对应的最大的累计奖惩值,选择同所述最大的累计奖惩值对应的动作为所述状态对应的动作;在所述当前状态上运行所述动作获得新的状态,更新当前状态为所述新的状态;重复前述过程直至所述新的状态为设定的目标状态。
所述任务完成模块还用于将选择的由给定的状态到设定的目标状态之间的动作进行前后拼接,生成动作序列。
预设最大迭代次数为MAXTIME,
所述收敛条件为累计奖惩矩阵连续MAXTIME次不发生变化。
所述模型学习模块进一步用于按如下公式更新状态对应于动作的累计奖惩值,
Qt+1(st,at)=(1-η)×Qt(st,at)+η×{R(st,at)+γ×max[Qt(st+1,al)]}
其中,l=1,2,...,N-1,N,N为动作集合中动作的数目,η为预设的学习率,γ为预设的折扣因子,R为一步奖惩矩阵,Q为累计奖惩矩阵,max[Qt(st+1,al)]表示后续状态st+1的对应于所有动作的累计奖惩值中的最大值。
本发明的有益效果在于,在训练增强学习模型时,只需要配置状态对应于动作的一次性奖惩值,便于以一种直观的方式训练得到运动控制模型;在运动合成阶段,只需通过查找累计奖惩矩阵便能够得到最佳动作序列,不涉及耗时的计算过程,能够实时应用的需求;训练样本中包含多种不同类型的运动,因此能够实现不同运动类型之间的行为选择;通过一步奖惩矩阵反映环境约束,进而使得虚拟人能够根据特定的环境约束产生新的动作,即产生交互式行为。
附图说明
图1是本发明虚拟人运动规划方法的流程图;
图2是本发明虚拟人运动规划系统的结构图。
具体实施方式
下面结合附图,对本发明做进一步的详细描述。
本发明虚拟人运动规划方法的流程如图1所示。
步骤S100,通过运动捕捉设备获得虚拟人的运动数据。
利用当前市场上销售的各种光学、电磁学的运动捕获设备,例如VICON公司生产的捕获设备VICON 8等,采集角色运动数据样本。本步骤所涉及的运动捕获技术是的现有技术,相关设备与技术参见:http://www.vicon.com/。
将采集的运动数据序列,记为{Motioni}i=1 |A|,其中|A|为运动数据序列中运动片段的数目。每个运动片段由一组姿态组成,记为
Figure GSA00000074535500061
其中Posej i表示第i个运动片段中第j帧姿态,|P|i表示该第i个运动片段的帧的数目,对于不同的运动片段,其中包含的帧的数目可能不同。运动片段中的一帧姿态,记为Pose={p,q1,...,q|B|},其中,p表示根关节的位置,q1表示根关节的朝向,q2,...,q|B|表示各个子关节相对于根关节的朝向,|B|为虚拟人模型的关节数目。
对于采集运动数据序列中的每一个运动片段要求具有相似的起始姿态和终止姿态。如果运动片段不满足此条件,可以将所述运动片段做一定的偏置映射。运动片段的偏置映射是对运动片段的局部做修改,使其最大可能的保留原始运动的细节以及运动的连续性。下面假设对运动片段Motioni进行处理,使得处理后运动片段的第一帧为目标姿态Pt
首先记录运动片段Motioni中每一帧的根关节位置{pj}j=1 |p|和关节朝向{qj 1,qj 2,...,qj |B|}j=1 |p|,其中|P|为所述运动片段的帧数,|B|为虚拟人模型的关节数目。确定目标姿态的根关节位置pt和关节朝向{qt 1,qt 2,...,qt |B|}。
由于要求处理后运动片段的第一帧为目标姿态,因此计算该运动片段的第一帧姿态和目标姿态的根关节位置差异Δp和关节朝向差异Δq分别按如下公式。
Δp=pt-p1
Δq = ( Δq 1 , Δq 2 , . . . Δq | B | ) = ( q t 1 - q 1 1 , q t 2 - q 1 2 , . . . , q t | B | - q t | B | )
若直接将运动片段Mi的第一帧姿态修改为目标姿态,会使融合后的运动片段出现跳变,导致运动的不平滑。为使得融合后的运动过渡自然,将调整所引起的姿态差异均匀地分散到运动的前若干帧去。以修改运动片段Mi的前n帧为例,则运动片段修改后的前n帧的根关节位置和关节朝向分别如下:
pj=pjj×Δp
qj=qjj×Δq
其中 j = 1 , . . . , n , α j = j - 1 n - 1 .
按上述方法得到处理后的运动片段的第一帧即为目标姿态。
若要求运动片段的最后一帧为目标姿态pt,则计算最后一帧姿态和目标姿态关节位置差异Δp和关节朝向差异Δq分别如下公式。
Δp=pt-p|p|
Δq=qt-q|p|
运动片段修改后的后n帧的根关节位置和关节朝向分别如下:
pj=pjj×Δp
qj=qjj×Δq
其中j=|p|-10,|p|-9,...,|p|-1,|p|;
Figure GSA00000074535500072
按上述方法得到处理后的运动片段的最后一帧即为目标姿态。
步骤S200,创建增强学习模型,所述增强学习模型包括通过采样环境获得的状态、通过采样所述运动数据获得的动作,配置的状态对应于动作的一次性奖惩值,以及状态对应于动作的累计奖惩值,并初始化所述累计奖惩值;所述状态表示虚拟人在环境中的空间位置和姿态,所述动作表示虚拟人的一组姿态。
增强学习模型利用估计的状态-动作对的奖惩值来估计期望奖惩。一个标准的增强学习模型,包括:状态集合,表示为S;动作集合,表示为A;一步奖惩函数,表示为R;策略,表示为π。具体内容参考Introduction toreinforcement learning.1998.MIT Press,Cambridge,MA,USA,1998。
所述步骤S200的一具体实施方式如下所述。
步骤S210,对环境进行抽样,获得多个状态,所述状态组成状态集合。
对包含有多个障碍物的复杂环境进行采样,获得表示虚拟人三维空间位置和姿态的状态,该些状态组成状态集合。
将状态集合记为SM,M为状态集合中状态的数目。状态记为s,s∈SM。其中s=(x,y,z,θ,type)。(x,y,z)表示虚拟人在三维空间中的位置。θ表示虚拟人在x-z平面上投影与x轴的夹角,type表示虚拟人的当前姿态。对环境空间的采样可以为等间隔或不等间隔的采样。
步骤S220,对运动数据序列中的运动片段进行采样选择,以被选择的运动片段作为动作,所述动作组成动作集合。
对运动数据序列中的运动片段进行采样选择可以是选择运动数据序列中所有的运动片段,或者按等间隔从运动数据序列中选择运动片段,或者按不等间隔从运动数据序列中选择运动片段。将动作集合记为AN,N为动作集合中动作的数目。动作记为a,s∈AN。其中a=(ID,type1,type2,Δθ),ID表示动作a在动作集合AN中的编号;type1表示该动作对应的运动片段的第一帧姿态所属类型,type2表示该动作对应的运动片段的最后一帧姿态所属类型,Δθ表示该动作对应的运动片段首末姿态朝向的差异。
步骤S230,根据设定的目标状态配置一步奖惩矩阵,该一步奖惩矩阵用于记录每个状态对应于每个动作的一次性奖惩值。
一步奖惩矩阵中的一个函数表示某一状态对应于某一动作的一次性奖惩值。一步奖惩矩阵表示为RM×N,一步奖惩矩阵能够反映环境约束和用户定义的约束。一步奖惩矩阵中R(m,n)是第m个状态下,选取第n个动作时的一次性奖惩值。
配置目标状态为st=(xt,yt,zt,θt,typet),其中(xt,yt,zt)为虚拟人到达目标状态时的三维空间位置,θt为目标状态时的姿态朝向,typet为目标状态时的姿态类型。
具体实施例中按如下原则进行一次性奖惩值的配置。
若在该状态下该动作不可行,则配置R(m,n)为-∞(表示负无穷);
若在该状态下该动作可行但未达目标状态,则配置R(m,n)为0;
若在该状态下该动作可行且达到目标状态,则配置R(m,n)为100。
对于相同步幅的行走和跳跃的片段,若两个动作都可选,则将行走片段的R值定义的比跳跃片段的R值略大。表明相同情况下,虚拟人更倾向于选择行走片段。
步骤S240,创建用于记录每个状态对应于每个动作的累计奖惩值的累计奖惩矩阵,初始化所述累计奖惩矩阵为0。
累计奖惩矩阵是当前状态的多步奖惩值累加,表示从长远的角度考虑的一个状态-动作对的奖惩值。Q(m,n)表示虚拟人处于状态sm下执行动作an的累计奖惩值,包括当前的一步奖惩及后续策略奖惩的折扣和值的累加。
步骤S300,应用所述一次性奖惩值和所述累计奖惩值,以及所述状态的后续状态对应于各个动作的累计奖惩值,对状态对应于动作的累计奖惩值进行迭代更新,获得收敛的状态对应于动作的累计奖惩值。
采用试错法原理,利用与环境交互的评价性增强信号学习训练增强学习模型。在训练过程中若某一动作获得环境正的奖惩,则以后产生这个动作的趋势便会加强;否则,产生这个动作的趋势便会减弱。其目标是学习一个状态集合到动作集合的映射,使系统在当前状态下选择的动作能够从环境中获得最大的期望奖惩值。训练过程包含一组迭代过程,对于每一次迭代学习:观察当前状态st,选择动作at,再观察后续状态st+1,并接受一次性奖惩值rt,然后更新累计奖惩值。
后续状态st+1为当前状态st经过执行选择动作at后所到达的状态。
所述步骤S300的一具体实施方式如下所述。
步骤S310,从状态的集合中任意选择一个状态,并从所述动作的集合中选择所述状态的一个可行的动作。
任意选取一个状态为初始状态。从状态集合SM中任意选取一个状态st作为初始状态。也就是任意指定三维环境中的点(st.x,st.y,st.z)作为虚拟人的起始位置,虚拟人在x-z平面上的投影与x轴方向夹角为st.θ,虚拟人当前姿态类型为st.type。
为该初始状态选取一个可行的动作,并将当前状态更新为下一个状态,用其对应的一步奖惩矩阵更新累计奖惩矩阵。
根据一步奖惩矩阵的配置规则,若R(st,at)大于等于0,则表明状态st可以选择动作at;若st对应的行中所有元素都为-∞,则表明状态st为不合理状态,则重新选取一个状态作为初始状态。若st对应的行中有多个不为-∞的值,则表明状态st可以选择的动作有多个。
步骤S320,根据当前累计奖惩矩阵中所述状态对应于所述动作的累计奖惩值、一步奖惩矩阵中所述状态对应于所述动作的一次性奖惩值、以及当前累计奖惩矩阵中所述状态的后续状态对应于各个动作的累计奖惩值,更新累计奖惩矩阵中所述状态对应于所述动作的累计奖惩值。
在一实施例中按如下公式更新累计奖惩矩阵。
Q ( s , a ) = E [ Σ t = 0 ∞ γ t r t | s 0 = s , a 0 = a ]
该式表示在状态s时刻选择行为a的累计奖惩值,应当等于以状态s为初始状态s0,行为a为初始行为a0的情况下,以后每一步迭代选择获得奖惩值的折扣和的期望。
具体来说,可以用以下式子表示:
Qt+1(st,at)=(1-η)×Qt(st,at)+η×{R(st,at)+γ×max[Qt(st+1,al)]}
其中,l=1,2,...,N-1,N,N为动作集合中动作的数目,η为学习率,γ为折扣因子,R为一步奖惩矩阵,Q为累计奖惩矩阵,max[Qt(st+1,al)]表示从后续状态st+1的所有动作al可能获得的累计奖惩值的最大值。
其中学习率控制学习的速度。学习率越大,收敛越快,但容易产生振荡;学习率越小,收敛越慢。
折扣因子表示学习系统的远视程度,例如限定在[0,1]之间。如果取值比较小,则表示系统更关注最近的动作的影响;如果比较大,则对比较长的时间内的动作都很关注。
步骤S330,重复所述步骤S310和所述步骤S320直至所述累计奖惩矩阵满足预设的收敛条件或重复次数达到预设重复次数值。
设定最大迭代次数为MAXTIME,当累计奖惩矩阵Q连续MAXTIME次不发生变化时,可认为累计奖惩矩阵达到收敛条件。
其中,满足下面的式子则表示累计奖惩矩阵Q没有发生变化。
||Q-Q′||<ε
其中,Q′为Q经过一次迭代后的累计奖惩矩阵,ε为预先定义的阈值。
一般地,当重复次数值足够大时,实际收敛次数仅由收敛条件决定。
步骤S400,对于给定的虚拟人的状态,根据所述的状态对应于动作的累计奖惩值从所述采集获得的动作中选择从所述给定的虚拟人的状态到设定的目标状态间的动作。
所述步骤S400的一具体实施方式如下所述。
步骤S410,对于给定的虚拟人的初始的状态,表示为s0,该初始的状态为当前状态。
步骤S420,通过规整化的方法,在状态集合中查找同当前状态最接近的状态。
步骤S430,在累计奖惩矩阵中查找所述最接近的状态对应的最大的累计奖惩值,选择同所述累计奖惩值对应的动作为所述状态对应的动作,该动作为该状态的最佳动作。
步骤440,在所述当前状态上运行所述动作获得新的状态,更新当前状态为所述新的状态。
步骤450,判断所述新的当前状态是否为设定的目标状态,如果是则终止,否则,执行所述步骤S420。
所得的动作序列即为初始状态下的最佳动作序列,如下:
S 0 → a 0 S 1 → a 1 . . .
其中状态s0的最佳动作是a0,虚拟人处于状态s0时选择动作a0后更新自身状态为s1,状态s1的最佳动作是a1。依此类推,即可到达目标状态。
对所述运动选择序列进行后处理,使其能够展示运动过程。
较佳的技术方案中,还包括步骤S500。
步骤S500,将选择的由给定的状态到设定的目标状态之间的动作进行前后拼接,生成动作序列。
将获得的最佳动作序列顺序拼接,并且在片段首尾连接处注意运动的融合,就能生成给定初始状态时的动作序列了。
一种虚拟人运动规划系统如图2所示。
运动捕捉模块100,用于通过运动捕捉设备获得虚拟人的运动数据。
模型建立模块200,用于创建增强学习模型,所述增强学习模型包括通过采样环境获得的状态、通过采样所述运动数据获得的动作,配置的状态对应于动作的一次性奖惩值,以及状态对应于动作的累计奖惩值,并初始化所述累计奖惩值;所述状态表示虚拟人在环境中的空间位置和姿态,所述动作表示虚拟人的一组姿态。
模型学习模块300,用于应用所述一次性奖惩值和所述累计奖惩值,以及所述状态的后续状态对应于各个动作的累计奖惩值,对状态对应于动作的累计奖惩值进行迭代更新,获得收敛的状态对应于动作的累计奖惩值。
任务完成模块400,用于对于给定的虚拟人的状态,根据所述的状态对应于动作的累计奖惩值从所述采集获得的动作中选择从所述给定的虚拟人的状态到设定的目标状态间的动作。
较佳的实施方式中,模型建立模块200进一步用于对环境进行抽样,获得多个状态,所述状态组成状态集合;对运动数据序列中的运动片段进行采样选择,以被选择的运动片段作为动作,所述动作组成动作集合;根据设定的目标状态配置一步奖惩矩阵,该一步奖惩矩阵用于记录每个状态对应于每个动作的一次性奖惩值;创建用于记录每个状态对应于每个动作的累计奖惩值的累计奖惩矩阵,初始化所述累计奖惩矩阵为0。
较佳的实施方式中,模型学习模块300进一步用于从状态的集合中任意选择一个状态,并从所述动作的集合中选择所述状态的一个可行的动作;根据当前累计奖惩矩阵中所述状态对应于所述动作的累计奖惩值、一步奖惩矩阵中所述状态对应于所述动作的一次性奖惩值、以及当前累计奖惩矩阵中所述状态的后续状态对应于各个动作的累计奖惩值,更新累计奖惩矩阵中所述状态对应于所述动作的累计奖惩值;重复前述过程直至所述累计奖惩矩阵满足预设的收敛条件或重复次数达到预设重复次数值。
进一步实施方式中,模型学习模块300进一步用于按如下公式更新状态对应于动作的累计奖惩值,
Qt+1(st,at)=(1-η)×Qt(st,at)+η×{R(st,at)+γ×max[Qt(st+1,al)]}
其中,l=1,2,...,N-1,N,N为动作集合中动作的数目,η为预设的学习率,γ为预设的折扣因子,R为一步奖惩矩阵,Q为累计奖惩矩阵,max[Qt(st+1,al)]表示后续状态st+1的对应于所有动作的累计奖惩值中的最大值。
较佳的实施方式中,任务完成模块400进一步用于以给定的虚拟人的状态为初始的当前状态;通过规整化的方法,在状态集合中查找同当前状态最接近的状态;在累计奖惩矩阵中查找所述最接近的状态对应的最大的累计奖惩值,选择同所述累计奖惩值对应的动作为所述状态对应的动作;在所述当前状态上运行所述动作获得新的状态,更新当前状态为所述新的状态;重复前述过程直至所述新的状态为设定的目标状态。
较佳的实施方式中,任务完成模块400还用于将选择的由给定的状态到设定的目标状态之间的动作进行前后拼接,生成动作序列。
进一步的实施方式中,预设最大迭代次数为MAXTIME,所述收敛条件为累计奖惩矩阵连续MAXTIME次不发生变化。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。

Claims (14)

1.一种虚拟人运动规划方法,其特征在于,包括:
步骤1,通过运动捕捉设备获得虚拟人的运动数据;
步骤2,创建增强学习模型,所述增强学习模型包括通过采样环境获得的状态、通过采样所述运动数据获得的动作,配置的状态对应于动作的一次性奖惩值,以及状态对应于动作的累计奖惩值,并初始化所述累计奖惩值;所述状态表示虚拟人在环境中的空间位置和姿态,所述动作表示虚拟人的一组姿态;
步骤3,应用所述一次性奖惩值和所述累计奖惩值,以及所述状态的后续状态对应于各个动作的累计奖惩值,对状态对应于动作的累计奖惩值进行迭代更新,获得收敛的状态对应于动作的累计奖惩值;
步骤4,对于给定的虚拟人的状态,根据所述的状态对应于动作的累计奖惩值从所述采集获得的动作中选择从所述给定的虚拟人的状态到设定的目标状态间的动作。
2.如权利要求1所述的虚拟人运动规划方法,其特征在于,
所述步骤2进一步为,
步骤21,对环境进行抽样,获得多个状态,所述状态组成状态集合;
步骤22,对运动数据序列中的运动片段进行采样选择,以被选择的运动片段作为动作,所述动作组成动作集合;
步骤23,根据设定的目标状态配置一步奖惩矩阵,所述一步奖惩矩阵用于记录每个状态对应于每个动作的一次性奖惩值;
步骤24,创建累计奖惩矩阵,所述累计奖惩矩阵用于记录每个状态对应于每个动作的累计奖惩值,初始化所述累计奖惩矩阵为0。
3.如权利要求2所述的虚拟人运动规划方法,其特征在于,
所述步骤3进一步为,
步骤31,从状态的集合中任意选择一个状态,并从所述动作的集合中选择所述状态的一个可行的动作;
步骤32,根据当前累计奖惩矩阵中所述状态对应于所述动作的累计奖惩值、一步奖惩矩阵中所述状态对应于所述动作的一次性奖惩值、以及当前累计奖惩矩阵中所述状态的后续状态对应于各个动作的累计奖惩值,更新累计奖惩矩阵中所述状态对应于所述动作的累计奖惩值;
步骤33,重复所述步骤31和所述步骤32直至重复次数达到预设重复次数值。
4.如权利要求1所述的虚拟人运动规划方法,其特征在于,
所述步骤4进一步为,
步骤41,以给定的虚拟人的状态为初始的当前状态;
步骤42,通过规整化的方法,在状态集合中查找同当前状态最接近的状态;
步骤43,在累计奖惩矩阵中查找所述最接近的状态对应的最大的累计奖惩值,选择同所述最大的累计奖惩值对应的动作为所述状态对应的动作;
步骤44,在所述当前状态上运行所述动作获得新的状态,更新当前状态为所述新的状态;
步骤45,判断所述新的状态是否为设定的目标状态,如果是则终止,否则,执行所述步骤42。
5.如权利要求1所述的虚拟人运动规划方法,其特征在于,
所述步骤4后还包括:
步骤51,将选择的由给定的状态到设定的目标状态之间的动作进行前后拼接,生成动作序列。
6.如权利要求3所述的虚拟人运动规划方法,其特征在于,
预设最大迭代次数为MAXTIME,
收敛条件为累计奖惩矩阵连续MAXTIME次不发生变化。
7.如权利要求3所述的虚拟人运动规划方法,其特征在于,
所述步骤32进一步为,
步骤71,按如下公式更新状态对应于动作的累计奖惩值,
Qt+1(st,at)=(1-η)×Qt(st,at)+η×{R(st,at)+γ×max[Qt(st+1,al)]}
其中,l=1,2,...,N-1,N,N为动作集合中动作的数目,η为预设的学习率,γ为预设的折扣因子,R为一步奖惩矩阵,Q为累计奖惩矩阵,max[Qt(st+1,al)]表示后续状态st+1的对应于所有动作al的累计奖惩值中的最大值,st为当前状态,at为当前状态st下选择的动作。
8.一种虚拟人运动规划系统,其特征在于,包括:
运动捕捉模块,用于通过运动捕捉设备获得虚拟人的运动数据;
模型建立模块,用于创建增强学习模型,所述增强学习模型包括通过采样环境获得的状态、通过采样所述运动数据获得的动作,配置状态对应于动作的一次性奖惩值,以及状态对应于动作的累计奖惩值,并初始化所述累计奖惩值;所述状态表示虚拟人在环境中的空间位置和姿态,所述动作表示虚拟人的一组姿态;
模型学习模块,用于应用所述一次性奖惩值和所述累计奖惩值,以及所述状态的后续状态对应于各个动作的累计奖惩值,对状态对应于动作的累计奖惩值进行迭代更新,获得收敛的状态对应于动作的累计奖惩值;
任务完成模块,用于对于给定的虚拟人的状态,根据所述的状态对应于动作的累计奖惩值从所述采集获得的动作中选择从所述给定的虚拟人的状态到设定的目标状态间的动作。
9.如权利要求8所述的虚拟人运动规划系统,其特征在于,
所述模型建立模块进一步用于对环境进行抽样,获得多个状态,所述状态组成状态集合;对运动数据序列中的运动片段进行采样选择,以被选择的运动片段作为动作,所述动作组成动作集合;根据设定的目标状态配置一步奖惩矩阵,所述一步奖惩矩阵用于记录每个状态对应于每个动作的一次性奖惩值;创建累计奖惩矩阵,所述累计奖惩矩阵用于记录每个状态对应于每个动作的累计奖惩值,初始化所述累计奖惩矩阵为0。
10.如权利要求9所述的虚拟人运动规划系统,其特征在于,
所述模型学习模块进一步用于从状态的集合中任意选择一个状态,并从所述动作的集合中选择所述状态的一个可行的动作;根据当前累计奖惩矩阵中所述状态对应于所述动作的累计奖惩值、一步奖惩矩阵中所述状态对应于所述动作的一次性奖惩值、以及当前累计奖惩矩阵中所述状态的后续状态对应于各个动作的累计奖惩值,更新累计奖惩矩阵中所述状态对应于所述动作的累计奖惩值;重复前述过程直至所述累计奖惩矩阵满足重复次数达到预设重复次数值。
11.如权利要求8所述的虚拟人运动规划系统,其特征在于,
所述任务完成模块进一步用于以给定的虚拟人的状态为初始的当前状态;通过规整化的方法,在状态集合中查找同当前状态最接近的状态;在累计奖惩矩阵中查找所述最接近的状态对应的最大的累计奖惩值,选择同所述最大的累计奖惩值对应的动作为所述状态对应的动作;在所述当前状态上运行所述动作获得新的状态,更新当前状态为所述新的状态;重复前述过程直至所述新的状态为设定的目标状态。
12.如权利要求8所述的虚拟人运动规划系统,其特征在于,
所述任务完成模块还用于将选择的由给定的状态到设定的目标状态之间的动作进行前后拼接,生成动作序列。
13.如权利要求10所述的虚拟人运动规划系统,其特征在于,
预设最大迭代次数为MAXTIME,
收敛条件为累计奖惩矩阵连续MAXTIME次不发生变化。
14.如权利要求10所述的虚拟人运动规划系统,其特征在于,
所述模型学习模块进一步用于按如下公式更新状态对应于动作的累计奖惩值,
Qt+1(st,at)=(1-η)×Qt(st,at)+η×{R(st,at)+γ×max[Qt(st+1,al)]}
其中,l=1,2,...,N-1,N,N为动作集合中动作的数目,η为预设的学习率,γ为预设的折扣因子,R为一步奖惩矩阵,Q为累计奖惩矩阵,max[Qt(st+1,al)]表示后续状态st+1的对应于所有动作al的累计奖惩值中的最大值,st为当前状态,at为当前状态st下选择的动作。
CN2010101408645A 2010-04-02 2010-04-02 虚拟人运动规划的方法及其系统 Expired - Fee Related CN101840586B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101408645A CN101840586B (zh) 2010-04-02 2010-04-02 虚拟人运动规划的方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101408645A CN101840586B (zh) 2010-04-02 2010-04-02 虚拟人运动规划的方法及其系统

Publications (2)

Publication Number Publication Date
CN101840586A CN101840586A (zh) 2010-09-22
CN101840586B true CN101840586B (zh) 2012-04-11

Family

ID=42743942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101408645A Expired - Fee Related CN101840586B (zh) 2010-04-02 2010-04-02 虚拟人运动规划的方法及其系统

Country Status (1)

Country Link
CN (1) CN101840586B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155292A (zh) * 2015-04-15 2016-11-23 金鼎联合科技纤维股份有限公司 具情境化仿真系统
JP6477551B2 (ja) * 2016-03-11 2019-03-06 トヨタ自動車株式会社 情報提供装置及び情報提供プログラム
JP6514166B2 (ja) * 2016-09-16 2019-05-15 ファナック株式会社 ロボットの動作プログラムを学習する機械学習装置,ロボットシステムおよび機械学習方法
US10657656B2 (en) 2018-06-15 2020-05-19 International Business Machines Corporation Virtual generation of labeled motion sensor data
CN109086550B (zh) * 2018-08-27 2019-05-28 山东师范大学 基于多Agent共享Q学习的疏散仿真方法及系统
CN112292699B (zh) * 2019-05-15 2024-09-27 创新先进技术有限公司 确定执行设备的动作选择方针的方法和装置
CN110561430B (zh) * 2019-08-30 2021-08-10 哈尔滨工业大学(深圳) 用于离线示例学习的机器人装配轨迹优化方法及装置
CN110930483B (zh) * 2019-11-20 2020-11-24 腾讯科技(深圳)有限公司 一种角色控制的方法、模型训练的方法以及相关装置
CN111340211B (zh) * 2020-02-19 2020-11-24 腾讯科技(深圳)有限公司 一种动作控制模型的训练方法、相关装置及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI235962B (en) * 2003-06-06 2005-07-11 Ind Tech Res Inst Method for converting high level motion scripts to computer animations
CN100414506C (zh) * 2006-07-19 2008-08-27 中国科学院计算技术研究所 一种虚拟人群运动仿真系统
CN1916969A (zh) * 2006-08-07 2007-02-21 浙江大学 一种基于混合控制的反应跟随运动生成方法
CN100428281C (zh) * 2006-09-14 2008-10-22 浙江大学 基于运动脚本的三维人体动画自动生成方法
CN100557639C (zh) * 2008-03-07 2009-11-04 清华大学 基于关键帧和时空约束的三维虚拟人体运动生成方法

Also Published As

Publication number Publication date
CN101840586A (zh) 2010-09-22

Similar Documents

Publication Publication Date Title
CN101840586B (zh) 虚拟人运动规划的方法及其系统
Peng et al. Amp: Adversarial motion priors for stylized physics-based character control
Pérez-Gil et al. Deep reinforcement learning based control for Autonomous Vehicles in CARLA
Rempe et al. Trace and pace: Controllable pedestrian animation via guided trajectory diffusion
Toussaint et al. Differentiable physics and stable modes for tool-use and manipulation planning
Ravichandiran Hands-on reinforcement learning with Python: master reinforcement and deep reinforcement learning using OpenAI gym and tensorFlow
Connell et al. Robot learning
Bernhard et al. BARK: Open behavior benchmarking in multi-agent environments
CN101770235B (zh) 路径计划装置及路径计划方法
Kwiatkowski et al. A survey on reinforcement learning methods in character animation
CN103838885A (zh) 一种面向广告投放的潜在用户检索及用户模型排序方法
Lonza Reinforcement Learning Algorithms with Python: Learn, understand, and develop smart algorithms for addressing AI challenges
Ren et al. Learning traffic behaviors by extracting vehicle trajectories from online video streams
CN102708377A (zh) 虚拟人组合任务规划方法
Dussauge et al. A reinforcement learning approach to airfoil shape optimization
Jordao et al. Crowd art: density and flow based crowd motion design
Pérez-Gil et al. Dqn-based deep reinforcement learning for autonomous driving
Schubert et al. Plan-based relaxed reward shaping for goal-directed tasks
Zhang et al. Multi-agent reinforcement learning for autonomous driving: A survey
Dinerstein et al. Learning policies for embodied virtual agents through demonstration
Haubrich et al. A semantic road network model for traffic simulations in virtual environments: Generation and integration
Patel et al. Agent tools, techniques and methods for macro and microscopic simulation
Babadi et al. Learning Task-Agnostic Action Spaces for Movement Optimization
Macaluso Deep Reinforcement Learning for Autonomous Systems
Carnahan et al. An experiment in simulation coercion

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120411