Perpetual Humanoid Control for Real-time Simulated Avatars
TL;DR 精炼摘要
本文提出了一种基于物理的类人控制器,能够实现高保真度的运动模仿和容错行为,成功应对噪声输入和意外跌倒。核心方法渐进式乘法控制策略(PMCP)可动态分配网络资源,促进从大规模运动数据库中学习和任务扩展,避免灾难性遗忘,支持模拟虚拟形象的永久控制。
摘要
We present a physics-based humanoid controller that achieves high-fidelity motion imitation and fault-tolerant behavior in the presence of noisy input (e.g. pose estimates from video or generated from language) and unexpected falls. Our controller scales up to learning ten thousand motion clips without using any external stabilizing forces and learns to naturally recover from fail-state. Given reference motion, our controller can perpetually control simulated avatars without requiring resets. At its core, we propose the progressive multiplicative control policy (PMCP), which dynamically allocates new network capacity to learn harder and harder motion sequences. PMCP allows efficient scaling for learning from large-scale motion databases and adding new tasks, such as fail-state recovery, without catastrophic forgetting. We demonstrate the effectiveness of our controller by using it to imitate noisy poses from video-based pose estimators and language-based motion generators in a live and real-time multi-person avatar use case.
思维导图
论文精读
中文精读
1. 论文基本信息
1.1. 标题
永续人形控制器,用于实时模拟虚拟形象 (Perpetual Humanoid Control for Real-time Simulated Avatars)
1.2. 作者
Zhengyi Luo¹², Jinkun Cao², Alexander Winkler¹, Kris Kitani¹², Weipeng Xu¹
- ¹ Reality Labs Research, Meta
- ² Carnegie Mellon University
1.3. 发表期刊/会议
国际计算机视觉会议 (International Conference on Computer Vision, ICCV 2023)。 ICCV 是计算机视觉领域顶级的三大会议之一,具有极高的学术声誉和影响力。
1.4. 发表年份
2023年
1.5. 摘要
我们提出了一种基于物理的类人控制器,它能在存在噪声输入(例如,来自视频的姿态估计或由语言生成)和意外跌倒的情况下,实现高保真度运动模仿和容错行为。我们的控制器在不使用任何外部稳定力的情况下,能够学习上万个动作片段,并学会自然地从失败状态中恢复。给定参考动作,我们的控制器可以永续控制模拟虚拟形象,无需重置。其核心是,我们提出了渐进乘性控制策略(PMCP),该策略动态分配新的网络容量,以学习越来越难的动作序列。PMCP 使得从大规模动作数据库中进行学习和添加新任务(例如,失败状态恢复)变得高效,且不会发生灾难性遗忘。我们通过在一个实时多人虚拟形象使用案例中,使用我们的控制器模仿来自基于视频的姿态估计器和基于语言的动作生成器的噪声姿态,证明了其有效性。
1.6. 原文链接
https://openaccess.thecvf.com/content/ICCV2023/papers/Luo_Perpetual_Humanoid_Control_for_Real-time_Simulated_Avatars_ICCV_2023_paper.pdf 发布状态: 已正式发表于 ICCV 2023。
2. 整体概括
2.1. 研究背景与动机
核心问题: 物理模拟类人角色的控制在实现高保真运动模仿和鲁棒性方面面临巨大挑战。 问题的重要性: 物理模拟在创建逼真的人类运动、实现可信的环境交互以及推动未来虚拟形象技术发展方面具有巨大潜力。然而,控制高自由度 (DOF) 的类人角色非常困难,因为它们容易摔倒、绊倒或偏离参考动作,并且难以恢复。 现有研究的挑战与空白:
- 噪声输入: 现有的控制器难以处理来自视频或语言等嘈杂输入源的姿态估计,这经常导致类人角色摔倒。
- 大规模数据模仿: 使用单一策略从像
AMASS这样的大规模数据集(上万个片段,40小时动作)中成功模仿运动尚未实现。 - 外部稳定力: 为解决上述问题,许多方法(如
Residual Force Control, RFC)引入外部力来稳定类人角色,但这会损害物理真实性,导致“飞起”或“漂浮”等非物理现象。 - 失败状态处理: 大多数物理模拟方法在角色摔倒或偏离过远时,会简单地重置类人角色。然而,重置需要高质量的参考姿态,而噪声输入往往难以提供,导致陷入“摔倒-重置-摔倒”的恶性循环。 论文的切入点或创新思路: 本文旨在设计一个专为实时虚拟形象控制而生的类人控制器,该控制器能够:
- 在不使用任何外部力的情况下,实现高成功率的运动模仿。
- 自然地从失败状态中恢复。
- 通过引入新的训练范式——渐进乘性控制策略 (Progressive Multiplicative Control Policy, PMCP),有效扩展到大规模动作数据集的学习,并支持多任务学习(如失败恢复)而不发生灾难性遗忘。
- 能够处理来自视频或语言的噪声输入。
2.2. 核心贡献/主要发现
- 提出永续类人控制器 (Perpetual Humanoid Controller, PHC): 该控制器能够在不施加任何外部力的情况下,成功模仿
AMASS数据集 98.9% 的动作,展现出高保真运动模仿和容错行为。 - 引入渐进乘性控制策略 (PMCP): PMCP 解决了从大规模动作数据集中学习时的灾难性遗忘问题,并通过动态分配网络容量,逐步学习更难的动作序列和新任务(如失败状态恢复)。
- 自然的失败状态恢复能力: 控制器能够自然地从摔倒状态中恢复,重新接近参考动作并恢复模仿,无需手动重置,实现了“永续”控制。
- 对噪声输入的鲁棒性: PHC 能够有效地处理来自视频姿态估计器和语言生成器的噪声输入,在实时多人虚拟形象应用中表现出色。
- 任务无关性与兼容性: 控制器设计为任务无关,可直接与现成的基于视频的姿态估计器集成,提供即插即用的解决方案。
3. 预备知识与相关工作
3.1. 基础概念
- 物理模拟 (Physics-based Simulation): 指在虚拟环境中,根据物理定律(如重力、碰撞、摩擦力等)来计算和预测物体运动和交互的技术。在本文中,用于模拟类人角色的运动,使其行为更真实、更具交互性。
- 高自由度 (Degrees of Freedom, DOF): 指一个物理系统(如人体模型)在空间中可以独立运动的参数数量。例如,人体有许多关节,每个关节都可以绕多个轴旋转,从而构成一个高自由度系统。
- 强化学习 (Reinforcement Learning, RL): 一种机器学习范式,智能体 (agent) 通过与环境的交互来学习如何做出决策。智能体执行动作 (action),环境根据动作反馈状态 (state) 和奖励 (reward),智能体的目标是最大化累积奖励。
- 马尔可夫决策过程 (Markov Decision Process, MDP): 强化学习的数学框架,由以下五元组定义:
- :状态空间 (State Space),描述环境所有可能的状态。
- :动作空间 (Action Space),描述智能体可以执行的所有可能动作。
- :转移动力学 (Transition Dynamics),描述在给定状态和动作下,环境如何转移到下一个状态的概率分布。在物理模拟中,这由物理引擎决定。
- :奖励函数 (Reward Function),智能体在每个状态-动作对下获得的即时奖励。
- :折扣因子 (Discount Factor),用于衡量未来奖励相对于当前奖励的重要性,通常介于0和1之间。
- 策略 (Policy, ): 智能体的行为规则,定义了在给定状态下选择动作的概率分布或确定性映射。
- 近端策略优化 (Proximal Policy Optimization, PPO): 一种流行的强化学习算法,属于策略梯度方法,通过限制每次策略更新的大小来提高训练稳定性和样本效率。
- 马尔可夫决策过程 (Markov Decision Process, MDP): 强化学习的数学框架,由以下五元组定义:
- 对抗运动先验 (Adversarial Motion Prior, AMP): 一种利用生成对抗网络 (GAN) 思维的奖励机制。它训练一个判别器 (discriminator) 来区分真实的人体运动数据和由智能体生成的运动。判别器的输出被用作策略的额外奖励信号,鼓励智能体生成更“真实”或“自然”的运动。
- 多层感知机 (Multi-Layer Perceptron, MLP): 最简单的前馈神经网络,由多个全连接层组成,通常用于学习复杂的非线性映射。
- SMPL 模型 (Skinned Multi-Person Linear model): 一种统计学人体模型,能够以参数化的方式表示人体的形状和姿态。它通过一组形状参数和姿态参数来生成各种体型和动作的人体网格。在本文中,用于定义类人角色的骨骼结构和身体形态。
- 灾难性遗忘 (Catastrophic Forgetting): 在连续学习或多任务学习中,当神经网络学习新任务时,其对先前已学任务的性能急剧下降的现象。
- 渐进式神经网络 (Progressive Neural Networks, PNN): 一种解决灾难性遗忘的架构。它通过为每个新任务添加新的网络“列”来实现,同时冻结旧任务的列并使用横向连接将信息从旧列传递到新列,从而避免覆盖先前学习到的知识。
- 乘性控制策略 (Multiplicative Control Policy, MCP): 一种组合多个子策略 (primitive policies) 的方法。它不像专家混合模型那样只激活一个专家,而是通过乘性方式结合多个子策略的输出分布,从而实现更丰富和灵活的行为。
3.2. 前人工作
- 基于物理的运动模仿 (Physics-based Motion Imitation):
DeepMimic[29] 是开创性的工作,展示了如何使用强化学习模仿高质量的运动。ScaDiver[45] 和Unicon[43]、MoCapAct[42] 等尝试扩展到更大规模的运动数据集。ScaDiver使用专家混合策略 (mixture of expert policy) 扩展到CMU MoCap数据集,成功率约为 80%。UHC[20] 是与本文最接近的工作,它成功模仿了AMASS数据集 97% 的动作。然而,UHC依赖于残余力控制 (Residual Force Control, RFC) [49],即在类人角色的根部施加非物理力来帮助平衡。虽然有效,但RFC损害了物理真实性,并可能导致“漂浮”等伪影。
- 失败状态恢复 (Fail-state Recovery) for Simulated Characters:
PhysCap[37] 使用浮动基座的类人角色,无需平衡,但牺牲了物理真实性。Egopose[49] 采用故障安全机制,在即将摔倒时将类人角色重置到运动学姿态,可能导致瞬移行为。NeuroMoCon[13] 在摔倒时重新运行采样过程,但不能保证成功且不适用于实时应用。ASE[32] 展示了从地面自然站起的能力,但需要策略不仅站起还要恢复跟踪参考动作。
3.3. 技术演进
该领域的技术演进主要体现在从早期对单个动作片段的模仿,逐步扩展到大规模、多样化的动作数据集。早期方法侧重于提高模仿精度,但往往受限于数据集规模小、对高质量 MoCap 数据的依赖,或者需要 RFC 等外部非物理力来维持平衡。随着强化学习算法的进步,研究人员开始尝试处理更复杂的任务,例如交互和目标导向行为。然而,处理噪声输入和实现自然失败恢复一直是物理模拟类人角色应用于虚拟形象的瓶颈。本文的工作正是沿着这一演进路径,通过引入 PMCP,在不牺牲物理真实性的前提下,提高了大规模模仿的成功率,并增强了对噪声输入和失败状态的鲁棒性,从而推动了模拟虚拟形象在实时应用中的可行性。
3.4. 差异化分析
本文提出的 Perpetual Humanoid Controller (PHC) 与现有工作的主要差异体现在以下几个方面:
- 不使用外部力 (No External Forces):
- 差异:
PHC在模仿大规模AMASS数据集时,完全不使用RFC等外部稳定力,而UHC[20](SOTA 方法)则依赖RFC来达到 97% 的成功率。 - 创新点: 这种设计使得
PHC的运动更具物理真实性,避免了RFC带来的“飞起”或“漂浮”等伪影。
- 差异:
- 渐进乘性控制策略 (PMCP) 克服灾难性遗忘:
- 差异: 现有的多专家或专家混合策略 [43, 45] 虽然尝试扩展,但仍难以有效扩展到最大的数据集,且可能面临灾难性遗忘。
PMCP受到Progressive Neural Networks (PNN)[34] 的启发,但专为运动模仿任务设计,能够动态分配网络容量学习更难的序列和新任务。 - 创新点:
PMCP允许控制器高效地从大规模数据库中学习,并无缝地添加如失败恢复等新任务,而不会遗忘已学习的技能,实现了更高效且可扩展的训练范式。
- 差异: 现有的多专家或专家混合策略 [43, 45] 虽然尝试扩展,但仍难以有效扩展到最大的数据集,且可能面临灾难性遗忘。
- 自然的失败状态恢复 (Natural Fail-state Recovery):
- 差异: 多数方法在角色摔倒时选择简单重置 [22, 20, 49],或使用分离的恢复策略 [6] 导致不自然行为。
ASE[32] 虽能自然站起,但未完整解决如何回到并跟踪参考动作的问题。 - 创新点:
PHC提供了一个综合解决方案,使其能够从摔倒状态自然站起,平滑地回到参考动作并恢复模仿,实现了“永续”控制,无需手动干预。
- 差异: 多数方法在角色摔倒时选择简单重置 [22, 20, 49],或使用分离的恢复策略 [6] 导致不自然行为。
- 对噪声输入的鲁棒性 (Robustness to Noisy Input):
- 差异: 大多数物理模拟方法在面对来自视频或语言生成器的高度噪声输入时,表现不佳。
- 创新点:
PHC针对噪声输入进行了设计,能够在高噪声环境下(如视频姿态估计、语言生成运动)稳定模仿,这对于实时虚拟形象应用至关重要。
- 支持关键点输入 (Keypoint-based Input):
- 差异: 大多数运动模仿方法需要链接位置和旋转作为输入。
- 创新点:
PHC展示了仅使用 3D 关键点作为输入也能实现与基于旋转相似或更好的性能,这降低了对输入数据质量的要求,并使其与基于视觉的 3D 关键点估计器或 VR 控制器更加兼容。
4. 方法论
本文提出的永续类人控制器 (Perpetual Humanoid Controller, PHC) 是一种基于物理的类人控制器,其核心是渐进乘性控制策略 (Progressive Multiplicative Control Policy, PMCP)。该方法利用强化学习框架,结合对抗运动先验 (AMP) 来实现高保真运动模仿、对噪声输入的鲁棒性以及自然的失败状态恢复。
4.1. 方法原理
PHC 遵循目标条件强化学习 (goal-conditioned RL) 的通用框架,其中目标是训练一个策略 来模仿参考运动 或关键点 。任务被建模为一个马尔可夫决策过程 (MDP),由五元组 定义。物理模拟器决定状态 和转移动力学 ,而策略 计算每一步的动作 。基于模拟状态 和参考运动 ,奖励函数 计算奖励 作为策略的学习信号。策略的目标是最大化折扣奖励 ,并使用近端策略优化 (PPO) 算法来学习 。
4.2. 状态 (State)
模拟状态 由类人角色的本体感知 (proprioception) 和目标状态 (goal state) 组成。
4.2.1. 本体感知
本体感知 包含:
- 3D 身体姿态 (3D body pose) : 类人角色在当前时间步的关节旋转和位置。
- 速度 (velocity) : 类人角色关节的线速度和角速度。
- 身体形状 (body shapes) (可选): 当使用不同身体形状训练时, 包含每个身体链接肢体长度的信息。
4.2.2. 目标状态
目标状态定义为下一个时间步的参考量与当前模拟量的差异。
- 基于旋转的运动模仿 (Rotation-based motion imitation):
在这种情况下,输入包含参考姿态(旋转和关键点)。
- : 参考运动在 时刻的关节旋转 与当前模拟角色的关节旋转 之间的差异。这里的 表示旋转差异的计算。
- : 参考运动在 时刻的关节位置 与当前模拟角色的关节位置 之间的差异。
- : 参考运动在 时刻的关节线速度 与当前模拟角色的关节线速度 之间的差异。
- : 参考运动在 时刻的关节角速度 与当前模拟角色的关节角速度 之间的差异。
- : 参考运动在 时刻的关节旋转。
- : 参考运动在 时刻的关节位置。
- 仅基于关键点的运动模仿 (Keypoint-only motion imitation):
在这种情况下,输入仅包含 3D 关键点。
- : 参考运动在 时刻的 3D 关键点位置 与当前模拟角色的 3D 关键点位置 之间的差异。
- : 参考运动在 时刻的 3D 关键点速度 与当前模拟角色的 3D 关键点速度 之间的差异。
- : 参考运动在 时刻的 3D 关键点位置。 所有上述量都根据类人角色当前的朝向和根部位置进行归一化。
4.3. 奖励 (Reward)
本文的奖励函数与以往仅使用运动模仿奖励的方法不同,它整合了对抗运动先验 (Adversarial Motion Prior, AMP) 的判别器奖励项,以鼓励生成稳定且自然的运动,尤其是在失败状态恢复时。 奖励函数 定义为任务奖励 、风格奖励 和额外能量惩罚 的加权和:
- :风格奖励,来自
AMP判别器。判别器根据类人角色当前的本体感知 计算一个真实/虚假值。 - :能量惩罚,旨在规范策略并防止高频抖动。
- : 第 个关节的扭矩。
- : 第 个关节的角速度。
- :任务奖励,根据当前的训练目标(运动模仿或失败状态恢复)进行选择。
- 运动模仿的任务奖励 (Motion Imitation Task Reward):
\begin{array} { r l } & { r _ { t } ^ { \mathrm { g - i m i t a t i o n } } = \mathcal { R } ^ { \mathrm { i m i t a t i o n } } ( s _ { t } , \hat { q } _ { t } ) = w _ { \mathrm { j p } } e ^ { - 1 0 0 \| \hat { p } _ { t } - p _ { t } \| } } \\ & { ~ + w _ { \mathrm { j r } } e ^ { - 1 0 \| \hat { q } _ { t } \ominus q _ { t } \| } + w _ { \mathrm { j v } } e ^ { - 0 . 1 \| \hat { v } _ { t } - v _ { t } \| } + w _ { \mathrm { j \omega } } e ^ { - 0 . 1 \| \hat { \omega } _ { t } - \omega _ _ { t } \| } } \end{array}
该奖励衡量了模拟类人角色与参考动作在平移、旋转、线速度和角速度上的差异,通过指数衰减函数,对差异越小给予越高奖励。
- :对应各项的权重系数。
- : 参考关节位置与模拟关节位置的欧几里得距离。
- : 参考关节旋转与模拟关节旋转的差异(使用旋转差异计算)。
- : 参考关节线速度与模拟关节线速度的差异。
- : 参考关节角速度与模拟关节角速度的差异。
- 失败状态恢复的任务奖励 (Fail-state Recovery Task Reward):
其中 ,表示根部与参考根部距离的减少量。
- : 在时间步 模拟根部与参考根部之间的距离。该奖励鼓励类人角色向参考根部移动。
- 运动模仿的任务奖励 (Motion Imitation Task Reward):
\begin{array} { r l } & { r _ { t } ^ { \mathrm { g - i m i t a t i o n } } = \mathcal { R } ^ { \mathrm { i m i t a t i o n } } ( s _ { t } , \hat { q } _ { t } ) = w _ { \mathrm { j p } } e ^ { - 1 0 0 \| \hat { p } _ { t } - p _ { t } \| } } \\ & { ~ + w _ { \mathrm { j r } } e ^ { - 1 0 \| \hat { q } _ { t } \ominus q _ { t } \| } + w _ { \mathrm { j v } } e ^ { - 0 . 1 \| \hat { v } _ { t } - v _ { t } \| } + w _ { \mathrm { j \omega } } e ^ { - 0 . 1 \| \hat { \omega } _ { t } - \omega _ _ { t } \| } } \end{array}
该奖励衡量了模拟类人角色与参考动作在平移、旋转、线速度和角速度上的差异,通过指数衰减函数,对差异越小给予越高奖励。
4.4. 动作 (Action)
本文使用每个自由度 (DoF) 上的比例微分 (Proportional Derivative, PD) 控制器。动作 指定了 PD 控制器的目标关节姿态。
- : 施加在第 个关节上的扭矩。
- : 比例增益 (Proportional gain) 向量。
- : 微分增益 (Derivative gain) 向量。
- : 策略输出的期望目标关节姿态(作为
PD目标 )。 - : 当前模拟角色的关节姿态。
- : 当前模拟角色的关节速度。
这与许多先前工作(如
Residual Force Control[50])中将动作添加到参考姿态 的方式不同。本文移除了对参考动作的依赖,以增强对噪声和病态参考运动的鲁棒性。
4.5. 控制策略与判别器 (Control Policy and Discriminator)
- 控制策略 (): 本文的控制策略 表示一个具有固定对角协方差的高斯分布 (Gaussian distribution) 。其均值 由神经网络输出。
AMP判别器 ():AMP判别器 根据类人角色的当前本体感知(过去10个时间步到当前时间步的本体感知)计算一个真实/虚假值。- 网络架构: 所有的网络(包括判别器、基元策略、值函数)都是两层多层感知机 (MLP),维度为
[1024, 512]。
4.6. 人形模型 (Humanoid)
- 运动学结构: 控制器支持任何人类运动学结构,本文遵循
SMPL[19] 运动学结构,包含 24 个刚体,其中 23 个可驱动。 - 动作空间: 驱动关节导致动作空间维度为 。
- 身体形状: 身体比例可以根据身体形状参数 而变化。
4.7. 初始化与宽松提前终止 (Initialization and Relaxed Early Termination, RET)
- 参考状态初始化 (Reference State Initialization, RSI): 训练期间使用
RSI[29],随机选择运动片段的起始点进行模仿。 - 提前终止: 遵循
UHC[20],当关节平均偏离参考运动超过 0.5 米时,终止回合。 - 宽松提前终止 (Relaxed Early Termination, RET): 与
UHC不同,本文将踝关节和脚趾关节从终止条件中移除。这是因为模拟类人角色与真实人类之间存在动力学不匹配,特别是在多段式足部(multi-segment foot)方面 [27]。允许这些关节略微偏离MoCap运动有助于保持平衡。尽管如此,这些身体部位仍然会获得模仿奖励和判别器奖励,以防止它们以非人类方式运动。
4.8. 难例挖掘 (Hard Negative Mining)
- 目的: 在大规模运动数据集中学习时,后期训练需要集中在更具挑战性的序列上。
- 过程: 类似于
UHC[20],通过评估模型在整个数据集上的表现,识别出控制器未能成功模仿的“难序列” ,并在后续训练中优先处理这些序列。
4.9. 渐进乘性控制策略 (Progressive Multiplicative Control Policy, PMCP)
随着训练的进行,模型在学习新序列时往往会遗忘旧序列(灾难性遗忘),性能会趋于平稳。引入新任务(如失败状态恢复)会进一步加剧遗忘问题。为了解决这些挑战,本文提出了 PMCP。
4.9.1. 渐进式神经网络 (Progressive Neural Networks, PNN)
PMCP 的核心思想是逐步分配新的子网络(称为基元 (primitives) )来学习更难的序列。
-
初始训练: 从一个基元网络 开始,在完整数据集 上进行模仿任务训练。
-
难例识别: 一旦 在 上收敛,通过评估其在 上的表现,识别出它未能成功模仿的难动作序列,形成一个难例子集 。
-
增加新基元: 冻结 的参数,并创建一个新的基元 (随机初始化)。同时,建立从 的每一层到 的横向连接 (lateral connections) 或采用权重共享方案(新基元从前一层基元的权重初始化)。
-
迭代训练: 负责学习一个新的、更难的动作序列子集 。这个过程迭代进行,逐步学习越来越难的动作。
下图(原文 Figure 2)展示了训练过程,以及如何通过难例挖掘和渐进训练来学习更难的序列:
该图像是示意图,展示了基于参考运动和模拟运动的训练进展,涉及不同难度的原始动作序列(Primitive),并说明了失败恢复策略和训练的全数据集。图中提到的策略包括硬挖掘(Hard Mining)和作曲器(Composer)C。
4.9.2. 失败状态恢复 (Fail-state Recovery)
除了学习更难的模仿序列,PMCP 还允许添加新任务,例如从失败状态中恢复。本文定义了三种失败状态:
-
摔倒在地 (fallen on the ground)
-
远离参考运动 (faraway from the reference motion, > 0.5m)
-
两者结合 (combination)
在这些情况下,类人角色应该从地上站起来,以自然的方式接近参考运动,并恢复运动模仿。
- 专用基元: 为此任务初始化一个单独的基元 ,位于基元堆栈的末端。
- 修改状态空间: 在失败状态恢复期间,修改状态空间以移除所有关于参考运动的信息,只保留根部信息。具体来说,对于参考关节旋转 ,构造 ,其中除了根部的旋转外,所有其他关节的旋转都替换为模拟值。这相当于在计算目标状态时,将非根关节的目标设置为恒等。
目标状态 的定义为:
- : 除了根部旋转外,其余关节旋转都替换为模拟值的参考关节旋转。
- : 对应于 的参考关键点位置,除了根部位置外,其他关节位置也可能根据模拟值进行调整。
- 目标位置钳制 (Goal Clamping): 当参考根部距离过远(例如 )时,对 进行归一化,将其钳制在一定范围内:。
- 状态切换条件: 一旦类人角色足够接近参考根部(例如
< 0.5m),目标状态将切换回完整的运动模仿状态。- : 参考根部位置。
- : 模拟根部位置。
- 训练数据: 为了训练 ,使用
AMASS数据集中的一个子集 ,主要包含步行和跑步序列。这使得判别器 和AMP奖励 偏向简单的运动模式。
4.9.3. 乘性控制 (Multiplicative Control)
在每个基元学习完成后,得到 ,每个基元都能够模仿数据集的某个子集。为了动态地组合这些已学习的基元,本文训练一个额外的作曲器 (composer) ,它使用与基元相同的输入,并输出权重 来激活不同的基元。
PHC 的输出分布定义为:
由于每个 都是一个独立的高斯分布,因此组合后的动作分布仍为高斯分布:
-
:对应于 的第 个动作维度。
-
:对应于 的第 个动作维度的标准差。
-
:作曲器为第 个基元分配的权重。
与仅激活单个专家的专家混合 (Mixture of Expert, MOE) 策略不同,
MCP结合了所有基元策略的分布。这种渐进式训练和乘性控制的结合,使得复合策略的性能显著提升。在作曲器训练期间,会穿插失败状态恢复训练。
下图(原文 Figure 3)展示了目标条件强化学习框架与对抗运动先验的结合。

算法1:训练 PHC 的流程
以下是原文 Algorithm 1 的描述:
1 Function TrainPPO (π, Q(k), D, V, R): 2 while not converged do 3 $M \gets \emptyset$ initialize sampling memory ; 4 while M not full do 5 $\hat { q } _ { 1 : T } \gets$ sample motion from $\hat { Q }$ ; 6 for `t 1 . . . T` do 7 $\pmb { s } _ { t } \gets \left( \pmb { s } _ { t } ^ { \mathrm { p } } , \pmb { s } _ { t } ^ { \mathrm { g } } \right)$ ; 8 $\mathbf { \boldsymbol { a } } _ { t } \gets \pi ( \mathbf { \boldsymbol { a } } _ { t } | \mathbf { \boldsymbol { s } } _ { t } )$ ; 9 $\pmb { s } _ { t + 1 } \gets \mathscr { T } ( \pmb { s } _ { t + 1 } | \pmb { s } _ { t } , \pmb { a } _ { t } )$ // simulation; 10 $\boldsymbol { r } _ { t } \gets \pmb { \mathcal { R } } ( \pmb { s } _ { t } , \hat { \pmb { q } } _ { t + 1 } ) \ ;$ 11 store $\left( { \pmb { s } } _ { t } , { \pmb { a } } _ { t } , { \pmb { r } } _ { t } , { \pmb { s } } _ { t + 1 } \right)$ into memory `_ M` ; 12 $\mathcal { P } ^ { ( k ) } , \mathcal { V } \mathrm { P P O }$ udateusngexpnces colli `_ M` ; 13 $\pmb { \mathcal { D } } \gets$ Discriminator update using experiences collected in `_ M` 14 return π; 15 Input: Ground truth motion dataset $\hat { \pmb { Q } }$ ; 16 $\pmb { \mathcal { D } } , \pmb { \mathcal { V } } , \hat { Q } _ { \mathrm { h a r d } } ^ { ( 1 ) } \hat { Q }$ . // Initialize discriminator, value function, and dataset; 17 for $k \gets 1 . . . K$ do 18 Initialize $\mathcal { P } ^ { ( k ) } / \ d t$ Lateral connection/weight sharing; 19 $\hat { Q } _ { \mathrm { h a r d } } ^ { ( k + 1 ) } \mathrm { e v a l } ( \mathcal { P } ^ { ( k ) } , \hat { Q } ^ { ( k ) } )$ $( \mathcal { P } ^ { ( k ) }$ $\hat { \pmb { Q } } _ { h a r d } ^ { ( k + 1 ) }$ D, V. idion) : 21 $\mathcal { P } ^ { ( k ) } $ freeze $\mathcal { P } ^ { ( k ) }$ ; 22 $\pmb { \mathcal { P } } ^ { ( F ) } \gets \mathrm { T r a i n P P O } ( \pmb { \mathcal { P } } ^ { ( F ) } , \pmb { Q } ^ { l o c o } , \pmb { \mathcal { D } } , \pmb { \mathcal { V } } , \pmb { \mathcal { R } } ^ { r e c o v e r } )$ Fail-state Recovery; 23 $\pi _ { \mathrm { P H C } } \{ \pmb { \mathcal { P } } ^ { ( 1 ) } \cdot \cdot \cdot \pmb { \mathcal { P } } ^ { ( K ) } , \pmb { \mathcal { P } } ^ { ( F ) } , \pmb { c } \}$ 24 PHC ← TrainPPO(πPHC, $\hat { Q }$ , D, V, {Rimitation, Rrecover}) // Train Composer;
算法 1 逐行解释:
-
- 这是一个辅助函数,用于使用
PPO算法训练一个策略 。 - : 要训练的策略。
Q(k): 当前迭代中用于训练的动作数据集。- : 判别器。
- : 值函数。
- : 奖励函数。
- 这是一个辅助函数,用于使用
2 while not converged do- 只要策略未收敛,就持续训练。
3M \gets \emptysetinitialize sampling memory ;- 初始化一个空的采样记忆 ,用于存储经验。
4 while M not full do- 当采样记忆未满时,继续收集经验。
5\hat { q } _ { 1 : T } \getssample motion from\hat { Q };- 从当前训练数据集 中采样一个完整的运动片段。
6 fort 1 . . . Tdo- 遍历运动片段中的每个时间步。
7\pmb { s } _ { t } \gets \left( \pmb { s } _ { t } ^ { \mathrm { p } } , \pmb { s } _ { t } ^ { \mathrm { g } } \right);- 获取当前时间步的模拟状态 ,包括本体感知 和目标状态 。
8\mathbf { \boldsymbol { a } } _ { t } \gets \pi ( \mathbf { \boldsymbol { a } } _ { t } | \mathbf { \boldsymbol { s } } _ { t } );- 根据当前策略 和状态 选择一个动作 。
9\pmb { s } _ { t + 1 } \gets \mathscr { T } ( \pmb { s } _ { t + 1 } | \pmb { s } _ { t } , \pmb { a } _ { t } )// simulation;- 在物理模拟器中执行动作 ,得到下一个状态 。
- `10
- 计算当前时间步的奖励 ,基于当前状态 和下一个参考姿态 。
11 store\left( { \pmb { s } } _ { t } , { \pmb { a } } _ { t } , { \pmb { r } } _ { t } , { \pmb { s } } _ { t + 1 } \right)into memory_ M;- 将经验元组 (状态、动作、奖励、下一状态) 存储到采样记忆 中。
12\mathcal { P } ^ { ( k ) } , \mathcal { V } \mathrm { P P O }udateusngexpnces colli_ M;- 使用从 收集的经验,通过
PPO更新当前基元策略 和值函数 。
- 使用从 收集的经验,通过
- **
13\pmb { \mathcal { D } } \getsDiscriminator update using experiences collected in_ M** * 使用从 $M$ 收集的经验更新判别器 $\pmb{\mathcal{D}}$。 * **$14 return π;$** * 返回训练好的策略。 * **`15 Input: Ground truth motion dataset`\hat { \pmb { Q } }`;`** * 主训练流程的输入:真实动作数据集 $\hat{Q}$。 * **`16`\pmb { \mathcal { D } } , \pmb { \mathcal { V } } , \hat { Q } _ { \mathrm { h a r d } } ^ { ( 1 ) } \hat { Q }`. // Initialize discriminator, value`** * 初始化判别器 $\pmb{\mathcal{D}}$、值函数 $\pmb{\mathcal{V}}$,并将初始难例数据集 $\hat{Q}_{\mathrm{hard}}^{(1)}$ 设置为整个数据集 $\hat{Q}$。 * **`function, and dataset;`** * **`17 for`k \gets 1 . . . K`do`** * 循环 $K$ 次,训练 $K$ 个基元策略。 * **`18 Initialize`\mathcal { P } ^ { ( k ) } / \ d t`Lateral connection/weight sharing;`** * 初始化第 $k$ 个基元策略 $\mathcal{P}^{(k)}$,并建立横向连接或进行权重共享(如果 $k > 1$)。 * **`19`\hat { Q } _ { \mathrm { h a r d } } ^ { ( k + 1 ) } \mathrm { e v a l } ( \mathcal { P } ^ { ( k ) } , \hat { Q } ^ { ( k ) } )$ $( \mathcal { P } ^ { ( k ) }$ $\hat { \pmb { Q } } _ { h a r d } ^ { ( k + 1 ) }`D, V. idion) :`** * 这行代码可能存在排版错误,根据上下文,它的意思是:使用当前训练好的基元 $\mathcal{P}^{(k)}$,评估它在 $\hat{Q}^{(k)}$ 上的性能,以识别新的难例数据集 $\hat{Q}_{\mathrm{hard}}^{(k+1)}$。 * `(`\mathcal{P}^{(k)}D, V. idion): 这部分看起来是用于更新难例数据集的函数调用或参数列表。 21\mathcal { P } ^ { ( k ) }freeze\mathcal { P } ^ { ( k ) };- 冻结当前训练好的基元 的参数。
- **
22\pmb { \mathcal { P } } ^ { ( F ) } \gets \mathrm { T r a i n P P O } ( \pmb { \mathcal { P } } ^ { ( F ) } , \pmb { Q } ^ { l o c o } , \pmb { \mathcal { D } } , \pmb { \mathcal { V } } , \pmb { \mathcal { R } } ^ { r e c o v e r } )** * **`Fail-state Recovery;`** * 训练失败状态恢复基元 $\pmb{\mathcal{P}}^{(F)}$。使用专门的运动数据集 $\pmb{Q}^{\mathrm{loco}}$ 和恢复奖励函数 $\pmb{\mathcal{R}}^{\mathrm{recover}}$。 * **`23 $\pi _ { \mathrm { P H C } } \{ \pmb { \mathcal { P } } ^ { ( 1 ) } \cdot \cdot \cdot \pmb { \mathcal { P } } ^ { ( K ) } , \pmb { \mathcal { P } } ^ { ( F ) } , \pmb { c } \}$** * 构建最终的 `PHC` 策略 $\pi_{\mathrm{PHC}}$,它由所有训练好的基元 $\pmb{\mathcal{P}}^{(1)} \ldots \pmb{\mathcal{P}}^{(K)}$、失败恢复基元 $\pmb{\mathcal{P}}^{(F)}$ 和一个作曲器 $\pmb{c}$ 组成。 * **$24 PHC ← TrainPPO(πPHC, $\hat { Q }`, D, V, {Rimitation, Rrecover})`** * **`// Train Composer;`** * 训练作曲器 $c$。在这里,整个 `PHC` 策略(包含所有基元和作曲器)在整个数据集 $\hat{Q}$ 上进行训练,奖励函数根据当前状态在模仿奖励 $R_{\mathrm{imitation}}$ 和恢复奖励 $R_{\mathrm{recover}}$ 之间切换。 ## 4.10. 与动作估计器连接 (Connecting with Motion Estimators) `PHC` 被设计为<strong>任务无关 (task-agnostic)</strong>,因为它只需要下一个时间步的参考姿态 $\tilde{\pmb{q}}_t$ 或关键点 $\tilde{p}_t$ 进行运动跟踪。这使得它可以与任何兼容 `SMPL` 运动学结构的现成视频姿态估计器或生成器一起使用。 * **视频驱动:** * **`HybrIK` [17]:** 用于估计关节旋转 $\tilde{\theta}_t$。 * **`MeTRAbs` [39, 38]:** 用于估计全局 3D 关键点 $\tilde{p}_t$。 * **语言生成运动:** * <strong>`Motion Diffusion Model (MDM)` [41]:</strong> 用于根据文本提示生成不连续的动作序列。`PHC` 的恢复能力可用于在这些不连续序列之间进行衔接。 下图(原文 Figure 4)展示了 `PHC` 在实时多人生化形象应用中,通过模仿来自视频姿态估计器和语言生成器的噪声姿态,体现其鲁棒性。  *该图像是示意图,展示了多种动态控制技术在模拟人形角色中的应用。包括动作捕捉模仿、故障状态恢复和基于语言的动作生成等示例,分别对应于图(a)、(b)和(c)。这些控制策略能够适应噪声输入,确保高保真运动模仿。* # 5. 实验设置 ## 5.1. 数据集 本文在多个数据集上评估了 `PHC` 的性能: * **`AMASS` [23] 数据集:** * **来源与特点:** 一个大规模、高质量的人体运动捕捉数据集。 * **使用方式:** 遵循 `UHC` [20] 的做法,移除了其中包含噪声或人-物交互的序列。 * **规模:** 清理后得到 11313 个高质量训练序列和 140 个测试序列。 * **`H36M` [14] 数据集:** * **来源与特点:** 流行的人体 3D 姿态估计数据集。 * **使用方式:** 从 `H36M` 派生出两个子集,用于评估策略处理未见过 `MoCap` 序列和噪声姿态估计的能力。 * **子集:** * **`H36M-Motion*`:** 包含 `H36M` 数据集中 140 个高质量的 `MoCap` 序列。 * **`H36M-Test-Video*`:** 包含从 `H36M` 测试集的视频中估计得到的 160 个噪声姿态序列。这些姿态是由最先进的姿态估计方法(在 `H36M` 训练集上训练)生成的,因此它们是噪声的,挑战性更高。 * **“*”的含义:** 表示移除了包含人-椅子交互的序列。 ## 5.2. 评估指标 本文使用一系列基于姿态和基于物理的指标来评估运动模仿性能: 1. <strong>成功率 (Succ) $\uparrow$</strong> * **概念定义:** `Succ` 衡量的是控制器能否在不摔倒或不过度偏离参考运动的情况下,持续跟踪参考运动的能力。如果模拟人形在模仿过程中,其身体关节的平均全局偏离量超过 0.5 米,则认为模仿失败。 * **数学公式:** 该指标本身不是一个连续的数学公式,而是一个二元指示器(成功或失败)在多个回合中的比例。 \text{Succ} = \frac{\text{Number of successful episodes}}{\text{Total number of episodes}} \times 100% \text{一个回合被认为是成功的,如果对于所有时间步} $t \in [1, T]$\text{:} \frac{1}{J} \sum_{j=1}^J | p_{t,j} - \hat{p}{t,j} |2 \leq 0.5 \text{ m} * **符号解释:** $J$ 为关节总数,$p_{t,j}$ 为在时间步 $t$ 模拟人形第 $j$ 个关节的 3D 位置,$\hat{p}_{t,j}$ 为在时间步 $t$ 参考动作第 $j$ 个关节的 3D 位置。 2. <strong>根相对关节平均位置误差 (Root-relative Mean Per-Joint Position Error, MPJPE) $E_{\mathrm{mpjpe}}$ $\downarrow$</strong> * **概念定义:** `MPJPE` 衡量的是模拟人形与参考动作在局部关节位置上的平均差异,即在将两者的根关节对齐后,计算其他关节位置的平均误差。这主要关注姿态形状的匹配程度,而不受全局位移的影响。 * **数学公式:** E{\mathrm{mpjpe}} = \frac{1}{T \cdot J} \sum{t=1}^T \sum_{j=1}^J | (p_{t,j} - p_{t,\text{root}}) - (\hat{p}{t,j} - \hat{p}{t,\text{root}}) |2 * **符号解释:** $T$ 为时间步总数,$J$ 为关节总数,$p_{t,j}$ 为在时间步 $t$ 模拟人形第 $j$ 个关节的 3D 位置,$\hat{p}_{t,j}$ 为在时间步 $t$ 参考动作第 $j$ 个关节的 3D 位置,$p_{t,\text{root}}$ 和 $\hat{p}_{t,\text{root}}$ 分别为模拟人形和参考动作的根关节位置。 3. <strong>全局关节平均位置误差 (Global Mean Per-Joint Position Error, g-MPJPE) $E_{\mathrm{g-mpjpe}}$ $\downarrow$</strong> * **概念定义:** `g-MPJPE` 衡量的是模拟人形与参考动作在全局关节位置上的平均差异,它考虑了姿态形状和全局位置的匹配程度。 * **数学公式:** E{\mathrm{g-mpjpe}} = \frac{1}{T \cdot J} \sum_{t=1}^T \sum_{j=1}^J | p_{t,j} - \hat{p}{t,j} |2 * **符号解释:** $T$ 为时间步总数,$J$ 为关节总数,$p_{t,j}$ 为在时间步 $t$ 模拟人形第 $j$ 个关节的 3D 位置,$\hat{p}_{t,j}$ 为在时间步 $t$ 参考动作第 $j$ 个关节的 3D 位置。 4. <strong>加速度误差 (Acceleration Error) $E_{\mathrm{acc}}$ $\downarrow$</strong> * **概念定义:** `Eacc` 衡量的是模拟人形与参考动作在身体关节加速度上的平均差异。低的加速度误差表明模拟运动更加平滑、物理上更合理,没有不自然的抖动。 * **数学公式:** E{\mathrm{acc}} = \frac{1}{T \cdot J} \sum{t=1}^T \sum_{j=1}^J | a_{t,j} - \hat{a}{t,j} |2 其中,$a_{t,j} = (v_{t+1,j} - v_{t,j}) / \Delta t$ 且 $\hat{a}_{t,j} = (\hat{v}_{t+1,j} - \hat{v}_{t,j}) / \Delta t$。 * **符号解释:** $T$ 为时间步总数,$J$ 为关节总数,$a_{t,j}$ 和 $\hat{a}_{t,j}$ 分别为在时间步 $t$ 模拟人形和参考动作第 $j$ 个关节的加速度;$v_{t,j}$ 和 $\hat{v}_{t,j}$ 分别为模拟人形和参考动作第 $j$ 个关节的线速度;$\Delta t$ 为时间步长。 5. <strong>速度误差 (Velocity Error) $E_{\mathrm{vel}}$ $\downarrow$</strong> * **概念定义:** `Evel` 衡量的是模拟人形与参考动作在身体关节速度上的平均差异。低的误差表明模拟运动的动态特征与参考运动更匹配。 * **数学公式:** E{\mathrm{vel}} = \frac{1}{T \cdot J} \sum{t=1}^T \sum_{j=1}^J | v_{t,j} - \hat{v}_{t,j} |_2 $$- 符号解释: 为时间步总数, 为关节总数, 和 分别为在时间步 模拟人形和参考动作第 个关节的线速度。
5.3. 对比基线
本文主要与最先进 (state-of-the-art) 的运动模仿器 UHC [20] 进行比较。
UHC(With RFC): 使用残余力控制 (RFC) 的UHC。RFC在类人角色根部施加非物理力以帮助平衡。UHC(Without RFC): 不使用RFC的UHC。这用于展示RFC对UHC性能的关键影响。
5.4. 实现细节
- 基元数量: 实验中使用了四个基元(包括一个失败状态恢复基元)。
- 训练硬件与时间:
PHC可以在单个NVIDIA A100 GPU上训练,整个训练过程(所有基元和作曲器)大约需要一周。 - 推理性能: 一旦训练完成,复合策略可以以超过 30 帧/秒 (
FPS) 的速度运行。 - 物理模拟器: 物理模拟在
NVIDIA的Isaac Gym[24] 中进行。 - 控制频率: 控制策略以 30
Hz运行。 - 模拟频率: 物理模拟器以 60
Hz运行。 - 评估设置: 评估时没有考虑身体形状变化,而是使用平均
SMPL身体形状。
6. 实验结果与分析
6.1. 核心结果分析
6.1.1. 高质量运动捕捉 (MoCap) 数据上的运动模仿
以下是原文 Table 1 的结果:
| Method | RFC | Succ ↑ | Eg-mpe ↓ | Empipe ↓ | Eacc ↓ | Evel ↓ | Succ ↑ | Eg-mpe ↓ | Empipe ↓ | Eacc ↓ | Evel ↓ | Succ ↑ | Eg-mpipe ↓ | Empipe ↓ | Eacc ↓ | Evel ↓ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AMASS-Train* | AMASS-Test* | H36M-Motion* | ||||||||||||||
| UHC | ✓ | 97.0 % | 36.4 | 25.1 | 4.4 | 5.9 | 96.4 % | 50.0 | 31.2 | 9.7 | 12.1 | 87.0% | 59.7 | 35.4 | 4.9 | 7.4 |
| UHC | X | 84.5 % | 62.7 | 39.6 | 10.9 | 10.9 | 62.6% | 58.2 | 98.1 | 22.8 | 21.9 | 23.6% | 133.14 | 67.4 | 14.9 | 17.2 |
| Ours | X | 98.9 % | 37.5 | 26.9 | 3.3 | 4.9 | 96.4% | 47.4 | 30.9 | 6.8 | 9.1 | 92.9% | 50.3 | 33.3 | 3.7 | 5.5 |
| Ours-kp | X | 98.7% | 40.7 | 32.3 | 3.5 | 5.5 | 97.1% | 53.1 | 39.5 | 7.5 | 10.4 | 95.7% | 49.5 | 39.2 | 3.7 | 5.8 |
分析:
- PHC 的优越性:
PHC(Ours和Ours-kp)在几乎所有指标上都优于或与基线UHC(使用RFC)持平,尤其是在成功率和物理真实性指标(Eacc和Evel)上。在AMASS-Train*上,PHC取得了 98.9% 的最高成功率,且加速度误差和速度误差最低。这表明PHC在没有外部干预的情况下,能够更好地模仿训练数据。 - 泛化能力: 在未见过的
MoCap数据集(AMASS-Test*和H36M-Motion*)上,PHC仍保持了高成功率(96.4% 和 92.9%),并且错误指标通常优于UHC(✓)。这证明了PHC具有更好的泛化能力。 RFC的影响:UHC未使用RFC(X) 时,性能显著下降,尤其是在测试集上成功率骤降,且加速度和速度误差大幅增加,这突出显示了RFC对UHC稳定性的关键作用。相比之下,PHC在不使用RFC的情况下依然表现出色。- 物理真实性:
PHC的低加速度误差即使在处理未见过的动作序列时也保持良好,这得益于能量惩罚和运动先验。 - 关键点控制器的竞争力:
Ours-kp(仅基于关键点的控制器)的性能与基于旋转的控制器 (Ours) 不相上下,甚至在H36M-Motion*上略微优于基于旋转的控制器,这验证了关键点作为输入的可行性和强大潜力。
6.1.2. 噪声视频输入上的运动模仿
以下是原文 Table 2 的结果:
| Method | RFC | Pose Estimate | Succ ↑ | Eg-mppe ↓ | Empipe ↓ |
|---|---|---|---|---|---|
| H36M-Test-Video* | |||||
| UHC | ✓ | HybrIK + MeTRAbs (root) | 58.1% | 75.5 | 49.3 |
| UHC | X | HybrIK + MeTRAbs (root) | 18.1% | 126.1 | 67.1 |
| Ours | X | HybrIK + MeTRAbs (root) | 88.7% | 55.4 | 34.7 |
| Ours-kp | X | HybrIK + MeTRAbs (root) | 90.0% | 55.8 | 41.0 |
| Ours-kp | X | MeTRAbs (all keypoints) | 91.9% | 55.7 | 41.1 |
分析:
- PHC 的鲁棒性: 在处理来自视频的噪声姿态序列(
H36M-Test-Video*)时,PHC(Ours和Ours-kp)的成功率远超基线UHC。即使是使用RFC的UHC,其成功率也仅为 58.1%,而PHC达到了近 90%。这有力地验证了PHC对噪声运动的鲁棒性,使其可以直接用于驱动模拟虚拟形象。 - 关键点控制器的优势: 在噪声输入方面,基于关键点的控制器 (
Ours-kp) 表现甚至优于基于旋转的控制器 (Ours)。这可能因为:1) 从图像直接估计 3D 关键点比估计关节旋转更容易,因此MeTRAbs的关键点质量高于HybrIK的关节旋转;2) 关键点控制器在匹配关键点时有更大的自由度,使其对噪声输入更加鲁棒。 RFC在噪声下的局限: 在噪声输入下,UHC即使有RFC也表现不佳,进一步凸显了PHC在实际应用场景中的优势。
6.1.3. 消融实验
以下是原文 Table 3 的结果:
| RET | MCP | PNN | Rotation | Fail-Recover | Succ ↑ | Eg-mpjpe ↓ | Empe ↓ |
|---|---|---|---|---|---|---|---|
| H36M-Test-Video* | |||||||
| X | X | X | ✓ | X | 51.2% | 56.2 | 34.4 |
| ✓ | X | X | ✓ | X | 59.4% | 60.2 | 37.2 |
| ✓ | ✓ | X | ✓ | X | 66.2% | 59.0 | 38.3 |
| ✓ | ✓ | ✓ | ✓ | X | 86.9% | 53.1 | 33.7 |
| ✓ | ✓ | ✓ | ✓ | ✓ | 88.7% | 55.4 | 34.7 |
| ✓ | ✓ | ✓ | X | ✓ | 90.0% | 55.8 | 41.0 |
分析:
- 宽松提前终止 (RET) 的有效性: 比较第一行 (R1) 和第二行 (R2),
RET使得成功率从 51.2% 提升到 59.4%。这表明允许踝关节和脚趾有一定偏差有助于策略更好地利用这些关节来保持平衡。 - 乘性控制策略 (MCP) 的作用: 比较 R2 和 R3,单独使用
MCP(没有渐进训练)将成功率提升到 66.2%,这归因于MCP扩大了网络的容量。 - 渐进式神经网络 (PNN) 的关键贡献: 比较 R3 和 R4,引入
PNN(即PMCP的核心组件)后,成功率大幅跃升至 86.9%。这表明渐进式训练显著提升了鲁棒性和模仿性能。 - 失败状态恢复的整合: 比较 R4 和 R5,在
PMCP框架下添加失败状态恢复任务,成功率进一步提升到 88.7%,且并未牺牲运动模仿性能。这证明了PMCP能够有效地在不发生灾难性遗忘的情况下整合新任务。 - 关键点控制器的竞争力: 比较 R5 和 R6,基于关键点的模仿器 (
Ours-kp) 成功率达到 90.0%,略高于基于旋转的 (Ours) 88.7%。这再次确认了关键点控制器在某些噪声场景下的优势。
6.1.4. 实时模拟虚拟形象 (Real-time Simulated Avatars)
本文展示了 PHC 能够实时模仿从视频流中估计的姿态。通过使用关键点控制器和 MeTRAbs 估计的关键点,在一个办公室环境中,角色可以执行各种动作(如摆姿势、跳跃)并保持稳定。此外,控制器还能模仿由语言模型 MDM 生成的参考运动。这些定性结果在补充材料中的视频中进行了展示。
6.2. 失败状态恢复
为了评估控制器从失败状态恢复的能力,实验测量了控制器在一定时间范围内(5秒或10秒)能否成功回到参考运动。考虑了三种场景:1) 摔倒在地,2) 远离参考运动,3) 摔倒且远离。在评估中,使用了一个单片段的静止参考运动。摔倒状态通过随机将类人角色放置在地上并施加随机关节扭矩 150 步来创建。远离状态通过将类人角色初始化在距参考运动 2-5 米的位置来创建。
以下是原文 Table 4 的结果:
| | Fallen-State | | Far-State | | Fallen + Far-State | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | Method | Succ-5s ↑ | Succ-10s ↑ | Succ-5s ↑ | Succ-10s ↑ | Succ-5s ↑ | Succ-10s ↑ | Ours | 95.0% | 98.8% | 83.7% | 99.5% | 93.4% | 98.8% | Ours-kp | 92.5% | 94.6% | 95.1% | 96.0% | 79.4% | 93.2%
分析:
- 高成功率的恢复: 无论是基于旋转的控制器 (
Ours) 还是基于关键点的控制器 (Ours-kp),都能够在所有三种失败状态下实现高成功率的恢复(在10秒内通常超过 90%)。 Ours在摔倒状态下的优势:Ours在“摔倒状态”和“摔倒 + 远离状态”下的 5秒成功率略高于Ours-kp,表明其在从物理上不稳定的起始姿态恢复时可能更有效。Ours-kp在远离状态下的优势:Ours-kp在“远离状态”下的 5秒成功率(95.1%)明显高于Ours(83.7%),这可能得益于关键点控制器在跟踪位置目标时更强的灵活性。- 挑战性场景的鲁棒性: 即使在最复杂的“摔倒 + 远离状态”下,控制器在 10 秒内也能达到接近 99% 的成功率(
Ours为 98.8%,Ours-kp为 93.2%),这展示了其在复杂、不理想场景下强大的容错能力。
7. 总结与思考
7.1. 结论总结
本文成功提出了一种名为永续类人控制器 (Perpetual Humanoid Controller, PHC) 的新型基于物理的类人控制器。PHC 在不使用任何外部稳定力的情况下,实现了对大规模运动捕捉 (MoCap) 数据(如 AMASS 数据集)的高保真运动模仿,成功率高达 98.9%。其核心创新在于渐进乘性控制策略 (Progressive Multiplicative Control Policy, PMCP),该策略有效地解决了传统强化学习在处理大规模、多样化动作数据时面临的灾难性遗忘问题。PMCP 允许控制器动态地扩展网络容量,逐步学习更复杂的运动序列,并能无缝地整合新任务,如从失败状态中自然恢复。实验结果表明,PHC 对来自视频姿态估计器和语言生成器的噪声输入具有强大的鲁棒性,使其能够实时、永续地控制模拟虚拟形象,而无需手动重置。此外,本文还展示了仅基于关键点作为输入的控制器也能达到与基于旋转相似甚至更好的性能,为实际应用提供了更灵活的选择。
7.2. 局限性与未来工作
7.2.1. 局限性
- 高动态运动的挑战: 尽管
PHC取得了高成功率,但对于高动态运动(如高跳、后空翻)仍存在挑战。作者推测,模仿这些运动需要更多的规划和意图,而单帧姿态目标不足以传递这些信息。 - 训练时间长: 渐进式训练过程导致训练时间较长(在单个
A100 GPU上需要一周),这可能成为研究迭代和广泛应用的障碍。 - 下游任务的集成度: 当前视频姿态估计器与物理模拟是分离的。为了实现更好的下游任务(如人-物交互),需要更紧密的集成,例如姿态估计与物理模拟的联合优化。
7.2.2. 未来工作
- 提高模仿能力: 进一步提高控制器在训练集上 100% 模仿所有动作序列的能力。
- 地形和场景感知: 整合对地形和场景的感知能力,以实现更复杂的人-物交互。
- 与下游任务的更紧密集成: 实现与姿态估计、运动生成等下游任务更紧密的集成,以构建更强大、更通用的虚拟形象控制系统。
7.3. 个人启发与批判
7.3.1. 个人启发
- PMCP 的通用性:
PMCP提供了一个优雅的框架,用于在不发生灾难性遗忘的情况下,逐步学习从简单到复杂的任务。这种思想不仅适用于运动模仿,未来可能在其他多任务或连续学习的强化学习领域有广泛的应用前景。例如,在机器人控制中,可以逐步教授机器人从简单的抓取到复杂的组装任务。 - 关键点控制器的实用性: 论文证明了仅依靠 3D 关键点作为输入也能实现高性能控制,这极大地降低了对高精度全身姿态(包含旋转)估计的依赖。在实际应用中,3D 关键点估计通常比全身旋转估计更稳定和容易获取,这使得
PHC更具实用性,尤其是在消费级设备上驱动虚拟形象。 - 永续控制的潜力: 能够从失败状态自然恢复而无需重置,是模拟虚拟形象走向真实世界应用的关键一步。这打开了虚拟形象在长时间、无监督交互场景下的可能性,例如在元宇宙或虚拟助手中。
- 消除外部力的重要性: 放弃外部力控制,坚持物理真实性,是构建可信虚拟世界的正确方向。虽然短期内可能增加训练难度,但长期来看,这种方法能带来更自然、更具交互潜力的行为。
7.3.2. 批判与可改进之处
- “规划与意图”的缺失: 论文提及高动态动作的挑战性源于控制器缺乏“规划和意图”。未来的工作可以探索如何将高层规划或意图信息(例如,预期的动作序列、目标位置)融入到状态表示或奖励函数中,或者引入分层强化学习来解决这一问题。
- 训练效率: 一周的训练时间对于快速迭代或探索新想法来说仍然偏长。尽管
Isaac Gym提供了高效的模拟,但神经网络训练的复杂性仍是瓶颈。可以探索更高效的PPO变体、知识蒸馏 (knowledge distillation) 或更先进的神经网络架构来加速训练。 - 模拟足部的限制: 论文中提到的模拟足部与真实人类足部之间的动力学不匹配,通过“宽松提前终止”来缓解。这是一种务实的解决方案,但从根本上说,它指出了物理模拟器本身在建模复杂生物结构上的局限性。未来可以研究更精细的足部模型或自适应的物理参数调整,以缩小这一差距。
- 恢复策略的平滑性: 尽管实现了自然恢复,但从失败状态恢复到完全跟踪参考运动的切换机制(基于与根部的距离阈值
< 0.5m)可能不够完美。在某些边缘情况下,这种硬切换可能会导致不自然的过渡。可以探索更平滑、上下文感知的切换机制,例如使用神经网络预测何时以及如何最优雅地恢复。 - 与现实世界的 Gap: 虽然论文展示了与
MeTRAbs的集成,但从摄像头捕获的原始图像到物理模拟中的精确控制之间仍存在巨大的domain gap。未来的研究可以探索端到端的学习方法,将视觉感知和物理控制更紧密地结合起来,从而进一步提高在现实世界视频输入下的鲁棒性。
相似论文推荐
基于向量语义检索推荐的相关论文。