微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 英伟达与苏黎世联邦理工学院联手打造"实时动作导演":33毫秒内生成任意人体动作

英伟达与苏黎世联邦理工学院联手打造"实时动作导演":33毫秒内生成任意人体动作

2026-07-20 16:41
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-07-20 16:41 科技行者

这项由英伟达(NVIDIA)瑞士研究院与苏黎世联邦理工学院(ETH Zürich)联合完成的研究,发表于2026年7月的《ACM Transactions on Graphics》期刊第45卷第4期,文章编号为Article 86,DOI为10.1145/3811284。感兴趣的读者可以通过这些信息查阅完整原文。

一个游戏里的武士角色,你刚刚用键盘敲下"向左绕弧线慢跑",他就真的在0.033秒内开始流畅地转身慢跑——不是播放一段预录好的动画片段,而是当场"创作"出来的动作。这就是这篇论文要做到的事情。它的名字叫ARDY,全称是"用混合表示法实现的自回归扩散交互式人体动作生成"。听起来很绕口?没关系,接下来用一个贯穿全文的比喻来帮助理解:把ARDY想成一位极其高效的"即兴舞蹈编导",而这位编导需要同时做到三件看似矛盾的事情——听懂复杂的语言指令、精确控制每个关节的位置、还要在眨眼之间就把编好的动作呈现出来。

一、为什么造一个"实时舞蹈编导"这么难?

以往的动作生成技术基本分成两个派系,而这两个派系各有致命短板。

第一个派系叫"离线生成",工作方式就像电影导演:把整段剧本吃透之后,把所有镜头一次性拍完。这类方法用的是扩散模型(一种让随机噪声逐步变成清晰图像或动作的技术)或者遮罩生成模型,可以理解非常复杂的文字描述,也能把"第3秒时右手要举到头顶"这样的具体要求执行得相当到位。然而问题在于,它需要先知道整段动作有多长、内容是什么,生成一次可能要花几秒甚至几十秒——在游戏或机器人控制这类需要即时反应的场合,这根本行不通。

第二个派系叫"在线生成",工作方式像即兴爵士乐手:一边演奏一边即兴创作,根据当前节奏随时调整。这类方法速度够快,但因为视野太短,只盯着最近几帧的动作,很难真正理解"先走路,然后弯腰捡东西,再继续走"这种需要回忆上下文的长序列指令。更棘手的是,大多数在线方法要么只支持文字控制,要么只支持关键帧控制,二者兼顾的极少,而且即便兼顾了,也要靠额外的强化学习策略或者运行时优化来实现,代价高昂。

研究团队在论文里整理了一张方法对比表,把市面上的代表性方法逐一检视。老牌的MaskControl和Kimodo能做到精确的关节位置和旋转控制,却没办法实时生成、也不支持在线文字输入。AMDM虽然可以实时运行,但历史记忆窗口只有区区0.03秒,相当于这位爵士乐手每次只记得上一个音符。CAMDM稍好一些,有0.33秒的历史和1.5秒的未来预测窗口,但依然无法接受复杂文字提示。MotionStreamer支持在线文字输入,但完全不支持关节位置控制。DartControl支持文字和轨迹控制,但历史只有0.07秒,而且关节旋转控制需要单独训练强化学习策略。最接近目标的DiP把历史扩展到了1秒、未来预测延伸到了2秒,同时支持文字和关节位置,但这个窗口对于理解复杂长句仍然太短。

ARDY想要的则是:实时生成、支持在线文字提示、支持轨迹和关节位置及旋转的全套空间控制、不需要额外优化或强化学习、拥有8秒历史和10秒未来预测窗口。这张对比表里,只有ARDY一行全部打了勾。

二、混合"乐谱":让编导既能看全局又能控细节

要同时满足速度、理解力和控制精度,ARDY首先需要一种恰当的"语言"来描述人体动作。

人体动作在计算机里通常被表示成一长串数字:每一帧记录全身每个关节的旋转角度、位置、速度,还有脚是否踩地。这套"纯显式表示"非常直观,每个数字都有明确物理含义。然而,它的维度极高——对于一个拥有几十个关节的骨骼模型,每帧数据可能有好几百个数字。在只有几步去噪操作的快速扩散过程中,让模型直接在如此高维空间里作画,等于让一位画家在0.033秒内用几百支笔同时作画,结果往往混乱。

另一种思路是把全身动作压缩成一个紧凑的"潜码",就像把一段乐谱压缩成一个小小的二维码。这样生成效率高,但如果要直接控制身体移动到某个坐标,就必须先解码二维码、再修改、再重新编码,不直观也容易出错。

ARDY的解决方案是把两种表示方式组合起来,形成一套"混合乐谱"。这套乐谱由两部分组成:第一部分专门描述"根节点"(root),也就是整个身体在世界坐标里的位置和朝向,用5个数字明确表示(三维全局坐标加上朝向角的正弦和余弦值)。第二部分描述除根节点以外的全身体态,通过一个专门训练的压缩器把高维体态特征编码成低维潜向量。

为什么要单独把根节点拎出来?因为几乎所有空间控制指令——"走到这个位置"、"沿着这条路径移动"——本质上都是对根节点的约束。保持根节点在全局坐标系里显式可见,就像保留乐谱上的"小节线",让指挥棒(控制信号)可以直接插入精确位置,而不需要先解密一整段编码。

三、"压缩器"的秘密:让身体动作变成紧凑暗语

负责压缩身体动作的模块叫做"体态分词器",工作原理类似于语言翻译中的词元化步骤——把一段连续的文字切割成有意义的词块,再编成数字代号。

这个分词器是一个不对称的条件自编码器。编码器部分:将连续4帧的体态特征拼成一个"小块",然后用一个8层的因果变换器(causal transformer,每个时刻只能看到过去,不能偷看未来,保证时间因果性)把它压缩成一个低维潜向量。解码器部分:接收潜向量和根节点信息,重建出原始的高维体态。

这里有一个精妙的设计细节:解码器在重建体态时,接受的根节点信息不是全局坐标,而是被转换成了"本地坐标"——即每帧相对于前一帧的速度、转向角速度和高度。这样做的好处是让解码器专注于"怎么动"而非"在哪里",显著减少了脚步滑行(foot skating)的问题。论文的消融实验也证实,一旦去掉这个全局转本地的步骤,脚步滑行指标就会明显变差。

研究团队还测试了三种不同的压缩框架:普通自编码器(AE)、变分自编码器(VAE)和有限标量量化(FSQ)。三者在最终生成质量上表现相近,但普通AE在训练生成窗口较长时容易发散崩溃,而FSQ表现出最稳定的训练过程,因此被选为默认方案。FSQ的工作方式是把潜向量的每个维度量化到64个离散等级,就像把颜色不是用连续的光谱而是用64个色块来近似——信息有限但足够稳健。

四、"两段式编导":先走路线,再编身法

有了混合乐谱之后,ARDY的核心生成模块登场了。这是一个自回归的两阶段扩散模型,每次预测未来一个窗口(默认40帧,即2秒)的动作,然后把预测结果接在历史序列后面,再预测下一个窗口,如此循环,实现无限时长的在线生成。

"扩散"指的是:从随机噪声开始,通过若干步去噪操作,逐步还原出干净的动作信号。ARDY默认用10步去噪,快速模式只用4步(对应33毫秒的生成延迟)。每一步去噪,模型都需要知道:当前这团噪声处于哪个去噪阶段(步骤编号)、文字描述说了什么、历史动作是什么样子、未来的空间约束有哪些。

"两阶段"是ARDY的独特设计。在每一步去噪里,模型不是同时预测根节点和体态,而是先让"根节点变换器"预测出干净的根节点轨迹,然后把这个干净的根节点传递给"体态变换器",后者在已知根节点的条件下预测干净的体态潜向量。两个变换器的输出拼在一起,构成完整的混合预测,再被重新加噪进入下一步去噪循环,两者不断互相影响,直到最终收敛。

这种分阶段的逻辑类似于舞蹈编导先定好"从舞台左侧走到右侧"的路线,再在这个框架下设计手臂和头部的具体动作。路线确定之后,手脚的设计工作就轻松多了,因为你不需要再担心整体方向的问题。论文的消融实验显示,相比于一个同时预测根节点和体态的单阶段基线,两阶段设计在运动质量(FID指标)和关节位置控制精度(关键帧误差)上都有明显提升,尤其是关节位置误差从0.101米降低到了0.025米。

五、"隐形剧本":如何告诉编导你想要什么

这位即兴编导需要接受来自用户的各种形式的指令,而这些指令可能非常稀疏也可能非常密集,可能在当前窗口内也可能在几秒之后才发生。

文字指令通过LLM2Vec(一个基于Llama-3-8B-Instruct大语言模型微调的文本嵌入模型)编码成一个固定维度的向量,作为单独的条件令牌输入给模型。这意味着模型能理解相对复杂的自然语言描述,比如"一个人痛苦地歪着身体转圈,像是受了伤"。

空间约束(关节位置、关节旋转、根节点轨迹等)则被表示成一段"带遮罩的显式运动序列"。具体来说,这段序列和正常的运动序列一样长,但被约束的时间帧和关节维度填入真实目标值,其余位置全部填零,同时附上一张同样大小的二值掩码图,标记哪些位置是真实约束、哪些是空白。这套设计极其灵活:无论是每帧都有约束的密集轨迹跟随,还是10秒后才出现一个目标位置的稀疏单点约束,都可以用同一套格式表达。

对于根节点约束,模型会直接把输入噪声中的根节点部分用约束值覆盖(overwrite),这是一种强制性控制,让根节点轨迹紧紧贴合用户指定的路径。对于体态约束(关节位置、旋转),则把约束信息和掩码拼接到输入令牌的特征维度上,让模型在去噪时感知到这些目标,但不强制覆盖——这样可以在满足约束的同时保留自然的身体动态。

更重要的是,约束不限于当前预测窗口内。如果用户10秒后才需要角色到达某个位置,这个"超窗口约束"会作为额外的令牌拼在输入序列末尾,让模型从当下就开始规划路径。这消除了以往在线方法的一个重大局限——以前要实现长程目标,要么需要额外的强化学习策略来引导角色一步步靠近目标,要么需要每隔几秒就给一个新的中间目标。ARDY直接把长程规划能力内化到了生成模型里。

六、"排练室"里的反复训练

ARDY在两个数据集上完成了训练和测试。

用于展示交互式演示系统和消融实验的主力数据集是Bones Rigplay,这是一个来自专业动捕工作室的大规模私有数据集,包含约700小时的高质量人体动作,覆盖超过150名演员,动作类别从日常行走、手势、格斗到日常活动应有尽有,所有动作统一映射到一个27关节骨骼模型。每段原始动捕序列最长可达180秒,训练时截断至10秒并以20帧/秒采样。数据集还额外用大语言模型为每条文字标签生成了多样化的同义改写,增强了文字理解的泛化能力。测试集的划分是按语义类别分组的,测试类别与训练类别完全不重叠,这意味着测试实际上是在考验模型对全新动作类型的泛化能力。

训练时,模型不仅看纯文字条件,还会在每段训练序列上随机采样各种类型的空间约束(密集根轨迹、稀疏路径点、全身关键帧、端效应器关节约束等)作为条件输入,让模型在训练过程中就学会如何同时满足文字和空间约束。此外,以10%的概率随机丢弃文字提示或空间约束,使模型在没有约束时也能正常生成,并支持推理时的分类器自由引导(一种在推理时通过平衡有无条件生成来控制"听话程度"的技术)。

用于与现有方法做公开基准比较的数据集是HumanML3D,这是包含约30小时动捕数据和对应文字描述的公开标准数据集,被大量相关工作用作评测基准。

七、实验数据说明了什么

在Bones Rigplay数据集上的消融实验给出了清晰的设计验证。以FID(衡量生成动作和真实动作的分布差异,越低越好)为例,ARDY的完整方案得到0.027,而换成纯显式表示的基线方案得到0.065,劣化了约1.4倍。在关节位置控制误差(越低越好)上,ARDY完整方案得到0.025米,纯显式方案高达0.130米,差距超过5倍。这说明潜空间压缩对于少步扩散场景下的学习效率至关重要。去掉全局转本地的步骤之后,脚步滑行速度从0.264米/秒上升到0.303米/秒,印证了本地根节点对物理合理性的贡献。改成单阶段联合预测后,关键帧体态误差从0.023米上升到0.079米,路径点误差从0.024米上升到0.164米,说明两阶段分解对于同时满足语义和空间约束确实有实质帮助。

在生成窗口长度的测试中,4帧窗口(0.2秒)的方案几乎无法响应文字提示,而8帧窗口到40帧窗口都能取得相近的约束控制精度,但40帧窗口在文字语义理解(R-precision指标)上有明显优势。去噪步数的测试显示,1步去噪质量非常差,3步已经可用,4步表现与10步相近,而100步相比10步的提升已经微乎其微——这为"用4步换33毫秒延迟"的工程选择提供了充分的数据支撑。

在HumanML3D基准上与离线方法MaskControl的比较:ARDY在不使用任何测试时优化的情况下,关节位置误差仅为4.15厘米,而MaskControl同样不开优化时高达46.18厘米,差距约10倍。开启测试时优化后,ARDY降至0.30厘米,MaskControl降至0.45厘米,两者均达到精细控制水平,但ARDY的生成延迟为0.15秒,MaskControl则高达68.65秒——相差460倍。

与在线方法DiP的比较更能体现长程规划能力的差异。在"窗口内目标"场景(每两秒给一个关节目标),ARDY的关节误差为2.48厘米,DiP为9.20厘米。在"超窗口目标"场景(给一个9秒后才需到达的目标关节位置),ARDY的关节误差为2.92厘米,而DiP从9.20厘米剧增至17.64厘米,足以说明DiP在窗口外目标上几乎失去了规划能力。240次用户感知研究的结果也佐证了这一点:参与者在动作质量上以65.8%对9.2%偏好ARDY,在语义一致性上以67.5%对7.5%偏好ARDY,在关节目标准确性上以64.6%对4.2%偏好ARDY。

八、如何让用户真正用起来

研究团队用Viser框架开发了一个完整的网页交互界面,展示了ARDY的实际可用性。用户可以通过界面顶部的控制面板随时输入或修改文字描述,界面底部的时间轴轨道直观显示即将到来的文字提示和空间约束,场景内部用红色可视化标记标出约束目标(红色环形标记代表根节点路径点,红色骨架代表全身关键帧,红色球体代表端效应器约束)。

运动控制有两种交互方式:鼠标点击指定目标路径时,系统在点击点之间做线性插值并平滑路径,转换成根轨迹约束输入给模型;键盘控制速度时,系统根据按键计算目标速度、与当前速度线性插值、逐帧积分得到根轨迹,再输入给模型。两种方式都不需要用户手动指定关节动作,模型会自动根据速度和朝向生成配套的步态。

对于延迟管理,研究团队设计了一种"缓冲重规划"机制:当用户给出新输入或动作缓冲即将耗尽时触发重规划,同时将已经生成好的接下来B帧动作作为缓冲播放给用户,而新一轮生成在后台异步进行,利用这B帧的播放时间来隐藏推理延迟。4步模型无需缓冲帧(33毫秒已经足够快),10步模型只需1帧缓冲(63毫秒延迟,约在20fps下对应1帧的播放时间)。

九、还有哪些没解决的问题

研究团队在论文讨论部分坦诚地指出了三个主要局限。

第一,历史记忆的效率问题。当前ARDY会把所有历史帧都保留在上下文中,随着运行时间增长,输入变换器的序列越来越长,计算开销也随之增加。对于需要持续运行几十分钟的游戏场景,更高效的记忆机制是必要的未来方向。

第二,速度还可以更快。扩散模型天生需要多步迭代,即便只用4步,在计算资源受限的设备上仍有压力。近期出现的"快捷扩散"技术(如Mean Flows)有望进一步压缩生成步数至1步,值得后续探索。

第三,纯运动学的局限。ARDY完全在运动学层面工作,不知道地心引力、肌肉力量或碰撞约束的存在。生成的动作有时会出现脚步滑行或轻微抖动,在需要物理真实性的机器人控制场景中仍是痛点。把物理仿真引擎或数据驱动的动力学模型整合进来,是这个方向最重要的长期课题。

归根结底,ARDY做到了一件很多人认为暂时不可能的事情:在不牺牲控制精度和语义理解能力的前提下,把高质量人体动作的生成速度压到了实时交互的门槛之下。它不依赖预先录制的动作片段,不需要针对每个控制场景单独训练专门的策略,而是通过一套统一的生成框架,在同一次前向推理中同时满足文字语义、长程空间目标和即时运动学约束。对游戏开发者来说,这意味着可以用一行文字实时指挥角色,而不必为每种动作组合预先制作和切换动画;对机器人研究者来说,这意味着可以把高质量参考动作的生成直接嵌入实时规划循环;对普通用户来说,这意味着未来和数字角色的互动可能会变得像和真人对话一样自然流畅。当然,脚步滑行、物理真实性和长时记忆效率这些问题仍然悬在那里,等待下一波解法的到来。如有兴趣深入了解技术细节,可以通过DOI 10.1145/3811284查阅原始论文全文。

Q&A

Q1:ARDY生成人体动作的速度为什么能达到33毫秒?

A:ARDY采用了4步扩散去噪策略,结合混合表示法将体态压缩为低维潜向量,大幅降低了模型每次推理需要处理的数据维度。实验表明,4步去噪的效果与10步接近,而生成延迟仅33毫秒,足以支持实时交互。

Q2:ARDY和以前的在线动作生成方法相比,最大的区别是什么?

A:最大的区别在于历史和未来的上下文窗口长度。以往的在线方法如DiP历史只有1秒、未来预测只有2秒,无法理解需要回顾几秒前动作才能判断的复杂文字指令,也无法为10秒后的目标提前规划路径。ARDY将历史窗口扩展到8秒、未来约束窗口扩展到10秒,同时不依赖额外的强化学习策略,直接通过原生训练支持长程目标。

Q3:ARDY能控制人体动作的哪些部分?

A:ARDY支持多种类型的空间控制,包括根节点的全局轨迹(路径跟随)、稀疏路径点(走到某个位置)、全身关键帧(某时刻全身摆成指定姿势)、端效应器关节位置和旋转(如手脚在某时刻到达特定位置和朝向),以及通过键盘或鼠标实时输入的速度和方向控制,所有控制均可在任意稀疏或密集程度下组合使用。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-