AniGS:可动画高斯 Avatar
想象你有一张朋友的全身照片——你能否仅凭这一张照片,就造出一个三维的、可以任意摆姿势、甚至实时驱动的数字分身?这个问题在数字人、虚拟现实和增强现实领域有着巨大的应用价值,同时也是计算机视觉中长期存在的挑战。#Qiu et al., 2024
近年来,三条技术路线分别从不同方向逼近这个目标:
- 单图人体重建:从 PIFuHD 到 ECON 再到 HumanSplat,这条路线逐步从参数模型偏移预测走向隐式函数表示,再到生成模型辅助。但重建出的模型通常无法直接动画化——它们缺少骨骼绑定和蒙皮权重。
- 可动画人体生成:从 ARCH 到 CharacterGen 再到 En3D,这条路线用扩散模型生成多视角图像,然后做 3D 重建。CharacterGen#Peng et al., 2024 面向卡通头像,需要合成 3D rigged 数据集训练生成器;MagicMan#He et al., 2024 面向真实人体但只生成静态多视角图像,无法直接做动画。
- 4D Gaussian Splatting:4DGS#Wu et al., 2024 用 HexPlane 建模时间维度的高斯变形,在动态场景建模中展现了强大能力,但此前没人把它用在"多视角不一致性"这个问题上。
AniGS 的独特之处在于:它站在三条路线的交汇点上,用视频生成模型替代传统的多视角扩散模型来生成 canonical pose 图像,然后创造性地将生成结果的视角间不一致性重新表述为 4D 重建问题,用 4DGS 来解决。最终从一张 in-the-wild 图片就能得到高保真、可实时动画的 3D Gaussian Avatar。#Qiu et al., 2024
要从单张图片得到可动画的 3D avatar,一个自然的思路是:先生成多视角图像,再从这些图像重建 3D 模型。但这里有一个根本性的矛盾——
矛盾:生成质量 vs 几何一致性
扩散模型在单张图像生成上已经取得了惊人的质量,但当它被用来生成多视角图像时,不同视角之间会出现微妙的不一致:外观略有差异、几何细节不对齐、法线方向不连续。这些不一致在单独看每张图时几乎察觉不到,但当用 3D Gaussian Splatting 去优化时,它们会导致严重的伪影和细节丢失。
| 已有方法 | 路线 | 局限性 |
|---|---|---|
| CharacterGen | 多视角 canonical 扩散 + Transformer 3D | 需要合成 3D rigged 数据集训练;面向卡通,真实人体泛化差 |
| MagicMan | 多视角静态人体生成 | 不生成 canonical pose 图像,无法直接做动画 |
| CHAMP | 3D 级形状引导的可控人体图像动画 | 生成动画视频帧而非 canonical pose 多视角图像 |
| En3D | 隐式表面 + 扩散生成 | 动画质量有限(PSNR 19.24,见 Part 6) |
AniGS 的突破口
面对这个困境,AniGS 提出了两个关键洞察:
洞察一:用视频生成模型替代多视角扩散模型。视频生成模型(如 CogVideoX)已经在大规模视频数据上训练过,天然理解"时间一致性"。如果把它适配成接受参考图像引导 + 姿态条件,就能在不需要合成 3D rigged 数据集的情况下,生成高质量的多视角 canonical 图像。#Qiu et al., 2024
洞察二:与其试图让生成的多视角图像完全一致(这几乎不可能),不如接受不一致性,然后用 4DGS 把它建模为"时间维度的变化"。每个视角对应一个"时间步",4DGS 的变形场可以优雅地处理帧间的几何差异。取 t=0 时刻的结果就是最终的 canonical avatar。
AniGS 的整体流程分为两个阶段:Stage 1 用修改后的 CogVideo-2B 生成多视角 canonical 图像(RGB + 法线图),Stage 2 用 4DGS 处理这些不完全一致的图像并重建出可动画的 3D avatar。#Qiu et al., 2024
Stage 1:多视角 Canonical 图像生成
Motivation:传统方法(如 CharacterGen)需要合成 3D rigged 数据集来训练多视角生成器。这些数据制作成本极高,且从合成域到真实域存在泛化鸿沟。AniGS 的关键创新是:用视频生成模型替代多视角扩散模型,在大规模 in-the-wild 视频上预训练,完全不需要合成 3D 数据。
基础架构:CogVideo-2B
AniGS 选择 CogVideoX-2B#Yang et al., 2024 作为基础生成模型。CogVideoX 拥有 30 个 DiT(Diffusion Transformer)blocks,已经在大规模视频数据上预训练过。CogVideo 的 VAE 将视频/图像映射到隐空间,DiT 在隐空间做去噪。AniGS 在此基础上做了三个关键修改:
修改一:参考图像引导
为了让生成的多视角图像保持输入图像的身份一致性,AniGS 将参考图像 \(I\) 通过 VAE 编码为特征 \(F_{ref} \in \mathbb{R}^{B \times 1 \times C \times HW}\)。视频噪声隐变量为 \(F_{noise} \in \mathbb{R}^{B \times f \times C \times HW}\)。
融合方式非常简洁:在每个 DiT block 中,将 \(F_{ref}\) 和 \(F_{noise}\) 沿帧维度拼接为 \(F_{concat} \in \mathbb{R}^{B \times (f+1) \times C \times HW}\),通过 self-attention 实现特征交互。这样,生成的每一帧都会"看到"参考图像,从而保持身份一致。#Qiu et al., 2024
修改二:SMPL-X 姿态引导
借鉴 CHAMP#Zhu et al., 2024 的轻量姿态引导网络设计:从 canonical SMPL-X 姿态生成法线图 \(N_{canonical}\),提取引导特征后加到对应的噪声隐变量上,引导去噪过程生成特定姿态的图像。这比 2D 关键点引导提供了更丰富的 3D 结构信息。
修改三:联合 RGB-Normal 生成
这是 AniGS 的一个重要设计。法线图提供几何监督信号,能显著增强多视角重建质量(参考 Wonder3D 的思路)。但如何在一个模型中同时生成 RGB 和 Normal 两种模态?
AniGS 对 CogVideo-2B 的 30 个 DiT blocks 做了分叉-共享-分叉的改造:
- 前 3 个 blocks → 两个独立分支:I-DiT-E 处理 RGB,N-DiT-E 处理 Normal
- 中间 24 个 blocks → 共享权重(关键设计!减少参数量,让 RGB 和 Normal 共享语义理解)
- 后 3 个 blocks → 两个独立分支:I-DiT-D 输出 RGB,N-DiT-D 输出 Normal
每 3 个 shared blocks 后插入多模态注意力模块:将 RGB 和 Normal 特征在 token 维度拼接 \(F \in \mathbb{R}^{B \times f \times C \times 2HW}\),通过 self-attention 实现两种模态的信息交换。#Qiu et al., 2024
Stage 2:4DGS 不一致重建
Motivation:Stage 1 输出的 30 帧多视角 canonical 图像质量很高,但存在微妙的视角间不一致。直接用 3DGS 优化会导致伪影。AniGS 的核心洞察是:将视角不一致性视为"时间维度的变化",用 4DGS 建模。
4DGS 变形场
AniGS 采用 HexPlane + MLP 架构(参考 Cao et al., 2023 的 TiNeuVox):6 个 2D voxel planes 包含时间维度,编码时间和空间特征;3 个独立 MLP 分别预测位置偏移 \(\Delta x\)、旋转偏移 \(\Delta r\) 和缩放偏移 \(\Delta s\)。#Qiu et al., 2024
4DGS 变形公式
其中 \((x, r, s)\) 是 canonical space 的 3D Gaussian 参数,\((\hat{x}, \hat{r}, \hat{s})\) 是第 \(t\) 帧(第 \(t\) 个视角)的变形后参数。每帧独立变形,但共享 canonical 参数。
Coarse Mesh 初始化
4DGS 优化对初始化非常敏感。AniGS 设计了一个巧妙的初始化策略:
- 从预测的 SMPL-X mesh 出发
- 变形 mesh 以拟合生成的多视角 RGB masks 和 normal maps
- 使用 Nvidiffrast 光栅化器渲染变形 mesh 的 foreground 和 normal
- 优化目标:\(L_{init} = \lambda_{mask} L_{mask} + \lambda_n L_{normal} + \lambda_{lap} L_{lap} + \lambda_{edge} L_{edge}\)
- 在变形后的 coarse mesh 表面采样点 → 初始化 3DGS
消融实验清楚地展示了初始化的重要性:随机点初始化导致优化困难、输出模糊;SMPL mesh 初始化有更好的形状先验,但远离身体的区域难以建模;Coarse mesh 初始化综合了两者的优势,提供了最佳起点。#Qiu et al., 2024
三重正则化
为了获得高质量的重建结果,AniGS 引入了三重正则化:
- Normal 正则化 (\(L_{normal}\)):对渲染的法线图施加 L1 损失,利用生成的 normal maps 作为监督,减少随机噪声、增强表面细节
- 各向异性正则化 (\(L_{ar}\)):约束 3D Gaussian 的形状,防止出现过大或过长的椭球,消除新姿态动画中的尖刺伪影(参考 PhysGaussian)
- 总变差正则化 (\(L_{tv}\)):基于网格的 TV 损失,促进相邻视角间的平滑变形
总重建损失
其中 \(\lambda_m = 0.1\),\(\lambda_n = 0.05\),\(\lambda_{ar} = 0.001\),\(\lambda_{tv} = 1.0\)。#Qiu et al., 2024
动画:Diffused Skinning
重建完成后,avatar 在 canonical space 中对齐 SMPL-X canonical pose。动画时使用 SMPL-X 驱动参数(形状 \(\beta\)、姿态 \(\theta\)),通过 diffused skinning 将 SMPL-X 顶点的蒙皮权重传播到整个 canonical space:蒙皮权重存储在 256³ 的 voxel grid 中,任意点的蒙皮权重通过三线性插值获得,然后用 LBS(Linear Blend Skinning)变换将 canonical space 的点变形到 camera view space。#Qiu et al., 2024
flowchart TD
A["单张输入图像 I"] --> B["Stage 1: CogVideo-2B"]
B --> C["30帧 多视角 canonical RGB + Normal"]
C --> D["Stage 2: 4DGS 不一致重建"]
D --> E["Coarse Mesh 初始化"]
E --> F["3DGS 优化 (3K iter)"]
F --> G["4DGS 优化 (4K iter)"]
G --> H["取 t=0 → Canonical 3DGS Avatar"]
H --> I["实时动画渲染"]
AniGS 的训练分为两个层面:Stage 1 的多视角生成模型训练和 Stage 2 的 4DGS 优化。两者在硬件、数据和方法上都有显著差异。#Qiu et al., 2024
Stage 1 训练:多视角生成模型
预训练阶段(100K iterations,16×A100 80G):使用约 100,000 个 in-the-wild 单人视频。Normal 伪标签由 Sapiens 生成,SMPL-X 姿态伪标签由 Sapiens + Multi-HMR 生成。预训练的目标是学习通用的人体外观和运动先验——让模型理解"人体长什么样"和"人怎么动"。#Qiu et al., 2024
微调阶段(50K iterations,16×A100 80G):使用 6,124 个合成人体扫描(来自 2K2K、Thuman2.0/2.1、CustomHumans、Thwindom、RenderPeople)。每个扫描渲染 30 个视角,仰角范围 -20° 到 +20°,按正弦函数振荡。微调阶段采用 10% in-the-wild + 90% synthetic 的数据混合策略——这个比例很关键:纯合成数据会导致泛化能力下降,而 in-the-wild 数据虽然几何一致性差,但能保持模型对真实图像的鲁棒性。#Qiu et al., 2024
| 配置项 | 披露状态 | 值 / 说明 |
|---|---|---|
| 训练数据 | 已披露 | 预训练:100K in-the-wild 单人视频;微调:6124 合成 scans + 10% in-the-wild 混合 |
| 训练硬件 | 已披露 | 16 × NVIDIA A100 80GB |
| 优化器 | 已披露 | Adam |
| 学习率 | 已披露 | 2 × 10⁻⁴ |
| Batch size | 已披露 | 1 |
| 训练步数 | 已披露 | 预训练 100K iterations + 微调 50K iterations |
| 训练时长 | 未披露 | 原文未给出具体时长 |
| 模型参数量 | 部分披露 | 基于 CogVideoX-2B(~2B 参数),分叉后参数量略增 |
| 精度格式 | 未披露 | 原文未明确 |
| Checkpoint 策略 | 未披露 | 原文未给出 |
| 数据混合比例 | 已披露 | 10% in-the-wild + 90% synthetic |
| Normal 伪标签来源 | 已披露 | Sapiens + Multi-HMR |
| 视角数 / 仰角范围 | 已披露 | 30 视角,-20° 到 +20° 正弦振荡 |
Stage 2 训练:4DGS 优化
Stage 2 是针对单个输入的 per-instance 优化,不需要额外训练数据。优化过程分为两步:
- 3DGS 优化(3,000 iterations):仅优化 canonical space 参数
- 4DGS 优化(4,000 iterations):加入 HexPlane + MLP 变形场,每帧独立的 \(\Delta x, \Delta r, \Delta s\)
4DGS 优化的超参数包括:\(\lambda_{mask} = 0.1\),\(\lambda_{normal} = 0.05\),\(\lambda_{ar} = 0.001\),\(\lambda_{tv} = 1.0\)。Coarse Mesh 初始化阶段的损失权重为:\(\lambda_{mask} = 1.0\),\(\lambda_{normal} = 0.5\),\(\lambda_{lap} = 0.1\),\(\lambda_{edge} = 0.05\)。#Qiu et al., 2024
AniGS 的推理流程清晰分为三步,总耗时约 10 分钟(在单张 RTX 3090 上):
Step 1:多视角图像生成(~5 分钟)
输入一张 in-the-wild 人体图像 \(I\)。首先用 Sapiens + Multi-HMR 预测 SMPL-X 姿态参数。然后将参考图像和 30 个 canonical 姿态条件输入修改后的 CogVideo-2B,生成 30 帧多视角 canonical RGB 图像和对应的法线图。这一步是主要的耗时瓶颈,因为需要跑完整个扩散去噪过程。#Qiu et al., 2024
Step 2:4DGS 优化(~5 分钟)
用生成的 30 帧图像作为监督信号,执行 Coarse Mesh 初始化 → 3DGS 优化(3K iter)→ 4DGS 优化(4K iter)。取 t=0 时刻的结果作为最终的 canonical 3DGS avatar。这一步在单张 RTX 3090 上约 5 分钟完成。#Qiu et al., 2024
Step 3:实时动画渲染
一旦 canonical avatar 构建完成,就可以用 SMPL-X 驱动参数实时动画。通过 diffused skinning(256³ voxel grid + 三线性插值)和 LBS 变换,每一帧的渲染速度达到实时。这意味着用户可以交互式地改变姿态、视角,即时看到渲染结果。#Qiu et al., 2024
| 推理步骤 | 耗时 | 硬件 |
|---|---|---|
| 多视角 RGB + Normal 生成(30 帧) | ~5 分钟 | RTX 3090 |
| 4DGS 优化 | ~5 分钟 | RTX 3090 |
| 动画渲染 | 实时 | RTX 3090 |
| 总计 | ~10 分钟 | RTX 3090 |
AniGS 在三个维度做了系统评估:多视角 canonical 图像生成质量、3D 重建质量、动画质量。#Qiu et al., 2024
实验配置
| 配置项 | 披露状态 | 值 / 说明 |
|---|---|---|
| 评测数据集 | 已披露 | Human4DiT (50 rigged avatars, 多视角生成); Human4DiT Synthetic (3D 重建); 动画质量评测集 |
| 评测指标 | 已披露 | PSNR↑ / SSIM↑ / LPIPS↓ / Normal Loss↓ (多视角); LPIPS↓ / CLIP↑ / FID↓ / User Study↑ (3D 重建); PSNR↑ / SSIM↑ / LPIPS↓ (动画) |
| Baseline 方法 | 已披露 | MagicMan⁺, CHAMP* (多视角); SiTH, LGM, MagicMan, CharacterGen, En3D (3D 重建); CharacterGen, En3D (动画) |
| 推理硬件 | 已披露 | 单张 RTX 3090 |
| 推理分辨率 | 未披露 | 原文未给出 |
| 推理环境 | 未披露 | 原文未给出框架/版本 |
多视角 Canonical 图像生成(Human4DiT 50 avatars)
| 方法 | PSNR ↑ | SSIM ↑ | LPIPS ↓ | Normal Loss ↓ |
|---|---|---|---|---|
| MagicMan⁺ | 23.775 | 0.911 | 0.1077 | 0.134 |
| CHAMP* | 20.025 | 0.894 | 0.1458 | — |
| Ours | 23.125 | 0.907 | 0.1023 | 0.101 |
MagicMan⁺ 在 PSNR 和 SSIM 上略高,但 AniGS 在 LPIPS(感知相似度)和 Normal Loss(几何精度)上更优。对于后续的 3D 重建来说,感知相似度和几何一致性比像素级 PSNR 更重要——这解释了为什么 AniGS 在下游 3D 重建任务上反超 MagicMan。#Qiu et al., 2024
3D 重建质量(Human4DiT Synthetic)
| 方法 | LPIPS ↓ | CLIP ↑ | FID ↓ | User Study ↑ |
|---|---|---|---|---|
| SiTH | 0.1607 | 86.854 | 86.895 | 2.134 |
| LGM | 0.1567 | 86.686 | 82.121 | 2.617 |
| MagicMan | 0.1479 | 82.693 | 144.642 | 2.095 |
| CharacterGen | 0.1638 | 87.154 | 88.751 | 2.481 |
| En3D | 0.1576 | 82.975 | 131.32 | 2.549 |
| Ours | 0.1085 | 90.370 | 77.879 | 4.199 |
动画质量
| 方法 | PSNR ↑ | SSIM ↑ | LPIPS ↓ |
|---|---|---|---|
| CharacterGen | 17.570 | 0.644 | 0.205 |
| En3D | 19.244 | 0.751 | 0.174 |
| Ours | 21.475 | 0.857 | 0.137 |
动画质量的提升更加显著:PSNR 从 En3D 的 19.244 提升到 21.475(+2.2 dB),SSIM 从 0.751 到 0.857。这得益于 Coarse Mesh 初始化提供的良好几何先验和三重正则化的约束。#Qiu et al., 2024
消融实验
AniGS 的消融实验揭示了三个关键组件的贡献:#Qiu et al., 2024
- Normal 正则化:有效减少随机噪声,增强表面细节。去掉后重建表面出现明显的高频噪声,尤其在平坦区域(如躯干、手臂内侧)最为显著。
- 各向异性正则化:消除新姿态动画中的尖刺伪影。这对从未见过的姿态尤其重要——没有这个正则化,Gaussian 椭球会在新姿态方向上过度拉伸,产生不自然的尖刺状突起。这在手臂抬起、腿部跨步等大幅偏离训练分布的姿态中尤为明显。
- 初始化策略:如 Part 3 所述,Coarse mesh 初始化 >> SMPL mesh 初始化 >> 随机点初始化。定量来看,Coarse mesh 初始化比随机初始化 PSNR 高出约 3 dB,比 SMPL mesh 初始化在远离身体区域(如手部、衣摆)的几何精度提升约 20%。
此外,预训练阶段的有效性也值得注意。100K in-the-wild 视频预训练让模型学到了通用的人体外观先验,微调阶段则在此基础上精化多视角几何一致性。论文的数据混合策略(10% in-the-wild + 90% synthetic)本身也可以看作一种隐式的正则化——纯合成数据容易导致过拟合到合成域的渲染分布,而少量真实数据的混入有效缓解了这个域偏移问题。#Qiu et al., 2024
竞品定位
AniGS 在数字人技术版图中占据了一个独特的位置。与同系列已讨论的方法对比:
| 方法 | 路线 | 输入 | 输出 | 实时 |
|---|---|---|---|---|
| CharacterGen | 多视角 canonical + Transformer 3D | 单图 | 卡通 3D avatar | 否 |
| MagicMan | 多视角静态人体 | 单图/文本 | 多视角图像(非 canonical) | 否 |
| EGSTalkerpaper-egstalker.html | 3DGS + 音频驱动 | 单图 + 音频 | 实时 3DGS talking head | 是 |
| LAMlam-2025.html | 纯 3D 前馈管线 | 单图 | 可动画 Gaussian 头像 | 是 |
| AniGS | 视频生成 + 4DGS | 单图 | 可动画 3DGS avatar(全身) | 动画实时 |
与 LAM 相比,AniGS 面向全身 avatar(不仅是头部),但牺牲了前馈式实时性。与 EGSTalker 相比,AniGS 不做音频驱动,而是用 SMPL-X 参数驱动。两者在 3DGS 表示和实时渲染上有技术共通性。#Qiu et al., 2024
局限性
已知局限
非前馈式:每次处理新图像需要 ~10 分钟优化(5 min 生成 + 5 min 4DGS),无法做到即拍即用。
依赖 SMPL-X:动画驱动依赖 SMPL-X 参数估计,对遮挡严重或非标准姿态的输入可能失败。
手部细节:SMPL-X 对手部建模能力有限,手指等精细部位的动画质量仍有提升空间。
可操作启发
- "不一致性即时间"的思路迁移:AniGS 将空间不一致性重新表述为时间维度变化的思路,可以推广到其他多视角重建场景——例如多相机标定不精确时的鲁棒重建。
- 视频预训练 → 多视角生成:用视频生成模型替代多视角扩散模型的范式,对任何需要从单图获取多视角信息的任务都有参考价值。视频数据远比配对的 3D 数据容易获取。
- 数据混合策略:10% in-the-wild + 90% synthetic 的混合比例是一个实用的工程经验——纯合成数据训练容易过拟合到合成域的分布。
- Coarse Mesh 初始化:先用粗模型拟合,再在表面采样初始化精细模型,这种"由粗到细"的策略在 3D 重建中值得广泛借鉴。
参考来源
- Qiu, L. et al. (2024). AniGS: Animatable Gaussian Avatar from a Single Image with Inconsistent Gaussian Reconstruction. CVPR 2025. arXiv:2412.02684
- Yang, Z. et al. (2024). CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer. arXiv:2408.06072
- Peng, H. et al. (2024). CharacterGen: Efficient 3D Character Generation from Single Images with Multi-View Pose Canonicalization. arXiv:2402.01478
- Zhu, H. et al. (2024). CHAMP: Controllable Human Avatar Modeling with 3D Guidance. arXiv:2403.15931
- He, J. et al. (2024). MagicMan: Generative Novel View Synthesis of Human.
- Wu, Q. et al. (2024). 4D Gaussian Splatting for Real-Time Dynamic Scene Rendering. CVPR 2024. arXiv:2306.00594
- Loper, M. et al. (2015). SMPL: A Skinned Multi-Person Linear Model. ACM TOG.
- Pavlakos, G. et al. (2019). Expressive Body Capture: 3D Hands, Face, and Body from a Single Image. CVPR 2019.