“结构感知的 Real2Sim 重建” 工作梳理
将现实物体扫描并整理成游戏引擎/具身引擎支持的、可参与交互及编辑的数字模型资产,一直以来是计算机图形学研究的重要方向。过去的工作已经在刚体层面的 Real2Sim 重建上取得了重大进展。但是仿真引擎中支持的交互物体不止有刚体。考虑到具身和游戏需求的 Real2Sim 输出的内容是渲染出的动画,我们重建出的资产也需要为这一点服务。 游戏引擎中的动画可以划分为这几类:刚体动画、骨骼动画、物理仿真动画(除此之外还有在游戏或现实中相对少见的顶点动画、2D帧动画、形变动画、粒子动画等,在此不做考虑)。现有的 4DGS 工作虽然用形变网络或升维的形式取得了较好的进展,但这种形式的资产可以类比顶点动画,并不太适用于编辑或交互,存储和在线计算成本也高于游戏的需求,因此将现在顶点动画级别的重建优化到骨骼动画/物理仿真动画是非常讲得通的工作。 我们这里主要关注骨骼动画级别的 4D 资产重建。从顶点动画到骨骼动画实际上是做了这样的假设:所有顶点的运动可以由少量的基函数线性表示,而这些基函数就对应现实中我们观察到的骨骼结构。因此这里将这类工作称为“结构感知的 Real2Sim 重建”。 我们希望的目标是用尽可能低的采集成本(仅一部手机或相机)和尽可能低的计算成本(仅一台普通 PC)重建出外观真实、结构清晰、且可编辑的骨骼动画资产,且人工需要的操作最好优化到只有采集部分,不需要后续人工参与处理。例如,玩家可以用自己的手机按指示“扫描”一遍自己,就可以上传至游戏中绑定动画预设作为自己的 avatar,理想情况下可以做到这样很酷的效果。 一般来说,这种采集成本意味着我们可以有某个状态的稠密观察(可以对场景扫描一圈),以补充我们对整个场景的信息认知,但对运动只有单视角的稀疏观察(只有单目视频可以用)。而对于具身应用来说,我们拥有的信息还有机械臂的 URDF、运动过程中的关节信息、以及大量良好标注的先验仿真数据集。从具身先验入手,这个问题可能会稍微好做一些。 并且我们希望我们的问题不是欠定的。例如稀疏 3DGS 重建类问题,大部分不可见视角依赖于生成模型的修补,这类方法虽然也有应用价值,但我们更希望能采集到足以恢复完整细节的信息,重建出高质量高保真的资产。 我们精读并梳理一些与这一目标相关的近期工作。 一. 骨骼动画级别的 Gaussian 重建与绑定 SC-GS: Sparse-Controlled Gaussian Splatting for Editable Dynamic Scenes (CVPR 2024) 本文算是 4DGS 结构化假设的起点论文,在这之前的 baseline 是 Deformable 3DGS。这篇论文的细节意外的相当数学相当有趣。SC-GS的输入是一个单(动态)视角视频,输出一组带权控制点及其运动和 Gaussians,可以由此合成为运动的 4DGS。 本论文的场景形态为一个 canonical 3DGS 场景和约 512 个控制点,每个 Gaussian 选取在 canonical 3DGS 空间中选取最近的 4 个控制点以 RBF 权重(作为蒙皮权重)插值它们的变换得到每个时间的位置。整体的训练思路仍然为 coarse-to-fine 的可微渲染。训练流程为: 准备初值:输入视频帧和对应的相机参数,生成一组 SfM 点云,再从这组点云中生成一组带有大小、颜色、透明度属性的、稀疏的控制点代理点云,作为粗训练阶段的代理物体;生成一组初始的 Gaussians,作为粗训练后加入 Gaussian 的外观优化阶段的初值。 粗训练 10k steps:训练一个点云随时间 deform MLP(输入为位置、时间,输出仅位移,无旋转),直接将点云 splat 到屏幕上的结果作为被监督信号,用可微渲染优化 deform MLP 并对点云做 prune & densify。这里还用了 ARAP 能量监督点云局部尽可能刚性变形,减少过拟合。优化合适的运动后(7.5k step)用最远点采样得到 512 个控制点,再继续优化控制点。 ...