Cross-Axis Feature Fusion with Joint-Wise Motion Difference Prediction for Text-Based 3D Human Motion Editing¶
会议: CVPR 2026
arXiv: 2606.01014
代码: 无
领域: 扩散模型 / 3D视觉 / 人体动作编辑
关键词: 文本驱动动作编辑, 轴锚定 Transformer, 跨轴融合, Soft-DTW, 关节级监督
一句话总结¶
针对文本驱动的 3D 人体动作编辑,本文用「关节锚定」和「时间锚定」两个 Transformer 分别在关节轴和时间轴上建模,再用跨轴融合块整合,并配一个回归源/目标旋转轨迹 Soft-DTW 距离的辅助任务,让模型不仅知道「何时」改、还知道「改哪些关节」,在 MotionFix 上全面刷到 SOTA。
研究背景与动机¶
领域现状:文本驱动的 3D 人体动作编辑(给定源动作 + 自然语言指令 → 生成保留风格/结构但局部改动的目标动作)随着 MotionFix 数据集(指令-源-目标三元组)的发布而升温。主流做法是在这个监督设定下训练扩散模型:TMED 把 CLIP 文本嵌入和源动作的线性投影拼接后喂给 diffusion transformer(DiT)做条件;SimMotionEdit 进一步加了个 condition transformer 在进 DiT 前先融合文本和动作特征,并引入「逐帧动作相似度预测」辅助任务,教模型学习「序列中何时该发生改动」。
现有痛点:SimMotionEdit 的特征编码器是在每个时间步上沿关节维度聚合(得到逐帧的 \(h_{\text{motion}}\in\mathbb{R}^{N,D}\)),这种聚合天然压扁了关节级的解耦信息,导致它的辅助监督也只能停留在帧级——只能预测「逐帧相似度」。这只回答了「何时改」,对「改身体哪个部位/哪些关节」几乎没有提供信息。
核心矛盾:动作编辑的指令本质上是关节级的(「抬右腿而不是左腿」「换抬手的那只胳膊」),但现有架构把关节信息在帧聚合时丢掉了,使得编码器对关节级控制的理解始终欠规约,限制了条件与编辑结果之间的语义对齐。
本文目标:让编码器同时理解两件事——时间轴上「何时」该改、关节轴上「哪些关节」该改、改多少。
切入角度:作者主张「捕捉每个关节在整段序列上的全局特性」和「理解每帧姿态的时间特性」同等重要,因此应当把这两条轴分开用两个独立的锚定 Transformer 建模,再融合,而不是先沿关节聚合成逐帧特征。
核心 idea:用两个轴锚定 Transformer(关节轴 + 时间轴)+ 跨轴融合块替代单一逐帧编码器,并用「逐关节 Soft-DTW 距离回归」这个对时间平移鲁棒的辅助任务,把关节级监督真正注入编码器。
方法详解¶
整体框架¶
模型要解决的是:从源动作 \(S\in\mathbb{R}^{N\times K}\)(\(N\) 帧,每帧 \(K=207\) 维姿态向量:21 个关节的 6D 旋转 126 维 + 22 个关节位置 66 维 + 全局平移 3 维 + 全局朝向 12 维)和文本指令 \(c\) 出发,用扩散模型生成编辑后的动作 \(M\)。整体走法是:源动作 + 文本同时输入两个轴锚定 Transformer,分别产出关节锚定特征 \(h_{\text{joint}}\in\mathbb{R}^{K,D}\) 和时间锚定特征 \(h_{\text{time}}\in\mathbb{R}^{N,D}\);跨轴融合块以 \(h_{\text{time}}\) 为 Query、\(h_{\text{joint}}\) 为 Key/Value 做多头注意力,得到融合特征 \(h_{\text{fusion}}\);\(h_{\text{fusion}}\) 与加噪动作拼接后作为条件喂给 DiT,DiT 预测去噪量、从纯噪声逐步采样出编辑动作。训练时除了主扩散损失,还挂两个辅助头:一个在时间锚定支路上做逐帧相似度预测,一个在关节锚定支路上做逐关节 Soft-DTW 距离回归。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["输入:源动作 S<br/>+ 文本指令 c"] --> B["关节锚定 Transformer<br/>h_joint (关节轴)"]
A --> C["时间锚定 Transformer<br/>h_time (时间轴)"]
B --> D["跨轴融合块<br/>time 作 Query<br/>joint 作 Key/Value"]
C --> D
B --> E["逐关节 Soft-DTW<br/>距离回归 (辅助)"]
C --> F["逐帧相似度<br/>预测 (辅助)"]
D --> G["DiT 去噪<br/>条件生成"]
G --> H["编辑后动作 M"]
关键设计¶
1. 轴锚定双 Transformer:把关节轴和时间轴分开建模,别再压扁关节信息
针对 SimMotionEdit「沿关节维度聚合成逐帧特征」丢掉关节级解耦信息的痛点,本文不再用单一编码器,而是用两个结构相同(各 4 层 Transformer encoder、8 头、512 维)但「锚定轴」不同的支路。关节锚定 Transformer 沿时间方向聚合,为每个关节抽出它在整段序列上的全局轨迹特征 \(h_{\text{joint}}\in\mathbb{R}^{K,D}\);时间锚定 Transformer 沿关节方向聚合,为每一帧抽出全身姿态特征 \(h_{\text{time}}\in\mathbb{R}^{N,D}\)。两者输入都是 \((S,c)\)。这样「哪些关节要动」的信息被显式保留在 \(h_{\text{joint}}\) 里,而不是像旧方法那样在帧聚合时被抹平
2. 跨轴融合块:让逐帧上下文去「看」逐关节上下文
有了两条轴的特征,需要让它们交互。融合块实现为一个多头交叉注意力(8 头、512 维),关键在于谁查询谁:以时间锚定特征 \(h_{\text{time}}\) 作 Query、关节锚定特征 \(h_{\text{joint}}\) 作 Key 和 Value。直觉是——以「每一帧的全身姿态」为视角去检索「每个关节的全局轨迹上下文」,从而让融合特征 \(h_{\text{fusion}}\) 同时携带「何时改(来自 time 轴)」和「改哪些关节(来自 joint 轴)」两类信息。\(h_{\text{fusion}}\) 与加噪动作拼接送入 DiT,使去噪过程同时被源动作和文本指令条件化,做到既忠于指令、又不偏离源动作
3. 逐关节 Soft-DTW 距离预测:用对时间平移鲁棒的辅助任务把关节级监督真正喂进去
光有架构还不够,要逼关节锚定 Transformer 学到「每个关节该不该动、动多少」。本文从 \(h_{\text{joint}}\) 中取出对应 21 个 SMPL 关节 6D 旋转的子张量 \(h'_{\text{joint}}\in\mathbb{R}^{K'\times D}\)(\(K'=126\)),用回归头 \(\varphi_{\text{reg}}\) 为每个旋转通道预测一个标量 \(\hat{d}_j\),去拟合源/目标旋转轨迹之间的距离。关键是距离度量的选择:很多文本编辑只改动作的起始时间或速度、并不改动作形态,若用逐帧 L2 会把这些无害的时间平移当成大差异过度惩罚。因此用 Soft-DTW——它把经典 DTW 的硬最小值替换成由温度 \(\gamma>0\) 控制的软最小(log-sum-exp):
既保留了 DTW 对局部时间扭曲的不变性,又完全可微、可 GPU 加速。监督目标是逐通道 Soft-DTW 距离 \(d_j=\mathrm{SoftDTW}_{\gamma}(S'_j,T'_j)\),论文观察到「动得越大的关节 Soft-DTW 距离越高」,因此这个回归任务直接教会编码器按轨迹形状(而非绝对时间)区分「该改的关节 vs 该保留的关节」
损失函数 / 训练策略¶
主损失是标准扩散噪声预测损失 \(\mathcal{L}_{\text{diff}}=\mathbb{E}_{\tau,\epsilon}\big[\lVert g(T_\tau; f(S,c),\tau)-\epsilon\rVert_2^2\big]\)。关节级辅助损失为均方误差 \(\mathcal{L}_{\text{aux}}=\frac{1}{K'}\sum_{j=1}^{K'}(\hat{d}_j-d_j)^2\),外加沿时间支路的逐帧相似度预测任务(沿用 SimMotionEdit 思路)。训练用 AdamW(学习率 \(10^{-4}\)、batch 64),跑 1500 epoch,单张 RTX 4090 约 12 小时。推理用 DDPM 固定 300 步、cosine 噪声调度,文本与源动作两路条件的 guidance scale 均为 2.0。
实验关键数据¶
数据集为 MotionFix(6730 个三元组)。评测沿用基于预训练 TMR 的「动作到动作」检索基准:用 batch(size 32)和完整测试集分别报告 Top-K 检索准确率 R@1/R@2/R@3 与平均排名 AvgR,并用 FID 衡量生成动作与目标动作分布的保真度。
主实验¶
| 方法 | R@1↑ (Batch) | R@2↑ | R@3↑ | AvgR↓ | R@1↑ (Test) | AvgR↓ (Test) | FID↓ |
|---|---|---|---|---|---|---|---|
| MDM-BP | 39.10 | 50.09 | 54.84 | 6.46 | 8.69 | 180.99 | – |
| TMED | 62.90 | 76.51 | 83.06 | 2.71 | 14.51 | 56.63 | 0.167 |
| MotionReFit | 66.33 | 80.05 | 84.98 | 2.64 | – | – | – |
| SimMotionEdit | 70.62 | 82.92 | 88.12 | 2.38 | 25.49 | 23.49 | 0.110 |
| Ours | 74.38 | 88.54 | 92.08 | 1.92 | 29.45 | 16.42 | 0.097 |
本文在 batch 和测试集两套评测、所有检索指标上全面超过基线:R@1 从 SimMotionEdit 的 70.62 提到 74.38,AvgR 从 2.38 降到 1.92,FID 从 0.110 降到 0.097。测试集上 R@1 从 25.49 提到 29.45、AvgR 从 23.49 大幅降到 16.42。
消融实验¶
| Motion Sim. | Joint Delta | R@1↑ (Batch) | AvgR↓ | R@1↑ (Test) | FID↓ |
|---|---|---|---|---|---|
| ✗ | ✗ | 72.08 | 2.13 | 30.24 | 0.122 |
| ✗ | L2 | 71.46 | 2.16 | 29.25 | 0.113 |
| ✗ | Soft-DTW | 72.92 | 2.07 | 28.85 | 0.108 |
| ✓ | ✗ | 71.04 | 2.03 | 29.45 | 0.143 |
| ✓ | L2 | 71.04 | 1.97 | 26.48 | 0.113 |
| ✓ | Soft-DTW | 74.38 | 1.92 | 29.45 | 0.097 |
消融对照「逐帧相似度(Motion Sim.)」与「逐关节距离(Joint Delta)」两个辅助任务,并对 Joint Delta 比较 L2 与 Soft-DTW 两种度量。
关键发现¶
- 两个辅助任务缺一不可且要搭配 Soft-DTW:只开其中一个都不如全开;Joint Delta 用 L2 时(✓+L2)batch R@1 仅 71.04,换成 Soft-DTW 直接跳到 74.38,FID 也从 0.113 降到 0.097,印证「对时间平移鲁棒」这一动机的有效性。
- L2 度量甚至可能拖累:在只开 Joint Delta 的设定下,L2(71.46)反而略低于不加该任务时部分配置,说明逐帧 L2 会因过度惩罚无害的时间平移而误导监督,Soft-DTW 才是关键。
- 架构 + 监督协同:FID 的改善(0.097 为全表最低)表明生成动作不仅语义对齐更准,分布上也更接近真实动作。
亮点与洞察¶
- 「分轴建模」抓住了任务结构:动作数据天然是「关节 × 时间」二维的,旧方法沿关节聚合成逐帧特征是把一维拍扁;本文坚持两条轴各用一个 Transformer 独立建模再融合,是对任务本质的回应,而非堆模块。
- 用 Soft-DTW 当监督目标很巧:把「该不该改这个关节」转化为「源/目标旋转轨迹的形状差异」,并用对时间扭曲不变的 Soft-DTW 度量,绕开了「编辑常改时序但不改形态」带来的伪差异——这个「用形状距离而非逐帧距离做关节级监督」的思路可迁移到任何序列编辑任务(如语音/手势编辑)。
- 跨轴融合的 Query/Key 方向是设计点而非随意:以时间特征查询关节特征,让逐帧表征显式吸收关节级上下文,融合方向本身承载了「何时 × 何处」的耦合。
局限与展望¶
- 强依赖 MotionFix 单一数据集:仅 6730 个三元组,编辑类型与多样性受限,跨数据集/跨域泛化未验证。
- 无代码与开源信息:复现成本较高;辅助任务的温度 \(\gamma\)、两路辅助损失的权重等超参对结果敏感(消融已显示 Soft-DTW vs L2 差异巨大),需要细致调参。
- 评测以检索 + FID 为主:检索基准衡量语义对齐,但对「编辑是否物理合理/无穿模/脚滑」等感知质量覆盖有限,论文主要靠定性图补充。
- 改进方向:可探索更细的关节-时间联合监督、或把 Soft-DTW 监督扩展到位置/接触等其他通道,而不仅是旋转通道。
相关工作与启发¶
- vs TMED:TMED 仅把 CLIP 文本嵌入与源动作线性投影拼接、把融合推迟到 DiT 内部的自注意力;本文在进 DiT 前就用双轴 Transformer + 跨轴融合显式建立细粒度跨模态对齐,R@1 从 62.90 提到 74.38。
- vs SimMotionEdit:两者都在 DiT 前融合且都用辅助任务,但 SimMotionEdit 沿关节聚合成逐帧特征、辅助监督只到帧级(「何时改」);本文保留关节轴并用逐关节 Soft-DTW 监督(「改哪些关节、改多少」),把语义对齐和保真度都进一步推高(R@1 70.62→74.38,FID 0.110→0.097)。
- vs MotionReFit / MDM-BP:MDM-BP 靠 GPT 抽身体部位标签做编辑、MotionReFit 为另一条 SOTA 路线;本文不依赖外部 LLM 标注部位,而是让模型从 Soft-DTW 监督中自己学会关节级控制。
评分¶
- 新颖性: ⭐⭐⭐⭐ 「双轴锚定 + 跨轴融合 + Soft-DTW 关节级监督」组合针对任务结构,思路清晰且有针对性
- 实验充分度: ⭐⭐⭐⭐ MotionFix 上全指标 SOTA,消融清楚分离了两个辅助任务与 L2/Soft-DTW 的贡献;但只在单一数据集验证
- 写作质量: ⭐⭐⭐⭐ 动机—痛点—设计的逻辑链顺畅,公式与符号交代完整
- 价值: ⭐⭐⭐⭐ 为文本动作编辑提供了「关节级可控」的实用范式,Soft-DTW 监督思路有迁移潜力