Conference

Pose and Skeleton-aware Neural IK for Pose and Motion Editing

Dhruv Agrawal, Martin Guay, Jakob Buhmann, Dominik Borer, Robert W. Sumner

DisneyResearch|Studios

一句话总结

提出 SKEL-IK:一个直接运行在骨架图结构上、并以”基准姿态”为条件的神经逆运动学网络,在用稀疏控制柄摆姿势时既能严格满足硬约束,又能尽量保留原有姿态,从而支持姿态变体生成与动捕运动编辑。

研究背景

为影视和游戏角色摆姿势是一个反复、繁琐的过程,需要操纵大量控制柄(如关节)才能得到满意结果。神经逆运动学(Neural IK)是一类新方法,允许用稀疏控制柄操纵 3D 角色,并利用全身关节间的相关性去补全未被操纵的关节。代表工作 ProtoRes 证明了可以在大数据集上训练单一模型,从不同的稀疏控制柄配置预测高质量全身姿态。

但作者指出现有神经 IK 在实际工作流中仍有三个局限:

  • 无法严格施加硬约束:现有方法从一个全局隐编码解码出姿态,某个控制柄的改动会因为全局相关性牵连到本应静止的关节(比如动一只手臂时膝盖会晃动)。
  • 会侵蚀已有运动:动画师想用稀疏控制柄编辑已有动捕序列时,编码再解码控制柄会破坏原运动,使神经 IK 难以用于运动编辑。
  • 丢失姿态变体:稀疏控制柄对应的完整姿态本是欠约束问题,存在多个合理解;仅从约束解码只会得到一个”平均姿态”,动画师此前生成或调整出的变体在移动控制柄后就丢失了。

根源在于:现有模型只从控制柄生成姿态,完全不考虑”之前是什么”,因此无法保留变体,也无法用于姿态与运动编辑。

方法

核心思想是让网络同时以稀疏控制柄和一个基准姿态为条件,并直接在骨架图上传递信息,使得可以在特定关节处阻断信息流以实现硬约束。

整体流程如下:

flowchart LR
    A["基准姿态 + 约束"] --> B["Joint State Encoder<br/>初始化图节点"]
    B --> C["Skeletal-Transformer<br/>多分辨率消息传递"]
    C --> D["Pose Decoder<br/>逐关节解码位置/朝向"]
    D --> E["前向运动学 FK<br/>恢复全局姿态"]

图表示与关节编码。 每个关节是图的一个节点,骨骼是边。每个节点维护两个向量:关节嵌入 \(J^i_{emb}\) 与关节状态 \(J^i_{state}\)。关节嵌入由关节 ID 的 one-hot 经线性变换得到,并拼接三类控制位:

  • Preserve-orient \(c^i_{IK}\in[0,1]\):告诉网络保留姿态的形状(局部朝向)。
  • Preserve-pos \(c^i_{FK}\in[0,1]\):告诉网络保留姿态的空间位置(全局位置)。
  • Is Constrained \(c^i_{IC}\):布尔位,标记该关节是否带有位置/朝向/朝向注视约束。

即 \(J_{emb}=\tilde{J}_{emb}\oplus C_{FK}\oplus C_{IK}\oplus C_{IC}\)。对未约束关节,模型可视为在基准姿态与约束之间做”混合”,而控制位让艺术家控制混合的性质与比例。

Skeletal-Transformer。 主体是一串仿照 Graph-Transformer 的层,用注意力在相邻关节间交换信息。用 \(J_{emb}\) 作为键 \(K\) 和查询 \(Q\),\(J_{state}\) 作为值 \(V\);由于嵌入在推理时固定,注意力权重实际上只是控制位的函数。状态更新为:

\[J^t_{state}=\mathrm{MHA}(K=J_{emb},\,V=J^{t-1}_{state},\,Q=J_{emb})\]

\[J^t_{state}=\bar{C}_{IC}\otimes\mathrm{LayerNorm}(\mathrm{FCN}(J^t_{state}))+J^{t-1}_{state}\]

其中 \(\otimes\) 是 Hadamard 乘积,\(\bar{C}_{IC}\) 是约束位的取反——只更新未约束关节的状态,被约束关节的状态纯粹来自姿态编码器,残差连接便于学到恒等映射以保留状态。

分层骨架结构。 骨架图节点数不多,但最长路径很长(如左脚到右腕要经过一半关节),会拖慢信息传播。因此采用多分辨率骨架:全分辨率的关节级骨架、把每条肢体/脊柱/髋各聚成一个节点的肢体级骨架、以及只有上半身与下半身两个节点的躯体级骨架。作者发现全分辨率跑 6 步、肢体级 4 步、躯体级 2 步效果最好。层间用带掩码的多头注意力做 pooling/unpooling,掩码限制节点只能关注自身和另一分辨率的对应节点。

置信度掩码。 起始时(\(t=0\))只有被约束关节持有需要传播的信息,因此定义关节级掩码指示哪些关节持有新信息,随消息传递按邻接矩阵扩散:\(M^l_t=A^l M^l_{t-1}\),每项上界设为 1 以防高度节点的信息被放大。

姿态解码与损失。 Pose Decoder 用两个独立全连接网络逐关节解码全局位置与局部朝向,再由传统前向运动学从预测的局部朝向和固定 rest pose 恢复最终全局姿态。除了沿用 ProtoRes 的位置、朝向、注视约束损失外,引入姿态保留损失:

\[L_{pp}(y,y',R,R')=\lVert C_{FK}\otimes M^{joint}_{t=0}\otimes(y-y')\rVert^2_2+\arccos\left(\left(\mathrm{tr}(C_{IK}\otimes M^{joint}_{t=0}\otimes R'^{T}R^{-1})-1\right)/2\right)\]

总损失为 \(L=L_{pos}+L_{orient}+L_{look-at}+\lambda_{pp}L_{pp}\)。由于没有”动画师摆姿势过程”的标注数据,只有动捕的最终姿态,作者设计了随机采样姿态的训练方案,使网络见到各种可能的用户配置。

实验结果

模型在自采动捕数据集(两名受试者、重定向到统一 23 关节骨架、约 95000 帧)及 ProtoRes 提供的 MiniUnity、MiniMixamo 上训练,模型约 29.6M 参数。用 L2 误差衡量位置、测地误差衡量朝向,分别评估”约束满足”和”基准姿态保留”两方面。基线包括原始 ProtoRes、允许条件化基准姿态的改造版 ProtoResWithPrev、以及一个全连接自编码器 FCNN。SKEL-IK 可按控制位配置切换为 Global / Local / Place Freeze / Pose Freeze 四种模式。

模型 约束-位置 ↓ 约束-朝向 ↓ 姿态保留-位置 ↓ 姿态保留-朝向 ↓ 参数量
FCNN 0.1076 0.0637 0.2789 0.2876 28.4M
ProtoRes 0.0304 0.0508 39.7M
ProtoResWithPrev 0.0625 0.0526 0.274 0.2644 39.7M
SKEL-IK(取各模式最优) 0.0388 0.0517 0.2148 0.2581 29.6M

结论:原始 ProtoRes 在满足约束上最强,但完全不支持保留基准姿态(满足约束与保留姿态本质上部分对立)。SKEL-IK 的 Global 模式在约束满足上接近 ProtoRes,同时具备姿态条件化能力;相比同样能条件化姿态的 ProtoResWithPrev,SKEL-IK 在约束满足和姿态保留两方面都更好,且参数更少。消融实验显示多分辨率架构带来单项最大提升,Graph-Transformer 层进一步在所有指标上大幅改善。

亮点与局限

亮点:

  • 直接在骨架图上传播信息,可通过在特定关节断开图连接来严格施加硬约束,即使多达 20 个约束下也能让无关关节保持静止,而全局方法始终存在远端关节抖动。
  • 以基准姿态为条件,支持三种保留模式(保形/保位/两者混合),既能做局部编辑也能保留全局相关性。
  • 可用于姿态变体生成(对同一稀疏约束换用不同随机基准姿态得到多样自然姿态,适合摆姿势建议、动画起点或人群角色)和动捕运动编辑(如仅用三个关键帧偏移脚部约束就能追加编辑一个踢腿动作,且对原动画侵蚀更小)。

局限:

  • 当基准姿态不自然或离约束配置很远(如需要 180 度转身)时可能产生非自然姿态,需切回 Global 模式或用 IK 优化后处理。
  • 属数据驱动系统,对数据集未覆盖的情形(如为夸张风格向后弯脊柱)会失败,需微调或后处理。
  • 本工作只关注单帧姿态编辑,未针对时间连贯性训练。

延伸思考

作者把”保留基准姿态”作为可调偏置引入神经 IK,这个框架的可扩展性很值得关注:同样思路可以训练一个”对称性参数”,在稀疏控制柄下偏向对称姿态;也能自然延伸到时间图结构做运动补全,或加入自穿插、地面穿透、物理有效性等额外约束。另一个更实际的挑战是跨骨架拓扑与身体比例的知识迁移——影视游戏中角色骨架各异,若能像骨架感知重定向那样把神经 IK 迁移到不同角色,才更接近工业落地。整体上,”图结构 + 条件化基准状态”的设计把神经 IK 从”一次性生成”推向了”可迭代编辑”的交互式工作流,这一转变对创作工具意义更大。