专栏名称: 3DCV
关注工业3D视觉、SLAM、自动驾驶技术,更专注3D视觉产业的信息传播和产品价值的创造,深度聚焦于3D视觉传感器、SLAM产品,使行业产品快速连接消费者。
51好读  ›  专栏  ›  3DCV

性能提升10倍 | 实时大场景渲染:3D高斯分层表示新突破

3DCV  · 公众号  ·  · 2024-06-21 11:00

正文

点击下方 卡片 ,关注 「3DCV」 公众号
选择 星标 ,干货第一时间送达

编辑:3DCV

添加小助理:dddvision,备注:方向+学校/公司+昵称,拉你入群。文末附行业细分群

扫描下方二维码,加入 3D视觉知识星球 ,星球内凝聚了众多3D视觉实战问题,以及各个模块的学习资料: 近20门视频课程(星球成员免费学习) 最新顶会论文 3D视觉最新模组 3DGS系列(视频+文档) 计算机视觉书籍 优质3D视觉算法源码 等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入!

读者理解

本文介绍了一种名为 Hierarchical 3D Gaussian 的方法,用于实时渲染非常大的数据集。该方法通过将场景分割成小块,并构建一个3D高斯体层次结构,有效地解决了现有方法在渲染大型场景时资源受限的问题。该层次结构不仅能够高效地渲染远处的物体,还提供了平滑的细节层次切换和视觉质量的优化。此外,该方法还通过分块训练和渲染技术,实现了对大型场景的并行处理,并能够在几小时内完成数万个图像的处理。最终,该方法能够在实时渲染的同时,提供高质量的视觉效果,并适应可用的计算资源,使捕获和渲染大规模场景成为可能。

论文信息

标题 AHierarchical 3D Gaussian Representation for Real-Time Rendering of Very Large Datasets
主页 https://repo-sam.inria.fr/fungraph/hierarchical-3d-gaussians/

创新点

  • 基于3DGS的新型层次结构
  • 优化层次结构的内部节点
  • 基于分块策略的 3DGS 训练和渲染

层次化LOD方法

层次化LOD方法,用于3DGS场景的渲染。

层次结构生成

为每个小块创建一个树形层次结构,其中包含内部节点和叶节点。定义了一种合并3DGS原始基元的方法,以创建层次结构的内部节点。内部节点和叶节点都使用 3D 高斯分布来表示,具有位置、协方差矩阵、SH 系数和不透明度等属性。使用AABB包围盒BVH来构建层次结构,并从叶节点开始递归地合并节点,直到根节点。

层次结构裁剪和级别切换

定义了节点粒度,即节点在屏幕上的投影尺寸。根据目标粒度选择合适的裁剪点,从而在质量和效率之间取得平衡。通过插值 3D 高斯分布的属性来实现不同层级之间的平滑过渡。通过优化子节点的旋转方向,避免在插值过程中出现不希望的旋转。使用特殊的方法来插值内部节点的不透明度,以保持与父节点的一致性。

如何优化和压缩 3DGS 层次结构

该部分主要探讨了如何优化和压缩 3DGS 层次结构,以提高视觉质量和渲染效率。

优化层次结构

  • 目标 :3DGS 层次结构是通过将几何基元进行聚合构建的,为了更好地考虑外观信息,需要进一步优化中间节点,从而提高层次结构的整体视觉质量。
  • 方法
    • 随机目标粒度 :在优化过程中,随机选择训练视图和目标粒度,而不是简单地使用下采样图像。这样可以确保节点在多个不同的层次上都被优化,从而保留更多的视觉细节。
    • 梯度传播 :为了同时优化子节点和父节点,并实现平滑的层次切换,需要将梯度正确地传播到层次结构的多个层级。
    • 避免不必要的旋转 :由于高斯函数的旋转轴可能存在歧义,直接插值可能导致不希望出现的旋转。因此,在层次结构生成过程中,需要对每个子节点的坐标轴进行重新解释,以最小化子节点与其父节点之间的相对旋转。
    • 目标粒度 :与传统 LOD 方法不同,本文的目标粒度是通过投影屏幕区域来定义的,而不是简单地基于距离。这允许在保持视觉细节的同时,对节点进行更精细的控制。
    • 优化策略
    • 抗锯齿 :为了解决 3DGS 方法在抗锯齿方面的不足,本文使用了 EWA 过滤器方案。

压缩层次结构

  • 问题 :层次结构会带来一定的内存开销,并且如果父节点的尺寸仅比子节点略大,则这些节点可能在训练过程中很少被选中,从而导致优化不足。
  • 方法
    • 稀疏化树结构 :通过标记叶子节点为相关节点,并删除那些尺寸过大或过小的节点,从而稀疏化树结构,提高优化效率。
    • 保留细节 :保留那些在最低目标粒度下仍然重要的节点,以确保层次结构中保留足够的细节信息。

总的来说 :通过优化和压缩层次结构,本文的方法能够在保持良好视觉质量的同时,提高渲染效率,从而实现实时渲染大规模场景的目标。

训练大规模场景

该部分主要介绍了如何使用分块优化策略来训练大规模场景,并解决稀疏数据带来的挑战

粗略初始化和分块划分

首先,对整个场景进行粗略的优化,以创建一个基本的支架和天空盒,为后续的分块优化提供背景细节。将场景划分为多个分块,每个分块的大小根据场景的捕获方式(步行或车载)进行设置。每个分块使用包含该分块或周围 2 倍范围内相机的图像进行训练。

分块训练

为每个分块创建一个天空盒,以捕获天空的效果,并防止不同分块之间出现不一致的天空内容。对分块外的粗略环境和天空盒进行临时优化,仅优化透明度和球谐系数。使用 3DGS 优化方法对分块内的内容进行优化,并使用正确抗锯齿方案。为了解决稀疏数据带来的挑战,将 3DGS 优化中的密度策略从基于屏幕空间位置梯度的平均值改为最大值,从而更好地控制基元的密度。使用单目深度估计和 SfM 点进行深度监督,以改善场景的重建质量,尤其是在道路上。

分块整合和渲染

将每个分块生成的 3D 高斯函数和层次结构进行整合,并删除那些不属于任何分块的基元。创建一个包含整个场景的根节点的全局层次结构。通过设置目标粒度阈值并找到相应的层次结构切面,进行实时渲染。

总结 :通过分块优化策略,本文的方法能够有效地训练大规模场景,并解决稀疏数据带来的挑战,从而实现实时渲染大规模场景的目标。

实现细节

该部分介绍了本文方法的实现细节,以及数据集捕获和预处理的过程

实现

基于3DGS的C++和 Python/PyTorch 实现进行开发,并修改了SIBR视频播放器以实现快速渲染。使用PyTorch的自动微分功能进行层次结构优化,并手动推导了公式12中的梯度。在层次结构优化过程中,使用stop gradient 操作符冻结叶节点的属性,避免对其进行优化。

数据集捕获和预处理

使用自行车头盔上安装的5或6个GoPro HERO6相机进行数据捕获。使用COLMAP进行相机姿态估计,并使用分层映射器和额外的分块捆绑调整步骤来提高处理速度和精度。包括曝光校正、移除运动物体(如汽车、自行车等)和去除人类以及车牌等步骤。

层次结构优化

由于合并后的高斯函数可能会导致α值大于1,因此在训练过程中使用绝对值激活函数来替代3DGS原有的指数激活函数。为了鲁棒性,在发生α值截断时将高斯函数的透明度梯度置为零。

总结 :本文方法的实现细节和数据处理过程都经过了精心设计,以确保能够有效地训练和渲染大规模场景,并实现实时渲染的目标。

实验结果

该部分展示了本文方法在四个数据集上的结果,并与其他方法进行了比较

结果

  • 实时导航 :补充视频展示了本文方法能够在捕获的大型场景中进行实时导航,并展示了不同区域和不同粒度设置下的渲染效果。
  • 数据集统计 :表1列出了四个数据集的统计数据,包括图像数量、距离、面积和相机数量。
  • 优化时间和内存使用 :表2列出了每个数据集的分块优化、单块优化和层次结构优化所需的时间、峰值内存使用量和磁盘大小。
  • 视觉质量 :虽然整体视觉效果良好,但仍然存在一些由稀疏数据和场景中的干扰物(如移动的汽车)导致的视觉伪影。

评估

  • 与其他方法的比较 :由于其他方法无法直接处理本文的大型场景,因此选择将本文方法在单个分块上的结果与其他方法进行比较。结果表明,本文方法在视觉质量方面优于其他方法,尤其是在处理稀疏数据方面。
  • 层次结构优化的影响 :表2显示,层次结构优化可以显著提高渲染质量,尤其是在使用较粗粒度设置时。
  • 性能分析 :表4和表5分析了本文方法的渲染性能,并与其他方法进行了比较。结果表明,本文方法的 LOD 机制可以有效地降低渲染负载和内存消耗,从而实现实时渲染。

消融实验

  • 消融实验 :通过去除一些算法组件,评估了每个组件对结果的影响。结果表明,层次结构整合、深度监督、分块捆绑调整、曝光校正和层次结构优化都对最终结果产生了积极的影响。

总的来说本文方法在四个大型数据集上取得了良好的结果,并与其他方法进行了比较,证明了其在实时渲染大规模场景方面的优越性。

总结

本文提出了一种名为“Hierarchical 3D Gaussian Representation”的方法,旨在实时渲染大规模场景。该方法利用 3D 高斯函数的层次结构来表示场景,并通过 LOD 机制实现高效渲染。为了处理大规模场景,该方法将场景划分为多个分块进行独立优化,并引入了深度监督和改进的密度策略来解决稀疏数据带来的挑战。实验结果表明,该方法能够实时渲染大规模场景,并取得优于其他方法的渲染质量。

本文仅做学术分享,如有侵权,请联系删文。

3DCV技术交流群

目前我们已经建立了3D视觉方向多个社群,包括 2D计算机视觉 大模型 工业3D视觉 SLAM 自动驾驶 三维重建 无人机 等方向,细分群包括:

2D计算机视觉: 图像分类/分割、目标/检测、医学影像、GAN、OCR、2D缺陷检测、遥感测绘、超分辨率、人脸检测、行为识别、模型量化剪枝、迁移学习、人体姿态估计等

大模型: NLP、CV、ASR、生成对抗大模型、强化学习大模型、对话大模型等

工业3D视觉:







请到「今天看啥」查看全文