虚拟人运动规划的方法及其系统.pdf

上传人:00062****4422 文档编号:4572657 上传时间:2018-10-21 格式:PDF 页数:14 大小:942.01KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010140864.5

申请日:

2010.04.02

公开号:

CN101840586A

公开日:

2010.09.22

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06T 15/70申请日:20100402|||公开

IPC分类号:

G06T15/70

主分类号:

G06T15/70

申请人:

中国科学院计算技术研究所

发明人:

李淳芃; 宗丹; 夏时洪; 王兆其

地址:

100080 北京市海淀区中关村科学院南路6号

优先权:

专利代理机构:

北京律诚同业知识产权代理有限公司 11006

代理人:

祁建国;梁挥

PDF下载: PDF下载
内容摘要

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

权利要求书

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, 判断所述新的状态是否为设定的目标状态, 如果是则终止, 否则, 执行所述步 2 骤 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 的对应于所有动作的累计奖惩值中的最大值。
8: 一种虚拟人运动规划系统, 其特征在于, 包括 : 运动捕捉模块, 用于通过运动捕捉设备获得虚拟人的运动数据 ; 模型建立模块, 用于创建增强学习模型, 所述增强学习模型包括通过采样环境获得的 状态、 通过采样所述运动数据获得的动作, 配置状态对应于动作的一次性奖惩值, 以及状态 对应于动作的累计奖惩值, 并初始化所述累计奖惩值 ; 所述状态表示虚拟人在环境中的空 间位置和姿态, 所述动作表示虚拟人的一组姿态 ; 模型学习模块, 用于应用所述一次性奖惩值和所述累计奖惩值, 以及所述状态的后续 状态对应于各个动作的累计奖惩值, 对状态对应于动作的累计奖惩值进行迭代更新, 获得 收敛的状态对应于动作的累计奖惩值 ; 任务完成模块, 用于对于给定的虚拟人的状态, 根据所述的状态对应于动作的累计奖 惩值从所述采集获得的动作中选择从所述给定的虚拟人的状态到设定的目标状态间的动 作。
9: 如权利要求 8 所述的虚拟人运动规划系统, 其特征在于, 所述模型建立模块进一步用于对环境进行抽样, 获得多个状态, 所述状态组成状态集 合; 对运动数据序列中的运动片段进行采样选择, 以被选择的运动片段作为动作, 所述动作 组成动作集合 ; 根据设定的目标状态配置一步奖惩矩阵, 所述一步奖惩矩阵用于记录每个 状态对应于每个动作的一次性奖惩值 ; 创建累计奖惩矩阵, 所述累计奖惩矩阵用于记录每 个状态对应于每个动作的累计奖惩值, 初始化所述累计奖惩矩阵为 0。
10: 如权利要求 9 所述的虚拟人运动规划系统, 其特征在于, 所述模型学习模块进一步用于从状态的集合中任意选择一个状态, 并从所述动作的集 合中选择所述状态的一个可行的动作 ; 根据当前累计奖惩矩阵中所述状态对应于所述动作 的累计奖惩值、 一步奖惩矩阵中所述状态对应于所述动作的一次性奖惩值、 以及当前累计 奖惩矩阵中所述状态的后续状态对应于各个动作的累计奖惩值, 更新累计奖惩矩阵中所述 状态对应于所述动作的累计奖惩值 ; 重复前述过程直至所述累计奖惩矩阵满足预设的收敛 3 条件或重复次数达到预设重复次数值。
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 的对应于所有动作的累计奖惩值中的最大值。

说明书


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

    【技术领域】
     本发明设计虚拟人合成技术, 尤其涉及虚拟人运动规划方法及其系统。背景技术 近年来, 虚拟人合成技术的应用日益广泛。 从影视动漫到广告制作、 从网络游戏到 体育训练、 从虚拟维修到安全预演, 诸多领域都涉及虚拟人合成技术。然而, 作为这些应用 的基础, 如何对虚拟人的运动进行规划并合成出具有一定智能的虚拟人运动为需要解决的 技术问题。
     传统的虚拟角色动画大都是由经验丰富的动画师手工编辑生成。动画师通过 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| 为运动数据序列中运动片 段的数目。每个运动片段由一组姿态组成, 记为 其中 Poseji 表示第 i 个运动片段中第 j 帧姿态, |P|i 表示该第 i 个运动片段的帧的数目, 对于不同的运动片段, 其中包含的帧的数目可能不同。运动片段中的一帧姿态, 记为 Pose = {p, q1, ..., q|B|}, 其 1 2 |B| 中, p 表示根关节的位置, q 表示根关节的朝向, q, ..., q 表示各个子关节相对于根关节 的朝向, |B| 为虚拟人模型的关节数目。
     对于采集运动数据序列中的每一个运动片段要求具有相似的起始姿态和终止姿 态。如果运动片段不满足此条件, 可以将所述运动片段做一定的偏置映射。运动片段的偏 置映射是对运动片段的局部做修改, 使其最大可能的保留原始运动的细节以及运动的连续性。下面假设对运动片段 Motioni 进行处理, 使得处理后运动片段的第一帧为目标姿态 Pt。
     首先记录运动片段 Motioni 中每一帧的根关节位置 {pj}j = 1|p| 和关节朝向 {qj1, qj2, ..., qj|B|}j = 1|p|, 其中 |P| 为所述运动片段的帧数, |B| 为虚拟人模型的关节数目。确定 1 2 目标姿态的根关节位置 pt 和关节朝向 {qt , qt , ..., qt|B|}。
     由于要求处理后运动片段的第一帧为目标姿态, 因此计算该运动片段的第一帧姿 态和目标姿态的根关节位置差异 Δp 和关节朝向差异 Δq 分别按如下公式。
     Δp = pt-p1
     若直接将运动片段 Mi 的第一帧姿态修改为目标姿态, 会使融合后的运动片段出现 跳变, 导致运动的不平滑。 为使得融合后的运动过渡自然, 将调整所引起的姿态差异均匀地 分散到运动的前若干帧去。以修改运动片段 Mi 的前 n 帧为例, 则运动片段修改后的前 n 帧 的根关节位置和关节朝向分别如下 :
     pj = pj+αj×Δp
     qj = qj+αj×Δq
     其中按上述方法得到处理后的运动片段的第一帧即为目标姿态。
     若要求运动片段的最后一帧为目标姿态 pt, 则计算最后一帧姿态和目标姿态关节 位置差异 Δp 和关节朝向差异 Δq 分别如下公式。
     Δp = pt-p|p|
     Δq = qt-q|p|
     运动片段修改后的后 n 帧的根关节位置和关节朝向分别如下 :
     pj = pj+αj×Δp
     qj = qj+αj×Δq
     其中 j = |p|-10, |p|-9, ..., |p|-1, |p| ;按上述方法得到处理后的运动片段的最后一帧即为目标姿态。
     步骤 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, y t, z t, θ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, 根据当前累计奖惩矩阵中所述状态对应于所述动作的累计奖惩值、 一 步奖惩矩阵中所述状态对应于所述动作的一次性奖惩值、 以及当前累计奖惩矩阵中所述状 态的后续状态对应于各个动作的累计奖惩值, 更新累计奖惩矩阵中所述状态对应于所述动 作的累计奖惩值。
     在一实施例中按如下公式更新累计奖惩矩阵。该式表示在状态 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。
     所得的动作序列即为初始状态下的最佳动作序列, 如下 :
     其中状态 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 次不发生变化。
     本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下, 还 可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明, 而是由 权利要求书的范围来确定的。

虚拟人运动规划的方法及其系统.pdf_第1页
第1页 / 共14页
虚拟人运动规划的方法及其系统.pdf_第2页
第2页 / 共14页
虚拟人运动规划的方法及其系统.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《虚拟人运动规划的方法及其系统.pdf》由会员分享,可在线阅读,更多相关《虚拟人运动规划的方法及其系统.pdf(14页珍藏版)》请在专利查询网上搜索。

本发明涉及虚拟人运动规划方法及其系统,方法包括:步骤1,通过运动捕捉设备获得虚拟人的运动数据;步骤2,创建增强学习模型,增强学习模型包括通过采样环境获得的状态、通过采样运动数据获得的动作,配置的状态对应于动作的一次性奖惩值,状态对应于动作的累计奖惩值,初始化累计奖惩值;步骤3,应用一次性奖惩值和累计奖惩值,状态的后续状态对应于各个动作的累计奖惩值,对状态对应于动作的累计奖惩值进行迭代更新;步骤4,。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1