SMF: Template-free and Rig-free Animation Transfer using Kinetic Codes
问题背景
动画重定向的目标是把稀疏的运动描述(例如关键点序列)施加到一个角色网格上,产出语义合理且时序连贯的全身网格动画序列。已有方法普遍带有限制:要么依赖基于模板的形状先验(如人体 SMPL、动物 CAFM),要么依赖美术师设计的变形绑定(rig)与蒙皮权重;这些方法虽然稳健流行,但需要先构建富有表现力的形状空间和对应的姿态空间,且被限定在特定模板上。学习型方案(神经运动场、基于神经雅可比场的形变迁移、从已标注绑定角色学习蒙皮权重等)则需要不同程度的中间监督,对未见运动或未见形状的泛化能力有限,并常出现运动抖动。
作者提出 Self-supervised Motion Fields(SMF),一个仅用稀疏运动表示进行训练的自监督框架,训练与推理阶段都不需要数据集特定标注、模板或绑定。核心是 Kinetic Codes:一种基于自编码器的稀疏运动编码,暴露出语义丰富的隐空间,简化大规模训练并增强泛化。
核心方法
整体设定
SMF 把描述目标形状 \(X_0\) 与运动 \(\{\gamma_k\}\) 的输入映射为逐帧的 3D 网格:
\[X_k := SMF(\gamma_k, X_0, C)\]
其中 \(X_k\) 表示第 \(k\) 帧的网格顶点。输入 \(\gamma_k\) 是每帧的粗运动参数,形状为 \(N_{joints} \times D\),可以是网格上的 3D 关键点位置、火柴人上的 2D 关键点,或按运动学树计算的 3D 相对欧拉角;作者主要采用 2D 和 3D 关键点,因其比欧拉角更鲁棒。\(C\) 描述目标角色的附加几何特征(面片质心、法线、Wave Kernel Signature),用浅层 PointNet 逐面编码,用于在未见野生形状上建立对应关系。
关键点提取是半自动的:先对一个人体和一个动物形状做一次性手动标注(选取关节处的网格面片),再用 Diff3F 计算的点对应关系自动传播到所有角色与运动。该框架只要求关键点的数量与顺序一致,不要求精确空间位置,因而能桥接不同角色设置之间的差异。对 RGB 视频,用预训练姿态提取器 HRNet 提取 2D 关键点。
Kinetic Codes:时序感知的运动表示
作者发现直接把粗运动参数 \(\gamma_k\) 送入形变模块会损害训练,因为单个 \(\gamma_k\) 不含任何时序运动信息。因此先把 \(\gamma_k\) 嵌入自编码器的隐空间。同时,考虑到训练数据稀疏,使用运动参数相对首帧的位移而非绝对值,能显著提升对未见运动的泛化:
\[\gamma_k^{\delta} := \gamma_k - \gamma_0\]
随后训练一个带自注意力的多头注意力自编码器,在整段序列作为上下文的条件下重建位移:
\[z_k = E_{\gamma}(\gamma_k^{\delta}, \{\gamma_1^{\delta}, \ldots, \gamma_k^{\delta}, \ldots, \gamma_{N_f}^{\delta}\})\]
\[\hat{\gamma}_k = D_{\gamma}(z_k)\]
其中 \(z_k\) 是逐帧的隐运动表示,即 kinetic code,与 \(\gamma_k\) 同维度;训练目标是重建损失:
\[L_{\gamma} := \sum_{k=1}^{N_f} \|\hat{\gamma}_k - \gamma_k^{\delta}\|^2\]
由于在整段序列上使用注意力作为上下文,单帧 \(z_k\) 已具备对整体运动序列的理解。之所以称为 kinetic(动力学)而非 kinematic(运动学),是因为只依赖关键点而不依赖身体网格/模板。得到隐表示后冻结 \(E_{\gamma}\) 与 \(D_{\gamma}\),形变模块只使用 \(z_k\)。
通过形变模块进行 3D 姿态生成
形变模块 \(f_D\) 的输入是静止姿态下的初始形状 \(X_0\)、学习到的运动隐码 \(z_k\) 以及几何特征 \(C\)。直接预测顶点位置会产生翻转、折叠等伪影,因此借鉴神经梯度空间处理,用一个简单 MLP 在网格面片质心处预测仿射变换矩阵(雅可比),编码相对变换,再用可微 Poisson 求解器积分得到最终顶点位置:
\[J_k^R = f_D(J_0, z_k, C)\]
\[J_k = J_0 + J_k^R = J_0 + f_D(J_0, z_k, C)\]
其中 \(J_0\) 是初始帧形状 \(X_0\) 的雅可比(每个面上投影为单位变换),\(J_k^R\) 是预测的残差。用 kinetic codes 预测雅可比并配合残差连接,能带来更快、更稳定的收敛与更好的泛化。
时序连贯的运动预测
单靠 \(f_D\) 在偏离初始姿态或推断未见运动时会累积误差、导致形状不一致,且对长序列难以产出时序平滑的运动。为此引入第二阶段:基于增强神经常微分方程(ANODE)预测对初始姿态估计的动态修正。序列被切成固定窗口,窗口大小 \(W = 32\)。修正雅可比的初始状态设为零:
\[J_0^C = 0 \in \mathbb{R}^{3 \times 3}\]
按 ANODE 的建议,用额外维度增广初始状态(增广维数 \(A = 256\)),这些维度充当运动历史的时序记忆:
\[\hat{J}_0^C = 0 \in \mathbb{R}^{(3 \times 3) + A}\]
由 MLP \(f_C\) 预测增广空间中修正量随时间的变化率:
\[\frac{\partial \hat{J}_k^C}{\partial t} = f_C(\hat{J}_0, E_{W_n}^P, E_{W_{n-1}}^C, t)\]
其中 \(E_{W_n}^P\) 是当前窗口雅可比预测的注意力编码(提供当前运动结构的上下文),\(E_{W_{n-1}}^C\) 是上一窗口修正预测的注意力编码(告知累积误差)。用欧拉法沿时间积分:
\[\hat{J}_k^C = \int_0^t \frac{\partial \hat{J}_k^C}{\partial t} dt + \hat{J}_0^C = \int_0^t f_C(\hat{J}_0, E_{W_n}^P, E_{W_{n-1}}^C, t) dt + \hat{J}_0^C\]
再用可学习权重 \(W_p\) 投影回未增广空间:
\[J_k^C = W_p \hat{J}_k^C\]
注意力编码器定义为:
\[E_{W_n}^P = E^P(J_{k:k+W}, T_{k:k+W})\]
\[E_{W_{n-1}}^C = E^C(J_{k:k-W}^C, T_{k:k-W})\]
其中 \(T\) 是位置编码后的时间实例块。将编码固定为常数尺寸,使系统能处理任意窗口/序列长度而不撑爆显存。最终把修正量加到姿态雅可比 \(J_k\) 上,通过可微 Poisson 求解在首帧坐标系中空间积分得到 \(X_k\)。
损失
端到端训练只用顶点形状损失与雅可比损失,无需额外标注:
\[L_{vertex} = \|X_k - X_k^{GT}\|^2\]
\[L_{Jacobian} = \|J_k - J_k^{GT}\|^2\]
总损失为 \(L = L_{vertex} + \alpha L_{Jacobian}\),实验中 \(\alpha = 0.05\)。
实验与结果
训练数据来自 AMASS(多个人体运动类别,每类约 6-7 个序列,也有报告 9 类每类 6 人)、动物用 DeformingThings4D,2D 用 3 段 YouTube 视频(共 2 个角色,约 1 小时)。评测在未见运动类别(AMASS)、Mixamo 采样运动、D4D 动物运动、野生单目视频上进行。注意训练与推理都不使用 SMPL 信息。
四个主要指标:顶点到顶点误差 L2-V(全局运动捕捉)、速度误差 L2-δV(时序平滑度)、雅可比误差 L2-J(局部形变)、法线角度误差 L2-N(局部表面朝向保持)。
与 SMF 对比的基线包括逐帧姿态迁移方法 NJF、Skeleton-Free Pose Transfer,以及使用模板的动画迁移方法 TRJ 和去掉 kinetic code 编码的消融版本。为让 NJF/TRJ 能处理关键点而非 SMPL 参数,作者做了修改(标记上标 TF)。SMF 相对基线在四个特征维度上占优:无需绑定(rig-free)、无需模板(template-free)、时序连贯、自监督。
主要结论:
- 在未见运动类别、未见形状上,SMF(3D 关键点)在几乎所有运动类别与指标上误差最低。
- 在 Mixamo 采样运动(未见数据集)迁移到未见风格化角色上,SMF 大幅优于所有基线;NJF/TRJ 因严格依赖 SMPL 模板本身无法直接处理 Mixamo 运动。
- Kinetic Codes 的泛化性:seen 与 unseen 运动的重建误差差异很小,表明编码对多样未见运动具备良好泛化。
- 仅在人体上训练即可泛化到非人形角色(狼、三角龙等多足生物),迁移结果真实、无抖动伪影。
- 可直接把 2D 单目视频运动迁移到 3D 目标形状,用 Savitzky-Golay 滤波平滑 2D 关键点噪声。
- 长序列(10000 帧舞蹈)上,TRJ 误差单调累积,而 SMF 保持一致的低误差,展示对时序漂移的鲁棒性。
- 在 AMASS 数据集上的未见运动泛化取得新的 SoTA。
性能:轻量架构在单张 RTX 4090、30k 面网格上推理超过 30 FPS,适合实时应用(需一次性预处理计算目标网格特征)。
局限与未来方向
方法能捕捉部分次级运动,但不以物理正确方式建模次级动力学,也不显式支持碰撞处理以防自相交(例如三角龙腿部交叉)。未来方向包括:隐式处理碰撞检测并同时建模角色-服装交互(可能借助基于 Transformer 的注意力捕捉身体部位间的非局部交互)、为角色不同部位组合不同运动生成器以混合运动模式,以及用这种生成框架建模时序草图序列。