跳转至

AvatarPointillist: AutoRegressive 4D Gaussian Avatarization

会议: CVPR 2026
arXiv: 2604.04787
代码: https://kumapowerliu.github.io/AvatarPointillist
领域: 3D 视觉 / 数字人生成
关键词: 4D Avatar, Autoregressive, 3D Gaussian Splatting, Point Cloud Generation, One-shot

一句话总结

AvatarPointillist 提出了一种自回归(AR)生成框架来构建 4D 高斯头像:用 decoder-only Transformer 逐点生成 3DGS 点云(含绑定信息),再用 Gaussian Decoder 预测渲染属性,打破了固定模板拓扑的限制,实现了自适应点密度调整,在 NeRSemble 上全面超越 LAM、GAGAvatar 等基线。

研究背景与动机

领域现状:从单张肖像图生成可驱动的 3D 头像对 VR、远程呈现、电影等应用至关重要。现有方法分为 2D 动画(GAN/扩散)和 3D(NeRF/3DGS)两大范式。

2D 方法的根本缺陷:缺乏 3D 结构感知,极端姿态下出现几何扭曲,无法从任意视角渲染。

3DGS 方法的核心矛盾: - GAGAvatar:将 2D 特征提升到 3D,绕过完整点云表示,需辅助 2D 网络修复 - LAM:使用固定 FLAME 顶点作为模板点云,所有人都使用相同数量的高斯——这限制了模型自适应调整点密度来捕捉身份特有特征(如胡须、特殊发型) - 问题本质:固定拓扑丢失了 3DGS 最核心的优势——根据几何复杂度自适应控制点分布

核心问题:能否设计一个生成模型直接学习 3DGS 点云分布,不依赖固定模板?让模型自主决定在哪放点、放多少点。

核心 idea:将 3DGS 头像生成重新建模为自回归序列生成任务——逐点预测 3D 坐标和绑定索引,拥抱 3DGS 自适应动态特性。

方法详解

整体框架

论文要解决的是「从单张肖像图生成可驱动 4D 高斯头像」,而它的赌注是:与其像 LAM 那样套一张固定的 FLAME 模板点云,不如让一个生成模型自己决定点云长什么样。整条流水线因此被切成两段,且第二段依赖第一段的中间产物。第一段是一个 decoder-only Transformer 的自回归点云生成器:吃进肖像图的身份特征,像写句子一样逐 token 吐出量化后的点云,每个点由四个 token 描述——三个量化坐标 \((T_n^x, T_n^y, T_n^z)\) 加一个绑定 token \(T_n^b\)(指明这个高斯挂在 FLAME mesh 的哪个面上)。第二段是 Gaussian Decoder:把量化坐标反量化回连续空间,并取出 AR Transformer 在生成每个点时留下的隐状态,两者拼起来送进一个 Transformer,预测出每个点真正用于渲染的高斯属性(颜色、不透明度、缩放、旋转、位移偏移)。换句话说,AR 模型负责「点放在哪、放多少、挂到哪根骨头」,Gaussian Decoder 负责「这个点画出来该是什么样」。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
    A["单张肖像图"] --> COND
    subgraph COND["身份条件提取(脚手架)"]
        direction TB
        C1["DINOv2 图像特征"]
        C2["Pixel3DMM → FLAME 参数"]
        C3["点云编码器 → mesh 特征"]
    end
    SEQ["离散序列化<br/>y-z-x 排序 + 1024 级量化 + 绑定偏移"]
    COND -->|交叉注意力注入身份| AR
    SEQ -->|定义 token 词表与顺序| AR
    AR["身份条件自回归生成<br/>decoder-only Transformer 逐点吐 4 个 token"]
    AR -->|量化坐标 x,y,z| GD
    AR -->|AR 隐状态| GD
    AR -->|绑定 token b| BIND
    GD["Gaussian Decoder 双输入<br/>位置特征 + AR 特征 → 高斯渲染属性"] --> OUT
    BIND["绑定预测驱动<br/>FLAME 面索引 → LBS 权重与 blendshape"] --> OUT
    OUT["可驱动 4D 高斯头像"]

关键设计

1. 把点云排成可学习的离散序列:让「生成头像」变成「写一句话」

要让自回归模型生成点云,先得把连续的 3DGS 变成离散 token 序列。作者用 GaussianAvatars 对 NeRSemble 里每个身份拟合 3DGS,每个高斯都绑定到 FLAME mesh 的某个面,再用规范 FLAME mesh 算出一套全局规范高斯点云。关键在于序列必须确定性可复现:同一份点云每次都要产生同一条序列,否则模型学不到稳定的生成顺序,于是所有点按 y-z-x 排序。坐标被量化成 1024 个离散级别(精度与序列长度的折中),绑定信息则通过偏移避开坐标的取值范围——\(T_n^b = b_n + 1024\),其中 \(b_n \in [0, 10143]\),相当于把坐标和面索引塞进同一个词表的两段区间,互不冲突。最终每个点摊开成 4 个 token,整张脸拼成 \((T_1^x, T_1^y, T_1^z, T_1^b, \dots, T_N^x, T_N^y, T_N^z, T_N^b)\) 一条长序列,两端再补上 Start/End/Padding 标记。这一步是整个范式的地基:只有点云被表述成「一句话」,自适应点密度才有可能从生成过程里自然涌现,而不是被模板锁死。

2. 身份条件下的自回归生成:把「这个人长什么样」喂给每一步预测

生成器是 decoder-only Transformer,每层叠交叉注意力、自注意力和 FFN,训练用最朴素的 next-token-prediction 目标 \(p(T) = \prod_{n=1}^{4N} p(T_n \mid T_{<n})\)。难点不在结构,而在如何把「身份」注入进去——毕竟同一套生成流程要对不同的人吐出不同的点云。作者用 DINOv2 抽肖像图的图像特征,用 Pixel3DMM 拿到该身份的 FLAME 参数,再过一个点云编码器提取 mesh 特征,三者拼接后通过交叉注意力一路喂给生成的每一步,让模型在决定「下一个点放哪」时始终带着这个人的脸型先验。还有一个绕不开的工程问题:一张脸展开后是数万个 token 的超长序列,整段回传既慢又吃显存,于是训练时用窗口大小 12000 的滑动窗口分段截断,只在窗口内做反传,把长序列的训练成本压下来。

3. Gaussian Decoder 的双输入:坐标只说了点在哪,AR 隐状态才说清这点该是什么

这是论文的核心创新。一个朴素做法是:拿到生成的坐标,直接回归出高斯属性就行——但作者发现光有坐标不够。Gaussian Decoder 因此同时吃两路信息:一路是位置特征 \(P_n\),把反量化后的坐标做位置编码再过 MLP;另一路是 AR 特征 \(F_n^p\),从 AR Transformer 取出生成该点时的最终隐状态,再用 MLP 把描述同一个点的 4 个 token 的隐特征聚合成单点特征,两路拼接后送进 Decoder。之所以非要这第二路,是因为 AR 隐状态里沉淀了生成过程中积累的语义上下文——模型「为什么在这里放点、这块属于头发还是皮肤」这类信息都藏在隐状态里,单凭一个孤立的坐标根本传不出来。消融也印证了这点:只用位置或只用 AR 特征,渲染质量都明显掉档(见实验表,LPIPS 分别退到 0.19 和 0.22),两路缺一不可。

4. 绑定预测让点云天生可动画:生成的同时就知道每个点挂在哪根骨头上

头像不只要好看,还要能驱动,而驱动需要知道每个高斯随表情/姿态如何运动。AvatarPointillist 的巧处在于把这件事提前到了生成阶段——AR 模型吐出的绑定 token \(T_n^b\) 直接指明该点对应的 FLAME 面索引,于是无需任何额外网络后处理,就能通过重心坐标插值拿到每个点的 LBS 权重 \(\hat{\mathbf{w}}_i\) 和表情 blendshape \(\hat{\mathbf{S}}_i\)。之后完全沿用标准 FLAME 形变流程:给定姿态参数 \(\boldsymbol{\theta}\) 和表情参数 \(\boldsymbol{\psi}\),点云就跟着动起来。绑定信息和几何坐标在同一条序列里被一并生成,是「自回归化」带来的顺带红利——可动画性不是事后补的,而是生成范式自带的。

损失函数 / 训练策略

  • AR 模型:标准交叉熵损失,AdamW lr=1e-4,16×H20 GPU,50K steps,batch size 4
  • Gaussian Decoder(冻结 AR 模型后训练): $\(\mathcal{L}_{total} = \lambda_{L1}\mathcal{L}_{L1} + \lambda_{SSIM}\mathcal{L}_{SSIM} + \lambda_{LPIPS}\mathcal{L}_{LPIPS} + \lambda_{Reg}\mathcal{L}_{Reg}\)$
  • \(\lambda_{L1}=1, \lambda_{SSIM}=0.5, \lambda_{LPIPS}=0.1, \lambda_{Reg}=0.1\)
  • 8×H20 GPU,12500 steps

实验关键数据

主实验(NeRSemble 数据集)

方法 LPIPS↓ FID↓ AKD↓ APD↓ Cross-FID↓ Cross-CLIP↑
Portrait4Dv2 0.20 123.02 5.32 34.53 191.13 0.63
AvatarArtist 0.21 118.94 6.87 39.58 175.69 0.61
LAM 0.24 136.01 4.37 61.83 238.54 0.54
GAGAvatar 0.18 111.76 3.93 27.94 181.22 0.71
Ours 0.15 95.18 2.38 22.86 160.74 0.75

消融实验

配置 LPIPS↓ FID↓ AKD↓ APD↓ 说明
FLAME Position 0.23 120.34 4.82 41.22 固定 FLAME 模板(类 LAM)
AR Feature only 0.22 110.93 5.89 32.96 仅用 AR 隐特征
AR Position only 0.19 103.80 5.81 41.49 仅用位置编码
Full (Ours) 0.15 95.18 2.38 22.86 位置+AR特征双输入

关键发现

  • AR 点云生成 vs 固定 FLAME 模板:FID 从 120.34 降到 95.18,证实自适应点分布的优势
  • Gaussian Decoder 同时使用位置特征和 AR 特征至关重要——二者缺其一都有显著退化
  • FLAME Position 基线无法捕捉身份特有几何(如马尾辫、浓密胡须),定性结果展示了明显差距
  • 自回归生成的点云可视化显示了明显的自适应密度分布——几何复杂区域(头发、胡须)点更密集

亮点与洞察

  • 将 3DGS 点云生成重构为自回归 token 预测是一个范式创新,让生成模型真正拥有了"在哪放点、放多少点"的自由度
  • AR 隐特征传递给 Gaussian Decoder 的设计很精妙——生成过程中积累的语义上下文极大提升了渲染质量
  • 绑定预测使得生成的点云天然可动画化,无需额外后处理
  • 命名"Pointillist"(点彩派)贴切——每个高斯点如同画家的一笔,自适应组合成完整画面

局限与展望

  • 自回归生成序列很长(数万 token),推理速度相比一次性生成方法较慢
  • 训练数据局限于 NeRSemble(419 个身份),泛化到更大规模和更多样的人群有待验证
  • 依赖 GaussianAvatars 拟合来构建训练数据,数据质量受拟合质量影响
  • 1024 级量化引入的离散化误差可能在极精细区域(如眼睛周围)造成瑕疵

相关工作与启发

  • LAM 是最直接的对比——固定模板 vs 自回归生成的核心差异
  • MeshGPT 将 mesh 生成建模为 AR 任务是直接启发
  • 量化 + AR 的范式可推广到全身头像、场景级 3DGS 生成

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次将 AR 序列生成应用于 3DGS 头像,范式创新明确
  • 实验充分度: ⭐⭐⭐⭐ 全面对比+详细消融,但仅在一个数据集上评估
  • 写作质量: ⭐⭐⭐⭐ 动机阐述清晰,方法描述详细
  • 价值: ⭐⭐⭐⭐⭐ 为 3DGS 头像生成提供了新方向,自适应点分布的优势具有普遍意义