从DeepMimic到带物理约束的MaskMimic——人形机器人全身运控的通用控制器:自此打通人类-动画-人形的训练路径
前言
如此文的前言所说,25年6.26日晚上,我们搞定了让机器人跳舞,且在我司长沙办公室现场让宇树G1跳查尔斯顿舞
且第二天,25年6.27上午,我们再次在长沙办公室给客户演示了这个查尔斯顿舞,当时客户给拍的视频如下『插网线是连着电脑推理(程序),耷拉着机器人是为了保护防摔,即手并未使劲 只是单纯保护,啥意思呢?即如果机器人不稳,我手使劲牵着他也跳不完』
给客户现场演示查尔斯顿舞
而其背后的原理类似Mimic,有意思的是,如ASAP的作者之一罗正宜所说
- 23年年底,他和同在CMU的PhD何泰然开始了PHC在真机上的尝试(H2O)
- 但从某种角度说,他认为当时他们的目标跨度可能过大。PHC to Real路径走得有些激进,因此在ASAP项目中他们选择了“退一步”,先做DeepMimic to Real
他认为,现在业界大多数人也在探索 DeepMimic 到 PHC 的迁移路径,他自己也在进行这方面的工作
故本文来解读下DeepMimic以及后续的改进工作MaskMimic
如Xue Bin(Jason) Peng在这篇访谈中所说的
- DeepMimic 的核心思路其实很简单:就是将深度强化学习与动作跟踪(motion tracking)结合起来。这项研究的初衷是想构建虚拟角色,能模仿人类执行各种动作技能,用于动画或虚拟环境中
是不很有趣,虚拟角色模仿人类,人形则再模仿虚拟角色,相当于人形 → 虚拟角色(动画) → 人类- DeepMimic 的另一个关键部分是动作跟踪(motion tracking)。当我们有了神经网络控制器,接下来的问题是:如何训练它去执行各种不同的技能?在传统做法中,你通常需要为每种技能设计一个定制的奖励函数。比如“走路”用一套 reward,“跑步”又是另一套。但这种方式同样不具备扩展性。
- 我们的方法是采用统一的奖励机制:就是让控制器去跟踪一个参考动作(reference motion)。给它一个目标动作(比如动捕数据),然后让控制器逐帧去模仿它。我们发现,只用这个简单的跟踪型奖励函数,配合策略梯度强化学习方法,就可以让模型学会各种动作技能,而无需为每种技能都手工设计控制器或奖励。
- 所以相比为每个技能设计控制逻辑,我们只需要提供不同的参考动作,再用相同的训练目标去优化,就能得到对应的控制策略。这就是 DeepMimic 的基本思想
第一部分 DeepMimic:基于示例引导的物理角色技能深度强化学习
在 DeepMimic 之前,很多动画领域的控制器设计都在借鉴机器人学的做法,比如轨迹优化、最优控制、或有限状态机(finite state machines)等
- 这些方法的最大问题在于:不具备通用性,需要大量人工设计。每种新技能都要从头设计一个控制器。比如要模拟“走路”就要一套专门的控制器,“跳跃”又得重新设计一套。如果是翻滚或杂技类更复杂的技能,那需要投入的时间和精力就更多了。这种方法在长远来看是不可扩展的。所以很多过去的研究只能聚焦于极少数具体行为
- 作者在 DeepMimic 中希望构建一个通用的框架,可以再现任意人类动作技能。为此,他们采用了深度强化学习,通过它训练神经网络控制器。神经网络是一种非常强大的函数逼近器,可以表达非常灵活和复杂的策略。它使我们无需为每个技能去手工设计有限状态机,而是可以使用统一的神经网络架构来适配所有技能
// 待更
第二部分 MaskMimic
2.0 引言与相关工作
2.0.1 引言
能够根据动态用户指令并与多样化场景交互的虚拟角色的开发,一直是计算机图形学中的一项重大挑战。这一挑战涵盖了诸多应用领域,包括游戏、数字人、虚拟现实等
例如,一个角色可能会被指令:“爬上小山到达城堡,向守卫挥手,进入城堡,前往王座厅,并坐在王座上。”这一场景需要整合多种复杂行为:在崎岖地形上的移动、基于文本的动画引导以及与物体的交互
- 以往的基于物理模拟的研究通过为特定任务(如移动、物体交互和虚拟现实追踪)开发专用控制器来应对这些挑战
这些方法通常需要
为每个任务训练控制器 [Hassan等,2023;Rempe 等,2023;Winkler 等,2022]
或将原子性动作编码到可复用的潜在空间中,再由高层控制器组合以执行新任务 [Luo 等,2024;Peng 等,2022;Tessler 等,2023;Yao 等,2022]
- 然而,这些系统往往缺乏通用性,因为每新增一个任务都需要耗时地训练新的特定任务控制器。此外,这些模型通常依赖于精细设计的手工奖励函数,而奖励函数的设计与调优非常困难,常常导致非预期行为的产生
- MaskMimic的目标是开发一个多功能的统一运动控制模型,该模型能够方便地在各种任务中复用,无需针对特定任务进行训练或进行复杂的奖励机制设计。该方法不仅简化了训练流程,还提升了模型在不同任务间的泛化能力
总之,MaskMimic提出了一个统一的基于物理的角色控制框架,通过利用现有动作捕捉数据集中丰富的多模态信息(如运动学轨迹、文本描述和场景信息),训练出一个多用途的控制模型
- 其在随机遮蔽的运动序列上进行训练。在给定被遮蔽的运动序列的条件下,MaskedMimic 预测能够还原原始(未遮蔽)完整运动序列的动作——它通过对部分运动描述进行补全,实现全身动作的生成。这些部分描述可以包括目标关键帧、目标关节位置/旋转、文本指令、物体交互,或上述任意组合
经过训练后,这种修复方法为引导仿真角色的行为提供了直观的界面
且通过一种类似于提示工程的技术,他们称之为目标工程(goal-engineering)——在自然语言处理领域,用户可以提供多种不同的约束条件,引导控制器执行期望的任务 - 这种方法相较于以往的方法具有多项优势。对带掩码的运动序列进行训练,使模型能够泛化到全新的目标组合。直观的部分约束取代了复杂且易出错的奖励函数,从而简化了设计流程(见图2)
此外,将MaskedMimic训练为一个统一的模型还实现了正迁移,即从一个任务中获得的知识能够提升其他任务的表现。例如,MaskedMimic在从VR输入生成全身动作方面优于以往的特定任务方法,同时还能泛化到不规则地形和新颖物体的移动
2.0.2 相关工作
第一,对于基于物理的角色动画
- 早期的基于物理的动画方法侧重于手动设计特定任务的控制器。这些控制器能够产生引人注目的效果。然而,它们通常需要为每一个感兴趣的任务进行耗时的工程设计,并且难以扩展到通用控制所需的多样化动作库 [de Lasa 等, 2010; Geijtenbeek 等, 2013; Lee等, 2010a; Liu 等, 2010]
- 近期的研究展示了如何通过学习来获得这些控制器,从而实现复杂且具备场景感知的行为,如行走 [Rempe 等, 2023] 或在物体上坐下 [Hassan等, 2023]
然而,这些方法通常需要手动选择与预期行为相符的动作,并结合精细的奖励设计
与运动学动画相比,物理方法能够实现具备场景感知的动作,例如与物体的交互 [Hassan 等, 2023; Pan 等, 2024; Xiao 等, 2024]以及在不规则地形上的运动 [Rempe 等, 2023; Wang 等,2024a]
故MaskedMimic的工作利用基于物理的动画来学习在未知地形和物体上也能泛化的鲁棒行为
第二,对于人体与物体交互
- 生成逼真的人体-物体交互(HOI)需要对人体与物体之间的物理动态,尤其是接触关系,进行精确建模。虽然基于运动学的HOI方法在三维感知场景穿越 [Wang等,2022,2021] 和交互 [Xu等,2023;Zhao等,2023] 等领域取得了进展,但它们往往会产生不真实的现象,如穿透和悬浮物体
- 基于物理的 HOI 方法的最新进展通过将物理仿真引入运动生成过程,已经解决了这些问题。值得注意的例子包括 PhysHOI[Wang 等人, 2023]、InterPhys [Hassan 等人, 2023] 和UniHSI[Xiao 等人,2024] 能够生成更自然且物理上合理的场景交互
这些方法利用物理引擎,确保生成的动作遵循物理规律,从而实现更自然的交互
MaskedMimic的工作在这些基于物理的 HOI(人-物交互)研究基础上,提出了一个统一的控制器,该控制器同样能够实现物体交互行为。通过将动作生成表述为从部分目标进行修复(inpainting)的问题
总之,MaskedMimic 能够适应新颖的场景组合,例如在不规则地形上摆放家具,从而将 HOI 系统的适用范围扩展到更为多样且复杂的场景
第三,对于文本到动作
- 文本为虚拟角色的控制提供了高级接口。随着大规模文本标注动作数据集(如BABEL [Punnakkal 等人,2021] 和 HumanML3D[Guo 等人,2022])的出现,文本条件动作模型的发展成为可能。最初的研究主要集中在运动学动画上,如ACTOR [Petrovich 等人,2021] 和 MDM [Tevet 等人,2023a] 等方法在文本控制能力方面表现出良好前景
然而,通常需要对文本prompt进行精心设计,才能从模型中获得期望的行为,而且生成的动作仍然会出现如漂浮和滑动等伪影 - PACER++ [Wang 等人,2024a] 旨在通过结合运动学扩散模型与物理仿真来减轻非物理运动伪影。该方法首先利用文本条件的运动学模型生成上半身动作,然后采用基于物理的控制器,在遵循给定路径的同时,匹配运动学生成的上半身动作
- 另一条并行的研究路线,包括PADL [Juravsky 等人,2022] 和 SuperPADL [Juravsky等人,2024],训练了可以直接基于文本指令进行调节的物理控制器
在MaskedMimic的研究中,作者们开发了一个统一的基于物理的控制器,能够直接基于文本和运动学约束进行调节,无需单独的文本到动作模型。这使得对模拟动作进行直观的基于文本风格化成为可能
第四,对于潜在生成模型
其已作为一种更具扩展性和通用性的方法出现,以解决特定任务控制器的低效问题
这些模型利用大规模动作数据集,将潜在编码映射到不同的行为
- 值得注意的前期工作包括采用对抗目标的ASE、CALM和CASE [Dou 等人, 2023; Peng 等人, 2022; Tessler 等人, 2023],以及利用动作追踪的ControlVAE、PhysicsVAE、PULSE和NCP [Luo 等人, 2024; Won 等人, 2022; Yao 等人,2022; Zhu 等人, 2023]。通过对大量技能语料库进行建模,这些方法无需针对特定任务的数据整理
然而,它们学习到的潜在表示往往较为抽象,缺乏用户直观操控的基础。因此,为了解决新任务,通常需要额外训练分层控制器,通过对潜在空间的控制来生成期望的动作,这在一定程度上限制了其可用性[Luo 等,2024;Peng 等,2022;Yao 等,2022] - MaskedMimic通过将角色控制表述为一个基于部分多模态约束的运动修复(motion inpainting)问题,提出了一个统一的接口,这些约束直接从数据本身中提取。利用带有运动追踪目标的VAE方法,单一训练模型即可支持
在不规则地形上的运动(Rempe等,2023)
从VR控制器信号生成全身动作(Lee等,2023;Winkler等,2022)
动作中间帧生成(Gopinath等,2022)
自然的物体交互(Hassan等,2023)
全身追踪(Luo等,2023;Wang等,2020)
等多种功能
第五,对于动作修复
动作修复:根据部分关节约束生成全身动作通常被称为动作修复。修复是角色动画中的一个基础性问题,具有诸如动作插值和虚拟现实追踪等重要应用。在修复任务中,必须从稀疏的传感器数据或关键帧中推断出角色的全身动作
- 已有研究利用自回归模型[Huang等,2018;Yang等,2021;Zheng等,2023]、变分推断[Dittadi等,2021]以及扩散方法[Du等,2023;Tevet等,2023b;Xie等,2024]对运动系统的修复进行了探索
然而,尽管已有为物理动画系统提出的稀疏跟踪模型,但这些模型仅适用于固定的稀疏模式
例如,Lee 等人[2023]提出了一种处理联合稀疏性的系统,该系统采用了固定的预定义关节,如从 VR 系统中获得的那些关节 - 相比之下,统一物理基础系统 MaskedMimic支持灵活的稀疏模式。使用 MaskedMimic,任何模态的组合(关节、关键帧、物体、文本)都可以被观测或未被观测。这使得从无条件生成到多模态约束(如补间动画或跨越不规则地形的 VR 虚拟形象控制,以及物体交互)等多种应用成为可能
以往的运动学修复方法在此类场景下表现不佳,因为它们缺乏物理基础,无法推理动力学、接触和多体交互。相比之下,MaskedMimic 的物理建模方式可以在不同模式间实现无缝切换,同时确保生成的动作符合物理规律且具有可信度。用户可以直观地指定高层次的多模态约束,MaskedMimic 会自动合成相应的物理合理动作
2.1 理解第一层:两阶段-RL阶段、行为克隆阶段
MaskedMimic的框架分为两个阶段
- 在第一阶段,利用强化学习在大量动作片段数据集上训练一个运动跟踪控制器
- 随后,通过行为克隆将该控制器蒸馏为一个多功能的多模态控制器
2.1.1 RL阶段
MaskedMimic方法的第一阶段利用目标条件强化学习(GCRL)框架,训练一个通用的运动控制器,使其能够被引导执行多种任务
- 在该框架下,RL 智能体根据策略π 与环境交互
在每一步,智能体观察到一个状态
和一个未来目标
- 然后,智能体从策略中采样一个动作
,即
。执行该动作后,环境根据环境动力学
转移到新状态
,智能体获得奖励
- 智能体的目标是学习一个能够最大化折扣累计奖励的策略
其中,是轨迹
的似然概率
折扣因子决定了策略的有效时间范围
2.1.2 行为克隆阶段
方法的第二阶段利用行为克隆(BC)将通过强化学习训练得到的教师策略,提炼为一个更具通用性的学生策略
,该策略能够通过多模态输入进行引导
策略蒸馏过程采用DAgger方法 [Ross等,2011]实现。在这一在线蒸馏过程中,通过执行学生策略收集轨迹,然后用教师策略的动作对其进行重标记
表示在学生策略下观测到的状态和目标的分布。这种主动行为克隆的形式能够减轻监督蒸馏方法中固有的偏移问题 [Ross 等, 2011]
2.2 理解第二层:完全约束控制器、多功能部分约束控制器
本研究提出了一种多功能的基于物理的角色动画控制器,他们的目标是开发一个可扩展的系统,能够从大型且多样化的多模态数据集中学习丰富的行为库。如下图图3所示『MaskedMimic 框架:第一阶段生成一个全约束控制器。该全身跟踪器通过强化学习RL进行训练,以在广泛复杂且具备场景感知的环境中模仿运动学动作记录。第二阶段生成 MaskedMimic。以
为教师,通过监督限制学习,将其知识提炼到部分约束控制器
中。由于
接收的是被掩蔽的输入,这一过程使其能够进行基于物理的补全。最后,在推理阶段,无需进一步训练,
可以根据用户提供的部分目标,在前所未见的场景中生成新的动作』
MaskedMimic的框架支持多种控制方式,为用户提供灵活且直观的界面,以引导虚拟角色的行为。该框架包括两个阶段
- 首先,他们在大型动作捕捉数据集上训练一个全约束的动作跟踪控制器。该控制器的输入为期望动作的全身目标轨迹。全约束控制器被训练以模仿各种动作,包括涉及不规则地形和物体交互的动作
- 接下来,将这个全约束控制器蒸馏为一个更为灵活的部分约束控制器。部分约束控制器能够通过多样的控制输入进行引导。其多样性来源于一种掩码训练机制
在训练过程中,控制器需在输入被随机掩码的情况下重建目标全身动作。该过程使部分约束模型能够根据任意的部分约束生成全身动作
2.2.1 阶段一:全约束控制器
阶段1:全约束控制器
- 基于物理的动作跟踪的目标是生成控制(如马达驱动),使得模拟角色能够产生与运动学目标动作
高度相似的动作
[Lee 等,2010b;Peng 等,2018;Silva 等,2008;Wang 等,2020]
作者将一个动作表示为一系列姿态,其中每个姿态
用冗余表示编码,包括角色
个关节的3D 笛卡尔位置
以及它们的旋转
- 为了成功跟踪参考动作,控制器通常会被提供描述其应模仿动作的信息。例如,动作跟踪控制器通常以目标未来姿态
为条件[Luo等,2023;Wang 等,2020]
作者将目标姿态称为全约束目标,因为未来姿态为角色应模仿的目标动作提供了完整的信息
2.2.2 阶段二:部分约束控制器
阶段2:部分约束控制器
- 在本研究中,作者提出了一种控制模型,该模型不仅仅依赖于完整目标姿态的条件,而是扩展到更为多样化的部分可观测目标
例如,在虚拟现实中,一个典型的问题是仅通过头部和手部传感器生成全身动作
同样,在某些情况下,控制器可能只能观测到一个物体(例如,一把椅子),此时需要生成与目标物体交互的真实全身动作[Hassan 等,2023;Pan 等,2024] - 在整篇论文中,作者将部分可观测目标称为
。这些部分目标只指定了期望动作的某些元素
为了训练一个能够通过部分目标进行引导的多功能控制器,作者提出了一种简单的训练方案,即在目标动作的随机掩码观测上训练控制器。这些掩码观测是通过一个随机掩码函数构建的
2.3 理解第三层(上):深入RL下的全约束控制器的细节
在MaskedMimic框架的第一阶段,作者使用强化学习训练一个全约束运动追踪控制器。该控制器能够在不规则环境中模仿大量参考动作库,并在适当的时候与物体进行交互
由于动作数据集仅包含运动学动作片段,πFC 的主要目的是估算控制仿真角色所需的动作(马达驱动)。 随后为下一阶段更通用控制器的训练过程奠定了极大简化的基础
2.3.1 模型表示
全约束控制器通过端到端训练,以模仿目标动作,其条件包括全身动作序列以及对周围环境的观测信息,如地形和物体高度图。训练目标被设定为动作跟踪奖励,并通过强化学习方法进行优化 [Mnih 等人,2016;Peng 等人,2018]
本节将详细介绍模型各个组件的设计
- 角色观测
在每一步中,会观测当前类人角色的状态
,该状态包括三维身体姿态和速度,并以角色本地坐标系为基准进行规范化:
其中表示两个旋转之间的四元数差异。除了角色的当前状态外,策略还会观察来自参考动作的接下来
个目标姿态
每个关节的特征都相对于当前根节点和当前各自关节进行了规范化
每个目标姿态的特征也被加入了从当前时间步到目标姿态的时间
,从而得到如下表示:
- 场景观测
为了在不规则地形上模仿动作,作者将角色的姿态以角色根部(即骨盆)下方地形的高度为基准进行规范化。在训练过程中,控制器会获得周围环境的高度图,高度图的方向与根部朝向一致 [Pan 等,2024; Rempe 等, 2023]。该高度图具有固定分辨率,并记录了附近地形几何体和物体表面的高度信息 - 动作
与以往的研究类似 [Peng 等人, 2018;Tessler 等人,2023],作者选择了比例-微分(PD)控制。且未采用残差力[Luo 等人, 2021;Yuan 和 Kitani, 2020;Zhang 等人, 2023]或残差控制 [Luo 等人, 2022a]
策略的动作分布通过多维具有固定对角协方差矩阵的高斯分布
2.3.2 模型架构
// 待更
2.4 理解第三层(下):深入部分约束控制器的细节
// 待更