1.摘要
我们引入了 NoPoSplat,这是一种前馈模型,能够从未设置的稀疏多视图图像中重建由 3D 高斯参数化的 3D 场景。 我们的模型专门使用光度损失进行训练,在推理过程中实现了实时 3D 高斯重建。
为了消除重建过程中对准确pose的需要,我们将一个输入视图的本地相机坐标锚定为规范空间,并训练网络来预测该空间内所有视图的高斯基元。 这种方法不需要将高斯基元从局部坐标变换到全局坐标系,从而避免了与每帧高斯和姿态估计相关的错误。
为了解决尺度模糊性,我们设计并比较了各种embedding方法,最终选择将相机内参embedding,并将其与图像token连接起来作为模型的输入,从而实现准确的场景尺度预测。 然后,我们利用重建的 3D 高斯函数进行新的视图合成和姿态估计任务,并提出了一个coarse-to-fine的pipeline来实现精确的姿态估计。
2.问题背景与相关工作
稀疏视角下的pose问题
可泛化三维重建中,当前sota的工作(包括pixelsplat,mvsplat)旨在使用前馈网络预测 3D 辐射场,无需按场景优化即可实现逼真的结果,但它们需要精确的相机pose作为网络的输入,一般来说,pose是利用SFM从密集采集的图片数据中估计得到的,比如colmap,但是,在稀疏视角的条件下,很难利用SFM方法得到稀疏视角图片的pose,故而进一步进行GS重建也是无从谈起!并且,依赖于SFM的pipeline,会大量增加推理训练的时间,而且,如果场景中含有无纹理或者纹理很少或者没有足够重叠的共视图片都会导致SFM过程的失败,进而也是无法GS重建!
几种当前工作的不足与我们的工作
最近的Dbarf,Flowcam,Hong et al., 2024等工作,将pose估计和3D场景重建整合起来,然而效果比sota的mvsplat(需要pose已知)差。性能差距源于姿态估计和场景重建之间交替的顺序过程,错误的pose使得重建退化,反过来又影响了pose估计。我们的方法证明完全不依赖相机姿势重建场景是可行的,从而消除了姿势估计的需要。然而,与 DUSt3R 不同,我们表明,可推广的重建网络可以仅在没有GT的深度信息的情况下使用光度损失进行训练,因此可以利用更广泛可用的视频数据。
在pixelsplat和mvsplat中,高斯球的坐标需要首先在局部坐标系(相机坐标系)下得到,然后再利用pose变换transform进世界坐标,最后再把所有高斯球堆(fuse)到一起。我们的做法是,直接把第一个view的坐标系作为规范坐标系(世界坐标系),所以避免了相机变换带来的误差以及重建质量的损失。与变换然后融合的pipeline相比,我们要求网络直接在规范空间内学习不同视图的融合,从而消除显式坐标系变换引入的错位。
我们在实验中观察到,pose-free方法在渲染新视角时存在显著的尺度不准确问题,我们后续发现,这和相机的焦距长度有关系,因为重建效果和图片质量相关,而图片质量受焦距影响!因此,我们设计并且比较了三种不同的方法用来编码相机内参,最后发现,把相机内参编码成为feature token然后和图片token进行concatenate就能使得网络很合理的预测scale,达到很好的效果。
mvsnerf,murf,pixelsplat各有千秋,但是这些基于几何先验的方法需要相机pose输入,并且输入视角之间要有重叠,相反,我们的网络基于vit,无需几何先验,效率更高,效果更好。最近的工作(wang,frahm)联合优化了pose和场景表达,但是需要一个粗略的初始化pose,另外,稀疏可泛化方法在推理的过程中需要pose,这是一个很大的挑战,因为这些姿势在测试期间在现实世界的应用中通常是不可用的。
虽然两视图pose估计方法(wang,edstedt)存在,但是他们在无纹理区域或者共视很少的情况下会失败。一些最近的新视角合成方法(lee,smith,hong)尝试两阶段来解决此任务:首先估计位姿,然后重建场景。但是这些方法落后于以pose作为输入的方法,因为初始化pose估计引入了噪声,也进而影响了重建质量。
我们的工作首先直接得到3dgs场景,然后再回头预测pose,避免了pose估计中的潜在噪声,还能更好的获得场景重建 ,一个之前的工作splatt3r也是在全局坐标系中得到了3dgs,但是依赖于一个冻结的mast3r,这在新视角合成中是不合适的,因为masr3r难以平滑地从不同的视角合并场景内容。另外,splatt3r需要深度GT,所以他不能用于没有深度GT或者相机pose的大规模视频数据。
对于位姿估计,我们先利用pnp得到一个粗略估计,然后,通过这个位姿渲染图片,再通过图片与GT的损失,回传到位姿进行优化。
我们的方法在 NVS 和姿态估计任务中都表现出色。 对于 NVS,我们首次证明,当在相同设置下对相同数据集进行训练时,无pose方法可以优于依赖姿势的方法,特别是当两个输入图像之间的重叠很小时。 在姿态估计方面,我们的方法在多个基准测试中显着优于先前的 SOTA。 此外,NoPoSplat 可以很好地推广到分布外的数据。 由于我们的方法不需要输入图像的相机姿势,因此它可以应用于用户提供的图像来重建底层 3D 场景并渲染新颖的视图。 为了说明这一点,我们将我们的模型应用于手机捕获的稀疏图像对,以及从 Sora 生成的视频中提取的稀疏帧(OpenAI,2024)。
3.方法
3.1问题设置
我们的输入是稀疏无pose图片一级对应的相机内参,其中V是视角数量,然后通过学习一个前馈神经网络,在规范空间将映射到3D高斯,以表达一个场景的几何与外观:
箭头右边表示一个高斯球的集合,每一个高斯球又括号里面的中心位置、透明度、旋转向量、尺度因子、k个自由度的球谐函数。
通过在大规模数据集上的训练,我们的方法可以推广到新的场景,而不需要任何优化。得到的标准空间中的3D高斯直接实现了两个任务:a)给定目标摄像机相对于第一个输入视图的变换,合成新的视图,以及b)不同输入视图之间的相对姿态估计。接下来,我们将介绍我们的整体流水线。
3.2pipeline
我们的pipeline如图2所示,包括三个主要组件:编码器、解码器和高斯参数预测头。编码器和解码器都使用纯视觉转换器(VIT)结构,而不注入任何几何先验(例如,PixelSplat中采用的核线约束(Charatan等人,2024),或MVSplat中的代价体(Chen等人,2024))。我们在实验中的结果显示,这种简单的VIT网络作为主干的pipeline表现,与结合了几何先验的pipeline效果相当或者更换更,特别是在输入视图之间内容重叠有限的情况下。这一优势源于这样一个事实,即这样的几何先验通常需要输入相机之间的大量重叠才能有效。
首先还是dust3r的基础架构:RGB图像被划分为多个patch,然后展平成为图像序列token,然后与内参token连接起来,最后送入vit里面的encoder,encoder共享权重,接下来,encoder输出的feature送入decoder,其中每个view的feature与其他view的feature做cross-attention,促进多视信息交互。
为了预测高斯参数,我们使用了两个基于DPT结构的head,第一个head关注高斯中心,第二个head预测其余参数,除了解码器特征,还输入了RGB图像,这种RGB图像快捷方式确保了纹理信息的直接流动,这对于在3D重建中捕捉到精细的纹理细节至关重要。这种方法补偿了VIT解码器输出的高级特征,这些特征被下采样16倍,这些特征主要是语义的,并且缺乏详细的结构信息。
3.3输出高斯空间的分析
虽然我们的方法与以前的工作(pixelsplat,GPS-Gaussian,splatter image)在预测输入图像的像素高斯方面具有类似的想法,但我们在输出高斯空间上有所不同。下面,我们首先讨论已有方法中的局部到全局的高斯空间及其固有的局限性,再介绍我们的标准高斯空间。
baseline:Local-to-Global Gaussian Space
先前的工作中,高斯基元的坐标关系是从Local-to-Global的,即对于每一个input view,首先预测每一个像素对应的深度(在dust3r的框架下,一个pixel对应一个3D点,自然就是一个高斯球的中心),然后利用这个深度以及相机内参将已经预测得到的高斯参数lift到高斯基元,注意,这个高斯基元是在local坐标系的,也就是这个input view下的,最后再将这个局部坐标下的所有高斯球利用相机外参R,t(也就是每一个视角的R,t)变换到global坐标系,这样,我们完成了整个场景的global坐标系下的重建。
简单来说,就是对于每一个view,都要完成先局部推理,然后再经过坐标系变换进全局坐标系下,这是一个很麻烦并且很难的过程
这样的做法会有两个问题:首先,对于一个Gaussian primitive来说,local2global的变换需要一组非常准确的相机pose,我们要解决的是稀疏视角下的重建问题,所以很难得到这样一个pose(前面介绍中也有提到)。第二,transform-then-fuse的方法很难将来自不同视角(也就是不同的local坐标系)的3DGaussian统一到同一个global坐标系下,特别是当输入视角的共视内容不多或者推广到out-of-distribution data时,如图5,6所示
图5可以看到target视角下渲染的效果和深度图,以及mvsplat和pixelsplat有畸变和偏移的区域
图6可以看到在out-of-distribution上各个模型的表现
Proposed: Canonical Gaussian Space.
我们的做法是:直接输出不同视角在一个规范坐标系统下的Gaussian,特别是我们约定第一个输入视角作为global坐标系,因此,第一个输入视角的pose可以表示为,其中U为单位矩阵,0表示平移矩阵,在这个规范坐标系下,神经网络输出所有input view的Gaussian。用公式记作,其中表示在视角v下任意像素对应的高斯参数,然后这个Gaussian是在view1下的坐标系中。我们再回头看看前面的公式1就可以发现不同:
直接在规范空间下进行预测提供了几个好处。首先,该网络学会了直接在规范空间内融合不同的view,消除了对相机pose的需求。其次,绕过变换然后融合的步骤导致了内聚的全局表示,这进一步解锁了对输入未设定的视图的姿势估计的应用。
这里遗留一个问题,Canonical Gaussian这一步具体到底是怎么做的,有待查看代码来了解补充!!
3.4相机内参的embedding
我们的网络输入还包括每个输入视图的相机内参 k。 这是解决固有比例失调并提供提高 3D 重建质量的基本几何信息所必需的(参见消融实验图 8 和表 5 中的“无内参”)。 我们引入了三种不同的编码策略,将相机内参注入到我们的模型中。我们比较了性能效果最终选择了intrinsic token Concat image token的方式。
Global Intrinsic Embedding - Addition.
简单粗暴地将内参送进线性层获得global特征,该特征在ViT的patch embedding层之后被广播并添加到RGB图像特征中。
Global Intrinsic Embedding - Concat
获得全局特征后,将其视为额外的内参token,并将其与所有图像token连接在一起。
Dense Intrinsic Embedding
对于任一view中的像素,我们计算它的相机光线方向,这里K是相机内参k的矩阵形式,然后这些光线使用球谐函数转换为高维特征,再concat到RGB图片作为神经网络的输入。这就是相机内参的像素级嵌入,请注意,像素级嵌入可以被视为广泛使用的PLUCKER射线嵌入(Dmv3d,Lgm)的简化版本,因为不需要相机外参。
3.5训练和推理
关于训练
我们的网络使用RGB图像的GT作为监督进行端到端的训练。我们follow了mvsplat的loss,使用MSE和LPIPS的线性组合,权重分别为1和0.05。
pose估计
为了进行有效的姿态估计,我们提出了一种two-step方法。 首先,给定世界坐标中的高斯球中心(也就是前面提到的pixel对齐的3D点),也就是给定了点云(PnP是点云方法),我们使用 PnP 和 RANSAC估计输入两个视图的初始相关相机位姿( 此步骤非常高效并且在几毫秒内完成)。 接下来,冻结高斯参数,我们通过模型训练中 SSIM 光度损失的一部分来优化前面的初始pose。一句话总结,pose估计是在训练好模型的情况下,初始化一个粗的pose,然后用模型渲染pose,然后用loss最小化来迭代,一直优化。
4.实验
我们按照(Charatan等人,2024;Chen等人,2024)中的设置,分别在RealEstate10k(RE10K)和ACID数据集上训练和评估我们的方法。RE10K主要包含室内房地产视频,而ACID则以无人机拍摄的自然场景为特色。两者都包括使用COLMAP计算的相机姿势。为了进一步扩大我们的模型训练规模,我们还将RE10K与DL3DV结合在一起,DL3DV是一个包含10K视频的户外数据集,它包括比RE10K更广泛的相机运动模式。
此外,对于zero-shot泛化,我们还在DTU(以对象为中心的场景)、ScanNet和ScanNet++(具有与RE10K不同的相机运动和场景类型的室内场景)上进行了测试。我们还展示了我们在野外手机捕获以及由文本到视频模型生成的图像方面的方法(OpenAI,2024)。
评价指标
我们使用常用的度量标准:PSNR、SSIM和LPIPS来评估新的视图合成。对于位姿估计,我们报告了累积位姿误差曲线下的面积,阈值为5◦、10◦、20◦
baseline
我们在新的视图合成方面与Sota稀疏视图概括方法进行了比较:1)需要pose:PixelNeRF(Yu等人,2021),AttnRend(Du等人,2023),PixelSplat(Charatan等人,2024),和MVSplat(Chen等人,2024);2)无pose:DUSt3R(Wang等人,2024),MASt3R(Leroy等人,2024),Splatt3R(Smart等人,2024),CoPoNeRF(Hong等人,2024)和Roma(Edstedt等人,2024)。对于相对位姿估计,我们也与2)中的方法进行了比较。
实现
使用 PyTorch,编码器是一个普通的 ViT-large 模型,patch大小为 16,解码器是 ViT-base。 我们使用 MASt3R 的权重初始化编码器/解码器和高斯中心头,而其余层则随机初始化。 请注意,如附录所示,我们的方法也可以仅使用 RGB 监督进行训练(无需 MASt3R 的预训练权重),并且仍能实现类似的性能。 我们以两种不同的分辨率(256 × 256 和 512 × 512)训练模型。
4.1实验结果于分析
1.新视角合成
如表1所示。 如图 2 和图 4 所示,NoPoSplat 显着优于所有 SOTA 无姿态方法。 请注意,DUSt3R(和 MASt3R)由于依赖于每像素深度损失而难以连贯地融合输入视图,Splatt3R 也继承了其冻结的 MASt3R 模块的限制。 另一方面,我们实现了比 SOTA 姿态要求方法有竞争力的性能(Charatan et al., 2024; Chen et al., 2024),甚至当输入图像之间的重叠很小时表现优于它们,如图 4 所示 第一行(图4左侧显示重叠率)。 这清楚地表明了我们模型在规范空间中的 3D 高斯预测相对于基线方法的变换然后融合策略的优势,如第 3.3.节中所讨论的。
2.相对位姿估计
我们的方法是在RE10K或RE10K和DL3DV的组合上训练的。表3表明,在涉及DL3DV的情况下,当扩展训练时,性能持续提高。这可以归因于RE10K上DL3DV中相机运动的更大变化。值得注意的是,我们的方法在ACID和ScanNet-1500上甚至显示出优越的zero-shot性能,甚至优于在ScanNet上训练的Sota方法Roma。这不仅表明了我们的姿势估计方法的有效性,而且还表明了我们输出的3D几何体的质量。下一部分验证了这一点。
3.几何重建
与SOTA的要求输入pose的方法相比,我们的方法还输出了显著更好的3D高斯和深度,如图5所示。仔细观察,MVSplat不仅在两个输入图像的相交区域(由蓝色箭头表示)中存在未对齐的问题,而且在没有足够重叠的区域(由洋红色箭头表示)中还存在扭曲或不正确的几何图形。这些问题在很大程度上是由于transform-then-fuse pipeline中引入的噪声。我们的方法直接在规范空间中预测高斯,解决了这个问题。
4.跨数据集的泛化性
我们还评估了模型的零样本性能,我们仅在 RealEstate10k 上进行训练,并将其直接应用于 ScanNet++(Yeshwanth 等人,2023)和 DTU(Jensen 等人,2014)数据集。 结果如图 6 和表 2 所示。 图 4 表明,与 SOTA 姿态要求方法相比,NoPoSplat 在分布外数据上表现出优越的性能。 这一优势主要源于我们网络结构中最小的几何先验,使其能够有效地适应各种类型的场景。 值得注意的是,即使在训练 Splatt3R 的 ScanNet++ 上,我们的方法也优于 Splatt3R。
5.In-the-Wild Unposed Images
我们的方法最重要的优点之一是它可以直接推广到In-the-Wild Unposed Images。我们测试了两种类型的数据:用手机随意拍摄的图像,以及从SORA生成的视频中提取的图像帧(OpenAI,2024)。图7中的结果表明,我们的方法可以潜在地应用于文本/图像到3D场景的生成,例如,人们可以首先使用文本/图像到多图像/视频模型来生成稀疏的场景级多视图(Gao等人,2024;OpenAI,2024),然后将这些提取的未定位图像馈送到我们的模型并获得3D模型。
4.2 ablation
1.规范空间的有效性
为了证明我们在规范空间fuse高斯的有效性,我们将其与pose要求方法通常使用的transform-then-fuse pipeline进行比较(Charatan等人,2024;Chen等人,2024)。具体地说,它首先预测每个局部摄像机坐标系中的高斯,该坐标系使用摄像机姿势转换到世界坐标系。
为了公平比较,这两种方法使用相同的网络主体和head。表5第(F)行中的结果表明,我们的no pose 规范空间预测方法的性能优于这种有姿势要求的策略。
图8显示出了变换然后融合策略导致渲染中的重影伪影,因为当变换到全局坐标时,它很难对齐两个输入视图的两个单独的高斯。
2.相机内参编码的有效性
我们展示了SEC中描述的三种内参编码。首先,我们可以在Tab5中看到行(B)和图8没有内在编码导致结果模糊,因为尺度歧义混淆了模型的学习过程。其次,我们注意到,在这三种尝试的内参编码中,intrinsic token始终执行得最好,因此,我们使用它作为默认的内部编码。
3.RGBShortcut的有效性
如3.2中所述,除了低分辨率的VIT特征外,我们还将RGB图像输入到高斯参数预测头中。如图8所示,当没有RGB快捷方式时,渲染的图像在纹理丰富的区域模糊。
4. 3 views
为了与baseline进行公平的比较,我们主要使用两个输入视图设置进行实验。在这里,我们通过在两个原始输入视图之间添加一个额外的视图,使用三个输入视图显示结果。如表5第(G)行所示,通过包含附加视图,性能显著提高。
5.conclusion
本文介绍了一种简单而有效的通用稀疏视图三维重建的无姿势方法。通过在标准空间中直接预测任意给定的未定位多视角图像的3D高斯分布,我们在新视角合成和相对姿态估计方面表现出了优越的性能。虽然我们的方法目前只适用于静态场景,但将我们的管道扩展到动态场景为未来的工作提供了一个有趣的方向。