|
发布时间: 2018-12-16 |
计算机图形学 |
|
|
收稿日期: 2018-04-24; 修回日期: 2018-06-13
基金项目: 国家重点研发计划(2016YFC0800100);国家自然科学基金项目(61370167);中央高校基本科研业务费专项资金资助(JZ2017HGBH0915);安徽省科技强警计划基金项目(1604d0802009)
第一作者简介:
张迎凯, 1988年生, 男, 博士研究生, 主要研究方向为计算机动画、虚拟现实。E-mail:iamyaoting@139.com;
谢文军, 男, 博士后, 主要研究方向为计算机图形学与数据可视化。E-mail:wjxie@hfut.edu.cn.
中图法分类号: TP391.41
文献标识码: A
文章编号: 1006-8961(2018)12-1886-15
|
摘要
目的 基于物理模拟的人体运动生成方法由于能够合成符合自然规律的运动片段,可实时响应环境的变化,且生成的物理运动不是机械性的重复,因此是近年来计算机动画和虚拟现实领域中最活跃的研究方向之一。然而人体物理模型具有高维、非线性及关节间强耦合性等特点,求解人体物理运动十分困难。反馈控制器常用于人体物理运动控制,求解时通常需要对多个目标函数加权求和,然而权重的设置需多次试验,烦杂耗时。针对运动控制器求解困难的问题,本文提出了一种面向反馈运动控制器的多目标求解方法。方法 首先,对运动数据进行预处理并提取关键帧求解初始控制器,并设计一种改进的反馈控制机制;在此基础上,种群父代个体变异产生子代,采用禁选区域预筛选策略去除不满足约束的个体,并通过重采样获取新解;然后,通过物理仿真获得多目标适应度值,采用区域密度多层取优选取分布均匀的优秀个体作为下一代父代,并通过基于剪枝的多阶段物理求解算法决定是否进入下一阶段优化;经过多次迭代后获得物理控制器,从而生成具有反馈的人体物理运动。结果 针对提出的方法,本文针对多个测试函数和物理运动分别进行实验:在测试函数实验中,本文分别采用经典的测试函数进行实验对比,在相同的迭代次数下,相比之前算法,本文算法中满足约束的优秀个体命中率更高,反转世距离更小,且最优解集的分布更加均匀;物理运动生成实验中,分别针对走路、跑步和翻滚等运动进行物理运动生成,与之前算法进行对比,本文算法可以更早地完成收敛,同时目标函数值更小,表明生成的运动效果更好。结论 本文提出的进化求解方法可以生成不同运动的控制器,该控制器不仅可以生成物理运动,而且还具备外力干扰下保持平衡的能力,解决了运动控制器求解中多目标权重设置困难、优化时间长的问题;除此之外,本文算法还对具有约束的多目标问题具有较好的求解效果。
关键词
物理动画; 运动控制; 多目标进化; 反馈; 非线性约束优化; 运动合成
Abstract
Objective
A physical-based animation synthesis can generate a human physical motion, which satisfies physical laws. Human physical motion is generated by responding to the environment in real-time and is not mechanically repetitive. Therefore, the human physical motion has been an interesting topic in the computer graphics and virtual reality fields in recent years. However, the human physical motion is difficult to generate given the high dimensionality, nonlinearity, and strong coupling of joints in human physical model. In addition, a feedback controller is frequently used to control human physical motion, especially in the diverse environment or under external forces. Multiple objective functions are typically designed during the process of solving the feedback controllers. Researchers apply optimization methods to solve the feedback controller. Multiple objective functions are frequently converted to a single objective function by utilizing the weighted sum method. However, inaccurate weights can easily result in failure of convergence considering the local traps. Therefore, the setting of weights is crucial to the direction of optimization, convergence time, and result. Thus, experiments become difficult, and these systems require dedicated technical developers. Owing to these problems, a multi-objective solving method is proposed for a feedback motion controller.
Method
We preprocess motion data and extract key frames to construct the initial controller. Furthermore, an improved feedback control mechanism is designed to reduce the difficulty of the constraint-solving problem. The parents of the population generate children after variation. However, many failure individuals do not satisfy the constraints in the children population. We utilize a forbidden region pre-filtering strategy to solve the abovementioned problem. This strategy adopts the support vector machine (SVM) with a radial basis kernel function (RBF) to remove these failure individuals. We replenish new children by re-sampling to supplement these removed individuals. We set several objective functions, including root, pose, and energy cost functions to measure the quality of every individual. Then, every individual controller is inputted to the physical simulation system, and multi-objective fitness values are obtained after simulations are completed. The regional density multi-layer optimization algorithm is adopted to select the excellent individuals, which show a uniform distribution to construct the next generation of parent individuals. Simultaneously, the SVM with kernel RBF is updated. We prune several individual controllers, which merely generate short physical motion, to obtain stable controllers, which can generate an extensive physical motion. Then, we decide whether to proceed to the next stage of optimization through multi-stage physical solving algorithm based on pruning. The optimized physical controller is obtained after many iterations. Finally, the optimal controller is applied to generate a human physical motion with feedback.
Result
The experiments are conducted on multiple test functions and physical motions on the basis of the proposed method. In the test function experiment, the classical test functions, including
Key words
physics-based animation; motion control; multi-objective evolution; feedback; nonlinear constrained optimization; motion synthesis
0 引言
作为计算机图形学的重要分支,人体运动广泛应用于动画影视、游戏、机器人仿真和生物力学等领域[1]。基于物理模拟的人体运动,由于能够合成符合自然规律的运动片段,成为近年来计算机动画领域中最活跃的研究方向之一[2]。在现实中,人所处的环境(摩擦力、支持力、姿态等)实时变化,人具有一种对运动进行控制的天生属性,对环境的变化实时响应,确保运动平稳。模拟上述机制的方法通常包含2类,基于几何的运动生成方法往往需要大量运动数据,通过数据驱动合成;相反,基于物理模拟的方法,通过物理控制器生成运动,不需要大数据支持,且得到的运动片段满足真实环境中的物理规律[3]。
为了模拟真实的人体物理运动,通常对人体采用抽象建模,将人体转化为多个刚体的链接结构;为了模拟肌肉力矩机制,设计物理控制器,通过对骨骼产生力矩作用,驱动人体物理模型运动[4-6];为了保证运动系统稳定,人体物理模型引入了反馈机制,通过对系统状态量的改变,来计算控制器中重要关节的改变量,进而将反馈叠加到原始控制器,确保人体稳定运动,避免摔倒、自碰撞等[6]。
运动控制器的反馈机制为一种
在对反馈控制策略约束求解过程中,往往涉及多个目标函数,例如根关节惩罚项、姿态惩罚项、能量等,需要对它们进行加权求和以转换为单目标函数求解。各目标函数权重的选取对优化的方向、收敛时间、成功与否至关重要;选择失当则极易进入局部极小值导致无法收敛。实施过程需反复尝试,工作烦重,对用户专业素质要求较高。
物理优化求解中可行解空间很小,子代控制器中大部分不满足约束,从而控制器生成的运动容易导致人体的自碰撞、摔倒。另外,由于理想控制器需要具备鲁棒和稳定特性,且能完成长时间运动,然而这种控制器极难获得,需要设置极大子代个数或长时间优化,所以,直接利用多目标进化算法对物理反馈求解会收敛失败。如何提高落到可行域的个体的命中率且降低迭代次数,是一个难点。
为了解决上述问题,对多目标进化算法改进,利用基于区域密度的多层取优保证种群个体的分布多样性,具备各个方向进化能力;利用种群中失败个体构建“禁选区域”预筛选策略,提高在可行域区间中生成个体的命中率;设计基于“剪枝”的多阶段物理优化流程,舍弃鲁棒性较差的个体,加快算法求解。
1 相关工作
早期运动控制大多通过手工设计反馈控制器,利用重心位置、速度或其他关键信息作为观测变量,手动设计反馈项进而控制角色。Yin等人[7]将根关节的线速度、着地脚与重心的水平距离作为观测项,计算反馈并改变摆动脚的目标姿态,对行走运动进行平衡控制。Lee等人[8]为了使行走更加稳定,拓展了该反馈,增加对着地脚踝的控制,根据当前序列与参考序列中摆动脚的速度差值设计反馈项,利用逆向运动学改变着地脚的高度,达到平稳着地的效果。手动设计反馈要求人员对运动细节十分熟悉,反馈项权重、不同反馈项间的组合关系需要反复实验,烦杂耗时,对设计人员的专业素质有一定要求。
作为低维物理模型的倒立摆也用于运动控制,生成物理行走。Mordatch等人[9]首先根据地形计算步态数据,然后利用弹簧倒立摆计算人体重心曲线,进而求解全身运动,以生成适应不同地形、具备转向功能的不同风格运动。赵建军等人[10]通过二阶倒立摆对人体下肢建模,结合步态信息与地面约束对二阶倒立摆约束求解,同时要求满足运动规律与高层用户需求,进而优化关节力矩,生成更加自然真实的下肢动作。由于低维物理方法仅对下肢物理建模,只能生成与足迹相关的下肢运动,如果不借助外部输入,无法真实还原上肢运动[2]。
运动数据库的发展面临新的机遇。研究人员尝试借助动作捕捉数据或关键帧指导人体物理运动的生成并进行控制,即前馈控制。Liu等人[5]尝试利用动作捕捉数据采用基于采样的优化算法进行运动生成,并对走跑、跳跃、翻滚等运动的控制,后期则采用CMA-ES进化算法结合回溯来达到丰富优异的运动效果[11]。Al Borno等人[4]则利用关键帧数据,结合滑动窗口技术与进化算法进行优化,可以生成多种不同种类物理运动。此外,Lv等人[12]首先建立人体运动数据和足底力学信息数据库,利用最大后验概率框架完成数据驱动的逆向动力学求解;然后对输入的运动数据估计足底力和人体内部力矩,完成运动编辑、滤波和运动控制等工作;然而该算法需要提前建立人体运动以及匹配的足底力学信息数据库,不适用于本文问题。前馈控制方法虽然生成多种运动,但是其受限于运动数据,属于开环控制,只能生成与运动数据持续时间相同的运动,后续的运动控制就会失效。
反馈控制来源于自动化控制,随着计算机动画发展,近年来被应用于物理控制。线性反馈作为经典控制策略,由于模型简单易于实现,被用于人体物理运动控制系统。Da Silva等人[13]将平衡反馈策略转化为二次目标函数,通过二次规划求解获得控制力,生成风格化的物理行走运动。Ding等人[6]在线性反馈基础上,为了解决反馈矩阵参数众多的问题,将反馈矩阵分解为2个矩阵相乘,对原始反馈矩阵降阶,达到缩减参数个数、降低求解时间的目的。Liu等人[14]在此反馈控制器基础上,通过合并多个不同种类控制器,实现自动跑酷运动。鲁明等人[15]改变骨骼质量,在原有反馈控制器基础上采用优化算法生成了面向不同骨架的风格化运动。上述方法大大降低了控制策略设计门槛,可方便地设计反馈控制策略,然而求解过程中目标函数较多,权重设计需要丰富的专业经验,普通用户需要多次试验,任务烦重。
2 本文算法概述
本文采用多刚体与链接关节结构对人体进行物理建模,采用文献[5]的人体骨架模型,身高1.6 m,体重62.5 kg,包含17个刚体、17个关节和50个自由度。人体物理模型参数如图 1、表 1所示。
表 1
人体物理模型各刚体的参数
Table 1
The rigid bodies' parameters in the physical model of human body
名称 | 质量/kg | 惯量/(kg·m2) | ||
|
|
|
||
head | 5.494 | 3.441×10-2 | 2.210×10-2 | 3.441×10-2 |
clavicle | 2.399 | 5.062×10-3 | 8.265×10-3 | 8.265×10-3 |
upper arm | 1.814 | 2.173×10-3 | 9.104×10-3 | 9.104×10-3 |
lower arm | 1.526 | 1.640×10-3 | 6.753×10-3 | 6.753×10-3 |
hand | 0.459 | 3.766×10-4 | 1.597×10-3 | 1.274×10-3 |
trunk | 14.310 | 1.300×10-1 | 1.601×10-1 | 2.122×10-1 |
pelvis | 4.836 | 1.620×10-2 | 4.732×10-2 | 4.022×10-2 |
thigh | 6.524 | 8.714×10-2 | 1.709×10-2 | 8.714×10-2 |
shin | 4.612 | 5.565×10-2 | 8.931×10-3 | 5.565×10-3 |
foot | 1.612 | 9.479×10-3 | 9.706×10-3 | 1.714×10-3 |
肌肉对骨骼施加力矩作用,驱动人体运动。为了模拟该机制,本文采用比例微分(PD)控制器,结合目标姿态产生力矩,驱动人体物理模型运动[4, 16-18],公式为
$ \tau = {k_{\rm{p}}}\left( {{\theta _{\rm{d}}} - \theta } \right) - {k_{\rm{d}}}\dot \theta $ | (1) |
式中,
初始控制器来源于运动数据,选取一定时间的关键帧作为目标姿态,结合时空优化方法求解[4-5, 11]。目标姿态间切换采用有限状态机(FSM)进行转换,通常包含2种切换机制:基于时间机制,间隔一定时间后自动切换;基于事件机制,例如摆动脚接触地面[19]。走路控制如图 2所示。
初始控制器容易导致角色运动不稳定甚至摔倒,原因是未能针对环境变化作出响应。本文提出一种改进的反馈控制策略,公式为
$ \delta \mathit{\boldsymbol{a}} = {\mathit{\boldsymbol{M}}_{\rm{F}}} \cdot \delta \mathit{\boldsymbol{s}} + b $ | (2) |
式中,
本文采用计算机物理动画领域中经典的协方差矩阵自适应进化策略(CMA-ES)作为基础算法[6, 11, 15, 18, 20],结合多目标进化,设计基于剪枝多阶段物理求解框架,对运动反馈问题进行求解。在初始控制器基础上,设计反馈控制策略,首先利用失败、优秀个体信息,采用SVM分类器在解空间中构造禁选区域,对父代产生的候选个体进行预筛选,剔除不合格个体,并进行重采样获得满足禁选区域的个体,随后对所有子代个体进行物理仿真;其次,计算多个目标函数得到适应度值,同时更新SVM分类器;对父代与子代联合集合采用基于密度多层取优算法,获得下一代种群;再次,通过基于剪枝的多阶段物理求解算法判断是否进入下一阶段,循环往复,直至结束;最后将解代入反馈控制系统,生成物理运动序列,算法框架如图 3所示。
3 多目标进化算法及改进
多目标优化问题定义为由
$ \begin{array}{l} \min \mathit{\boldsymbol{y}} = f\left( \mathit{\boldsymbol{x}} \right) = \left[ {{f_1}\left( \mathit{\boldsymbol{x}} \right),{f_2}\left( \mathit{\boldsymbol{x}} \right), \cdots ,{f_N}\left( \mathit{\boldsymbol{x}} \right)} \right] \in \mathit{\boldsymbol{ \boldsymbol{\varOmega} }}\\ \;\;\;\;\;\;\;\;\;\;{\rm{s}}.\;{\rm{t}}.\;\;{g_i}\left( \mathit{\boldsymbol{x}} \right) \le 0,\;\;\;\;i = 1,2, \cdots ,m\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{h_j}\left( \mathit{\boldsymbol{x}} \right) = 0,\;\;\;\;j = 1,2, \cdots ,n\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\mathit{\boldsymbol{x}} = {\left[ {{x_1},{x_2}, \cdots ,{x_d}, \cdots ,{x_D}} \right]^{\rm{T}}} \in \mathit{\boldsymbol{X}}\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{x_{d\_\min }} \le {x_d} \le {x_{d\_\max }},\;\;\;\;d = 1,2, \cdots ,D \end{array} $ | (3) |
式中,
定义1 Pareto支配关系。对于两个不同的决策向量
定义2 Pareto最优解。一个解
$ P\left( \mathit{\boldsymbol{X}} \right) = \left\{ {\mathit{\boldsymbol{x}}\left| {\mathit{\boldsymbol{x}} \in \mathit{\boldsymbol{X}} \wedge \neg \exists \mathit{\boldsymbol{y}} \in \mathit{\boldsymbol{X}},\mathit{\boldsymbol{y}} \prec \mathit{\boldsymbol{x}}} \right.} \right\} $ | (4) |
式中,
定义3 Pareto非支配排序。针对
$ {\mathit{\boldsymbol{N}}_l} = P\left( {\mathit{\boldsymbol{X}} - \left( {{\mathit{\boldsymbol{N}}_0} \cup \cdots \cup {\mathit{\boldsymbol{N}}_{l - 1}}} \right)} \right),l = 1,2, \cdots $ | (5) |
式中,
MOEAs的不同层之间相互支配,同层个体之间互不支配。若子代个体数小于同一层个体数目时,需要对其筛选取优,遂引入Hypervolume指标。
解集
$ \begin{array}{*{20}{c}} {{S_{{a_{{\rm{ref}}}}}}\left( \mathit{\boldsymbol{A}} \right) = }\\ {\mathit{\Lambda }\left( {\bigcup\limits_{a \in P\left( \mathit{\boldsymbol{A}} \right)} {\left\{ {\left( {{f_1}\left( {a'} \right), \cdots ,{f_N}\left( {a'} \right)} \right)\left| {a \prec a' \prec {a_{{\rm{ref}}}}} \right.} \right\}} } \right)} \end{array} $ | (6) |
式中,
$ {\Delta _S}\left( {a,\mathit{\boldsymbol{A}}} \right): = {S_{{a_{{\rm{ref}}}}}}\left( \mathit{\boldsymbol{A}} \right) - {S_{{a_{{\rm{ref}}}}}}\left( {\mathit{\boldsymbol{A}}\backslash \left\{ a \right\}} \right) $ | (7) |
3.1 基于区域密度的多层取优
由式(7)可知,个体Hypervolume指标需计算2次整个种群Hypervolume指标。若种群个体数较多,计算量庞大;人体物理运动优化涉及高维目标空间,计算Hypervolume指标是NP-hard问题[23],时间复杂度随着目标函数个数增加呈现指数级增长。
对第
图 4中实心圆表示支配解集
为了解决原有算法多层分布取优时却反多样性且计算量大的问题,本文提出一种基于区域密度的取优算法。首先计算某个个体在一定领域范围内所有个体的距离,然后计算相应的区域密度作为拥挤度算子,最终按照拥挤度算子排名对个体取优。
对于集合
$ {\mathit{\boldsymbol{L}}_r}\left( a \right) = \left\{ {j\left| {d\left( {j,a} \right) < r,j \in \mathit{\boldsymbol{T}}} \right.} \right\} $ | (8) |
式中,
个体
$ D\left( a \right) = \sum\limits_{i = 1}^{\left| {{\mathit{\boldsymbol{L}}_r}\left( a \right)} \right|} {{l_i}/\left| {{\mathit{\boldsymbol{L}}_r}\left( a \right)} \right|} $ | (9) |
式中,
实验过程中发现若将个体区域半径设置过小,容易导致某些区域集合中包含极少数目个体,无法表征周围领域个体分布。反之,若将半径设置过大,则区域密度表示为大范围的分布结果,从而使多个个体结果类似,区分度不大。使用个体之间最大距离的1/2为半径进行计算。
算法1:基于区域密度的取优算法
参数:
输入:
输出:
begin
计算
计算
计算集合
对
end
3.2 禁选区域预筛选策略设计
物理运动生成优化问题属于非凸优化且不连续问题[17],对不合适的解十分敏感,解稍微出错就会导致“病态”运动结果。为了提高较优个体个数,往往需要人为提高采样变异个体的数目,导致物理求解过程中计算量大,优化速度变慢。
为了降低采样数量,同时提高优异个体的生成率,采用“失败学习”策略进行预筛选,充分利用迭代过程中失败个体信息,构建“失败区域”,以防止之后的个体落到该区域中,进而提高优异个体出现率。相比之前方法,其一物理运动控制是一个复杂过程,存在可行区域与不可行区域,分别对应正常的物理运动和非正常运动,且后者占大部分,优化困难;其二,优化求解为一种迭代过程,迭代中的可行区域始终未发生变化但未知,该方法充分利用之前的较差个体先验信息,通过构建SVM分类器,预测可行区域,指导后续较优个体的生成,提高较优个体生成率,进而加快速度。
一般SVM分类器只能针对线性分类,由于高维空间可行区域属于非线性区域,采用RBF高斯核进行高维空间映射进行分类。高斯核为
$ k\left( {{\mathit{\boldsymbol{x}}_i},{\mathit{\boldsymbol{x}}_j}} \right) = \exp \left( { - \frac{{\left\| {{\mathit{\boldsymbol{x}}_i} - {\mathit{\boldsymbol{x}}_j}} \right\|}}{{2{{\left( {k\sigma } \right)}^2}}}} \right) $ | (10) |
式中,
如果生成的变异个体不满足SVM分类器,则需进行重新采样。如果仅在父代个体周围高斯采样,依然容易超出禁选区域界线。鉴于此,在多次重采样过程中,同时采用韦伯衰减方程临时缩小优化步长,保证新个体远离禁选区域,公式为
$ {f_{{\rm{weibull}}}}\left( t \right) = {{\rm{e}}^{ - {{\left( {t/L} \right)}^k} \times \ln \left( 2 \right)}} $ | (11) |
式中,
4 物理反馈控制优化求解
4.1 基于剪枝的多阶段物理优化求解流程
为了保证控制器的鲁棒性,本文要求控制器至少可以完成30个周期的完整运动。由于人体物理求解属于时序相关问题,若直接采用MO-CMA及其改进算法求解,会因为低周期个体数过多,容易导致收敛失败,如图 5所示。
图 5为2个目标函数,20个子代个体时多目标优化示意图,其中
针对MO-CMA算法在物理反馈求解中无法收敛的问题,提出一种基于剪枝思想的多阶段物理求解流程,核心思想是在优化一段时间后,且较高周期个体占据一定份额,对较低周期个体进行舍弃,从而保证整个优化流程不在较低个体之间徘徊。如图 6所示。
图 6中,圆圈中的数字表示个体控制器可以完成的周期数,优化窗口表示该阶段正在该窗口周期内进行优化。倘若进化过程中出现超出该窗口的个体,则将其认为优秀个体,反之认为较差个体。本文认为一旦优秀个体占总体的20%后,则表示该种群可以进入下一阶段:当前工作窗口往后移动2个周期,并舍弃掉不满足新窗口的较差个体。该方法一方面保证了较高控制器个体占比,使种群总体朝长时间进化;另一方面由于较低个体占主体,也保证种群具备朝其他目标优化的能力。
为了保证个体产生更多满足并且超越当前窗口的个体,本文采用了基于SVM的预筛选策略保证种群中生成优秀个体的能力。现有初始种群
算法2:物理反馈优化求解流程
参数:
输入:
输出:
begin
在
对后代
对
利用
在
4.2 反馈控制的约束与目标函数设计
4.2.1 动力学约束条件
本文对人体进行物理建模,将肢体抽象为刚体,关节抽象为铰链关节。对物理人模型进行仿真过程,需要满足机器人动力学方程
$ \begin{array}{*{20}{c}} {\mathit{\boldsymbol{\tau }} = \mathit{\boldsymbol{M}}\left( \mathit{\Theta } \right)\mathit{\ddot \Theta } + \mathit{\boldsymbol{V}}\left( {\mathit{\dot \Theta },\mathit{\Theta }} \right) + }\\ {{\mathit{\boldsymbol{J}}^{\rm{T}}}\left( \mathit{\Theta } \right) \times \mathit{\boldsymbol{F}} + \mathit{\boldsymbol{G}}\left( \mathit{\Theta } \right)} \end{array} $ | (12) |
式中,
本文采用全物理仿真,实时判断物理模型与地面的摩擦力和支持力,采用库仑摩擦锥模型[24]
$ \mathit{\boldsymbol{F}} = \mathit{\boldsymbol{\mu V}} $ | (13) |
式中,
4.2.2 约束条件
在进行迭代训练控制器过程中,需要人为设置一些禁选区域约束条件。当子代生成的运动不满足该类约束,则表示该个体处于禁选区域。
在优化窗口范围内对个体进行求解,期望个体能完成窗口规定的最小周期的运动,即
$ \begin{array}{*{20}{c}} {{c_{{\rm{time}}}}\left( i \right) = }\\ {\left\{ {\begin{array}{*{20}{c}} 1&{\left( {{t_e} - {w_{{\rm{lower}}}}\left( i \right)} \right) \le 0}\\ 0&{\left( {{t_e} - {w_{{\rm{lower}}}}\left( i \right)} \right) > 0} \end{array}} \right.,\;\;\;i = 1,2,3,4} \end{array} $ | (14) |
式中,
物理模型由多个刚体通过关节链接而成,其运动过程中不允许发生自碰撞,故在反馈学习迭代过程中设计自相交约束
$ {c_{{\rm{selfcolide}}}} = \left\{ {\begin{array}{*{20}{c}} \begin{array}{l} 1\\ 0 \end{array}&\begin{array}{l} 未发生自碰撞\\ 发生自碰撞 \end{array} \end{array}} \right. $ | (15) |
4.2.3 物理求解的目标函数
为了保证控制器的鲁棒性,在训练个体时增加一定的外部干扰力。然而,外部力施加到物理角色后,会导致人体姿态变形,与参考序列相差变大,影响整个区间的目标函数值。这种应激反应区间不属于目标函数的考查区间。因此,不考虑施加力后面的3个周期的目标函数值,允许角色在该段时间自动恢复,如图 7所示。
为了衡量物理模拟运动的效果,设计以下目标函数:
1) 根关节惩罚项目。对于普通运动,本文希望物理仿真运动与参考序列的根关节朝向尽可能相似。设计根关节惩罚项
$ {E_{{\rm{root}}}} = \frac{1}{T}\int {{D_q}\left( {{q_{{\rm{root}}}}\left( t \right),{q_{{\rm{root\_ref}}}}\left( t \right)} \right){\rm{d}}t} $ | (16) |
式中,
2) 姿态惩罚项。为了提高物理仿真运动效果,保证物理仿真运动各个关节的姿态与参考序列相似。设计姿态惩罚项
$ {E_{{\rm{pose}}}} = \frac{1}{{T \times {j_{{\rm{num}}}}}}\int {\sum\limits_{j = 1}^{{j_{{\rm{num}}}}} {{w_j}\left( {{D_q}\left( {{q_j}\left( t \right),{q_{j{\rm{\_ref}}}}\left( t \right)} \right)} \right){\rm{d}}t} } $ | (17) |
式中,
3) 运动对称惩罚项。对于行走类运动,其在左脚或者右脚着地时刻,运动呈现镜面对称特性。因此,为了使行走类运动看起来左右对称均衡,需要进行对称项目惩罚,即
$ \begin{array}{*{20}{c}} {{E_{{\rm{sym}}}} = \frac{1}{{2 \times p}}\sum\limits_{i = 1}^{2 \times p} {\left( {\frac{1}{{{j_{{\rm{num}}}}}}\sum\limits_{j = 1}^{{j_{{\rm{num}}}}} {{D_q}\left( {\mathit{\boldsymbol{Q}}\left( {i,j} \right),\overline {\mathit{\boldsymbol{Q}}\left( {i - 1,j} \right)} } \right)} + } \right.} }\\ {\left. {{D_q}\left( {{q_{{\rm{root}}}}\left( i \right),\overline {{q_{{\rm{root}}}}\left( {i - 1} \right)} } \right)} \right)} \end{array} $ | (18) |
式中,
4) 能量惩罚项目。人体在进化过程中,为了存储更多体力保护自己,潜意识地遵循着能量消耗最小或接近最小的准则进行运动。依据上述准则,设计能量惩罚项
$ {E_{{\rm{energy}}}} = \frac{1}{T}\int {\sum\limits_{r = 1}^{{r_{{\rm{num}}}}} {\left( {\frac{1}{2}{\mathit{\boldsymbol{I}}_r}\mathit{\boldsymbol{w}}_r^2 + {m_r}g{h_r}} \right){\rm{d}}t} } $ | (19) |
式中,
5 实验结果与分析
实验硬件环境为Intel Xeon CPU E5-2609 v3处理器,8 GB内存,GeForce Titan X显卡。软件中物理底层采用Open Dynamic Engine (ver 0.14),物理仿真步长为0.002 5 s。
本文解决面向反馈控制器的优化问题,分别提出了改进的多目标进化算法与面向物理反馈控制优化求解流程。分别针对这两部分进行实验与分析。
5.1 具有约束的多目标进化算法实验分析
为了衡量本文提出的改进多目标进化算法的优劣,采用业内具有代表性的测试函数[25-27],并设计相应的约束区域,分别采用MO-CMA与本文算法进行实验对比。测试函数和相关参数如表 2所示。
表 2
不同测试函数及参数表
Table 2
Different test functions and parameters
求解问题 | 目标函数 | 约束条件 | 变量数 |
子代 |
步长 |
搜索区间 | IGD/(time/s) | |
MO-CMA | 本文 | |||||||
6 | 50 | 0.1 | ||||||
ZDT2 | 10 | 50 | 0.1 | |||||
DTLZ4 | 10 | 100 | 0.1 |
为了衡量多目标进化算法解集的收敛与分布多样性好坏,本文引入反转世代距离(IGD)[28]指标,用于表征多目标进化算法的解集与真实的Pareto前沿之间的距离。其值越小,表示与真实的Pareto前沿越相似,分布越均匀;反之,则越远,分布越分散。公式为
$ {D_{{\rm{IGD}}}} = \frac{1}{{\left| {{\mathit{\boldsymbol{X}}_{{\rm{pareto}}}}} \right|}}\sum\limits_{i = 1}^{\left| {{\mathit{\boldsymbol{X}}_{{\rm{pareto}}}}} \right|} {{D_{{\rm{mindist}}}}\left( i \right)} $ | (20) |
式中,
如何更多地生成满足约束区域子代个体也是本部分算法考查指标之一,命中率指标
$ {R_{{\rm{hit}}}} = \frac{{{N_{{\rm{statify}}}}}}{{{N_{{\rm{total}}}}}} $ | (21) |
式中,
由图 8可以看出,在迭代次数相同的情况下,本文方法的IGD指标比原始方法小,表明本文方法的解集更加接近于
然而,图 8(c)中DTLZ4函数的原始方法的IGD指标在100次后突然上升,并且图 8(f)命中率也随之上升,通过实验分析发现是由进入局部解后分布变得聚集导致的。如图 9所示。
由图 9可以看出,2种算法在80次时分布相差不大,MO-CMA的解集在左半部分分布较少,大部分集中在右边区域。然而随着进化代数增加,在200次时,MO-CMA算法由于进入局部解,分布逐渐偏向于一条直线,分布性变差,从而导致IGD指标突然变大;对于命中率来说,迭代后期,种群的大部分个体处于局部极小值中,生成的新的个体也被局限在该区域,加之步长随着代数增加而减少,从而导致命中率变高。另一方面,本文算法一直保持良好的分布性,解集比之前均匀。
5.2 物理反馈的优化求解实验分析
通过实验发现,直接采用MO-CMA算法并不能解决人体物理优化求解问题,参见4.1节,较低周期的个体占据子代个体中的大部分,使种群丧失朝长周期进化的能力,进而容易导致收敛失败。因而,物理反馈的优化求解在改进的MO-CMA算法基础上,采用基于剪枝多阶段物理优化流程进行求解。本部分针对走路、跑步和翻滚运动,不仅涉及经典的行走控制器,镜面对称运动,并且也对非对称运动控制器进行求解。物理运动及实验相关参数如表 3所示。
表 3
3种运动的物理优化求解算法参数表
Table 3
Parameters of physical optimization methods for three motions
运动种类 | 目标函数 | 观测项目 | 反馈关节 | 约束条件 | 目标姿态数 | 变量数 |
子代 |
步长 |
walk | 1)根关节朝向 2)支撑脚到根关节向量 |
pelvis_torso left hip right hip stance ankle |
周期大于当前窗口 无自碰撞 无摔倒 |
4 | 144 | 200 | 0.02 | |
run | 1)根关节朝向 2)支撑脚到根关节向量 |
pelvis_torso left hip right hip stance ankle |
周期大于当前窗口 无自碰撞 无摔倒 |
4 | 144 | 200 | 0.02 | |
roll | 1)根关节朝向 2)双脚到根关节向量 |
pelvis_torso left hip right hip left shoulder right shoulder |
周期大于当前窗口 无自碰撞 |
4 | 480 | 200 | 0.01 |
走路与跑步运动由于具有镜面对称特性,其控制器可以利用该性质将优化变量减半。在实验分析中发现目标函数的个数直接影响到求解空间的大小。若将目标函数的个数设置过多,子代个数必须随之成倍增加,才能保证优化窗口顺利后移,势必会造成求解难度增加。因此,设置3个目标函数,其中包含:1)周期相关目标函数,保证朝着稳定和鲁棒性进化;2)姿态相关目标函数,保证与参考序列尽可能相似,若该运动涉及镜面对称,加入对称惩罚项;3)能量相关目标函数,保证运动尽可能“省力”。
在约束条件中,所有运动需满足不自碰撞约束;约束求解是按照优化窗口进行的,所有当前个体控制下的物理运动,完成运动周期数目不能小于当前窗口的最小数目,否则个体予以丢弃;对于行走运动,则满足稳定约束,不能摔倒,然而此限制条件并不适用于翻滚,为了保证翻滚正常求解,引入根关节约束,需要保证根关节与参考序列的根关节在一定范围内,保证角色整体朝向与参考序列基本一致,即
$ {D_q}\left( {{q_{{\rm{root}}}},{q_{{\rm{root\_ref}}}}} \right) < 1 $ | (22) |
利用算法生成物理反馈控制的运动效果如图 10所示,其中红色的直线为物理模型与地面的受力,具体动画效果请参考论文附带视频。
控制器的求解涉及长周期的学习训练过程,单纯利用MO-CMA算法无法对其进行求解,因此将MO-CMA算法与基于剪枝的多阶优化相结合,并与本文算法进行对比。其进化过程中产生个体的命中率及目标函数值分别如图 11和图 12所示。
由图 11可以看出,本文方法命中率高于另一种方法,保证每一轮迭代产生更多优秀子代,进而更快地达到当前窗口往后移动的条件,进入下一阶段优化,加快完成物理优化求解。从图 11看出,本文算法的迭代次数更少,时间性能更优。单看某一种算法,其命中率的总体趋势是越来越小,原因是随着优化窗口往后移动,对个体的要求也随之增加,个体控制器需具有完成更长周期的能力,满足此条件的子代个体越来越少,命中率也随之降低。
本文分别对2种算法中所有子代个体目标函数值取平均,计算结果如图 12所示。当迭代结束后,所有个体都能完成规定周期的运动,其第1个目标函数值是一致的,遂不进行对比。从图 12中可以看出,本文算法的最终子代个体目标函数值低于其他算法。由于第3个子目标函数为能量函数,其目标值比较大,为了方便画图,遂对其进行放缩。
为了让控制器更加稳定、鲁棒,在优化训练过程中,添加了部分外部力干扰。人体物理模型在受力后控制器生成的反馈及自我恢复运动序列如图 13所示。
6 结论
结合算法描述和实验结果与分析,现将本文提出的面向反馈控制器的多目标求解方法总结如下:
针对多目标算法中选取优秀个体可能分布不均匀、优秀个体命中率低的问题,采取区域密度多层取优、禁选区域预筛选求解,达到均匀选取子代的目的,同时提高了优秀个体命中率。
针对人体物理运动求解中多个目标函数权重选取复杂困难的问题,采用多目标进化算法思想,将多个目标等价同时进行约束求解,省去大量实验调参过程;同时提出了基于剪枝的多阶段物理优化流程,通过优化窗口舍弃较差个体,加快物理运动优化求解速度。
然而,本文算法也存在一定的局限性。本文需人工选取控制器的观测项和反馈作用关节,对普通用户门槛高。另外,求取的控制器一次完成一种运动,并不能完成由多种控制器控制生成的长时间运动,不具备控制器切换功能。如何自动选取反馈观测项和作用关节,以及控制器之间的切换将是接下来的工作。
参考文献
-
[1] Xia S H, Wei Y, Wang Z Q. A survey of physics-based human motion simulation[J]. Journal of Computer Resarch and Development, 2010, 47(8): 1354–1361. [夏时洪, 魏毅, 王兆其. 人体运动仿真综述[J]. 计算机研究与发展, 2010, 47(8): 1354–1361. ]
-
[2] Zhao J J, Wei Y, Xia S H, et al. Survey of physics-based character animation[J]. Journal of Computer Resarch and Development, 2015, 52(12): 2866–2878. [赵建军, 魏毅, 夏时洪, 等. 基于物理的角色动画合成方法综述[J]. 计算机研究与发展, 2015, 52(12): 2866–2878. ] [DOI:10.7544/issn1000-1239.2015.20140634]
-
[3] Xia S H, Gao L, Lai Y K, et al. A survey on human performance capture and animation[J]. Journal of Computer Science and Technology, 2017, 32(3): 536–554. [DOI:10.1007/s11390-017-1742-y]
-
[4] Al Borno M, De Lasa M, Hertzmann A. Trajectory optimization for full-body movements with complex contacts[J]. IEEE Transactions on Visualization and Computer Graphics, 2013, 19(8): 1405–1414. [DOI:10.1109/TVCG.2012.325]
-
[5] Liu L B, Yin K K, Van De Panne M, et al. Sampling-based contact-rich motion control[J]. ACM Transactions on Graphics, 2010, 29(4): #128. [DOI:10.1145/1778765.1778865]
-
[6] Ding K, Liu L B, Van De Panne M, et al. Learning reduced-order feedback policies for motion skills[C]//Proceedings of the 14th ACM SIGGRAPH/Eurographics Symposium on Computer Animation. Los Angeles, California: ACM, 2015.[DOI: 10.1145/2786784.2786802]
-
[7] Yin K K, Loken K, Van De Panne M. SIMBICON:simple biped locomotion control[J]. ACM Transactions on Graphics, 2007, 26(3): #105. [DOI:10.1145/1276377.1276509]
-
[8] Lee Y, Kim S, Lee J. Data-driven biped control[J]. ACM Transactions on Graphics, 2010, 29(4): #129. [DOI:10.1145/1778765.1781155]
-
[9] Mordatch I, De Lasa M, Hertzmann A. Robust physics-based locomotion using low-dimensional planning[J]. ACM Transactions on Graphics, 2010, 29(4): #71. [DOI:10.1145/1778765.1778808]
-
[10] Zhao J J, Wei Y, Xia S H, et al. Locomotion synthesis for humanoid character based on a double inverted pendulum model[J]. Chinese Journal of Computers, 2014, 37(10): 2187–2195. [赵建军, 魏毅, 夏时洪, 等. 基于二阶倒立摆的人体运动合成[J]. 计算机学报, 2014, 37(10): 2187–2195. ] [DOI:10.3724/SP.J.1016.2014.02187]
-
[11] Liu L B, Yin K K, Guo B N. Improving sampling-based motion control[J]. Computer Graphics Forum, 2015, 34(2): 415–423. [DOI:10.1111/cgf.12571]
-
[12] Lv X L, Chai J X, Xia S H. Data-driven inverse dynamics for human motion[J]. ACM Transactions on Graphics, 2016, 35(6): #163. [DOI:10.1145/2980179.2982440]
-
[13] Da Silva M, Abe Y, Popovic' J. Interactive simulation of stylized human locomotion[J]. ACM Transactions on Graphics, 2008, 27(3): #82. [DOI:10.1145/1360612.1360681]
-
[14] Liu L B, Yin K K, Van De Panne M, et al. Terrain runner:control, parameterization, composition, and planning for highly dynamic motions[J]. ACM Transactions on Graphics, 2012, 31(6): #154. [DOI:10.1145/2366145.2366173]
-
[15] Lu M, Zhang Y K, Liu X P. Multi-skeleton-oriented and multi-style-oriented locomotion controller[J]. Journal of Image and Graphics, 2016, 21(11): 1539–1550. [鲁明, 张迎凯, 刘晓平. 面向多骨骼及多风格的行走运动控制器[J]. 中国图象图形学报, 2016, 21(11): 1539–1550. ] [DOI:10.11834/jig.20161114]
-
[16] Agrawal S, Van De Panne M. Pareto optimal control for natural and supernatural motions[C]//Proceedings of Motion on Games. Dublin, Ireland: ACM, 2013: 7-16.[DOI: 10.1145/2522628.2522902]
-
[17] Ha S, Liu C K. Iterative training of dynamic skills inspired by human coaching techniques[J]. ACM Transactions on Graphics, 2014, 34(1): #1. [DOI:10.1145/2682626]
-
[18] Firmin M, Van De Panne M. Controller design for multi-skilled bipedal characters[J]. Computer Graphics Forum, 2015, 34(8): 50–63. [DOI:10.1111/cgf.12607]
-
[19] Agrawal S, Shen S, Van De Panne M. Diverse motion variations for physics-based character animation[C]//The 12th ACM SIGGRAPH/Eurographics Symposium on Computer Animation. Anaheim, California: ACM, 2013: 37-44.[DOI: 10.1145/2485895.2485907]
-
[20] Lee Y, Lee K, Kwon S S, et al. Push-recovery stability of biped locomotion[J]. ACM Transactions on Graphics, 2015, 34(6): #180. [DOI:10.1145/2816795.2818124]
-
[21] Li Z Y, H T, Chen S M, et al. Overview of constrained optimization evolutionary algorithms[J]. Journal of Software, 2017, 28(6): 1529–1546. [李智勇, 黄滔, 陈少淼, 等. 约束优化进化算法综述[J]. 软件学报, 2017, 28(6): 1529–1546. ] [DOI:10.13328/j.cnki.jos.005259]
-
[22] Igel C, Hansen N, Roth S. Covariance matrix adaptation for multi-objective optimization[J]. Evolutionary Computation, 2007, 15(1): 1–28. [DOI:10.1162/evco.2007.15.1.1]
-
[23] Bringmann K, Friedrich T. Approximating the volume of unions and intersections of high-dimensional geometric objects[C]//The 19th International Symposium on Algorithms and Computation. Gold Coast, Australia: Springer-Verlag, 2008: 436-447.[DOI: 10.1007/978-3-540-92182-0_40]
-
[24] Abe Y, Da Silva M, Popovic' J. Multiobjective control with frictional contacts[C]//The 2007 ACM SIGGRAPH/Eurographics Symposium on Computer animation. San Diego: ACM, 2007: 249-258.
-
[25] Li H, Zhang Q F. Multiobjective optimization problems with complicated pareto sets, MOEA/D and NSGA-Ⅱ[J]. IEEE Transactions on Evolutionary Computation, 2009, 13(2): 284–302. [DOI:10.1109/TEVC.2008.925798]
-
[26] Zitzler E, Deb K, Thiele L. Comparison of multiobjective evolutionary algorithms:empirical results[J]. Evolutionary Computation, 2000, 8(2): 173–195. [DOI:10.1162/106365600568202]
-
[27] Deb K, Thiele L, Laumanns M, et al. Scalable multi-objective optimization test problems[C]//Proceedings of the 2002 Congress on Evolutionary Computation. Honolulu, HI, USA: IEEE, 2002: 825-830.[DOI: 10.1109/CEC.2002.1007032]
-
[28] Wang H, Yen G G, Zhang X. Multiobjective particle swarm optimization based on pareto entropy[J]. Journal of Software, 2014, 25(5): 1025–1050. [旺胡, YenG G, 张鑫. 基于Pareto熵的多目标粒子群优化算法[J]. 软件学报, 2014, 25(5): 1025–1050. ] [DOI:10.13328/j.cnki.jos.004496]