【动态三维重建】4D Gaussian Splatting 用于动态场景重建(CVPR 2024)

题目4D Gaussian Splatting for Real-Time Dynamic Scene Rendering
项目:https://guanjunwu.github.io/4dgs/
论文:https://arxiv.org/pdf/2310.08528v2.pdf
来源:华中科技大学;华为


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


摘要

  动态场景的表示和渲染一直是一项重要但具有挑战性的任务。特别是为了精确地模拟复杂的运动,通常很难保证高效率。为了实现实时动态场景渲染的同时,具有较高的训练和存储效率,我们提出了4D Gaussian Splatting(4D-GS)作为动态场景的整体表示,而不是对每个帧应用3D-GS。在4D-GS中, 提出了一种新的同时包含三维高斯分布和四维神经体素的显式表示方法 。提出了一种基于HexPlane(六平面)的分解神经体素编码算法,可以有效地从四维神经体素中构建高斯特征,然后应用轻量级MLP来预测新时间戳下的高斯变形。4D-GS方法在高分辨率下实现实时渲染(RTX 3090 GPU上以800×800分辨率拍摄82帧),同时保持更好质量。
  


提示:以下是本篇文章正文内容,下面案例可供参考

一、前言

  新视角合成(NVS)是3D视觉领域的一项关键任务,目标是从任何期望的视点或场景的时间戳渲染图像,通常需要从几个2D图像精确地建模场景。动态场景在真实场景中非常常见,渲染很重要,但具有挑战性,因为复杂的运动需要用空间和时间上的稀疏输入来建模

   NeRF [22]通过使用隐函数表示场景,合成新的视图,利用体渲染技术[5]来连接二维图像和3D场景。然而,原始的NeRF方法需要承担很大的训练和渲染成本。虽然一些NeRF变体[4,6-8,23,34,36]将训练时间从几天减少到几分钟,但渲染过程仍然存在不可忽视的延迟

   最近的3D Gaussian Splatting(3D-GS)[14]通过将场景表示为3D高斯,显著地将渲染速度提高到实时水平。原始NeRF中繁琐的体渲染被高效的可微slats[46]所取代,它直接将三维高斯点投影到二维平面上。3D-GS不仅具有实时渲染速度,而且更明确地表示场景,使操作场景表示更容易.

  然而,3D-GS侧重于静态场景。将其扩展到动态场景是一个合理、重要但困难的主题。关键在于从稀疏输入中建模复杂的点运动 3DGS通过用类点高斯函数表示场景来保持自然几何先验。一种直接而有效的扩展方法是在每个时间戳[21]上构造三维高斯分布,但存储/存储成本会成倍增长,特别是对于长输入序列。我们的目标是在保持训练和渲染效率的同时构建一个紧凑的表示,即4DGS。 为此,我们提出用一个高效的高斯变形场网络来表示高斯运动和形状变化,其中包含一个时空结构编码器和一个极微小的多头高斯变形解码器只保持一组canonical 3DGS。对于每个时间戳,canonical 3DGS 将被高斯变形场转换为具有新形状的新位置。变换过程同时表示高斯运动和变形。需要注意的是,与每个高斯[21,44]的运动建模不同,时空结构编码器可以连接不同的相邻的三维高斯,以预测更准确的运动和形状变形。然后将变形的三维高斯按时间戳直接渲染图像。

  贡献如下:

1.对高斯 运动 和 形状随时间变化的建模,提出了一种高效的高斯变形场的4DGS框架。

2.提出了一种多分辨率编码方法,以连接附近的三维高斯特征,并利用一个高效的时空结构编码器构建丰富的三维高斯特征。

3.4D-GS实现动态场景的实时渲染:合成数据集下82FPS(分辨率800×800);真实数据集30FPS(分辨率1352×1014)

二、相关工作

2.1 动态神经渲染

  [3,22,48] 证明了隐式辐射场可以有效地学习场景表示和合成高质量的新观点。[24,25,28]挑战了静态假设,扩展了动态场景的新视角合成的边界。此外,[6]提出使用显式体素网格来建模时间信息,将动态场景的学习时间加速到半小时,并应用于[12,20,45]。所提出的规范映射神经渲染方法如图2 (a).所示[4,8,17,34,37]代表了通过采用分解的神经体素在快速动态场景学习方面的进一步进展。他们分别处理每个时间戳中的采样点,如图2 (b).所示[11,18,27,38,40,42]是处理多视图设置的有效方法。上述方法虽然实现了快速的训练速度,但对动态场景的实时渲染仍然具有挑战性,特别是对于单目输入。我们的方法旨在在图2.©中构建一个高效的训练和渲染管道,同时保持质量,即使是对稀疏的输入。

2.2 点云的神经渲染

   有效地表示3D场景仍然是一个具有挑战性的话题。该社区已经探索了各种神经表征[22],例如网格、点云[43]和混合方法。基于点云的方法[19,29,30,47]最初的目标是三维分割和分类。[1,43]中提出的一种具有代表性的渲染方法,将点云表示与体积渲染相结合,实现了快速的收敛速度。[15,16,31]采用差分点渲染技术进行场景重建。此外,3D-GS [14]以其纯显式表示和基于微分点的spalt方法而闻名,能够实时渲染新的视图。Dynamic3DGS[21]通过跟踪每个三维高斯分布在每个时间戳处的位置和方差来建模动态场景。利用显式表存储每个时间戳上的每个三维高斯数的信息,导致线性内存消耗增加,记为O(tN),其中N为三维高斯数量。对于长期的场景重建,存储成本将变得不可忽视。该方法的记忆复杂度仅取决于三维高斯函数的个数和高斯变形场网络F的参数,记为O(N + F)。[44]在原点三维高斯分布中加入一个边缘时间高斯分布,将三维高斯分布提升为4D。然而,它可能导致每个三维高斯分布只关注它们的局部时间空间。我们的方法也模拟了三维高斯运动,但与一个紧凑的网络,导致高效的训练效率和实时渲染。

三、Preliminary

3.1 3D Gaussian Splatting

  三维高斯[14]是一种点云形式的三维场景表示。每个三维高斯分布由协方差矩阵Σ和中心点X组成,称为高斯分布的平均值;对于可微优化,将协方差矩阵Σ分解为比例矩阵S和旋转矩阵R

在这里插入图片描述
利用投影变换的仿射近似的视角变换矩阵W和雅可比矩阵J,可以计算出摄像机坐标中的协方差矩阵Σ‘:

在这里插入图片描述

  每个三维高斯分布具有以下特征:位置X∈R3,颜色为球谐(SH)系数C∈Rk(k表示SH函数个数),不透明度α∈R,旋转因子r∈R4,比例因子s∈R3。渲染为所有高斯的α加权混合:

在这里插入图片描述

3.2 带有变形场的动态 NeRFs

  所有的动态NeRF算法都可以表述为:

在这里插入图片描述

  其中,M是一个将6D空间(x、d、t)映射到4D空间(c、σ)的映射。动态nerf主要遵循两条路径: canonical-mapping volume rendering [6,20,24,25,28]和time-aware volume rendering[4,8,9,17,34]。如图2 (a)所示,正则映射体渲染通过变形网络 ϕt:(x, t)→∆x 将每个采样点转换为规范空间。然后引入一个典型的网络 ϕx 来从每条射线中回归体积密度和与视图相关的RGB颜色。渲染的公式可表示为:

在这里插入图片描述
在这里插入图片描述

四、主要方法

4.1 4D Gaussian Splatting框架

  如图3,给定一个视图矩阵 M = [R,T],时间戳 t,4DGS框架包括三维高斯G和高斯变形场网络F。然后根据公式 I ^ \hat{I} I^=S(M, g’),新视图 I ^ \hat{I} I^由可微splat渲染,其中g’=∆g+g。

  体地说,三维高斯的形变∆g由高斯形变场网络∆g=F(g,t) 给出,时空结构编码器H可以编码的3DGS的时空特征 fd= H(G,t),和多头高斯变形解码器D可以解码特征和预测每个三维高斯的形变 ∆g=D(f)

  4DGS的渲染过程如图2 ©,给定时间 t,将原始的三维高斯G转换为另一组三维高斯g’ .

在这里插入图片描述

4.2 高斯变形场网络

4.2.1 时空结构编码器 Spatial-Temporal Structure Encoder

  邻近高斯具有相似的时空信息。时空结构编码器H,用于建模三维特征,包括一个多分辨率的HexPlane R(i, j)和一个微型MLP ϕd。虽然普通的四维神经体素会消耗内存,但我们 采用4D K-Planes 模块将四维神经体素分解为6个平面。某一区域内的所有三维高斯分布都可以包含在边界平面体素中,高斯变形也可以编码在附近的时间体素中,如图:

  每个体素模块定义为 :R ( i , j ) , i , j ∈ { ( x , y ) , ( x , z ) , ( y , z ) , ( x , t ) , ( y , t ) , ( z , t ) } . R(i, j), {i, j} ∈ {(x, y),(x, z),(y, z),(x, t),(y, t),(z, t)}.R(i,j),i,j∈{(x,y),(x,z),(y,z),(x,t),(y,t),(z,t)}.

将 4D 信息编码进 6 个二维体素平面。计算每个体素特征的公式如下:

在这里插入图片描述

  fvoxel∈Rh∗l 是神经体素的特征。“interp”表示用于查询位于网格的4个顶点上的体素特征的双线性插值。然后一个很小的MLP ϕd通过 fdd(fh 合并所有特征。

  

4.2.2 时空结构编码器

  采用单独的MLPs计算位置 ∆X=ϕx(fd、旋转 ∆r=ϕr(fd 和缩放 ∆=ϕs(fd 的变形。然后,变形特征(X、r、s)可以表示为:

在这里插入图片描述
最后得到变形的三维高斯分布 g’= {X’, s’, r’, σ, C}

4.3 优化

  文中采取了两阶段训练策略:静态场景初始化和变形场微调;

1.初始化阶段:主要优化静态场景的表示,即只优化 3D Gaussians 的参数;

2.微调阶段:主要学习变形场的表示,即优化多分辨率神经体素和 MLP;

  

通过静态三维高斯初始化,模型可以学习到高质量的运动部分的三维高斯分布

五、实验

  4D-GS 在合成数据集和真实数据集上都进行测试,并根据图像的分辨率和场景的复杂性评估了渲染速度。对于合成数据集,4D-GS 在 RTX 3090 GPU 上以 800×800 的分辨率实现了 70 FPS 的渲染速度;对于真实数据集,4D-GS 在 RTX 3090 GPU 上以 1352×1014 的分辨率实现了 36 FPS 的渲染速度。通过实验表明,4D-GS 在实现实时渲染的同时保持了高质量的渲染效果。

1.数据集

  1. 数据集

合成数据集:使用 D-NeRF 中的 8 个合成场景,包括 Hell Warrior、Mutant、Hook、Bouncing Balls、Lego、T-Rex、Stand Up、Jumping Jacks。

真实数据集:使用 Nerfies 和 DyNeRF 的真实场景

  

2 对比实验

  文中使用 PSNR、L-PIPS、SSIM 作为模型的评价指标,将 4D Gaussian Splatting 和 TiNeuVox-B、KPlanes、HexPlane-Slim、3D Gaussian Splatting 做了对比。定量结果见下表:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

定性结果如图:
在这里插入图片描述
在这里插入图片描述

3 消融实验

在这里插入图片描述


总结

提示:这里对文章进行总结:

  4D-GS 参考 D-NeRF(或 Nerfies)中的 deformation,在 3D-GS 的基础上引入变形场来建模三维动态场景。变形场在每个时间戳将 Gaussians 变换到一个新位置,来模拟场景内元素的运动和形变。

* 一些demo

1.D-NeRF Datasets:

在这里插入图片描述
在这里插入图片描述

2.HyperNeRF Datasets:

在这里插入图片描述

3.真实场景:

在这里插入图片描述






d \sqrt{d} d 1 0.24 \frac {1}{0.24} 0.241 x ˉ \bar{x} xˉ x ^ \hat{x} x^ x ~ \tilde{x} x~ ϵ \epsilon ϵ
ϕ \phi ϕ

  • 31
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值