专栏名称: 3D视觉之心
3D视觉与SLAM、点云相关内容分享
目录
相关文章推荐
archrace  ·  隈研吾、皮亚诺、Studio Gang ... ·  4 小时前  
扬州新闻广播  ·  2025扬马首批跑者友好酒店推荐名单来了! ·  21 小时前  
扬州新闻广播  ·  2025扬马首批跑者友好酒店推荐名单来了! ·  21 小时前  
文旅之声  ·  第四批国家级旅游休闲街区名单公布 ·  2 天前  
掌上长春  ·  今天起,吉林省这些人免门票 ·  2 天前  
51好读  ›  专栏  ›  3D视觉之心

2.6倍渲染加速的魅力!SEELE:一个通用的3DGS渲染加速框架

3D视觉之心  · 公众号  ·  · 2025-03-11 07:00

正文

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

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

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

Project链接 :https://seele-project.netlify.app/

Arxiv链接 :https://arxiv.org/abs/2503.05168

如何解决计算资源有限的问题?

3DGS作为一种新兴的重建和渲染技术,因其能高效渲染表现逼真,细节丰富的场景图像,在自动驾驶、虚拟现实、增强现实等领域展现出巨大的应用潜力。然而,基于3DGS的高质量实时渲染需要高性能的计算设备,这限制了其在计算资源有限的移动设备上的应用。例如,在使用移动设备Nvidia AGX Orin渲染真实世界场景时,3DGS仅能实现20帧的渲染速率,远不及一些VR游戏90帧的实时渲染性能要求。为此,我们分析了3DGS渲染管线中存在的瓶颈,并提出了一个通用的3DGS渲染加速框架SEELE,以实现在移动设备上的实时场景渲染。

在3DGS中,单个像素的渲染常常涉及整个场景下上千高斯点的计算,造成过高的计算密度。而现有的方法一般通过对减少整个场景的高斯数量以降低计算计算密度,但这也会降低渲染质量。因此,我们提出了 混合预处理 方法,通过引入 视角依赖的场景表达 ,在每次渲染时根据视角动态加载和渲染必要的高斯,而不处理视角无关的高斯。此外,我们基于这样的场景表达设计了异步加载策略,以保持渲染实时性并降低GPU内存的占用。此外,3DGS的光栅化过程也存在大量的计算冗余。根据我们的实验,渲染单个像素时,1.5%的高斯点对最终像素值的贡献可以达到99%,但3DGS的渲染管线对不同贡献度的高斯点都执行相同的光栅化流程。基于此,我们提出了 贡献感知的光栅化方法 ,计算不同高斯点的贡献度并跳过不重要高斯点的计算。为了将我们的方法与3DGS渲染管线更好地结合,我们提出了一种微调策略以优化我们的场景表达。实验证明,在微调之后,我们的方法可以实现比基线更高的渲染质量。

通过以上的优化,SEELE能够有效降低3DGS的计算冗余和内存开销,并兼容多种不同的3DGS渲染管线。根据我们的实验,SEELE能够在保证渲染质量的基础上实现2.6倍的渲染加速,并减少32.3%的运行时模型大小。

主要贡献 : 1)我们引入视角依赖的场景表达,并提出相应的混合预处理与异步加载方法以降低计算和内存开销。 2)我们提出贡献感知的光栅化算法,动态优化不同贡献度高斯点的计算资源分配,提高渲染效率。 3)我们设计了联合训练流程以融合我们的不同优化方法,在提升渲染效率的同时得到了更高的图像渲染质量。

SEELE框架

我们的加速框架SEELE如图所示,其包括混合预处理和贡献感知光栅化两个模块。在混合预处理模块中,我们将设计了视角依赖的场景表达,根据高斯对不同视角的贡献分为多个簇。渲染时,SEELE只需要异步加载视角渲染需要的高斯,删除不重要的,包括在视锥内但与当前渲染不相关的高斯。在感知贡献光栅化模块中,我们的光栅化管线将多个像素组织为一组。运行时,每个像素组首先计算中心像素的高斯透明度,以判断每个高斯对像素组的贡献度。对像素组的贡献低于阈值的高斯将不会参与后续的光栅化计算。最后,我们通过联合训练结合不同的模块,并提高最终的图像渲染质量与效率。

混合预处理

视角依赖的场景表达 :在渲染真实世界场景时,我们注意到相近的视角渲染需要的高斯比较一致,而差异较大的视角渲染需要的高斯差别较大。基于此,我们将场景高斯分为共享高斯与独立高斯。共享高斯代表在所有视角中都要参与渲染的高斯,独立高斯则代表只参与部分特定视角渲染的高斯。我们可以根据视角将高斯分为多个簇,如图所示。其中黄色簇为共享高斯,其他颜色簇为不同的独立高斯。

聚类策略 :为了判断共享高斯与独立高斯,我们随机采样摄像机视角并基于位置和方向聚类得到N个簇。在每个簇中,我们通过寻找和保留每个像素渲染时前k个贡献最大的高斯得到相应的高斯簇。最后,我们将所有簇中贡献最大的高斯的集合作为共享高斯,将其余高斯作为独立高斯。

预处理算法 :给定相机位姿,我们的方法寻找与其最近的簇,并选择该簇与其M个相邻簇的所有高斯用于渲染。在渲染时,我们仅仅加载视角相关的高斯,且共享高斯由于被所有视角使用,将一直保存在GPU内存中。加载完成后,我们通过继续执行视锥剔除,投影与相交检测等与处理流程。







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