GeoDiff4D: Geometry-Aware Diffusion for 4D Head Avatar Reconstruction¶
会议: CVPR 2026
论文: CVF Open Access
代码: 项目页 https://lyxcc127.github.io/geodiff4d/ (未见正式代码仓库)
领域: 3D视觉 / 扩散模型
关键词: 4D头像重建, 几何感知扩散, 表面法线, 3D高斯泼溅, 单图驱动
一句话总结¶
GeoDiff4D 从单张人像出发,让扩散模型在生成肖像帧的同时联合生成对应的表面法线,再把"图像 + 法线 + 表情隐变量"一起喂给 3D 高斯重建,从而把扩散模型里隐含的 3D 几何先验真正蒸馏进可动画的 4D 头像,在身份保持、表情还原和跨视角一致性上显著超过现有方法。
研究背景与动机¶
领域现状:从单张人像重建可动画、表情丰富的 4D 头像是数字人方向的核心问题。近期主流是借助扩散模型:要么直接做 2D 肖像动画(保身份、迁表情都不错),要么把扩散生成的人像送去优化一个 3D 高斯(3DGS)头像。
现有痛点:纯 2D 方法缺乏 3D 一致性,换个视角质量就崩;引入显式 3D 表示的方法又牺牲了身份保持和细微表情。把扩散 + 3DGS 组合起来的两阶段方法也有三个老毛病:(1) 表情控制依赖 landmark / 隐式 motion / 3DMM 参数,3D 一致性与表现力难以兼得;(2) 扩散模型只学到了像素级对应这类 2D 先验,没真正抓住底层 3D 几何;(3) 重建阶段只用扩散生成的 RGB 肖像做监督,扩散与重建两个阶段的连接很弱,没把扩散模型的知识充分蒸馏出来。
核心矛盾:扩散模型擅长生成逼真外观(2D 先验强),但 RGB 像素里几乎不含可靠的 3D 几何信号;而高质量 4D 重建恰恰最缺这块几何约束。两阶段之间只靠 RGB 传递信息,几何信息在中途丢失了。
本文目标:让扩散模型本身就"懂几何",并把这份几何先验完整地传给下游 3DGS 重建。具体拆为:表情表示要既有表现力又跨视角一致;扩散生成要带上几何线索;重建监督要用上几何信号。
切入角度:表面法线天然编码了 RGB 里没有的 3D 几何(皱纹、发丝走向)。如果让扩散模型在生成 RGB 的同时联合生成法线,它就被迫去建模二者的联合分布、变成几何感知的;而生成出来的法线又能反过来当作重建阶段的强监督,一举打通两阶段的几何传递。
核心 idea:用"图像-法线联合扩散 + 无姿态表情编码 + 法线监督的 3DGS"把扩散里的几何先验蒸馏进 4D 头像,而不是只传 2D 外观。
方法详解¶
整体框架¶
GeoDiff4D 输入一张参考图、一段驱动表情和目标头姿,输出一个可实时渲染、可自由驱动的 4D 头像。整条管线由三个组件串成:先用无姿态表情编码器把驱动帧压成一个 1D、与头姿解耦、跨视角一致的表情隐变量;再用一个图像-法线联合扩散模型,以参考图身份特征和表情隐变量为条件,同时去噪生成一序列肖像帧及其对应的表面法线;最后把生成的图像、法线和表情隐变量一起送入4D 高斯重建,在 RGB 与法线双重监督下优化绑定在 FLAME 网格上的 3D 高斯,得到最终头像。关键在于:法线既让扩散变得几何感知,又作为额外的几何监督回流到重建,串起整个流程。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["输入<br/>参考图 + 驱动表情 + 头姿"] --> B["无姿态表情编码器<br/>跨视角配对→1D表情隐变量"]
B --> C["图像-法线联合扩散<br/>同时去噪 RGB 与法线"]
A -->|头姿图条件 + 合成法线数据| C
C -->|生成 图像/法线/表情隐变量| D["4D 高斯重建<br/>分层精修 + 法线正则"]
D --> E["可动画 4D 头像<br/>实时渲染"]
关键设计¶
1. 无姿态表情编码器:把表情与头姿、身份彻底解耦,且跨视角一致
痛点直接对应"表情控制难兼顾 3D 一致与表现力"。作者沿用 X-NeMo 的隐式表情表示思路,用编码器 \(E_{mot}\) 把单帧图像压成低维隐变量 \(f_{mot}\),丢掉空间外观信息以鼓励表情与身份解耦。和以往把头姿、表情塞进同一个隐变量不同,这里把头姿单独拎出来用显式头姿图控制(见设计 2),让隐变量只负责表情。
真正让它"跨视角一致"的是跨视角配对训练:对同一身份、同一时间戳,从不同视角各采一帧组成配对,配对内表情完全相同、只有视角不同(驱动帧与目标帧表情一致而姿态不同)。这迫使编码器抹掉头姿和身份泄漏、只保留表情特征,从而学到 view-invariant 的表示。编码器不靠任何额外的专门损失,而是直接和扩散模型端到端联合训练、只由扩散去噪损失监督;再配合只对裁剪后人脸驱动图做的像素增强(亮度/对比度/饱和度/噪声/模糊)和空间增强(缩放/旋转/平移),进一步压低对空间布局的敏感度。消融里去掉跨视角配对带来的整体掉点最大,说明它是几何一致性的关键来源。
2. 几何感知的图像-法线联合扩散:让扩散在生成外观时同时学几何
这是全文核心,针对"扩散只学 2D 先验、不懂 3D 几何"。作者在 X-NeMo 的 UNet 隐式扩散框架上,把去噪目标从单一 RGB 扩展为 RGB + 表面法线的联合生成,建模联合分布
参考图 \(I_{ref}\) 经 VAE 压缩后由 reference network 抽出层级身份特征 \(F_{ref}\),驱动帧经表情编码器得到 \(F_{exp}\),二者通过 cross-attention 注入;扩散同时对 RGB 与法线的噪声隐变量去噪,得到 \(Z_{rgb}\) 与 \(Z_{norm}\) 再解码回图像和法线。实现上,目标视频与法线视频各自编码成形如 \([B\times D\times C\times T\times H\times W]\) 的隐变量、沿域维 \(D\) 拼接,每个时间步对两域施加相同噪声并用 class label 区分域。为让两域真正交互,作者把普通 2D self-attention 换成 3D Domain-Spatial attention:卷积时把域维并进 batch 维 \([(B\times D)\,C\times T\times H\times W]\) 保持各域独立,进注意力前把两域沿宽度维拼成 \([B\times C\times T\times H\times (2W)]\) 做注意力,从而在卷积里保域独立、在注意力里做受控的跨域信息交换。法线由现成估计器(含皱纹、发丝等细节)得到。
为支持显式头姿,作者引入头姿图 \(M_{tar}\)——本质是只表示头姿的法线图:用 FLAME tracker 估出 3DMM 参数重建网格,把顶点法线按相机内外参光栅化到 2D,并把表情相关参数置零以减少身份泄漏;头姿图插值到隐变量分辨率后与噪声隐变量拼接送入网络。此外针对"真实数据缺高质量法线标注、伪法线受估计器精度限制"的问题,引入带真值法线的合成数据集 SynthHuman,并用加权随机采样让多视角数据被采样的频率约为合成数据的 10×,兼顾多样性与可靠性。消融显示去掉联合表示会明显削弱几何感知、去掉 domain attention 会一致性下降。
3. 4D 高斯重建:分层精修 + 法线正则把几何先验落到头像上
针对"重建阶段只用 RGB、几何信息没传过去"。重建基于 GaussianAvatars,把 3D 高斯绑定到 FLAME 网格三角面上;先把扩散生成的多视肖像当作单目输入,用 Pixel3DMM 估初始 FLAME 参数。由于单目 FLAME tracking 本身不准、3DMM 模板与真实脸几何有差,作者用分层精修逐级补偿:先给 FLAME 参数加可学习残差修正 tracking 误差;再 remesh 头部、用 U-Net 预测逐顶点形变,并且不是在 UV 图里采相邻像素、而是在 3D 空间构建 face graph、按原始空间关系重排 UV 网格,且形变定义在只由表情参数驱动的 canonical 空间位置图上、再用表情编码器的隐变量经 cross-attention 条件化 U-Net;最后用轻量 MLP 预测逐基元的高斯属性残差,以捕获共享属性表达不了的表情相关动态。
法线正则则把生成的法线真正用作几何监督:跟随 GaussianShader,取每个高斯基元最短轴作为其法线 \(\hat n\)、给 3DGS 加专门的法线通道,对前景区域渲染法线做 L1 监督
其中 \(\hat n\)、\(n\) 为预测法线与伪真值法线,\(\alpha\) 是前景掩码,\(\lambda_n\) 为权重。⚠️ 原文公式写作 \(L_1(\hat n, \alpha n)\),掩码应是同时作用于两者,以原文为准。正是这一步让扩散学到的几何先验落地为更平滑准确的法线、减少新视角渲染伪影。
损失函数 / 训练策略¶
扩散模型用多视角数据集 + 合成数据集联合训练,全部处理到 \(512\times512\)。训练分两阶段:第一阶段不带时序模块、batch size 32;第二阶段引入 16 帧序列做时序学习、batch size 8。两阶段均用 AdamW、学习率 \(1\mathrm{e}{-5}\),分别训 80K / 20K 步,4 张 A800 共约 3–4 天。表情编码器只由扩散去噪损失端到端监督,无额外损失。重建阶段沿用 GaussianAvatars 训练,法线正则项 \(L_n\) 作为额外几何监督。推理时先用扩散生成约 12 视角、200 帧的肖像视频(25 步 DDIM,单卡 H800 约 1 小时),再跑 100K 步重建(RTX 3090 约 3 小时)。
实验关键数据¶
主实验¶
在 NeRSemblev2 上做自重演(self-reenactment,10 个未见主体、80 段驱动),并在 NeRSemblev2 子集 + in-the-wild 混合数据上做跨身份重演(cross-reenactment)。其中 VGM 指仅用视频生成模型直接渲染的结果,GeoDiff4D 指完整 4D 重建后的头像。
| 方法 | Self PSNR↑ | Self SSIM↑ | Self LPIPS↓ | Self CSIM↑ | Self JOD↑ | Cross CSIM↑ | Cross JOD↑ |
|---|---|---|---|---|---|---|---|
| GAGAvatar | 17.550 | 0.789 | 0.229 | 0.714 | 6.244 | 0.588 | 5.081 |
| Portrait4D-v2 | 13.689 | 0.701 | 0.310 | 0.702 | 4.933 | 0.608 | 4.656 |
| LAM | 16.354 | 0.759 | 0.251 | 0.608 | 5.772 | 0.516 | 5.079 |
| CAP4D | 19.295 | 0.811 | 0.195 | 0.719 | 6.561 | 0.655 | 5.064 |
| Our VGM | 21.586 | 0.831 | 0.174 | 0.754 | 7.127 | 0.671 | 5.066 |
| GeoDiff4D | 19.951 | 0.822 | 0.195 | 0.721 | 6.720 | 0.656 | 5.178 |
VGM 在几乎所有图像质量指标上拿到最优,身份保持(CSIM)和时序一致性(JOD)均领先;GeoDiff4D(重建后头像)多数指标排第二、优于全部 baseline,且在跨重演 JOD 上反而最高。作者强调即便量化没有项项第一,在极端头姿和夸张表情下(图 5)GeoDiff4D 与 VGM 的视觉质量明显更好。
消融实验¶
在 NeRSemblev2 自重演集上拆解各组件(上半为视频生成模型 VGM,下半为重建):
| 模块 | 配置 | PSNR↑ | CSIM↑ | JOD↑ | AKD↓ | AED↓ |
|---|---|---|---|---|---|---|
| VGM | w/o 联合表示 | 20.809 | 0.757 | 6.960 | 4.216 | 2.489 |
| VGM | w/o domain attn. | 20.984 | 0.743 | 7.029 | 4.195 | 2.556 |
| VGM | w/o 跨视角配对 | 19.895 | 0.734 | 6.859 | 5.367 | 3.113 |
| VGM | w/o 合成数据 | 20.892 | 0.743 | 6.978 | 4.339 | 2.527 |
| VGM | 完整 | 21.586 | 0.754 | 7.127 | 4.016 | 2.340 |
| Recon | w/o 分层精修 | 19.816 | 0.736 | 6.758 | 4.227 | 2.603 |
| Recon | w/o 法线正则 | 19.950 | 0.734 | 6.774 | 4.291 | 2.713 |
| Recon | w DAViD 法线 | 19.947 | 0.736 | 6.782 | 4.247 | 2.553 |
| Recon | 完整 | 19.953 | 0.737 | 6.780 | 4.248 | 2.563 |
关键发现¶
- 跨视角配对是 VGM 里最关键的组件:去掉它整体掉点最大(PSNR 21.586→19.895,AKD 4.016→5.367,AED 2.340→3.113),印证多视角几何约束对身份/表情准确度的决定性作用。
- 联合表示与 domain attention 共同支撑几何感知:去掉联合表示削弱几何意识、去掉 domain attention 削弱跨域信息交换,都带来一致下降;合成数据主要补身份多样性与泛化。
- 重建侧各 ablation 的量化差异较小(PSNR 都在 19.8–20.0),但作者指出补充材料的定性结果差异明显:完整模型伪影更少、时序更稳;用扩散生成的法线(vs. 用 DAViD 单目估计法线)能带来更细的面部细节,因其更细粒度、时序更连贯且与 RGB 对齐更好。
亮点与洞察¶
- "联合生成法线"把几何先验显式塞进扩散:相比只生成 RGB 再硬塞 3D 表示,让扩散同时建模图像与法线的联合分布,是一种低成本、自监督式地让 2D 扩散变得几何感知的思路,可迁移到其它"生成 + 重建"两阶段任务。
- 生成的法线既是输出又是监督,一鱼两吃:法线既让扩散懂几何,又作为下游 3DGS 的强监督回流,巧妙地打通了扩散与重建两阶段断裂的几何信息流。
- Domain-Spatial attention 的"卷积保独立、注意力做交换"很值得借鉴:沿宽度维拼接两域做注意力、卷积时并回 batch 维保独立,是处理多模态联合扩散时控制信息泄漏的实用技巧。
- 头姿图 = 置零表情的法线图:用只含头姿的法线图做显式姿态条件,既解耦了姿态又复用了法线这一表示,设计上自洽。
局限与展望¶
- 作者承认:重度依赖单目 3DMM tracking 估头姿,本身是 ill-posed 的难题;虽然 VGM 支持舌头运动,但受 FLAME 结构和缺乏舌头精细参数化所限,最终头像无法准确重建舌头;和所有扩散方法一样采样慢,难以真正实时部署。
- 自己发现:⚠️ 摘要宣称"支持实时渲染",但这指的是重建后 3DGS 的渲染实时,生成阶段(25 步 DDIM、约 1 小时合成视频)并不实时,二者不应混为一谈。
- 重建侧消融的量化差异极小、主要靠定性图说明优势,说服力略弱;法线监督在 PSNR/CSIM 上的增益不明显,可改进方向是设计更直接反映几何质量的量化指标。
- 整条管线组件较多(表情编码器 + 联合扩散 + 分层精修 + 法线正则),工程复杂度高,端到端简化是潜在方向。
相关工作与启发¶
- vs Portrait4D-v2 / X-NeMo(2D 肖像动画):它们保身份、迁表情强但缺 3D 一致性,换视角易崩;本文用联合法线扩散 + 3DGS 重建补上几何一致,跨视角与极端姿态更稳。
- vs GAGAvatar / LAM(显式 3D 表示的可泛化框架):它们靠 3DMM 参数驱动、几何一致但细微表情和身份保持受限;本文用隐式表情隐变量 + 跨视角配对,兼顾表现力与一致性。
- vs CAP4D(扩散 + 3DGS 两阶段):同属"扩散生成肖像再优化高斯",但 CAP4D 只用 RGB 监督、两阶段连接弱;本文让扩散联合生成法线并把法线作为重建监督,把几何先验真正蒸馏到头像,量化与极端场景视觉质量均更优。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 首个联合生成肖像帧与表面法线的视频扩散,把几何先验自监督地注入扩散并回流到 3DGS 重建。
- 实验充分度: ⭐⭐⭐⭐ 自/跨重演 + 多 baseline + 细致消融,但重建侧消融量化差异小、主要靠定性图支撑。
- 写作质量: ⭐⭐⭐⭐ 三组件结构清晰、动机层层递进;个别公式(法线正则)记号略含糊。
- 价值: ⭐⭐⭐⭐⭐ 单图驱动高保真 4D 头像,身份/表情/跨视角全面领先,对数字人、虚拟会议等落地价值高。