当前位置:首页|资讯

渲染速度加快310%!AdR-Gaussian:利用自适应半径加速一切3DGS!

作者:3D视觉工坊发布时间:2024-09-18

来源:3DCV

添加小助理:CV3d008,备注:方向+学校/公司+昵称,拉你入群。

加入「3D视觉从入门到精通」知识星球,星球内凝聚了众多3D视觉实战问题,以及各个模块的学习资料:近20门独家秘制视频课程、最新顶会论文、计算机视觉书籍、优质3D视觉算法源码等。想要入门3D视觉、做项目、搞科研,欢迎加入!

0. 论文信息

标题:AdR-Gaussian: Accelerating Gaussian Splatting with Adaptive Radius

作者:Xinzhe Wang, Ran Yi, Lizhuang Ma

机构:上海交通大学

原文链接:https://arxiv.org/abs/2409.08669

1. 引言

新视图合成(NVS)旨在根据一组输入视图生成新视图的光照真实渲染结果,由于其在模型设计、自动驾驶和虚拟现实等多个领域的广泛应用,已引起广泛关注。三维高斯溅射(3DGS)模型是一种最新的三维表示方法,它采用一组三维高斯椭球体来模拟三维场景,实现了复杂场景的高质量实时渲染。然而,高斯光栅化流水线因不必要的开销而受到限制,这些开销源于可避免的串行高斯剔除和由于不同像素要渲染的高斯数量不同而导致的不均衡负载,这限制了三维高斯的渲染速度,并阻碍了其更广泛的应用。

当前,高斯光栅化流水线存在不必要的开销和负载不均衡的问题,这主要与流水线中执行像素并行点基渲染的渲染阶段有关,原因如下:(1)串行剔除的不必要开销:在渲染阶段,溅射不透明度较低的高斯-像素对被串行剔除,但其中一些串行剔除可以并行执行,因此当前的剔除方法导致基于高斯序列的alpha混合性能显著下降。(2)像素线程间负载不均衡:由于渲染阶段并行计算每个像素的颜色,且每个像素要串行渲染的高斯数量不同,因此不同像素线程面临截然不同的负载(计算时间),这导致线程等待时间长且渲染效率低。现有方法通过减少高斯总数来加速渲染,牺牲了渲染质量,且未能有效解决上述问题,留下了进一步提升渲染速度的空间。

为解决这些问题,我们提出了AdR-Gaussian,该方法采用针对高斯溅射定制的无损早期剔除,通过自适应半径和轴对齐边界框来缩小每个高斯的渲染像素范围,并提出了一种负载均衡方法来最小化线程等待时间。我们的AdR-Gaussian包括两个阶段:早期剔除阶段和负载均衡阶段。首先,我们提出将渲染阶段中的部分串行剔除提前到预处理阶段进行并行剔除。在预处理阶段,我们并行地对每个高斯进行早期剔除,剔除溅射不透明度较低的高斯-瓦片对。具体而言,我们为高斯溅射提出了自适应半径和轴对齐边界框,以实现早期剔除,从而在不牺牲渲染质量的情况下加速高斯渲染。此外,为解决高斯渲染中不同像素线程间计算成本不均衡的问题,我们提出了一种像素线程的负载均衡算法。通过量化每个像素所需渲染的高斯数量方差,我们减少重载像素的高斯数量以减少线程等待时间,并增加轻载像素的高斯数量以弥补质量损失,从而实现更高的渲染效率。

2. 摘要

3D Gaussian Splatting (3DGS)是最近出现的一种显式3D表示,它实现了复杂场景的高质量重建和实时渲染。然而,由于可避免的连续高斯剔除,光栅化流水线仍然存在不必要的开销,并且由于跨像素渲染的高斯数量不同,负载不均匀,这阻碍了3DGS的更广泛推广和应用。为了加速高斯分布,我们提出了AdR-Gaussian算法,它将渲染阶段的部分串行剔除移动到更早的预处理阶段以实现并行剔除,采用自适应半径来缩小每个高斯分布的渲染像素范围,并引入负载平衡方法来最小化像素并行渲染过程中的线程等待时间。首先,我们提出在高斯并行预处理阶段基于自适应半径早期剔除低斑点不透明度的高斯瓦片对,这减少了通过高斯包围圆的受影响瓦片的数量,从而减少了不必要的开销并实现了更快的渲染速度。其次,我们进一步提出了基于轴对齐包围盒的早期剔除算法,通过精确计算2D方向上的高斯大小,更有效地减少了无效开销。第三,提出了一种像素线程负载均衡算法,该算法压缩负载重的像素信息以减少线程等待时间,增强负载轻的像素信息以避免渲染质量损失。在三个数据集上的实验表明,该算法能显著提高高斯分布的绘制速度。

3. 效果展示

我们的贡献如下:

• 我们提出了AdR-Gaussian,这是一种新颖的高斯溅射渲染加速方法,它将渲染阶段中的部分串行剔除提前到预处理阶段进行并行剔除,并在不同像素线程间实现负载均衡。

• 在高斯并行预处理阶段,我们基于自适应半径(定义为由最小溅射不透明度构建的椭圆的边界圆半径)对溅射不透明度较低的高斯-瓦片对进行早期剔除,从而在不牺牲渲染质量的情况下实现加速。

• 我们提出了针对高斯溅射的基于轴对齐边界框的早期剔除方法,该方法在水平和垂直方向上实现了不同程度的剔除,并进一步提高了剔除效率。

• 我们提出了一种像素线程的负载均衡算法,该算法减少了每个像素串行渲染的高斯数量方差,以减少线程等待时间并进一步加速渲染。

在三个数据集上的实验表明,我们的方法显著提高了高斯溅射的渲染速度,平均加速比为310%,同时实现了相当或更优的渲染质量。具体而言,在Mip-NeRF360数据集的复杂场景中,我们的方法在单个NVIDIA RTX3090 GPU上达到了平均590FPS的渲染速度。

5. 方法

我们的方法在保持相同或更高质量的同时,显著提高了3D高斯溅射模型的渲染速度。这一性能的关键在于基于投影高斯自适应半径的无损早期剔除高斯-瓦片对,通过移除溅射不透明度低的瓦片来缩小每个高斯的渲染范围。此外,我们还提出了一种负载均衡方法来进一步加速渲染。

我们的主要目标是减少高斯光栅化流水线的计算成本E,该成本可以分解为三种类型。在这三种成本中,渲染阶段的像素级并行成本E𝑝占比最大。这是因为像素并行渲染阶段在处理高斯时具有较高的串行度,即为了基于alpha混合计算像素颜色,需要顺序遍历对应瓦片内的所有高斯。因此,我们旨在通过将部分串行剔除提前到高斯并行阶段,并在并行像素线程之间平衡计算成本,来加速像素并行渲染阶段。推荐课程:实时400FPS!高精NeRF/Gaussian SLAM定位与建图。

如图2所示,我们的AdR-Gaussian流水线包括两个不同阶段:

阶段1:早期剔除。我们将渲染阶段的部分串行剔除提前到预处理阶段的并行剔除中。在预处理阶段,我们并行地对每个高斯进行早期剔除溅射不透明度低的高斯-瓦片对,从而减少后续阶段需要处理的高斯-瓦片数量。具体而言,我们提出了两种早期剔除算法:1)基于自适应半径(由最小溅射不透明度构建的椭圆的外接圆半径)对溅射不透明度低的高斯-瓦片对进行早期剔除;2)此外,我们还采用轴对齐边界框来提高剔除效率,实现更高的渲染速度。

阶段2:负载均衡。对于渲染阶段,由于每个像素的颜色是并行计算的,且不同像素线程的计算成本不均匀,因此整体效率在很大程度上取决于负载较重的像素线程。我们提出在像素线程之间平衡负载,减少重载像素的渲染高斯数量以最小化线程等待时间,并增加轻载像素的渲染高斯数量以防止质量损失,从而在保持相同或更高质量的同时实现更高效的渲染。

6. 实验结果

7. 总结 & 未来工作

在本文中,我们提出了AdR-Gaussian,这是一种针对3D高斯溅射(Gaussian Splatting)的加速方法,该方法在保持与基线(3DGS)相当甚至更高质量的同时,实现了310%的渲染速度。通过将渲染阶段中部分串行剔除操作提前到预处理阶段进行并行剔除,并平衡不同像素线程之间的负载以最小化线程等待时间,AdR-Gaussian能够显著加快高斯溅射的渲染速度。与目前最先进的3DGS快速渲染方法相比,我们的AdR-Gaussian表现出了更高的渲染效率。

对更多实验结果和文章细节感兴趣的读者,可以阅读一下论文原文~



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1