Conference
An Implicit Physical Face Model Driven by Expression and Style
ETH Zurich; DisneyResearch|Studios
一句话总结
本文提出一个基于隐式神经物理模型的人脸模型,在多个身份的表演数据上联合训练,让”表情(做什么表情)”与”风格(怎么做这个表情)”可以被分别驱动与迁移,同时天然支持碰撞、摩擦、骨骼重塑等物理效果。
研究背景
- 领域现状:3D 面部动画通常靠面部绑定(rig)来驱动,最常见的是 blendshape 模型——用一组语义表情基的加权组合来表示表情,动画即是一串随时间变化的权重向量。物理仿真方法则用体积离散化和肌肉/骨骼结构来获得更真实的非线性形变,近年出现了免除精确解剖结构的隐式驱动模型(Yang 等 2022)。
- 核心痛点:表情的”个人风格”这一维度长期被忽视。同样是”大笑”,不同人会用不同肌肉、不同强度去完成,这种风格被烘焙进了每个角色各自的 blendshape 里,与表情纠缠在一起,无法单独提取,也无法把一个角色的风格迁移到另一个角色身上。此外,之前的隐式物理模型(Yang 等 2022)是单身份的,换一个人就要重训一个全新模型,无法在同一个物理模型里同时理解多个身份的驱动差异。
- 本文 idea:构建一个在多身份数据上同时训练的隐式物理人脸模型。用传统 blendshape 权重参数化”表情”,用每个身份一份的量化风格码参数化”风格”,两者解耦;借助隐式网络对离散化拓扑的无关性,让每个身份保有自己精度合适的仿真网格,再通过一个共享的规范空间把不同身份的肌肉结构对齐学习。
方法
整体框架分三段:先为每个身份建立到共享规范空间的映射,把各自的物理仿真空间与统一的学习空间分离;再用表情码与风格码共同条件化一个隐式驱动网络,生成规范空间里的驱动张量场(actuation tensor field)并warp回各身份空间;最后送入一个融合了 IPC 碰撞模型的可微准静态仿真器,解出带碰撞处理的面部几何。
flowchart LR
A["表情码 (Blendweights)"] --> Z["激活码 z"]
B["风格码 (每身份一份)"] --> Z
Z --> NA["隐式驱动网络 N_A"]
Z --> NB["下颌变换网络 N_B"]
NA --> AC["规范空间驱动张量场 A"]
AC --> W["按身份映射 warp 到材料空间"]
W --> SIM["接触感知可微仿真"]
NB --> SIM
SIM --> S["带碰撞处理的面部几何"]
关键设计:
- 规范空间与逐身份映射:不同身份各有自己的材料空间(未形变的软组织体积),直接在各自空间里学会忽略人与人之间共有的肌肉结构。作者引入一个由艺术家雕刻的规范空间 \(D_C\),并为每个身份训练一个小 MLP 映射 \(X = \phi_{id}(x)\),把身份材料空间的采样点 \(x\) 映射到规范空间去查询驱动网络。映射用表面点监督(拓扑一致),体内部分加弹性正则平滑。仿真实际使用的是warp回身份空间的驱动场 \(\tilde{A}_{id}(x) = R_{\phi_{id}(x)}^{\top} A(\phi_{id}(x)) R_{\phi_{id}(x)}\),其中 \(R_{\phi_{id}}\) 是映射雅可比的旋转分量。这样单个规范场服务所有身份,却各自适配,学到的收缩方向在规范空间内对齐。
- 表情与风格解耦:表情码来自逐帧 blendweight,风格码是每身份一个、与网络一起优化的量化码。两者各过一个 MLP 升到高维后拼接成激活码 \(z\),\(z\) 经小 MLP 生成调制码 \(m\) 去调制驱动网络主干,\(z\) 同时喂给另一个网络 \(N_B\) 生成下颌变换。这使得同一网络能吃下所有身份的数据,泛化到任意演员 blendshape 基产生的、未见过的权重向量。
- Lipschitz 权重正则促进解耦与平滑:借用几何生成里的 Lipschitz 权重归一化(Liu 等 2022),直接对网络各层的可训练 Lipschitz 界 \(c_i\) 施加惩罚,损失为 \(L_{lip} = \prod_{i=1}^{L} \mathrm{softplus}(c_i)\)。这不仅平滑了驱动场,更重要的是帮助表情与风格空间解耦(T-SNE 显示调制码更干净地按身份聚类)。总损失为几何项、驱动强度正则 \(L_{act} = \frac{1}{N_a}\sum_i \lVert A_i - I \rVert\) 与 Lipschitz 项的加权和:\(L = L_{geo} + \lambda_{act} L_{act} + \lambda_{lip} L_{lip}\)。
- 接触感知可微仿真:仿真含形状目标、骨骼附着、接触三类能量,前两者基于 Projective Dynamics 的局部-全局求解。碰撞采用 IPC 的光滑截断障碍势 \(B_i(d_i)\),其中 \(d_i\) 是碰撞对的无符号距离、\(\hat{d}\) 是容差。作者把非 PD 的高度非线性障碍能量做二阶 Taylor 展开投影到局部超抛物面,将其 Hessian 并入全局线性系统求解;系统里 \(K\) 为固定的类拉普拉斯正定矩阵可作预条件子,配合连续碰撞检测与线搜索保证无穿透与收敛。为提速只在唇部等易碰撞区域构造障碍势,并用嵌入代理 \(p = Wu\) 保证线性轨迹以支持 CCD。
实验结果
训练数据来自 9 个身份的表演捕捉序列(每人不到 30 秒表演加约 20 个静态表情),6 个用于训练、其余留作跨身份评估。主实验在测试集上用逐顶点重建误差(真值与重建网格顶点的平均欧氏距离)做消融,验证规范空间(CS)、warp 操作(W)、Lipschitz 正则(L)三个组件的贡献:
| 模型配置 | 顶点误差 (mm) ↓ |
|---|---|
| 线性 Blendshape 绑定 | 0.5549 |
| Model-N(无规范空间) | 0.4119 |
| Model-CS(+ 规范空间) | 0.4105 |
| Model-CSL(+ 规范空间 + Lip) | 0.4055 |
| Model-CSW(+ 规范空间 + Warp) | 0.4020 |
| Model-CSWL(完整模型,本文) | 0.3849 |
| Model-CSWL(仅位移,无物理) | 0.4313 |
| Model-CSWL(单身份) | 0.4218 |
| Yang 等 2022 | 0.4143 |
完整模型误差最低。三个组件逐一叠加均带来提升,warp 效果稳定、Lipschitz 正则进一步改善对测试集的泛化。多身份模型优于对应的单身份变体,说明加入其他身份的数据能提升泛化(尤其在跨身份任务上);也优于绕过物理直接学位移场的变体和线性 blendshape 绑定。此外把 Yang 等 2022 的 SIREN 层大部分换成 GeLU、并在调制码后加 tanh,明显减少了原方法可见的伪影,精度相当。定性上,完整模型在重定向和风格迁移中形状匹配更自然、伪影更少,IPC 碰撞模型相比 level-set 更鲁棒、不易穿透,并支持摩擦、可微碰撞校正数据等。
亮点与局限
- 亮点:
- 首个在多身份上训练、可分别用表情与风格驱动的隐式物理人脸模型,实现了此前难以做到的面部动画风格迁移与风格插值。
- 共享规范空间 + 逐身份 warp 的设计,既让每个身份保留自己合适的仿真网格,又把肌肉结构对齐到统一空间,是风格可迁移、动画更自然的关键。
- 作为物理模型天然支持碰撞/摩擦、面部瘫痪、下颌骨截骨(osteotomy)等效果,且可微的碰撞模型还能反过来微调网络、校正带穿透的捕捉数据;唇部穿插等常见问题被自然解决。
- 局限:
- 受限于形状目标(shape-targeting)的材料本构模型,不如更符合生物力学的模型精确。
- 受硬件与仿真计算量限制,训练身份集很小,不宣称能像覆盖表情空间那样穷尽人脸身份与风格空间(仅靠 Lipschitz 正则在训练身份间插值)。
- 未对训练效率做激进优化,偏重质量与泛化而非速度。
延伸思考
- 把”表情”与”风格”解耦成两个可独立驱动的维度,思路上与全身动作风格迁移、语音驱动说话风格建模一脉相承,本文相当于把这套”内容/风格”范式落到了物理驱动的面部肌肉激活层面,值得关注这种分解在其他可驱动物理对象(手、身体软组织)上的推广。
- 规范空间对齐是让”同一风格码在不同身份上产生一致激活”的核心,这与 NeRF/隐式几何里的规范空间 + 形变场思路相通;若能把身份数量扩大或引入生成式先验,或许能突破小身份集导致的插值局限,向真正覆盖人脸身份空间迈进。
- 可微碰撞模型能反哺训练、修正数据穿透,提示”物理约束作为数据清洗/自监督信号”的更一般用法,对带噪捕捉数据的下游任务有借鉴价值。