枢纽
数据集HumanML3D, KIT-ML, AMASS
输入模态text

TEMOS:用「一个 latent 向量」生成一整段多样动作

Mathis Petrovich, Michael J. Black, Gül Varol(LIGM / École des Ponts + MPI Tübingen)。ECCV 2022 · arXiv:2204.14109。 项目页 · 全开源 · action_gentext-to-motionVAE

🧠 一句话心智模型:别再让模型「一句话→一个动作」地确定性回归——给同一句「A man walks in a circle」配上一个概率分布,从中可以采样出无数种「走圈」:大圈、小圈、顺时针、逆时针。做法很朴素:把动作和文本都压成同一个 256 维高斯分布,再用 Transformer 一次性(非自回归)把分布里的一个点解码成整段动作。

🎯 为什么重要:文本到动作的「假确定性」陷阱

2022 年前,文本→3D 动作几乎都是确定性的(Language2Pose、Ghosh et al.)。一句话进去,一段动作出来。听起来很合理,但忽略了一个根本事实:

核心矛盾:「A man walks in a circle」 并没有指定圈的大小、方向、起步脚。确定性模型只能学到「所有可能圈的平均」——结果是一个很小的、抖动的、不自然的平均动作。这是「回归 → 多模态被平均」在动作生成上的翻版(也是 Diffusion Policy 后来要解决的同一个问题)。

TEMOS 的回答是给生成过程加一个概率分布头:同一个文本对应 latent 空间里的一团云,从云里采不同的点 → 不同的「合理动作」。关键架构见下图:

训练时:文本分支 + 动作分支 都用 "walks in a circle" DistilBERT frozen Text Enc pose seq H1...HF Transformer Motion Enc 共享 latent z ∈ ℝ²⁵⁶ ~ N(μ, Σ) Motion Dec Transformer 测试时只走文本分支: 同一句文本 → 多次采样 z → 多段不同动作
图 1(对应论文 Fig.2):双编码器把文本和动作都映射到同一个 256 维高斯 latent;测试时只用文本分支,从 $\mathcal{N}(\mu_T, \Sigma_T)$ 反复采样,得到多样的动作。

💡 核心思想:把动作「整段」压成一个 latent,再一次性解码

TEMOS 有两个反潮流的设计选择:

老路:自回归(一帧一帧往下生成) H₁ H₂ H_F 误差累积 → 末端漂移、停滞 TEMOS:one-shot(一个 z 解码一整段) z + 位置编码 Motion Decoder Transformer H₁ H₂ H_F 并行出帧 无漂移
图 2:自回归 vs one-shot。TEMOS 用一个 sequence-level 的 z,加上 positional encoding,让 Transformer 解码器并行输出整段动作。这是后续 TEACH、T2M-GPT、MotionDiffuse 等的范式基础。

关键损失有四项 KL(论文 §3.3 公式):

$$L_{KL} = \mathrm{KL}(\phi_T \| \phi_M) + \mathrm{KL}(\phi_M \| \phi_T) + \mathrm{KL}(\phi_T \| \psi) + \mathrm{KL}(\phi_M \| \psi)$$

前两项把文本分布 $\phi_T$ 和动作分布 $\phi_M$ 拉到一起(cross-modal 对齐);后两项把它们都正则化到标准先验 $\psi=\mathcal{N}(0, I)$(防止 latent 坍缩)。$\lambda_{KL}=\lambda_E=10^{-5}$(小到几乎只让 VAE 起到「采样多样性」的作用,不过度平滑)。

🛠️ 三个让它「真比 SOTA 强一截」的设计

设计心智为什么必要
① 双分支共享 latent文本和动作各有自己的 VAE 编码器,都映射到同一个 $\mathcal{N}(\mu, \Sigma)$训练时两路都开(互相监督 latent 对齐),测试时只走文本分支,但 latent 仍然是分布 → 可采样出多样动作
② 非自回归 Transformer 解码一个 $z$ + positional encoding,并行出 $F$ 帧过去自回归(next-frame)会误差累积,末尾常漂移或停滞;one-shot 让全局时序一致
③ 同时支持骨架和 SMPL骨架模式对比 SOTA;SMPL 模式给出带皮肤网格的全身动作SMPL 输出能支持未来「人-物接触」「场景交互」研究,骨架是为了公平比较(KIT 数据集惯例)
🔮 直觉:为什么「双分支训练」是巧思?
单分支 VAE(只编码文本→解码动作)也能采样,但 latent 容易被文本「拉偏」失去动作的几何结构。双分支强迫同一个 latent 空间同时能被「文本」和「动作」解释——这样动作流形的结构信息直接由动作编码器注入,文本编码器只负责在该流形上定位一团概率云。这是后续 T2M / MDM 的核心思路之一。

📊 关键结果:在 KIT 上全面超越 SOTA

指标(KIT test set,单位:米,越低越好)Lin et al.JL2PGhosh et al.TEMOS
APE root joint ↓1.9661.6221.2910.963
APE global traj. mean ↓1.9561.6161.2420.955
AVE root joint ↓0.7900.6690.5640.445
AVE global ↓0.7910.6720.5630.448
感知研究(AMT 工人偏好)结果
语义对齐:TEMOS vs Lin et al.TEMOS 被偏爱 90.5% 的时间
语义对齐:TEMOS 比真值更好TEMOS 优于 GT 15.5%(Ghosh 仅 8.5%)
真实感:TEMOS 比真值更好TEMOS 优于 GT 38.5%(Ghosh 仅 5.5%)
训练细节1000 epochs · AdamW · lr $10^{-4}$ · latent $d=256$ · KIT 数据集 1784 train / 566 val / 587 test
消融:去 variational(变确定性)性能仍优于过去 SOTA(说明Transformer 建模本身已带主要增益,variational 是「锦上添花」做多样性)
关键洞察:TEMOS 的胜利不是「靠堆数据或堆参数」,而是两个建模选择的叠加——sequence-level Transformer(去掉误差累积)+ variational latent(允许多样性)。论文消融显示:单独去掉 variational 仍能打过 SOTA,说明「时序建模的革新」是主菜,「多样性」是甜点。但没有甜点,文本→动作就永远是一对一映射,下游应用(交互式游戏、机器人)就死了。

🌐 在领域中的位置

Language2Pose / JL2P(确定性跨模态嵌入) Ghosh et al.(自回归 + BERT) TEMOS(VAE + Transformer + one-shot)⭐ T2M / MDM / MotionDiffuse(扩散化 + 更大数据集 HumanML3D)

TEMOS 是文本→动作「现代化」的关键节点。它把 NLP 的 Transformer + VAE 范式正式带到动作生成社区,并确立「多样性和确定性不该二选一」的评价观(论文 §4.1 直接批评了「一文本一动作」的评测假设)。后续的 T2M(Guo et al. 2022)、MDM(Tevet et al. 2022)把 HumanML3D 数据集和扩散模型接上 TEMOS 的架构骨架,把 SOTA 又往上推了一阶。

❓ 常见误区

TEMOS 是 diffusion 模型吗?

不是。它是 VAE——把文本和动作都映射到 256 维高斯 latent,再从 latent 解码动作。扩散模型(MDM、MotionDiffuse)是 2022 下半年才进入这个领域,TEMOS 是「VAE + Transformer」路线的代表。

那它能像 diffusion 一样生成「任意」多样的动作吗?

受限于 VAE 的高斯假设,多样性是连续插值式的——大圈→中圈→小圈之间平滑变化,但不会无中生有出全新动作类。这是 VAE 相对 diffusion 的天然 trade-off:训练稳、推理快,但样本丰富度略低。

既然评测指标只看「单样本误差」,多样性不是吃亏吗?

论文正是为此重新讨论了评测:除了 APE/AVE 误差,还做了采样多个 → 取离 GT 最近的评测,以及AMT 人类感知研究。结论是:「多样 + 取最近」比所有确定性 SOTA 都强;人类甚至有 38.5% 概率觉得 TEMOS 比 GT 还自然。这说明多样性本身没有牺牲质量。

SMPL 模式和骨架模式哪个更准?

论文把 SMPL 模式作为独立通道报告(因为和 21 关节骨架不完全可比)。SMPL 的价值不在「更准」而在「带网格」——能直接接到渲染、碰撞、人-物接触的下游任务上。后续 AMP / ASE 等运动合成工作大量用 SMPL。