【三维重建】Flow Distillation Sampling:使用匹配先验的正则3DGS
标题:<Flow Distillation Sampling: Regularizing 3D Gaussians with Pre-trained Matching Priors>
项目:https://github.com/NJU-3DV/FDS
来源:南京大学;复旦大学;华为诺亚实验室
文章目录
- 摘要
- 引言
- 二、相关工作
- 2.1 基于3DGS的几何重建
- 2.2 渲染的先验正则
- 三、3DGS与辐射流(Radiance Flow)
- 四、Flow Distillation Sample (流蒸馏取样)
- 4.1 相机采样方案
- 4.2 Flow Distillation Sample Loss(流的蒸馏采样损失)
- 实验
- 深度渲染与新视角合成
- 网格提取
- 消融实验
- 局限性 vs 未来工作
摘要
三维高斯泼溅(3DGS)凭借快速的训练与渲染速度实现了卓越的渲染质量。然而其优化过程缺乏显式几何约束,导致在稀疏观测或缺失的区域中几何重建效果欠佳。本研究尝试通过将预训练的metching prior 引入3DGS优化流程来缓解该问题。我们提出蒸馏采样(FDS)技术,利用预训练的几何知识来增强高斯辐射场的精度。该方法采用策略性采样技术锁定输入视角邻近的未观测视角,通过匹配模型计算的光流(先验流)来引导从3DGS几何结构解析计算的辐射流(Radiance Flow)。在深度渲染、网格重建和新视角合成等任务上的综合实验表明,FDS相较现有最优方法具有显著优势。此外,我们的解释性实验与分析旨在阐明FDS对几何精度与渲染质量的影响,或可为读者理解其性能表现提供洞见。
引言
三维高斯泼溅(3DGS)已广泛应用于三维重建与渲染领域,涵盖静态场景的新视角合成、网格表面重建、逆向渲染以及动态三维重建。然而在观测不足的场景(如室内场景和无边界场景)中,辐射场优化常因对有限输入视角的过拟合问题(Li等人,2024年)导致几何重建结果不可靠且存在缺陷。
为缓解这一问题,DN-Splatter、Dngaussian等算法致力于将输入视图的几何先验信息融入训练过程,从而规范由3D高斯点表示的辐射场优化。例如DN-Splatter 将传感器深度与法线线索整合到重建流程中。然而传感器深度获取成本高昂,且基于单目深度预训练模型提取的深度先验信息不可避免地存在尺度模糊问题(Liu等人,2023b)。尽管法线先验能提供更优的几何细节,但由于其单目特性,尺度模糊问题依然存在。
与单目先验不同,pairwise matching priors 能够提供场景的绝对尺度信息。本文提出流蒸馏采样(FDS)方法,这是一种在线技术,用于将预训练光流模型中的 matching priors 蒸馏至 3DGS 的训练过程中。FDS旨在通过将匹配先验引入未观测新视角,提升高斯辐射场的几何质量。具体而言,我们用匹配先验模型生成的输入视角与未观测视角之间的光流( 即先验流 ),指导并优化从3DGS几何结构解析计算得出的光流( 即辐射流 ),从而改善3DGS重建质量。 更优的3DGS场景会催生更精确的先验流,在两种计算光流图之间形成良性循环 。即使在辐射场优化不足、训练期间未观测视角渲染图像模糊的情况下,该方法仍保持有效性。此外,本文提出相机采样方案,自适应控制输入视角与采样视角的重叠度,以优化先验流计算,从而更深入地利用先验几何知识,进一步提升3DGS重建质量。
提出的FDS方法已在MushRoom、ScanNet(V2版)和Replica数据集上针对几何重建任务进行了广泛评估。我们将FDS应用于两种常用基线方法——3DGS和2DGS。
三大贡献:
- FDS利用 matching prior 恢复绝对尺度,显著提升了高斯辐射场的几何质量。
- 提出了一种自适应相机采样方案,能有选择地选取与输入视图具有可控重叠度的未观测视角,进一步提升高斯辐射场在低观测区域的几何质量。
- 通过采用FDS和自适应相机采样方案,在最先进的三维几何重建方法中实现了显著改进。
二、相关工作
2.1 基于3DGS的几何重建
2.2 渲染的先验正则
三、3DGS与辐射流(Radiance Flow)
3D高斯泼溅采用一组三维高斯分布来表征三维场景,其中第i个三维高斯分布的表达式如下所示:
为像素 x x x渲染颜色时,采用了类似神经辐射场(NeRF,2021)的体积渲染方法:
c i c_i ci表示通过颜色特征 f i f_i fi对每个高斯点进行解码得到的色彩值, α ^ \hat{α} α^代表每个二维高斯点的混合权重(二维点是三维高斯点在图像平面上的投影)。 N N N为高斯点数量。同理,像素 x x x 的深度值通过alpha混合技术进行渲染:
d i d_i di表示目标相机到高斯点 P i P_i Pi的距离。我们还可以利用相机 m 、 n m、n m、n的位姿参数与高斯点 µ i µ_i µi的位置,渲染这两个视角间的辐射流。如上所述,通过对应深度信息及位姿变换,可将第 m m m视角图像中的像素 x = ( u 1 , v 1 ) x=(u_1, v_1) x=(u1,v1)投影至第 n n n视角:
接下来计算像素 x = ( u 1 , v 1 ) x = (u_1, v_1) x=(u1,v1)从视角 m m m到视角 n n n的 F m → n ( x ) F^{m→n(x)} Fm→n(x):
对于其他类型的高斯辐射场,例如2DGS,只需将基于alpha混合的深度 D ( x ) D(x) D(x)替换为相应的公式即可。
四、Flow Distillation Sample (流蒸馏取样)
给定一组图像{ I i I_i Ii} i = 1 , 2 , . . . N _{i=1,2,...N} i=1,2,...N,高斯辐射场通常采用以下损失函数进行渲染优化
B B B表示批量大小, L n L_n Ln代表来自(Huang等人,2024b)的正则一致性损失。然而当N较小时,这种表征方式容易出现过拟合问题(Li等人,2024;Paliwal等人,2024)。
4.1 相机采样方案
训练过程中,FDS会随机采样输入视角附近未被观察到的相机视角,然后将matching priors 融入这些视角。相机采样方案: 既确保足够的移动幅度以感知场景几何结构,又能避免因运动过于剧烈而导致先验模型难以匹配 。
给定第 i i i个输入视图的(世界坐标系)到(相机坐标系的变换矩阵) T i T_i Ti,施加微小平移扰动 t t t 和旋转扰动 R R R 后得到采样变换矩阵 T s T_s Ts:
E = [ R , t ] E = [R, t] E=[R,t] 表示(相机坐标系中的) 平移和旋转矩阵, t t t 是满足 ∣ t ∣ = ϵ t |t| = ϵ_t ∣t∣=ϵt 的平移向量 ( t = ( t 1 , t 2 , t 3 ) ) (t= (t_1, t_2, t_3)) (t=(t1,t2,t3)),这意味着未观测视角是沿着半径为 ϵ t ϵ_t ϵt的小spiral circle进行采样的。如(Bian et al., 2021)所述,image warping 中的rotation flow与 深度无关。因此我们将旋转部分设为单位矩阵,使 E E E成为纯平移变换。
图2中的平移半径 ϵ t ϵ_t ϵt,对所有视角使用统一半径会因深度差异导致 varying flows——深度越近,流场越大。为了在保持输入视角与采样视角间可控重叠度的同时,确保所有视角的流场一致性,我们希望实现深度自适应半径,其超参数可在不同类型数据集中共享。这有助于保持所有输入视角与其采样视角之间的相同流场。
根据公式(4),输入视角 i i i与采样视角 s s s之间的纯平移变换:
K K K为相机内参矩阵,求解上述方程后可得:
在我们的相机采样方案中设 t 3 = 0 t_3=0 t3=0,并假设相机内参为: f x ≈ f y = f f_x≈f_y=f fx≈fy=f。从输入视角 i i i 到其采样视角 s s s 的辐射流 F i → s ( u 1 , v 1 ) = [ u 2 − u 1 v 2 − v 1 ] F^{i→s}(u_1,v_1) = \begin{bmatrix} u_2-u_1 \\ v_2-v_1 \\ \end{bmatrix} Fi→s(u1,v1)=[u2−u1v2−v1]如下所示:
我们的目标是在每次相机采样期间,保持像素 x = ( u 1 , v 1 ) x = (u_1, v_1) x=(u1,v1)对应的 ∣ ∣ F i → s ( u 1 , v 1 ) ∣ ∣ 2 ||F^{i→s }(u_1, v_1)||_2 ∣∣Fi→s(u1,v1)∣∣2数值恒定,并设为 σ σ σ。与公式(10)结合,可以得到:
因此相机采样中,平移半径 ε t = σ D i ( u 1 , v 1 ) f ε_t = σ \frac {Di(u1,v1)}{f} εt=σfDi(u1,v1),有助于保持稳定的光流。 σ σ σ为超参,表示输入视图与其采样视图之间的平均辐射流。鉴于像素深度在单张图像内存在差异,采用图像的平均深度 D ˉ i \bar{D}_i Dˉi,并将平移半径设定为 ε t = σ D ˉ i f ε_t = σ \frac {\bar{D}_i}{f} εt=σfDˉi:
其中 ξ ∼ U ( 0 , 1 ) ξ ∼ U(0, 1) ξ∼U(0,1)表示训练过程中在[0, 1]区间内均匀分布的随机值。
4.2 Flow Distillation Sample Loss(流的蒸馏采样损失)
为优化第 i i i 视角的渲染效果,每次迭代在第 i i i 个输入训练相机附近采样一个未观测视角 s s s 渲染彩色图像 C s C^s Cs。由公式(5)引导的辐射流 F i → s ( p ) F^{i→s}(p) Fi→s(p) 得益于引入的匹配先验。先验流 F i → s F^{i→s} Fi→s定义为:
其中 M θ M_θ Mθ 为预训练网络, I i I_i Ii 是视角 i i i的RGB真值图像, C s C_s Cs是采样视角 s s s的渲染图像。我们发现相较于使用 C i C_i Ci生成先验光流,采用 I i I_i Ii 有助于消除 C s C_s Cs 中的悬浮伪影(如表4)。然而无论 F i → s F^{i→s} Fi→s 还是 F ˉ i → s \bar{F}^{i→s} Fˉi→s 都面临挑战:
- 由方程(5)推导出的 F i → s F^{i→s} Fi→s,由于高斯点定位不准确而导致结果不精确。
- 由方程(13)推导出的 F ˉ i → s \bar{F}^{i→s} Fˉi→s,则因 C s C^s Cs 的渲染质量模糊而存在缺陷。
尽管存在这些不准确性,我们观察到在训练过程中, F ˉ i → s \bar{F}^{i→s} Fˉi→s相较于 F i → s F^{i→s} Fi→s展现出更强的鲁棒性和精确性。受此现象启发,我们计划利用 F ˉ i → s \bar{F}^{i→s} Fˉi→s来优化 F i → s F^{i→s} Fi→s,这能使 F i → s F^{i→s} Fi→s 更为精准,从而提升高斯点的定位能力,并进而改善 C s C^s Cs 的渲染质量。这一优化过程同时也会使 F ˉ i → s \bar{F}^{i→s} Fˉi→s变得更加准确。基于这些观察,我们提出了 FDS 损失函数,该函数通过两种流量的相互精馏,从预训练的深度模型中提取匹配先验知识:
伪代码:
为保持训练稳定性并降低计算复杂度,我们在计算损失时将 F ˉ i → s \bar{F}^{i→s} Fˉi→s 从 $P_i $中分离。这种做法能阻止梯度传播——正如(Poole等人,2022年)所指出的,梯度计算会消耗大量资源且耗时。此外,这有助于确保 F ˉ i → s \bar{F}^{i→s} Fˉi→s 不会直接受到可靠性较低的 F i → s F^{i→s} Fi→s的影响。总体训练损失函数为:
实验
实验配置。FDS方法分别应用于 3DGS 和2DGS 。优化迭代次数为35,000次,在15,000次迭代后应用FDS方法,随后在25,000次迭代时为3DGS和2DGS同时添加法线一致性损失。所有实验中,FDS权重 λ f d s λ_{fds} λfds设为0.015,σ值设为23,法线一致性权重设为0.15。由于发现深度畸变损失会降低2DGS在室内场景的表现,我们移除了该损失项。所有数据集的初始高斯点云均通过Colmap生成。我们测试了使用Sea Raft(Wang等人,2025)和Raft(Teed与Deng,2020)对FDS性能的影响。鉴于ScanNet数据集存在模糊特性,需引入额外先验约束,因此默认在ScanNet(V2)数据集对渲染法线施加法线先验监督。该法线先验由Stable Normal模型(Ye等人,2024)对所有类型3DGS进行预测。整个框架基于PyTorch(Paszke等人,2019)实现,所有实验均在单张NVIDIA 4090D GPU上完成。
数据集。在Mushroom(2024年)、ScanNet v2 (2017年)和Replica(2019年)数据集上评估三维重建和新视角合成任务。数据集以室内场景为主,包含稀疏和密集的图像采样。Mushroom数据集是一个室内数据集,采用稀疏图像采样并包含两条不同的相机运动轨迹。我们在长采集序列的训练集上训练模型,并在长采集序列的测试集上评估新视角合成效果。选取了五个场景来评估我们的FDS系统,包括"coffee room"(咖啡厅)、“honka”(洪卡)、“kokko”(科科)、“sauna”(桑拿房)和"vr room"(VR室)。ScanNet V2 包含1,613个带有标注相机位姿和深度图的室内场景。我们从ScanNet(V2)数据集中选取5个场景,按照(Guo等,2022)的方法均匀采样十分之一的视图。为提升3D高斯泼溅(3DGS)的几何渲染质量,Replica数据集包含了小规模真实室内扫描场景。我们在Replica的五个场景(office0、office1、office2、office3和office4)上评估FDS系统,选取十分之一的视图进行训练。网格评估方面,我们采用精度、完整度、Chamfer-L1距离、法向一致性和F分数等评价指标。
深度渲染与新视角合成
Mushroom和ScanNet数据集的对比结果在表1和表2中。由于蘑菇数据集采样稀疏性,GOF(2024b)和PGSR(2024)表现较差,FDS在3DGS上"绝对相对误差"指标提升超过50%。研究发现Sea Raft(2025)在FDS上的表现优于Raft(2020),这表明更优的光流模型能带来更显著的改进效果。此外,得益于FDS中引入的跨视角一致性,RGB图像的渲染质量也略有提升:3DGS提升0.58,2DGS提升0.50。在蘑菇数据集上,添加FDS损失会使训练时间增加半小时,但仍与基线水平保持相当。同样地,采用Sea Raft 方法在ScanNet数据集上也展现出显著改进——2DGS的"绝对相对误差"指标提升近50%。
网格提取
采用Dn-splatter,从优化后3D高斯泼溅的输入视图中提取mesh,结果如表1所示。通过融合FDS技术,网格质量较基线方法获得显著提升,表现为漂浮物减少且形状定义更为清晰。
消融实验
几何匹配先验:将不同模型先验融入2DGS,包括单目深度估计模型(Depth Anything v2)、双视角深度估计模型(Unimatch)以及单目法线估计模型(DSINE)。我们采用Midas(Birkl等,2023)中的尺度与平移不变损失函数进行单目深度监督,使用L1损失函数实施双视角深度监督。默认光流模型选用Sea Raft(Wang等,2025)。Mushroom的对比结果如表3所示:法线先验能提供精确的形状信息,显著提升辐射场的几何质量;而受限于输入视角间特征重叠不足,多视角深度先验未能提供可靠的几何信息。经测试,多视角深度先验的平均"Abs Rel"指标为0.19,表现逊于原始2DGS的渲染结果。实验表明,单目深度提供的深度层级信息有效提升了重建精度。最终,我们的FDS框架在所有先验方法中表现最优,通过整合三类组件获得了最佳重建效果。
FDS消融研究:表4列出了FDS在Mushroom上的可选配置方案。基础模型是FDS+2DGS,如首行所示。当我们将式(13)中的 I i I_i Ii替换为 C i C_i Ci时(如第二行所示),2DGS的几何质量明显下降。使用 I i I_i Ii而非 C i C_i Ci有助于清除 C s C^s Cs中的悬浮伪影,这些伪影在 C i C_i Ci中同样存在。我们还尝试修改FDS损失函数:第三行实验采用相邻输入视图作为采样视图,并将相邻视图的渲染结果替换为其输入视图的真实图像。由于图像间存在显著位移,先验流无法准确匹配像素对应关系,导致几何质量进一步恶化。最后我们尝试固定采样视图,发现这会严重损害几何质量,这表明随机采样对维持先验流平均误差的稳定性至关重要。
解释性实验:为展示FDS系统中双流相互优化的过程,针对每个视角,我们对未观测视角进行多次采样以计算辐射流与先验流的平均误差。采用Raft作为默认光流可视化模型。真实光流基于数据集中的真实深度,通过公式(4)和公式(5)计算得出。在二维高斯系统优化过程中,我们在16000次迭代后引入FDS损失函数。图4所示的误差热力图表明:辐射流往往存在明显的几何误差,而先验流能更精确估算几何结构,有效规避浮动高斯点引入的误差。
局限性 vs 未来工作
首先,FDS系统在不同视角间光照差异显著的场景中面临挑战,如图5首排灯具所示。将曝光补偿纳入FDS框架可能有助于解决这一问题。此外,当前方法在反光表面和运动模糊情况下表现欠佳,容易导致匹配错误。未来我们计划探索FDS在单目视频重建任务中的潜力,届时每个时间步仅需单张输入图像。
#pic_center =80%x80%
d \sqrt{d} d 1 8 \frac {1}{8} 81 x ˉ \bar{x} xˉ D ^ \hat{D} D^ I ~ \tilde{I} I~ ϵ \epsilon ϵ
ϕ \phi ϕ ∏ \prod ∏ a b c \sqrt{abc} abc ∑ a b c \sum{abc} ∑abc
/ $$