Universal Facial Encoding of Codec Avatars from VR Headsets
Meta
问题背景
在 VR 中通过虚拟化身(avatar)实现”面对面”的远程临场感(telepresence),核心诉求是把佩戴者的真实表情实时、精确地传递到对方看到的化身上。作者把这个问题抽象成一对编码器/解码器函数 \((E, D)\)——即”codec avatar”:发送端用头戴相机(Head-Mounted Cameras, HMC)观测人脸,编码成一个与身份无关的表情潜码,通过网络传给接收端,解码成照片级真实感的三维人脸。
系统必须同时优化三个互相冲突的目标:
- 失真(distortion):重建表情与外观的误差要小;
- 延迟(latency):从感知到显示要快,几毫秒内完成才能维持自然对话节奏;
- 干扰(interference):头显要轻、要贴合真实使用习惯,不能为了拍清楚脸而加笨重的外挂相机。
难点在于要做到通用(universal)——对没见过的用户、不同人种、不同环境都能工作。消费级 VR 头显带来一系列独特挑战:
- 不完整观测:每个下脸相机只能看到部分嘴巴,还常被上唇、鼻子、胡须自遮挡;
- 视角倾斜(obliqueness):相机视线几乎与下颌上下运动方向重合,导致张嘴这种大动作在图像里位移却很小;
- 佩戴差异(donning variance):每次戴头显位置都略有不同,相机离脸很近,微小位移就带来大幅可见性变化;
- 光照差异:头显上的红外照明快速衰减,图像常在明暗两端过曝/欠曝。
此前的工作(Wei et al. 2019、Schwartz et al. 2020)能做到”人特定”(person-specific)的编码,但需要为每个新用户做长时间采集与模型训练,且严重过拟合到个人的采集环境,稍有佩戴、光照或外观变化就崩。本文目标是构建第一个面向照片级真实感化身、直接从消费级 VR 头显做通用人脸编码的系统。
核心方法
系统基于 Cao et al. 2022 的通用先验模型(Universal Prior Model, UPM)作为解码器 \(D\),并在其上做增强,再围绕三大技术贡献构建编码器 \(E\)。
解码器基础与增强
UPM 用一个全卷积的表情潜空间 \(e \in \mathbb{R}^{4\times4\times16}\) 来在空间上局部化每个潜维度、并鼓励跨身份的语义一致性——这是”通用编码”能成立的前提。身份信息由超网络(hypernetwork)\(E_{id}\) 从中性纹理与几何生成多分辨率偏置图 \(\Theta_{id}\),用来参数化解码器。整体记为:
\[e = E_{exp}(\Delta T_{exp}, \Delta G_{exp})\]
\[\Theta_{id} = E_{id}(T_{neu}, G_{neu})\]
\[M, G \leftarrow D(e, v, g; \Theta_{id})\]
\[I_{vol} = R_{vol}(G, M, v; K)\]
其中 \(v\) 是视角、\(g=[g_l, g_r]\) 是左右眼注视方向、\(M\) 是体渲染的 volumetric slab、\(K\) 是相机内参。作者做了两点增强:(1)加入显式眼球模型(EEM),让注视方向 \(g\) 能真正驱动眼球外观,从而在多人交互中实现更自然的眼神接触;(2)在体渲染分支之外增加纹理分支 \(T\),用于建立与 HMC 图像的对应(因为风格迁移的核心是在纹理上做二维卷积)。增强后解码写作:
\[M, G, T \leftarrow D(e, v, g; \Theta_{id})\]
贡献一:光照鲁棒的真值生成(HMC-Avatar 对应)
要训练编码器就需要每帧的回归目标 \([e^\star, g^\star]\)。作者沿用 analysis-by-synthesis 思路:用带增强相机的”训练头显”(比只有 4 相机的”追踪头显”多几个能更好看到正脸的相机)做人特定的拟合——当解码器用真值控制渲染,经过一个风格迁移函数 \(F\) 补偿 HMC 图像与渲染之间的域差(红外 vs RGB)后,应能重建出 HMC 观测 \(x_c\)。
关键改进针对 Schwartz et al. 2020 的一个严重局限:原方法风格迁移的输入只有解码器纹理,不含任何 HMC 图像的光照信息,在极端光照变化下重建误差大、表情估计不准。本文让对应回归器 \(E_{cor}\) 额外输出一个低维“光照码” \(l_c\)(每相机一个),再用反卷积网络 \(L_{im}\)、\(L_{tex}\) 把它转成纹理域和图像域的低分辨率增益/偏置图(如 \(32\times32\)),上采样后调制风格迁移。低分辨率的设计是为了防止光照分支”作弊”去补偿表情估计误差。
贡献二:多表情标定的通用编码架构
拿到对应真值后,训练一个通用编码器 \(E_{univ}\),此时丢弃增强相机,只用追踪头显的 4 个相机。架构解耦为三个模块:
- 表情特征提取 \(\phi_{exp}^{\{U,L\}}\):上/下脸相机各共享一套网络(对称相机做水平翻转对齐),避免过拟合左右相关性并提升批处理效率;
- 特征级标定 \(\phi_{cal}^{\{U,L\}}\):核心创新。用户在通话前做一次”注册”,摆几个预定义锚点表情(如中性、最大张嘴、闭眼等),编码器不再只看当前脸的绝对配置,而是基于与已知锚点的相对差异来推理表情;
- 相机融合 \(f_{fuse}\)、\(f_{gaze}\):融合多视角特征分别推断表情与注视。
编码器写作:
\[\hat{z}^P = \phi_{cal}^P\big(\phi_{exp}^P(x^P),\ \phi_{exp}^P(y_1^P), \ldots, \phi_{exp}^P(y_M^P)\big);\quad P \in \{U, L\}\]
\[\hat{e} = f_{fuse}(\hat{z}^U, \hat{z}^L), \qquad \hat{g} = f_{gaze}(\hat{z}^U)\]
其中 \(\{y_i\}_{i=1}^M\) 是 \(M\) 个锚点表情图像。推理时的关键优势:锚点特征 \(\phi_{exp}(y_i)\) 只需计算一次并缓存复用,因此标定几乎不增加实时推理开销与延迟。锚点通过一个改进的 beam search 从语义无歧义的表情集合中贪心选出;实验用 6 个锚点,再多提升有限。
贡献三:大规模无标注数据的自监督预训练
高质量标注(需配对的 dome 多相机采集、三维人脸建模、逐人对应计算)极其昂贵。而 HMC 数据只要”戴上头显”就能海量采集。作者提出一个基于掩码自编码器(MAE)思想、利用多相机同步的自监督预训练:
- 编码器 \(E'_{univ}\) 与 \(E_{univ}\) 架构相同;用追踪相机集 \(C\) 的图像编码出 \(\hat{e}\),去重建增强相机集 \(C'\) 的新视角图像(novel-view reconstruction);
- 对每个新视角建带跳连的 U-Net,把目标图像随机遮挡 90% 的图块后送入下采样模块得到特征 \(f_i\),再联合可学习的身份嵌入 \(u_{id}\) 与 \(\hat{e}\) 上采样重建:
\[f_i = U_i^{down}(x_i''), \qquad \hat{x}_i = U_i^{up}\big(f_i,\ E'_{univ}(x_C),\ u_{id}\big)\]
核心思想是让 \(f_i\) 与 \(u_{id}\) 承载身份相关信息(光照、脸型、肤色、个人习惯),迫使 \(E'_{univ}\) 只编码与身份无关的表情语义。
- 一个重要细节是图像规范化(canonicalization):由于佩戴差异,脸在相机里的绝对位置差异巨大,导致运动尺度模糊(嘴离相机远的人即使张大嘴也只占很少像素,重建损失小,反而学不到)。作者用 96 个模板关键点定义规范尺度,构造基于 RBF 加权的 warp field \(\Phi_i\),先把脸/眼规范到相似位置再做遮挡,既统一了尺度又不至于把大动作过度压平。
自监督损失为 MAE 重建损失:
\[L_{SSL} = \frac{1}{|C|}\sum_{i=1}^{|C|}\big\|\hat{x}_i - x_i'^{warp}\big\|_2\]
预训练收敛后,用 \(E'_{univ}\) 初始化 \(E_{univ}\),再在少量高质量标注数据上微调。
编码器训练损失
微调阶段用四项损失:在正面视角体渲染上的光度 \(L_1\) 损失 \(L_{photo}\)、几何误差 \(L_{geo}\)(缓解单视角歧义、并加权强调眼/嘴区域)、注视误差 \(L_{gaze}\),以及一个基于 WGAN-GP 的判别损失 \(L_{disc}\)(让编码分布匹配解码器训练时的潜空间,防止产生流形外的、会导致渲染退化的潜码):
\[L = L_{photo} + \lambda_1 L_{geo} + \lambda_2 L_{gaze} + \lambda_3 L_{disc}\]
技术细节与数据
- 头显:消费级现货 VR 头显,4 个内向相机(2 眼 2 嘴);训练头显额外增加相机(共 8 个,\(C \cup C'\))。
- 数据三套:(1)266 名受试者在 40 彩色 + 50 单色相机的球形 dome 中采集(\(4096\times2668\)@90fps),用于训练 UPM 人脸模型;(2)同 266 人用增强训练头显采集的 HMC 数据,每人约 4 万帧(32 万张 \(400\times400\) 单色图),含 43 段表情、21 段读句/对话、1 段自由运动;(3)超过 17,000 名受试者、约 6 亿帧的大规模无标注 HMC 数据,仅用于自监督预训练。
- 划分:266 人中 234 训练 / 32 测试(测试人的解码器与 HMC 图像编码器训练时均未见过)。
- 训练:NVIDIA A100(80GB),PyTorch 2.0;预训练 40 万步;微调用 Adam、初始学习率 \(10^{-3}\)、余弦退火、批大小 16,输入从 \(400\times400\) 降采样到 \(192\times192\);数据增强含随机旋转(\(\pm15°\))、缩放(\(\times1.1\))与 CutMix。
- 作者开源了对应的 dome 与 HMC 数据(约 256 人)于
ava-256。
实验结果
在 32 名未见过的测试受试者上,对比多种 SOTA 方法(Geometry-guided、FLNet、First Order Motion Model、NeckNet、Meta Movement SDK,以及一个”直接喂真值网格”的假想上界)。评价指标包括光度 \(L_1\)、面部/下脸 Mesh \(L_2\)(mm)、嘴形 \(L_2\)、注视误差(度)、延迟(ms)。
关键结果(完整模型 = SSL 预训练 + 多表情标定):
| 方法 | 光度 \(L_1\)↓ | Mesh \(L_2\)(mm)↓ | 下脸 \(L_2\)↓ | 嘴形 \(L_2\)↓ | 注视(°)↓ | 延迟(ms)↓ |
|---|---|---|---|---|---|---|
| Meta Movement SDK | 2.942 | 1.309 | 2.202 | 3.229 | 5.15 | 2.35 |
| First Order Motion | 2.691 | 1.215 | 1.920 | 2.829 | 4.95 | 11.73 |
| Mesh-tracking w/ GT mesh*(假想上界) | 2.372 | 1.055 | 1.626 | 2.513 | 0.53* | N/A |
| Ours w/o SSL | 2.413 | 1.071 | 1.527 | 2.355 | 5.25 | 4.98 |
| Ours (SSL + linear probing) | 2.649 | 1.169 | 1.747 | 2.370 | 5.66 | 4.98 |
| Ours (SSL + full fine-tuning) | 2.309 | 1.023 | 1.394 | 2.083 | 4.90 | 4.98 |
- 完整模型在光度误差上比所有先前方法提升 17% 以上(2.309 vs. Meta SDK 2.942),甚至超过了”喂真值网格”的假想上界(2.372)。
- 下脸 Mesh 误差从无 SSL 的 2.355mm 降到 2.083mm,说明新视角重建预训练借助增强相机(下脸视角更好)显著改善了不完整观测下的编码。
- 延迟约 4.98ms,满足实时。
消融与分析要点:
- 损失:感知损失(\(L_{photo}+L_{geo}\))优于直接潜码损失;但即便用潜码损失,得益于标定架构也已超过多数 SOTA。
- 标定模块 \(\phi_{cal}\):对比 self-/cross-attention、pooling、early fusion、late fusion,late fusion(MobileNetV3 浅层卷积)最优且最高效(注意力计算随分辨率与锚点数平方增长)。
- 锚点数量:从 0 增到 6,几何误差降约 18%,几乎不增推理开销。
- SSL 策略:新视角重建(2.083)明显优于原视角重建(2.234)、ImageNet 预训练(域差过大)与 SimCLR 对比学习(易过拟合身份而非表情)。
- 身份扩展:在低数据量时关键点/网格法竞争力尚可,但本文方法随身份增多快速反超,加上 SSL 后超越假想上界。
- 泛化性:对戴眼镜、极端佩戴、昏暗光照等分布外情况仍较鲁棒;能驱动 UPM 训练时未见的化身(含手机扫描生成的化身);并展示了 VR 中双向实时通话 demo。
贡献与局限
贡献:
- 首个面向照片级真实感 codec avatar、直接从消费级 VR 头显工作的通用人脸编码系统;
- 光照码调制的风格迁移,在极端光照下生成更精确的 HMC-avatar 对应真值;
- 轻量多表情标定架构,用少量锚点表情大幅提升表情插值精度,且几乎零额外推理成本;
- 基于多相机同步的新视角重建自监督,利用 6 亿帧无标注 HMC 数据预训练,显著改善下脸/嘴形精度。
局限:
- 细微动作(尤其精确唇形)偶有不一致,源于不完整观测与极端光照的固有歧义,影响语音相关唇动;
- 输出潜码可能落到解码器表情流形之外(如 HMC 图像中出现手),产生 OOD 伪影,需未来研究 OOD 泛化;
- 舌头追踪较差,主因极端光照下舌/唇/皮肤混淆导致对应真值本身不准,可通过更好的分割标注改善。
广泛影响:作者专门讨论了照片级真实感化身可能被用于冒充、深度伪造与外观篡改的风险,并指出应通过 PIN/生物特征认证、佩戴者与化身间的生物特征匹配、以及平台级的使用通知与举报机制来缓解。