【三维重建】Octree-GS:基于LOD的3DGS实时渲染(TPAMI2025)
Octree-GS提出了一种基于八叉树结构的神经场景表示方法,通过分层组织锚点实现高效渲染。该方法将锚点组织为多级LOD结构,支持动态选择不同层级的锚点进行渲染,并引入渐进式训练策略优化细节。关键技术包括:1)基于观测距离和可学习偏置的锚点选择机制;2)自适应高斯控制策略,通过梯度阈值管理锚点增长;3)外观嵌入技术处理动态光照变化。实验表明,Octree-GS在保证实时渲染的同时,能有效处理大规模

标题:<Octree-GS: Towards Consistent Real-time Rendering with LOD-Structured 3D Gaussians>来源:上海交通大学;上海AI lab主页: https://city-super.github.io/octree-gs/
一、 Scaffold-GS
为高效管理高斯基元,Scaffold-GS [3]引入了anchor锚点,每个锚点都关联一个(描述局部结构的)特征。从每个锚点出发,系统会生成 k k k 个神经高斯函数,其生成方式如下:

x v x_v xv表示锚点位置,{ µ i µ_i µi}代表第 i i i 个神经高斯的位置, l v l_v lv是控制预测偏移量 O i O_i Oi的缩放因子。此外,不透明度、比例、旋转角度和颜色均通过对应的MLP网络,从锚点特征中解码。例如,不透明度的计算公式为:

f ^ v \hat{f}_v f^v 、 ∆ v c ∆_{vc} ∆vc和 d ~ v c \tilde{d}_{vc} d~vc 分别对应锚点特征、relative viewing distance 和相机方向。当这些属性被预测后,神经高斯分布将被输入基于tiles的光栅化器进行图像渲染。稠密化阶段,Scaffold-GS将锚点视为基础图元:当神经高斯梯度超过特定阈值时会生成新锚点,而平均透明度较低的锚点则会被移除。相较于传统3D-GS模型,这种结构化表征显著提升了系统的鲁棒性和存储效率。
*摘要
Octree-GS通过将锚点分层组织成八叉树结构,从多视角图像中学习神经场景。 每个锚点可生成不同类型的高斯基元,例如显式高斯[5][15]和神经高斯[3]。通过引入八叉树结构——该结构天然为重建和渲染过程引入LOD层级——OctreeGS能够动态选择对应LOD层级的锚点,从而确保训练与渲染过程始终高效运行,使其能快速适应复杂或大规模场景。

二、LOD-structured Anchors
1.锚点定义:按照Scaffold-GS ,引入anchor锚点(位于不同尺寸的稀疏均匀体素网格中心)来管理高斯基元。LOD 0 0 0 定义为最粗略层,随着LOD层级提升,能捕捉到更多细节。LOD设计具有累积性:在LOD K层级渲染的图像,rasterize
all Gaussian primitives from LOD 0 0 0 to K K K。此外,每个anchor都会被赋予LOD偏置∆L以考虑局部复杂度,并关联 k k k个高斯基元。更进一步,我们的框架可扩展支持多种类型的高斯基元,包括显式定义的具有可学习的特定属性(如2DGS或3DGS),也可从对应anchor解码生成神经高斯。
2.锚点初始化(稀疏SfM点P):首先,根据观测距离范围确定八叉树层级 K K K:首先计算每个相机中心 i i i 与SfM点 j j j 之间的距离 d i j d_{ij} dij,并定义第 r d r_d rd个最大距离 d m a x d_{max} dmax,以及第 r d r_d rd个最小距离 d m i n d_{min} dmin( r d r_d rd用于剔除异常,实验中通常为0.999)。 K K K的计算公式:

通过对应尺寸,对各层anchor进行体素化处理:

给定LOD 0 0 0对应最粗层的基础体素尺寸 δ δ δ,以及LOD L L L中初始锚点的 V L V_L VL。锚点属性及其对应的高斯基元也已初始化
3)锚点选择:为在实时渲染与高质量效果之间取得平衡,动态选取可见anchor。理想情况下,anchor应根据投影高斯的像素覆盖范围,从K个LOD层级中动态获取。实际应用中,我们简化为使用观测距离 d i j d_{ij} dij,因其在相机内参保持一致时与覆盖范围成正比。当内参发生变化时,通过应用焦距缩放因子s来等效调整距离。但研究发现,仅基于观测距离估算LOD层级存在不足,因此我们为每个anchor设置可学习的LOD偏置 ∆ L ∆L ∆L作为残差项,这能有效在推理过程中用更一致的细节补充高频区域——例如图13所示物体的锐利边缘。具体而言, 对于给定视角 i i i,任意锚点 j j j的对应LOD层级估算为:

d i j d_{ij} dij表示视点 i i i与锚点 j j j之间的距离。 Φ ( ) Φ() Φ()是clamp函数,用于将LOD level L ∗ i j L∗ij L∗ij的分数限制在 [ 0 , K − 1 ] [0,K−1] [0,K−1]范围内。渐进式LOD:Octree-GS采用累积的LOD level而非单一LODlevel,进行图像渲染。即当anchor的LOD level L j ≤ L ^ i j L_j≤\hat{L}_{ij} Lj≤L^ij时,将选择该锚点。如图3:迭代评估所有anchor并筛选,其发出的高斯基元会被传递至光栅化器进行渲染。

渲染过程中,为确保不同LOD层级间的平滑过渡且无明显伪影,采用[16][51]不透明度混合技术。通过相邻层级间的分段线性插值处理,有效消除LOD混叠现象。具体除满足条件的anchor外,还会筛选出符合 L j = L ^ i j L_j=\hat{L}_{ij} Lj=L^ij + 1$的近似anchor,其高斯基元同样会被传递至光栅化器,不透明度则按 L i j ∗ L_{ij}^* Lij∗− L ^ i j \hat{L}_{ij} L^ij的比例进行缩放。
三、自适应高斯控制
1) anchor增长:按照原始3DGS,基元的视空间位置梯度作为anchor稠密化的标准。按照scaffoldGS,新anchor在八叉树结构网格的未填充体素中生长(每T次iter后计算生成的高斯基元的平均累积梯度 ∇ g ∇g ∇g,超过阈值 τ g τ_g τg被视为有效,并转为新anchor,如果在空体素内的话)。在八叉树结构中,由此产生的问题是:这些新转化的anchor应被赋予哪个LOD层级:
在不同level 添加新anchor, 将具有极高梯度的高斯基元提升至更高level。设置阈值 τ g L = τ g ∗ 2 β L τ_g^L = τ_g∗2^{βL} τgL=τg∗2βL (默认 τ g τ_g τg=0.0002, β = 0.2 β=0.2 β=0.2) 。当 ∇ g > τ g L + 1 ∇g>τ_g^L + 1 ∇g>τgL+1时,处于 L L L level的高斯基元提升至 L + 1 L+1 L+1 level;若 τ g L < ∇ g < τ g L + 1 τ_g^L<∇_g<τ_g^{L + 1} τgL<∇g<τgL+1,则保持原有level不变。
利用梯度作为场景复杂度的线索来调整LOD偏置∆L: anchor的梯度定义为生成的高斯基元的平均梯度,记为 ∇ v ∇v ∇v。选择 ∇ v > τ g L ∗ 0.25 ∇v>τ_g^L∗0.25 ∇v>τgL∗0.25的anchor,并将相应的 ∆ L ∆L ∆L增加一个小量 ϵ :∆ L = ∆ L + ϵ ϵ:∆L=∆L+ϵ ϵ:∆L=∆L+ϵ(实验确定ϵ= 0.01)。
2)anchor 剪枝:为了消除冗余和无效anchor ,计算 T T T次训练迭代中生成的GS的平均不透明度.
漂浮物去除:图4(a)中的floater,源自于anchor在训练视锥体中未被选中和优化。本文引入“view-frequency”指标,即训练视锥中anchor被选中的概率(梯度直接相关)。将其低于 τ v τ_v τv(可见性阈值)的anchor移除,消除floate并降低存储占用。

四、渐进式训练
所有LOD level同时优化anchor会带来解释分解LOD级别渲染的固有挑战(所有LOD level都尽力渲染三维场景,难以分解)。渐进式训练,首先训练低分辨率层级的anchor上,并在优化过程中逐步激活更高分辨率level,,以补充细节。具体的,在 N i N_i Ni(表示第 i i i层分辨率level的训练次数)次迭代后迭代激活高分辨率level,激活前禁用下一level的growth。 设定 N i − 1 = ω N i N_{i−1}=ωN_i Ni−1=ωNi (希望粗粒度锚点在视点移动时仍能有效重建场景,因此投入更多时间学习整体结构。),其中, ω ≥ 1 ω≥1 ω≥1为增长因子。根据经验,从⌊K/2⌋ level开始训练以平衡视觉质量与渲染效率。
五、外观嵌入(Appearance Embedding)
3D-GS在大规模场景中,会由于相机自动曝光大导致平均训练图像的外观变化,容易产生伪影。本文借鉴了NeRF系列论文[57][58]的研究思路,引入生成式潜在优化(GLO)[59]来生成高斯基元的颜色。具体而言,我们为每个anchor引入可学习的个体外观编码,并将其作为颜色 MLP 的附加输入以解码高斯基元的颜色。这种设计使我们能够有效模拟具有动态外观变化的真实场景。此外,我们还能通过插值处理外观编码来调整环境视觉效果,如图12所示。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)