SkeletonGaussian:通过高斯骨架化实现可编辑的4D生成 SkeletonGaussian: Editable 4D Generation through Gaussian Skeletonization
基于骨架驱动的4D高斯框架,实现可编辑的动态3D生成
前置知识
3D Gaussian Splatting (3DGS)
3D高斯溅射是一种用大量三维高斯椭球体表示场景的渲染方法。每个高斯由位置 $\mathbf{p}$、四元数旋转 $\mathbf{q}$、缩放 $\mathbf{s}$、不透明度 $\sigma$ 和球谐系数 $\mathbf{c}$ 参数化。渲染时通过可微分的溅射(splatting)将3D高斯投影到2D图像,相比NeRF大幅提升了渲染速度,可达到实时帧率。该方法在2023年由Kerbl等人提出后迅速成为3D表示的主流范式。
本文的整个框架建立在3DGS之上,所有动态建模和变形操作都直接作用于高斯参数,理解3DGS是理解本文的基础
Linear Blend Skinning (LBS)
线性混合蒙皮是计算机动画中的核心技术,用于将骨骼运动应用到3D模型表面。对于每个顶点(或高斯点)$i$,其变换矩阵 $\mathbf{T}_i$ 是其最近 $K$ 个骨骼关节变换矩阵的加权和:$\mathbf{T}_i = \sum_{k=1}^{K} w_{k,i} \mathbf{B}_k(\mathbf{J}, \theta_t)$,其中 $w_{k,i}$ 是基于逆距离的权重。SMPL人体模型就使用LBS来驱动人体变形。
LBS是本文方法中实现骨架驱动刚性变形的核心机制,理解它才能明白如何将骨骼运动传递到高斯点上
Score Distillation Sampling (SDS)
分数蒸馏采样是由DreamFusion提出的损失函数,利用预训练的2D扩散模型(如Stable Diffusion)的先验知识来优化3D表示。其梯度形式为 $\nabla_\theta \mathcal{L}_{\text{SDS}} = \mathbb{E}_{t,\epsilon}\left[\omega(t)(\hat{\epsilon}_\theta(z_t; I_{in}, R, T, t) - \epsilon) \frac{\partial x}{\partial \theta}\right]$,通过让扩散模型预测的噪声与实际噪声对齐来优化3D模型。本文使用多视角SDS(MV-SDS)来保证多视角一致性。
SDS损失是本文训练流程的核心监督信号,没有3D标注数据时依赖它来从2D扩散先验中提取3D信息
HexPlane
六平面是一种高效的4D场景表示方法,将4D时空场分解为6个特征平面(XY、XZ、YZ、Xt、Yt、Zt),每个平面存储一对坐标轴对应的特征。给定时空查询点 $(x, y, z, t)$,从6个平面提取特征并组合,再通过MLP解码得到变形参数。这种分解方式比直接使用4D网格更高效,内存和计算复杂度从 $O(N^4)$ 降至 $O(6 \times N^2)$。
本文用HexPlane来建模非刚性变形(如衣服褶皱),是捕获精细运动细节的关键组件
Forward Kinematics (FK)
前向运动学是根据骨骼层次结构计算各关节世界变换的方法。对于关节 $k$,其变换矩阵通过递归累积所有祖先关节的局部变换得到:$\mathbf{B}_k(\mathbf{J}, \theta_t) = \prod_{j \in \mathcal{A}(k)} \theta_{t,j}$,其中 $\mathcal{A}(k)$ 是关节 $k$ 的祖先集合。FK将骨骼姿态参数 $\theta_t$ 转换为可用于LBS的全局变换矩阵。
FK是连接骨骼姿态参数和实际变形的桥梁,使得用户可以通过编辑姿态参数来控制整个物体的运动
研究动机
当前4D生成方法的运动建模存在根本性的局限。现有的动态NeRF、动态3D高斯和动态网格生成方法,普遍将运动建模为隐式变形场(implicit deformation field)。这种表示方式带来三个核心问题:第一,直接控制和编辑困难,修改变形场通常需要重新训练,过程耗时且缺乏实时反馈;第二,参数需求随时间呈二次方增长 $O(T^2)$,难以应用于长时间序列;第三,隐式变形表示难以转换为标准的骨架或姿态数据,阻碍了与Blender等主流动画工具的无缝集成。以Consistent4D数据集中的32帧视频为例,现有方法无法让用户直观地调整物体的运动轨迹,也无法将生成的运动导出到动画管线中使用。
本文的目标是本文旨在开发一种高质量的4D生成工作流,不仅能够产生优于现有方法的4D结果,还能实现实时运动编辑。具体目标包括:从单目视频输入生成可编辑的动态3D高斯模型;将运动分解为骨架驱动的刚性运动和精细的非刚性运动;实现与标准动画工作流的无缝集成,让用户可以通过调整骨架姿态直接修改物体运动;同时保持参数高效性,姿态参数量仅随关节数和时间步线性增长 $O(B \times T)$。
与已有工作不同的是,本文的独特切入点是将显式的骨骼驱动运动表示引入4D生成任务。受人体重建领域(如GaussianAvatar、HUGS等)将SMPL模型集成到4D高斯建模中的启发,作者提出了一种适用于任意物体(不限于人体)的层次化骨架运动表示。与现有方法使用密集变形场或稀疏控制点加隐式MLP建模不同,SkeletonGaussian显式地将运动分解为:(1)由骨架驱动的稀疏刚性变形,通过线性混合蒙皮实现;(2)由六平面和MLP捕获的精细非刚性变形。这种分解方式既保留了骨架的可解释性和可编辑性,又通过非刚性细化保证了细节质量。核心区别在于:现有方法的运动参数是黑盒的,而本文的骨架姿态参数具有明确的语义含义,用户可以直接理解和操控。
核心方法
SkeletonGaussian的整体思路是将复杂的4D运动生成问题分解为三个渐进式阶段,每个阶段负责不同粒度的运动建模。直觉上,一个物体的运动可以自然地分为两层:宏观的骨架运动(如手臂挥舞、腿部行走)和微观的非刚性变形(如衣服褶皱、皮肤拉伸)。前者可以用少量关节的旋转来表示,后者需要更精细的空间场来建模。技术路线为:首先从输入视频的中间帧生成一个静态3D高斯模型并提取骨架结构,然后使用线性混合蒙皮将骨架运动应用到高斯点上实现刚性变形,最后用六平面变形场对刚性变形结果进行非刚性细化。三个阶段共享相同的训练目标(多视角SDS损失、重建损失、掩码损失和正则化损失),但在训练时采取冻结-解冻策略:第一阶段训练静态高斯,第二阶段冻结高斯训练骨架姿态,第三阶段冻结骨架训练非刚性变形场。
核心创新点在于引入了显式的层次化骨架运动表示来替代传统的隐式变形场。与已有方法的本质区别体现在三个方面:第一,运动参数化方式不同。现有方法(如Consistent4D、4DGen等)使用隐式MLP或六平面直接预测每个高斯点的位移和旋转,参数量随时间二次方增长且语义不明确;本文使用骨架关节的姿态四元数 $\theta \in \mathbb{R}^{T \times B \times 4}$ 作为运动参数,参数量仅 $O(B \times T)$,且每个参数对应一个具体关节在特定时间步的旋转,具有明确的物理含义。第二,变形机制不同。现有方法通过密集变形场直接操作每个高斯点,缺乏结构约束;本文通过LBS将骨架运动传播到所有高斯点,自然保持了物体的拓扑结构。第三,编辑能力不同。隐式变形场修改后需要重新训练;本文的骨架表示允许用户直接调整关节姿态来编辑运动,且支持与Blender等标准动画工具集成。
方法步骤详情
方法分为三个训练阶段,每个阶段有不同的输入输出和优化目标。第一阶段:静态3D高斯生成与骨架提取。选择视频中间帧作为参考帧,使用Zero123++生成6个锚视角视频作为多视角监督。在规范空间中随机初始化10000个高斯点,通过MV-SDS损失和光度一致性损失训练1500步,得到静态3D高斯模型 $\mathcal{G}_c = \{\mathbf{p}_c, \mathbf{q}_c, \mathbf{s}, \sigma, \mathbf{c}\}$。随后使用UniRig提取骨架结构,通过占据场和Marching Cubes算法从高斯模型中重建网格,再构建最小生成树得到运动学树结构。第二阶段:刚性运动建模。使用LBS将骨架运动应用到规范空间高斯上:$\mathcal{G}_r = F_{\text{lbs}}(\mathcal{G}_c; \mathbf{J}, \theta_t)$。每个高斯点的变换矩阵 $\mathbf{T}_i$ 由最近 $K$ 个关节的变换加权得到,权重通过KNN和逆距离加权计算。骨架姿态 $\theta_t$ 是可优化参数,训练2500步,使用窗口大小为3的平滑正则化。第三阶段:非刚性运动细化。冻结骨架网络,使用HexPlane和MLP预测每个高斯点的位移、旋转和缩放修正,训练7000步,将刚性变形后的高斯 $\mathcal{G}_r$ 细化为观测空间高斯 $\mathcal{G}_o = F_{\text{nr}}(\mathcal{G}_r)$。整个训练过程在RTX 3090上约需1小时。
技术新颖性
技术新颖性主要体现在以下几个方面。首先,这是首个将显式骨架驱动运动表示引入通用4D生成任务(不限于人体)的框架。此前的GaussianAvatar、HUGS等方法虽然也使用骨架驱动,但仅限于人体场景,依赖SMPL模型的固定拓扑。SkeletonGaussian通过UniRig实现了类别无关的骨架提取,适用于动物、物体等任意类别。其次,层次化运动分解的设计巧妙地平衡了可编辑性和细节质量:骨架负责宏观运动的可解释性和可编辑性,HexPlane负责微观变形的表达能力。第三,骨架姿态参数的效率优势显著:在作者的设置中($B \approx 30$ 个关节,$T = 32$ 帧),刚性阶段仅需存储 $30 \times 32 \times 3$ 个标量(关节旋转角),变形模块VRAM仅0.01 MiB,而非刚性方法需要136.40 MiB。第四,前向运动学的引入使得父关节的调整自动传播到子关节,支持层次化运动编辑,这在隐式方法中是无法实现的。
实验结果
实验结果全面验证了SkeletonGaussian在4D生成质量和运动编辑能力上的优势。在Consistent4D数据集(包含12个合成和12个真实世界视频,每个32帧)上的定量比较显示,本文方法在所有指标上均优于现有基线。CLIP相似度达到0.923,比STAG4D(0.909)和DreamGaussian4D(0.913)分别提升1.4和1.0个百分点;LPIPS感知距离降至0.125,与STAG4D持平但优于其他方法;FVD视频质量分数为847.8,比STAG4D(992.2)改善14.6%,比Consistent4D(1518.5)改善44.2%。用户研究在20个视频上进行,SkeletonGaussian以32.5%的偏好率领先,STAG4D为27.5%,4DGen为22.5%,DreamGaussian4D为17.5%。消融实验揭示了关键设计选择的影响:仅使用刚性LBS的VRAM为0.01 MiB、训练12分钟,但FVD仅为1012.6;仅使用非刚性HexPlane的VRAM为136.40 MiB、训练90分钟,FVD为992.2;完整方法VRAM为136.41 MiB、训练102分钟,FVD降至847.8,证明两种变形的互补性。骨架提取器的选择也很重要:用Coverage Axis++替换UniRig后FVD从847.8升至890.4,CLIP从0.923降至0.918。初始帧选择的影响较小,使用第0帧、第15帧和随机帧的FVD分别为851.2、847.8和858.5。渲染速度达到150 FPS,支持实时预览和编辑。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| Video-to-4D生成(Consistent4D数据集) | CLIP↑ | 0.923 | STAG4D: 0.909, DreamGaussian4D: 0.913, 4DGen: 0.909, Consistent4D: 0.877 | 比最佳基线STAG4D/4DGen提升1.5%,比Consistent4D提升5.2% |
| Video-to-4D生成(Consistent4D数据集) | LPIPS↓ | 0.125 | STAG4D: 0.126, DreamGaussian4D: 0.143, 4DGen: 0.137, Consistent4D: 0.161 | 与STAG4D持平,比DreamGaussian4D改善12.6% |
| Video-to-4D生成(Consistent4D数据集) | FVD↓ | 847.8 | STAG4D: 992.2, DreamGaussian4D: 994.11, 4DGen: 913.10, Consistent4D: 1518.5 | 比最佳基线4DGen改善7.2%,比STAG4D改善14.6% |
| 消融实验:运动建模方式对比 | FVD↓ | 847.8 (Full: Rigid+Non-rigid) | Rigid-only: 1012.6, Non-rigid-only: 992.2 | 完整方法比仅刚性改善16.3%,比仅非刚性改善14.6% |
| 消融实验:运动建模方式对比 | VRAM (MiB)↓ | 136.41 (Full) | Rigid-only: 0.01, Non-rigid-only: 136.40 | 完整方法VRAM几乎等于非刚性方法,骨架额外开销可忽略 |
| 消融实验:骨架提取器对比 | FVD↓ | 847.8 (UniRig) | Coverage Axis++: 890.4 | UniRig比Coverage Axis++改善4.8% |
局限与改进
作者在论文中坦诚地指出了几个重要局限性。第一,骨架提取质量对最终结果影响显著。在某些情况下,骨架提取的拓扑错误(如鸟类腿部交叉时的误判)会导致生成质量下降,虽然可以通过选择不同的规范帧或手动修正骨架来缓解。第二,对于非骨架结构的物体(如枪支),骨架表示无法有效建模刚体平移运动,因为枪管等部件不具有关节结构。第三,当前方法不支持多物体运动,限制了在多物体场景中的应用。从独立观察来看,还存在以下问题:训练效率方面,虽然单次训练约1小时,但消融实验显示非刚性阶段占了绝大部分时间(90分钟 vs 刚性阶段的12分钟),且内存随序列长度近似二次方增长,长视频处理仍是挑战;泛化能力方面,实验仅在Consistent4D的24个视频上验证,缺乏更大规模数据集的评估;此外,KNN权重使用固定的逆距离加权而非学习得到,可能不是最优的蒙皮权重分配方式。
独立分析的弱点
经过独立分析,本文存在以下几个值得关注的弱点。第一,蒙皮权重计算方式过于简单:当前使用KNN加逆距离加权,这是静态的、无需训练的方案。然而在实际应用中,不同区域(如关节附近的软组织vs硬骨骼)需要不同的权重分布,固定方案可能导致变形不自然。改进方向是引入学习型蒙皮权重场,如使用MLP预测每个高斯点的权重分布,或参考SMPL的权重学习策略。第二,骨架提取依赖外部工具UniRig,且仅支持单物体:当场景包含多个物体时,无法分别建模。改进方向是集成实例分割和独立骨架提取,或开发端到端的多物体骨架预测网络。第三,HexPlane的非刚性建模缺乏物理约束:当前的变形场是纯数据驱动的,可能导致不物理的变形(如体积不守恒、穿模等)。改进方向是引入物理先验,如弹性力学约束或碰撞检测。第四,消融实验不够充分:未对比不同数量的高斯点(当前固定10000个)、不同K值的KNN、不同平滑窗口大小等超参数的影响。
未来方向
作者提出了几个明确的未来研究方向。第一,集成预定义骨架模板如SMPL:使用顶点和关节位置初始化3D高斯和骨架结构,可望显著提升人体/动物场景的生成质量。作者已成功将人体姿态估计方法ViTPose集成到系统中来初始化骨架姿态。第二,集成骨架控制的视频生成技术如ControlNet:使用3D骨架作为扩散模型的条件输入,可为4D生成开辟新的可能性。第三,应用到运动追踪任务:增强的骨架控制提供了一种新的运动表示,可应用于动作捕捉和运动分析。基于本文成果还可延伸以下方向:(1)长视频生成:当前方法受限于内存和训练时间,可探索分块训练和增量更新策略;(2)交互式编辑系统:骨架表示天然支持实时交互,可开发更完善的GUI工具支持动画师的创作工作流;(3)多模态输入:结合文本描述和骨架姿态,实现更灵活的4D内容创作。
复现评估
从复现角度来看,本文的可复现性存在一定挑战但整体可控。开源方面,论文提供了项目页面(https://wusar.github.io/projects/skeletongaussian/),但未明确说明是否开源代码和预训练模型。数据方面,使用公开的Consistent4D数据集(来自Sketchfab的4D动画资产),包含12个合成和12个真实世界视频,每个32帧,数据可获取。算力方面,训练在单张RTX 3090上进行,整个流程约1小时(静态阶段约0.2小时,刚性阶段约0.2小时,非刚性阶段约1.5小时),渲染150 FPS,硬件门槛适中。依赖方面,需要Zero123++(多视角扩散模型)、UniRig(骨架提取)、以及3D高斯溅射的基础实现,这些组件大多有开源实现。复现难度主要在于:(1)UniRig的集成和预处理流程较复杂,论文提到支持内部Python路径和外部缓存脚本两种调用模式;(2)多视角SDS损失的实现需要正确集成Zero123++和Zero-1-to-3的推理流程;(3)超参数配置(如学习率衰减从0.00005到0.000005、损失权重 $\lambda_1=2\times10^4$、$\lambda_2=1\times10^3$)需要仔细调整。
论文图表
展示了白鹭案例中骨架提取错误的影响。当选择第15帧(腿部交叉)作为规范帧时,骨架拓扑被误判,导致生成质量下降;改用第10帧则问题解决。展示了输入视频、生成输出、生成骨架和骨架叠加的对比。
坦诚展示了方法的局限性,骨架提取质量对结果的影响,以及通过选择不同规范帧的缓解策略
展示了手枪案例中骨架表示的局限性。枪管不具有关节结构,骨架无法有效建模沿枪管轴的滑动运动,导致生成质量不佳。
展示了方法的适用边界,说明骨架表示更适用于自然关节结构(人、动物、植物)而非刚性物体