Conference

StreamME: Simplify 3D Gaussian Avatar within Live Stream

Luchuan Song, Yang Zhou, Zhan Xu, Yi Zhou, Deepali Aneja, Chenliang Xu

University of Rochester; Adobe Research

一句话总结

StreamME 用一段直播(或单目)视频,边录边建,纯 PyTorch 在约 5 分钟内重建出可实时动画的高保真 3D 高斯头像,核心是抛弃可变形 3DGS 里的 MLP、只靠几何驱动表情,并通过运动感知锚点与点云简化把点数压到极低。

研究背景

  • 领域现状:从单目视频快速重建头部 avatar 是 VR/AR、数字人、全息通信、直播等场景的热点。3DGS 与 NeRF 加速技术(如 INSTA、AvatarMAV、FlashAvatar)推动了这一方向,但普遍把训练和推理分成两个离线阶段。
  • 核心痛点:现有方法在渲染质量与存储/训练开销之间难以平衡。它们大多依赖 MLP 或 CNN 来拟合表情形变,训练慢,无法做到”一边录一边建”;且预处理(如用 MICA 跟踪 FLAME)极其耗时,处理 10 分钟视频可能要一天,难以实时化。
  • 本文 idea:提出”边录边训”(on-the-fly training)这一新任务,让录制、重建、可视化同步进行。关键手段是把 3D 高斯点直接绑到跟踪出的头部网格表面,让点随网格形变而运动,从而彻底去掉可变形 MLP;再配合锚点复制与点云简化,把点数和计算量压下来。这样做还带来隐私保护(无需把人脸模型缓存到外部机器)与带宽压缩(只传 3DGS 参数而非完整图像,约 70% 压缩)。

方法

整体框架:StreamME 先把首帧头部几何设为规范空间(canonical)的点云基准,用一个可选的”warm-up”步骤微调顶点几何;随后从 UV 采样初始化 3D 高斯点并绑到网格表面,靠网格形变直接带动表情,无需 MLP。训练过程中通过运动感知锚点(motion-aware anchor)决定哪些点该复制、哪些该剪枝,再用点云简化去掉过小、过透明以及远离表面的冗余点,最终由可微分光栅化器实时渲染。

flowchart LR
  A[单目/直播视频] --> B[实时人脸跟踪 出位姿与网格]
  B --> C[可选 Warm-Up 用Tex/SH辅助微调顶点几何]
  C --> D[UV采样初始化3D高斯点 绑到网格表面]
  D --> E[运动感知锚点 复制并剪枝]
  E --> F[点云简化 去小点/透明点/离面点]
  F --> G[可微分光栅化 实时渲染头像]
  G -.在线迭代.-> E

关键设计:

  1. 几何驱动、去 MLP 的形变表示。3DGS 的每个高斯点由协方差矩阵与均值定义,协方差再分解为旋转 \(r\) 与缩放 \(s\),属性集为 \(g=\{\alpha, s, r, o, \mu\}\)。StreamME 不再让 MLP 预测形变,而是把点云挂到规范空间的形变网格上,网格随表情动,点就随之动,表情恢复不再需要迭代训练神经网络,因而能”从一开始就模拟动态表情”。

  2. Warm-Up 几何预热(可选)。标准人脸模板难以表达头发等完整头部形状。作者引入两个仅在预热阶段学习、之后冻结的辅助属性——纹理 \(Tex\) 与光照 \(SH\),配合相邻面法向一致性约束,用约 20~30 秒把顶点位置(编码在高斯属性中)重定向到更贴合真实头部的几何,尤其改善头发等外围区域。这一步等价于点云形变 MLP 的作用,但快得多,跳过也能跑。

  3. 运动感知锚点选择。为每个点初始化一个可学习的二值属性 \(Idx\in\{0,1\}^N\)。判据同时考虑优化器累积的密度梯度 \(\alpha_{grad}\) 与相对首帧规范点云 \(\bar P_0\) 的位置差分梯度 \(\nabla P\):当两者的最大内积不低于阈值 \(\epsilon\) 时 \(Idx=1\)(该点被复制),否则 \(Idx=0\)(被剪枝)。这样只保留对表情运动有贡献的锚点(如眼、齿、口周),剔除额头等无运动区域的点,不用 MLP 就能快速适配表情变化。

  4. 高斯点云简化。用 \(Idx\) 作为掩码作用到缩放与不透明度上:\([s',o']=Idx\cdot[s,o]\);二值化的不可导问题用直通估计器解决:\(Idx'=\mathrm{sigm}(Idx)+\mathrm{sg}[\,U[\mathrm{sigm}(Idx)>\epsilon']-\mathrm{sigm}(Idx)\,]\),其中 \(\epsilon'=0.01\),前向按二值掩码取舍、反向用 sigmoid 导数回传。同时用点到面的距离正则把点拉近表面:\(d=\sum_{A\in Idx} Idx\cdot\sum_{P\in A}\lVert (P-P_0^A)\cdot n_0^A\rVert\),让锚点绑定的点更贴合表面、减少离面噪点。随训练推进点云越来越稀疏,反而使训练速度越来越快。

训练细节:损失用 \(L_1\)(权重 1)与 SSIM(权重 0.1),加上点到面距离正则(权重 0.01),warm-up 阶段再加暗通道损失(权重 10)分离 Tex 与 SH。在线优化时每个 mini-batch 混入一帧新采集图像与若干历史帧以缓解遗忘,每 1500 次迭代做一次复制/剪枝。

实验结果

在 GaussianBlendshape、NeRFBlendshape、StyleAvatar、InstantAvatar 等公开数据集的 6 个单目视频(512×512)上做自重演(self-reenactment)评测,并在 RTX 4090 上测速。主实验对比图像质量、推理帧率、存储与用户主观分:

方法 PSNR↑ LPIPS↓ FPS↑ 存储/MB↓ 视频质量VQ↑
StreamME 29.7 0.095 139 2.52 4.1
FlashAvatar 27.8 0.109 94.5 12.6 3.1
GaussianBlendshape 26.4 0.112 22.9 872 3.6
AvatarMAV 24.1 0.137 2.58 14.1 2.3

StreamME 在质量、速度、存储与主观评价上全面领先,存储仅 2.52 MB(GaussianBlendshape 高达 872 MB)。效率实验中,StreamME 约 2 分钟即达到其他方法需 30 分钟才有的质量:10 秒时 PSNR 已达 23.1、2 分钟达 27.2、30 分钟达 29.8,且训练迭代速度随点云变稀疏而不断提升(其他方法迭代速度近似恒定)。消融显示:去掉运动锚点则需约 10 分钟预热才能适配表情;点云简化在 10 分钟训练后把点数从约 20 万压到约 2.4 万(8~10 倍),质量不降;收敛后平均点数 9807,远低于 FlashAvatar 的 13453 与 GaussianBlendshape 的 62530。此外方法支持跨身份动画、文本卡通化(约 5 分钟)与环境重光照等下游应用。

亮点与局限

  • 亮点:
    • 首个真正”边录边建并可视化”的头像重建方法,纯 PyTorch 约 5 分钟成型、10 秒即可看到基本外观。
    • 用几何驱动 + 运动感知锚点彻底去掉可变形 MLP,表情适配无需长时间迭代。
    • 点云简化让”点越训越少、训练越训越快”,存储极小(约 2.5 MB),并天然带来隐私保护与约 70% 带宽压缩。
    • 一套框架延展到动画、卡通化、重光照多种下游应用,其中重光照是单目 3DGS 头像上的首次尝试。
  • 局限:
    • 单视角设定缺乏完整 3D 面部结构,在极端姿态下头部运动会出现渲染伪影。
    • 外观与表情多样性高度依赖训练数据,重建训练分布外的样本效果差(作者指出这是单目设定的共性问题)。
    • 重光照受单目视频光照信息有限所限,效果不及使用大规模数据集的专门方法。

延伸思考

  • “去 MLP、把形变交给显式几何”这条路线,把速度瓶颈从神经网络反传转移到了几何跟踪质量上——实时人脸跟踪与 warm-up 几何的精度会直接决定上限,未来若接入更强的实时头部几何估计,可能进一步提升极端姿态表现。
  • 运动梯度锚点 + 二值 Idx 直通估计的”可学习掩码剪枝”思路,本质是一种面向动态场景的自适应稀疏化,或可迁移到身体、手部等其他可动 3DGS 表示中。
  • 只传 3DGS 参数而非图像的思路对远程会议/全息通信有现实意义,值得关注参数流的时序压缩与抗丢包鲁棒性;重光照与卡通化则指向”可编辑的轻量数字分身”这一更大的应用空间。