Face Anything:一张照片就能重建你的 4D 脸,速度还快了 32 倍
想象你在拍一段自拍视频——你笑了、转头了、挑了挑眉毛。如果有一个 AI 能从这段视频中精确重建你脸部的 3D 模型,并且追踪每一帧中你脸上每个点的运动轨迹,会是什么体验?
这不是科幻。来自慕尼黑工业大学和华为诺亚方舟实验室的研究团队提出了 Face Anything——一个统一的 4D 面部重建与追踪方法。它不仅能从任意图像序列中重建高保真的人脸 3D 模型,还能在帧之间建立密集的对应关系(即"追踪"),而且速度比之前最好的方法快了 32 倍。
为什么这个问题这么难?
人脸是计算机视觉中最复杂的对象之一。想想看:
- 非刚性变形:你说话时嘴巴在动,笑的时候脸颊在鼓,皱眉时额头在变化——这些都不是简单的刚体运动
- 表情变化:人类有几十种基本表情组合,每种都会改变脸部几何形状
- 视角变化:从正面看和从侧面看,同一个人的脸看起来完全不同
- 细粒度结构:皱纹、头发、嘴巴内部——这些细节对重建精度至关重要
传统方法通常把"重建几何"和"追踪对应关系"当成两个独立的问题来解。重建方法(如 DA3、Depth Anything)能给出精确的深度图,但不知道帧与帧之间哪个点对应哪个点;追踪方法(如 V-DPM、P3DMM)能建立对应关系,但几何精度有限。
Face Anything 的核心洞察是:这两个问题其实可以合并成一个。
核心创新:规范面部点预测
Face Anything 的关键思想可以用一个类比来理解:
想象你有一张"标准脸"——一个正面的、表情中性的参考脸。现在,不管输入照片中的人脸是什么角度、什么表情,Face Anything 都会告诉你:照片中的每个像素,对应标准脸上的哪个位置?
这就是"规范面部点预测"(Canonical Facial Point Prediction)。它不预测帧与帧之间的运动(这是传统方法的做法),而是预测每个像素到一个共享规范空间的映射。
这样做的好处是巨大的:
- 时序一致性天然保证:因为所有帧都映射到同一个规范空间,所以对应关系自动一致
- 学习更简单:规范空间中的几何结构在不同姿态和表情下是相似的,而帧间运动则千变万化
- 效率更高:只需要一次前向传播,加上一次 KD-Tree 搜索(不到 0.2 秒),就能得到对应关系
架构设计:一个模型干三件事
Face Anything 使用一个基于 Transformer 的架构(12 亿参数),同时预测三种输出:
| 输出 |
维度 |
作用 |
| 深度图 (D) |
H × W |
每个像素的深度值 |
| 光线图 (R) |
H × W × 3 |
每个像素的相机光线方向 |
| 规范图 (C) |
H × W × 3 |
每个像素在规范空间中的 3D 坐标 |
这个设计借鉴了 DA3 的深度+光线图架构,但增加了关键的规范图预测头。网络使用 DPT(Dense Prediction Transformer)风格的头部来处理多张输入图像。
训练策略:两阶段 + 交替采样
训练分两个阶段:
- 预训练:在 DAViD 数据集(约 10 万张人脸图像)上预训练,学习人脸几何先验
- 微调:在自建数据集上微调,学习规范对应关系
微调阶段有一个巧妙的交替采样策略:
- 多视角采样:同一时间戳的不同相机视角(提升多视角重建能力)
- 多时间戳采样:同一相机的不同时间帧(提升追踪能力)
这就像训练一个运动员——既练力量(多视角几何),又练耐力(时序一致性)。
数据集构建:COLMAP + FLAME 的联姻
学习规范对应关系需要密集的监督信号,但现有数据集几乎没有这种标注。研究团队自己构建了一个数据集:
- 基于 NeRSemble 数据集(414 个受试者,16 个相机,约 32 万张图像)
- 用 COLMAP 从 16 个视角重建每帧的 3D 几何
- 用 FLAME 参数化人脸模型做追踪,建立规范对齐
- 将 COLMAP 重建的几何通过 FLAME 变形映射到规范空间
这里有个很聪明的工程决策:他们用最远点采样(Farthest Point Sampling)来选择训练帧,确保表情和姿态的多样性。对每个受试者,选 50 个时间戳——40 个基于表情参数,10 个基于姿态参数。
关键发现:碾压级别的性能提升
深度估计
在 NeRSemble 数据集上,Face Anything 的单目深度 RMSE 为 0.077(×10),比之前最好的 Sapiens-2B(0.085)好了 9.4%。视频深度估计的 RMSE 为 0.075,同样是最优。
对应关系追踪
这是最令人震惊的结果:
| 方法 |
2D EPE (Margin=2) |
3D EPE (Margin=2) |
| P3DMM |
3.089 |
- |
| V-DPM |
- |
0.014 |
| Face Anything |
1.719 |
0.004 |
对应误差约为 V-DPM 的 1/3,为 P3DMM 的 1/2。
效率
| 方法 |
推理时间 (40张) |
显存占用 |
最大批处理量 |
| V-DPM |
160 秒 |
40 GB |
74 张 |
| Face Anything |
5 秒 |
19 GB |
470 张 |
快了 32 倍,省了一半显存,批处理量提升了 6 倍。这个效率提升来自于核心的设计选择——规范空间预测只需要一次前向传播,而 V-DPM 需要多次前向传播来估计帧间运动。
FLAME 追踪
用 Face Anything 的预测来约束 FLAME 参数拟合,CD-L1 从 P3DMM 的 0.238 降到了 0.195,提升了 18%。
消融实验:每个设计选择都有道理
论文的消融实验揭示了几个重要发现:
-
运动预测 vs 规范预测:直接预测从当前帧到规范空间的运动场(Motion Pred),EPE 高达 6.21,而规范图预测只有 3.27。这说明"预测目标位置"比"预测如何到达目标"更容易学习。
-
单视角 vs 多视角训练:只做多视角训练(Static Training),相机旋转误差高达 2.102°;只做单视角训练(Monocular Training),多视角深度误差为 0.064。交替采样两者兼得。
-
规范损失权重:λ_C = 5 是最佳平衡点。太小(=1)学不好对应关系,太大(=10)会损害深度精度。
工程洞察
-
12 亿参数,但效率极高:Face Anything 的模型比 Sapiens-2B(20 亿参数)小得多,但性能更好。这说明架构设计(规范空间预测)比单纯堆参数更重要。
-
bfloat16 + 梯度检查点:训练使用 bfloat16 精度和梯度检查点,在保证精度的同时节省显存。
-
多分辨率训练:使用 7 种不同分辨率(从 280×504 到 504×756)训练,提升对不同尺度的鲁棒性。
-
共抖动(Co-jittering):对多帧输入应用相同的颜色抖动,保持帧间的相对颜色关系。
局限性
- 只适用于人脸,无法处理非面部物体(如手持的麦克风、眼镜等)
- 强遮挡和极端视角下性能会下降
- 依赖学习到的人脸先验,泛化到非人脸场景有限
我的思考
Face Anything 让我想到一个更深层的问题:在 3D 视觉中,"规范空间"这个概念可能比我们想象的更强大。
传统方法把 4D 重建理解为"在每一帧重建 3D,然后在帧间建立对应"。Face Anything 反其道而行——先建立一个共享的规范空间,然后把所有帧都"投影"到这个空间。对应关系不再是需要额外求解的问题,而是规范映射的自然副产品。
这种思路不仅适用于人脸。想象一下:
- 手部重建:建立一个规范手部空间
- 人体重建:建立一个规范人体空间(SMPL 已经在做这件事了)
- 物体重建:为每类物体建立规范空间
Face Anything 的成功证明了:选择正确的表示,比设计更复杂的算法更重要。 规范空间预测把一个困难的时序对应问题,转化成了一个更简单的规范重建问题——这就是好的数学抽象的力量。
另一个值得注意的趋势是:从"场景优化"到"前馈推理"。NeRF 时代,每个场景都需要单独优化;Gaussian Splatting 加速了渲染,但仍需优化;而 Face Anything 这类工作表明,前馈模型已经能在特定领域(人脸)达到甚至超越优化方法的质量,同时快了几个数量级。
论文: Face Anything: 4D Face Reconstruction from Any Image Sequence
作者: Umut Kocasarı, Simon Giebenhain, Richard Shaw, Matthias Nießner (TU Munich & Huawei Noah's Ark Lab)
代码: 暂未开源