400倍加速!港科大PyGS:金字塔框架多尺度还原大规模场景细节

点击下方卡片,关注“3D视觉之心”公众号

第一时间获取3D视觉干货

>>点击进入→3D视觉之心技术交流群

还有什么阻碍大规模渲染?

神经辐射场(NeRF) 在处理大规模场景时面临细节丢失和渲染缓慢的挑战。尽管一些扩展NeRF的方法(如MegaNeRF[2]、BlockNeRF[3]和SwitchNeRF[4])试图解决这些问题,但由于频谱偏差和计算资源需求的限制,仍难以捕捉复杂细节和实现实时渲染。3D高斯散射(3DGS) 通过各向异性高斯实现了高质量、实时的图像渲染,但在大规模场景中面临整合不同尺度物体和初始化点云的困难。

早期的大规模场景表示主要依赖特征匹配和BA来重建稠密3D几何结构,但在扩展到大规模场景时会遇到伪影和有限的纹理质量问题。NeRF在3D场景表示方面表现出显著的改进,但在处理大规模场景时面临模型容量和计算资源需求的问题。分而治之的方法通过分解场景并为每个部分训练单独的NeRF网络,虽然提高了效果,但增加了计算复杂性和资源需求。

PyGS针对大规模场景的痛点

  • 不同尺度和不同视点的物体整合常常导致效果不佳,因为高斯需要在细节层次之间取得平衡。

  • 通过COLMAP从大规模数据集中生成初始化点既耗费计算资源,又容易产生不完整的重建。

引入了一种新颖的金字塔高斯散射框架,该框架有效地捕捉多尺度信息,并基于专门设计的加权网络自适应地渲染不同层次的场景细节。利用粗略训练的NeRF显著缩短了预处理时间并提高了性能。

99b8022ccb568b1a47e663ba136e79f5.jpeg

(大拇指往上滑,点击最上方的卡片关注我,整个操作只会花你 1.328 秒,然后带走未来、所有、免费的干货,万一有内容对您有帮助呢~)

具体方法

整体框架如图:11f96d079e8c5e6cdd78e09168387d35.jpeg

从NeRF初始化金字塔高斯

从NeRF生成点云

原始的3DGS方法利用COLMAP生成稀疏点云作为算法的初始步骤。然而,大规模数据集通常比典型的户外数据集大一个数量级。使用COLMAP进行稀疏重建所需的时间随着数据集的大小显著增加。此外,COLMAP在重建远离场景中心的点时存在困难,这严重影响了3DGS对远处物体的建模能力。相比之下,基于网格的NeRF方法提供了一种更高效和稳健的点云生成方法,其性能基本上不受训练集大小的影响。

基于这一洞察,首先在大规模场景上训练一个基于网格的NeRF模型,记作 。由于只需要NeRF模型捕捉场景的大致结构,这个训练过程可以加快,并在大约20分钟内完成。为了从训练好的NeRF模型 生成点云,从训练摄像机投射射线,并在每条射线的估计终止点(记作 )采样点。每个生成点的位置和颜色通过以下方式获得:

b084d9401c9a21ccd8b3433ac0be3c94.png

其中,和分别表示射线的起点和方向。从粗略的NeRF中采样个点以形成点云,记作。

多尺度点云采样

从点云中采样个子集,采样频率逐渐增加。具体来说,对于第个子集,从中随机选择个点。经验性地设置 ,其中表示第一个最稀疏子集中的点数。将选定的总点数记作。

初始化金字塔高斯

对于每个点子集,使用与3DGS中相同的方法初始化3D高斯,这导致了一个3D高斯集合的层次结构,本文称之为金字塔高斯,记作,其中表示从第个子云初始化的高斯。由于每个高斯的尺度由其最近邻的平均距离决定,随着初始化点数的增加,高斯的尺度逐渐减小。因此,金字塔高斯 自然形成了一个多尺度架构。较高的层(即较小的l)包含较大尺度的高斯,而较低的层包含较小尺度的高斯。

自适应渲染

簇级加权

在渲染金字塔高斯 时,根据视点自适应地评估每个层次高斯的贡献是至关重要的。图3展示了三种不同的加权策略:

  • 均匀加权:为同一层次内的所有高斯分配相同的权重

  • 唯一加权:为每个高斯分配不同的权重

  • 簇级加权:将高斯分组为簇,并为每个簇内的所有成员分配一个共享的权重

0d5d8c232808f7f5c7a3bc35c5834cf4.png

为同一层次的所有高斯均匀加权可能并不理想,因为适当的权重应反映每个高斯的具体特征,例如其与摄像机的距离和周围的几何复杂性。为每个高斯分配唯一权重可以提供更精细的渲染,但由于涉及的高斯数量众多,会带来巨大的计算成本。因此,选择了一种平衡的方案,将金字塔高斯分割成簇,并为每个簇分配一组独特的权重。该策略使能够考虑高斯的位置信息,同时避免了计算需求的显著增加。

采用高效的小批量均值算法从点云中建立个质心,记作 ,其中 表示第个质心。为了减少计算时间,仅对点云的一个子集应用均值算法。均值算法的持续时间大约为30秒。对于金字塔高斯 中的每个高斯,将其分配到集合M中的最近质心。对于第层的第个高斯,这个分配表示为:

b73e022df5d0b248c968cad93c2d957e.png

其中, 是离第层第个高斯的中心点最近的质心的索引,通过最近邻算法确定。这样,不同层的高斯属于同一个簇时,也构成了一个捕捉簇中心附近小区域的金字塔结构。

簇Embedding

簇的各种属性,如位置、局部几何和纹理,会影响每个层次的最优权重。为了更好地捕捉这些簇信息,为每个簇配备一个可学习的特征,称为簇Embedding ,其中代表簇的总数,是特征的维度。

加权网络

使用一个小型的多层感知器(MLP) 来确定每个簇的层级权重。加权网络的架构如图4所示。

33f78db6d6ec3eb61fab98ff6af20acd.png

对于从第个摄像机视点看到的第个簇,其层级权重计算如下:

276bdee769126fbb3f2da3dddd1b3ba9.png

其中,表示拼接操作, 是第个簇的特征向量,表示位置编码函数, 表示摄像机中心的坐标。对应于从第个摄像机视点看到的第个簇的第层的权重记作 。

外观感知渲染

为了渲染图像,使用与3DGS中相同的方法对所有高斯进行排序。为了简便,我们将排序后的高斯表示为序列 ,其中 是第个有序高斯。与 相关的颜色、不透明度、层次和簇索引分别表示为 、、 和 。

由于大规模场景建模经常遇到来自不同图像的光照变化问题,之前的研究考虑了外观嵌入向量以增加应对这些变化的适应性。然而,直接将这种策略整合到框架中可能并不可行,设计了一种有效的替代方案。结合了每个摄像机的外观嵌入和一个紧凑的MLP 来执行每个簇的颜色校正。这里, 表示摄像机的总数。第个高斯的颜色校正计算如下:

f0784f97fb262ffbcf89592a221fd1b3.png

其中, 表示第个高斯所属簇的嵌入,表示第个摄像机的外观嵌入。最终用于渲染的颜色通过以下公式确定:

0b4917036510e434a13c3be88608f998.png

其中, 是通过球谐函数计算的颜色, 是根据当前图像调整后的颜色, 是高斯的不透明度。

优化

与原始3DGS类似,使用一种逼真的损失函数进行优化,该损失函数是均方误差(MSE)和结构相似性指数(SSIM)的加权组合:

a70ebd18c8fddc5edc18dbcc50d29c7a.png

其中, 是平衡两个损失项的超参数, 是像素的真实颜色。

使用与3DGS相同的分裂和克隆策略来进行密度控制。新分裂和克隆的高斯将保留在原始的层级和簇内。为了在整个训练过程中保持多尺度特性,定期重新评估并重新分配高斯的层级,以确保不同层级高斯的分布保持比例平衡。

实验效果

总体结果

  • Mill19和Urbanscene数据集:PyGS在PSNR、SSIM和LPIPS等所有评估指标上均优于基准方法

  • MatrixCity数据集:PyGS在合成场景的质量和渲染速度上显著优于基准方法,尤其在细节和背景建模方面表现出色

  • BungeeNeRF数据集:PyGS在处理多尺度挑战方面表现出色,效果优于当前最先进的方法

模型分析

  • NeRF初始化的有效性:与随机初始化和COLMAP初始化相比,基于NeRF的初始化方法生成了更密集的点云,并且在几何细节和背景建模方面效果更好。

  • 加权策略:自适应加权策略显著提高了渲染结果,尤其是在训练过程中比随机加权和无加权策略更稳定和收敛

  • 颜色校正的有效性:包含颜色校正网络显著提高了渲染质量,尤其在处理不同图像间的光照变化方面

  • 金字塔层级和初始化点数的影响:增加金字塔层级和初始化点数可以提高渲染质量,但会略微降低渲染速度。这表明更多的层级和点数能够捕捉场景的细节。

耗时分析

  • 预处理、训练和渲染时间:PyGS在预处理、训练和渲染时间方面均优于MegaNeRF和原始3DGS方法。虽然COLMAP初始化的3DGS训练时间略短于PyGS,但生成点云的时间较长,影响了整体效率

d5460c3fbbb516f96410d6afadc9e74f.jpeg 8a39810503a6058b244abee7f9a1d90e.jpeg 417c4cbb0b5e7f3de3c8704babd27ac4.png e87b85fbe125d53d3789186231451908.png 98ff1a220b84664f5980fd9aa98c02e8.png

总结一下

PyGS是一种新颖的金字塔高斯结构,在不显著增加训练和渲染成本的情况下:

  • 从NeRF模型初始化

  • 通过紧凑的加权网络和可学习的簇嵌入进行簇级加权 通过有效解决固有的多尺度挑战,在大规模场景建模中取得了显著进展。局限:对更大环境的建模需要大量的内存和计算资源。

参考

[1] PYGS: LARGE-SCALE SCENE REPRESENTATION WITH PYRAMIDAL 3D GAUSSIAN SPLATTING

[2] Mega-nerf: Scalable construction of large-scale nerfs for virtual fly-throughs

[3] Block-nerf: Scalable large scene neural view synthesis

[4] Switch-nerf: Learning scene decomposition with mixture of experts for large-scale neural radiance fields

投稿作者为『3D视觉之心知识星球』特邀嘉宾,欢迎加入交流!

【3D视觉之心】技术交流群

3D视觉之心是面向3D视觉感知方向相关的交流社区,由业内顶尖的3D视觉团队创办!聚焦维重建、Nerf、点云处理、视觉SLAM、激光SLAM、多传感器标定、多传感器融合、深度估计、摄影几何、求职交流等方向。扫码添加小助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

d9e50604d28ec1afcfbdc1da0c5bf2b9.jpeg

扫码添加小助理进群

【3D视觉之心】知识星球

3D视觉之心知识星球主打3D感知全技术栈学习,星球内部形成了视觉/激光/多传感器融合SLAM、传感器标定、点云处理与重建、视觉三维重建、NeRF与Gaussian Splatting、结构光、工业视觉、高精地图等近15个全栈学习路线,每天分享干货、代码与论文,星球内嘉宾日常答疑解惑,交流工作与职场问题。

aadea90a628188109fb79902d89ea5b8.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值