首页 > 其他分享 >SCube: Instant Large-Scale Scene Reconstructionusing VoxSplats

SCube: Instant Large-Scale Scene Reconstructionusing VoxSplats

时间:2024-12-04 12:02:58浏览次数:7  
标签:场景 Instant 网格 Scale 图像 VoxSplats 体素 重建 3D

1.Abstract:

        我们提出了SCube,这是一种从稀疏的设定图像集中重建大规模3D场景(几何、外观和语义)的新方法。我们的方法使用一种新的表示体素平面对重建的场景进行编码,体素平面是一组在高分辨率稀疏体素支架上支持的3D高斯分布。为了从图像中重建体素平面,我们采用以输入图像为条件的分层体素潜在扩散模型,随后是前馈外观预测模型。扩散模型以由粗到细的方式逐步生成高分辨率网格,外观网络预测每个体素内的一组高斯分布。从少至3个非重叠的输入图像,SCube可以在20秒内生成数百万个具有跨越数百米的1024^3体素网格的高斯图像。过去处理从图像重建场景的工作要么依赖于每个场景的优化,并且不能从输入视图重建场景(因此需要密集的视图覆盖作为输入),要么利用基于低分辨率模型的几何先验,这产生了模糊的结果。相比之下,SCube利用高分辨率稀疏网络,从少数视图中产生清晰的输出。我们使用Waymo自动驾驶数据集在3D重建上展示了SCube相对于现有技术的优势,并展示了其应用,如激光雷达模拟和文本到场景生成。

        !两个关键的模型:分层体素潜在扩散模型和前馈外观预测模型。其目的是利用输入图像的信息,逐步构建出体素平面的高分辨率表示,并对每个体素内的分布情况(通过高斯分布来描述)进行预测.

        只需要很少的非重叠输入图像,就能在很短时间内生成大量基于一个非常精细且覆盖范围很大的体素网格的高斯图像,这些高斯图像可以用来很好地描述三维场景等相关的内容

基础概念:

 VoxSplats 的概念,即基于稀疏体素支架的 3D 高斯表示

用 VoxSplats 表示场景,它是基于高分辨率稀疏体素支架的 3D 高斯混合,通过预测每个体素内的高斯分布来建模场景外观。这种表示方法在保持几何结构的同时,能够更好地捕捉场景细节

体素可以理解为 3D 空间的像素,是固定大小和离散坐标的立方块。稀疏体素支架则是一种对 3D 空间进行划分的结构,其中只有部分体素被使用,而不是整个空间都充满体素,这样可以节省存储空间和计算资源。

两个关键:

分层体素潜在扩散模型

  • 条件性:这个模型是以输入图像为条件的。这意味着模型的工作过程会利用输入图像中的信息作为引导或约束。例如,输入图像中的物体轮廓、颜色分布、纹理等特征都会影响模型对体素平面的构建。
  • 分层和潜在扩散机制:(侧重于模型内部的构建方式和信息处理过程)
    • 分层:模型是分层构建体素平面的。可以想象成是从一个比较粗糙的框架开始,逐步添加细节,就像盖房子先搭一个简单的框架结构,然后再逐步完善每一层的细节。这种分层的方式有助于系统地处理信息,先解决大的结构问题,再细化到小的细节。
    • 潜在扩散:“潜在扩散” 是一个比较复杂的概念。简单来说,模型在每一层的构建过程中,会让一些潜在的特征(比如体素的分布模式、空间关系等)逐渐扩散和明确。假设体素平面的最终形态是一个复杂的拼图,那么潜在扩散过程就像是先在拼图上勾勒出大致的图案区域(比较模糊的概念),然后逐渐把这些区域细化,让图案越来越清晰。
  • 由粗到细生成高分辨率网格:(侧重于最终输出的网格精度的变化过程)
    • 这个模型的输出结果是生成高分辨率网格。在开始的时候,生成的网格是比较粗的,可能只包含了体素平面的大致形状和主要结构。随着模型分层工作的进行,网格会越来越精细,能够表示出更多的细节例如,最初的网格可能只能区分出物体和背景,而到后面精细的网格可以表示出物体表面的纹理对应的体素差异。

前馈外观预测模型(前馈模型直接预测可用于渲染的特征

  • 前馈机制:前馈意味着信息是单向流动的,从输入到输出,没有反馈回路。这个模型接收前面分层体素潜在扩散模型的结果或者其他相关输入,然后进行下一步的处理。
  • 预测每个体素内的高斯分布
    • 高斯分布是一种概率分布,在这里用于描述每个体素内部的特征。例如,在一个彩色图像重建的体素平面中,高斯分布可以用来描述每个体素内颜色的概率分布情况。外观网络通过对输入图像等信息的处理,预测每个体素内的一组高斯分布。这组高斯分布可以帮助我们了解每个体素在颜色、材质等外观属性方面的可能性,从而更精确地重建出体素平面的外观

关于生成的结果

  • “生成数百万个高斯图像”:SCube 最终生成的结果是很多很多的高斯图像。高斯图像这里可能是指图像中的像素或者说体素(因为在三维场景相关的内容里,会从二维的像素概念延伸到三维的体素概念)的属性等是用高斯分布来描述的。比如说,每个体素可能会有对应的高斯分布来确定它的颜色、亮度、材质等方面的属性呀,通过这样很多很多个用高斯分布描述属性的体素组合起来就形成了类似高斯图像。而且数量超级多,达到了数百万个。

关于体素网格

  • “具有跨越数百米的 1024³ 体素网格”:这里是在进一步描述生成的这些高斯图像所基于的体素网格的情况。
    • “1024³”:这表示这个体素网格在三个维度(比如长、宽、高)上,每个维度都被划分成了 1024 个单元哦。就好像是一个超级精细的三维小格子组成的大网格呀,这样精细的划分可以让它能更准确地表示复杂的三维场景或者物体。
    • “跨越数百米”:说明这个由众多体素组成的网格所覆盖的实际物理空间范围是很大的,能达到数百米这么长的距离呢。比如说,如果是用来重建一个大型的户外场景,这个体素网格就可以涵盖很大一片区域。

2.核心工作

        1.分层体素潜在扩散模型:

利用基于 XCube2312.03806的条件潜在扩散模型,以输入图像为条件,重建一个带有语义逻辑值的稀疏体素网格。

SCube 使用 VoxSplats 表示场景,它是基于高分辨率稀疏体素支架3D 高斯混合,通过预测每个体素内的高斯分布来建模场景外观。这种表示方法在保持几何结构的同时,能够更好地捕捉场景细节,相比 XCube 的稀疏体素层次结构表示,在外观建模上更加精细。

  • 高分辨率稀疏体素支架:将 3D 空间划分为体素,但不是使用密集的体素网格,而是采用稀疏的方式,仅在需要表示场景信息的位置使用体素,这样可以节省存储空间和计算资源,同时能够表示大规模场景。例如在处理城市街道场景时,只有建筑物、车辆、道路等实际存在物体的区域才会使用体素进行表示,而空的区域则不占用体素。
  • 3D 高斯混合:使用多个 3D 高斯分布来描述场景外观。每个高斯分布具有特定的参数,如均值(决定高斯分布的中心位置)、协方差(决定高斯分布的形状和方向)、颜色等。在一个体素内,可能存在多个高斯分布,它们共同作用来表示该体素内的场景外观信息。比如在表示一个彩色物体表面时,不同颜色和材质的区域可能由不同的高斯分布来拟合。

SCube 在 XCube 的基础上进行了多方面改进:

重建效率与输入灵活性

  • 效率提升:SCube 能够在 20 秒内从少至 3 个非重叠的输入图像生成包含数百万个高斯分布且具有 1024³ 体素网格、跨越数百米的场景。相比之下,XCube 生成高分辨率场景(最高 1024³ 分辨率)虽能在 30 秒内完成,但未明确提及对如此少量非重叠图像的处理能力及在该条件下的具体效率优势。
  • 输入灵活性增强:SCube 可以有效处理少至 3 个非重叠输入图像,对输入图像的要求更低,灵活性更高。而 XCube 在输入图像数量及重叠情况方面的优势未得到突出体现。

场景表示与重建方法

  • 创新的 VoxSplats 表示:SCube 采用 VoxSplats 表示场景,基于高分辨率稀疏体素支架的 3D 高斯混合,通过预测每个体素内的高斯分布来建模场景外观。这种表示方法在保持几何结构的同时,能够更好地捕捉场景细节。例如,在外观重建阶段,通过固定几何阶段生成的体素网格,预测每个体素内的一组高斯函数的参数(如位置、协方差、颜色等),从而高效渲染出 3D 场景图像。XCube 则生成稀疏体素层次结构,通过分层的体素潜在扩散模型,在不同分辨率层次上对体素网格及其属性进行建模,其在外观建模的精细程度上不如 SCube 的 VoxSplats 表示。
        2.前馈外观预测模型 :

整体流程概述

        在 SCube 方法中,通过一个前馈网络来处理输入信息,以实现对场景外观(以 VoxSplats 表示)和天空全景的预测,进而达成快速准确合成新视角及其他应用的目的。整个过程涉及多个关键步骤,各步骤紧密相连,共同构建了高效的场景重建与应用体系。

前馈网络预测 VoxSplats 表示的场景外观(前景)
  1. 输入特征处理(Voxel + Image Feature)
    • 图像特征提取:首先,原始输入图像会经过一系列处理来获取图像特征。这可能涉及使用卷积神经网络(CNN)对输入图像进行特征提取操作,从而得到具有丰富语义信息的图像特征。这些特征能够捕捉图像中的颜色、纹理、边缘等信息,为后续场景外观的预测提供基础。
    • 体素特征获取与融合:同时,对于体素网格,会从几何阶段获取其相关信息,并将其与图像特征进行融合。在几何阶段生成的稀疏体素网格中,每个体素通过射线投射(Ray Casting)的方式从输入图像中获取对应的特征信息,即从每个图像像素向体素网格投射射线,将射线相交的第一个体素内积累图像特征,未被射线相交的体素则接收零特征向量。这样每个体素就融合了来自图像的特征信息,从而将 2D 图像信息与 3D 体素空间相关联起来。
  2. 前馈网络预测高斯分布(Sparse 3D UNet)
    • 网络结构与功能:融合后的体素和图像特征被输入到一个 3D 稀疏卷积 U - Net 网络中。这个网络在处理 3D 稀疏数据方面具有高效性,能够在保持稀疏性的同时有效地提取特征并进行计算。它通过一系列的卷积层、池化层和上采样层等操作,对体素特征进行逐步处理和转换。
    • 预测高斯分布参数:3D 稀疏卷积 U - Net 网络的输出是每个体素内的一组高斯分布参数,包括均值()、透明度()、尺度()、旋转()和颜色()等。这些参数定义了每个体素内的 3D 高斯分布,从而以 VoxSplats 的形式表示场景外观。例如,通过这些参数可以确定每个体素内高斯分布的形状、位置、颜色等属性,进而准确地描述场景中物体的表面形状、材质和光照效果等外观特征。
天空全景预测(背景)
  1. 天空特征全景构建(Pano. Encoding)
    • 特征提取与投影:为了捕捉远离预测几何部分的天空外观,模型会从所有输入图像中构建天空特征全景(Sky Feat. Panorama)。具体操作是,对于全景中的每个像素,通过其在单位球面上的笛卡尔坐标(由图像特征投影得到)获取对应的图像特征。在投影过程中,由于天空颜色仅由观察方向决定,所以会将相机姿态的平移部分置零,仅考虑旋转部分对天空颜色的影响。同时,为了确保全景仅关注天空区域,还会应用天空掩模(Sky Mask)。
    • 全景表示与存储:构建好的天空特征全景可以看作是一个扩展的单位球体表示,它存储了来自输入图像的天空相关特征信息,这些信息以一种适合后续处理和采样的方式进行组织,以便在合成新视角时能够准确地获取天空背景信息。
  2. 背景图像生成(2D Decoder)
    • 采样与解码:当需要合成一个新的视角时,对于每个相机射线(从新视角出发),通过等距柱状投影(Equirectangular Projection)计算其在 2D 天空全景上的像素坐标,然后通过三线性插值(Trilinear Interpolation)获取对应的天空特征,从而得到一个 2D 特征图。最后,使用一个 CNN 网络对这个 2D 特征图进行解码,将其转换为 RGB 颜色值,得到背景图像(Background Img)。这个背景图像将作为合成新视角时场景背景(天空部分)的外观表示,与前景图像(由 VoxSplats 表示的场景物体部分)相结合,共同构建完整的场景图像。
新视角合成(Novel View Rendering)
  • 前景与背景融合:在合成新视角时,首先通过 VoxSplats 表示的场景外观(由每个体素内的高斯分布参数确定),使用光栅化(Rasterization)或光线追踪(Raytracing)技术渲染出前景图像(Foreground Img),即场景中物体的部分。然后将其与通过上述天空全景预测得到的背景图像进行融合。

相关工作

3D 场景表示相关内容解释

  1. 现有 3D 场景表示方法的局限
    • 大规模复杂场景的挑战:现实世界中的场景通常规模较大且内部结构复杂。例如,一个城市景观场景包含众多建筑物、街道、车辆、行人以及各种自然元素,这些元素之间相互交织,形成复杂的空间关系和结构层次。这种复杂性对传统的 3D 场景表示方法提出了挑战。
    • 传统表示方法的问题:像基于三角平面(tri - planes)[12]、密集体素网格(dense voxel grids)[35] 或网格(meshes)[19, 45] 等表示方法,在处理大规模复杂场景时,由于需要存储大量的数据来描述场景的几何形状和外观信息,容易受到容量和内存限制的影响。例如,密集体素网格需要为每个体素存储信息,对于大规模场景来说,所需的存储空间会迅速增长,导致计算资源需求过高,甚至在实际应用中变得不可行。同样,网格表示在处理复杂拓扑结构时可能会遇到困难,并且在存储和处理大规模场景时也面临内存压力。
  2. 优化方法与高分辨率哈希网格的问题
    • 优化方法的需求:为了克服上述表示方法的局限性,一些优化方法被提出,如 [15, 31] 中的方法使用高分辨率哈希网格(high - resolution hash grids)[1, 32]。哈希网格通过哈希函数将 3D 空间中的点映射到一个固定大小的哈希表中,从而在一定程度上减少存储空间需求。
    • 神经网络推断的困难:然而,使用神经网络对高分辨率哈希网格进行推断并非易事。由于哈希函数的离散性和不规则性,神经网络在处理这种数据结构时难以有效地学习和提取特征。例如,神经网络在进行卷积操作或特征传播时,哈希网格的结构可能导致信息传递不顺畅,影响模型对场景的理解和重建能力。这使得在实际应用中,基于高分辨率哈希网格的优化方法在效率和准确性方面面临挑战。
  3. 稀疏体素网格与高斯溅射的优势
    • 稀疏体素网格的有效性:与密集表示方法不同,稀疏体素网格在学习场景重建方面表现出有效性。通过仅在场景中有意义的区域(如物体表面、关键结构等)使用体素进行表示,稀疏体素网格能够大大减少存储空间需求。例如,在一个室内场景中,只在家具、墙壁等物体占据的空间使用体素,而空的区域则不存储体素信息。这种稀疏表示方式结合高效的稀疏神经算子(sparse neural operators)[8, 53],使得模型能够在有限的计算资源下有效地处理大规模场景,提高了场景重建的效率和准确性。
    • 高斯溅射的实时渲染能力:高斯溅射(Gaussian splatting)[22] 是一种新兴的技术,它能够实现实时神经渲染。通过将场景表示为一系列高斯分布的叠加,高斯溅射可以在渲染过程中快速计算光线与场景的交互,从而实现高效的实时渲染效果。这种方法已经被应用于处理超大规模场景(overfitting large scenes)[64, 74],能够在保持较高质量的同时,满足实时性要求,例如在虚拟现实或实时 3D 游戏中展示大规模场景。
  4. 混合表示方法的不足与 VoxSplat 的优势
    • 混合表示方法的局限性:[30, 38] 中提出的方法使用了上述两种表示方法(稀疏体素网格和高斯溅射)的混合。然而,在这种混合表示中,体素网格或八叉树(octree)仅仅被用于规范高斯分布的位置,而没有学习到任何数据先验知识。这意味着这种方法没有充分利用数据中的统计信息和结构信息,无法从大规模数据中学习到场景的一般模式和特征,限制了其在复杂场景重建中的性能和泛化能力。
    • VoxSplat 的优势:与之相反,本文提出的 VoxSplat 表示方法具有独特的优势。VoxSplat 结合了稀疏网格的效率和高斯溅射的高表示能力,能够在直接推理过程中实现场景重建。通过学习大规模数据集中的信息,VoxSplat 可以适应稀疏视图图像的输入要求,仅从少量稀疏的图像中就能重建出高质量的 3D 场景。这种方法不仅能够有效地处理大规模场景的复杂性,还能够利用数据先验知识提高重建的准确性和效率,为 3D 场景重建提供了一种更强大、灵活的解决方案。例如,在处理自动驾驶场景中的大规模城市街道场景时,VoxSplat 可以根据稀疏的车载摄像头图像快速重建出精确的 3D 场景,包括建筑物、道路、车辆等元素的几何形状和外观信息,为自动驾驶系统提供准确的环境感知。

稀疏视图 3D 重建相关内容解释

  1. 稀疏视图图像的问题与传统方法局限
    • 对应关系不足:稀疏视图图像指的是从不同视角拍摄的数量较少且分布相对稀疏的一组图像。传统的 3D 重建方法(如文献中提及的 [43])通常需要大量具有足够对应关系的图像来准确恢复 3D 场景信息。然而,稀疏视图图像由于视角有限、重叠区域较少等原因,无法提供足够的特征对应信息,使得传统方法难以有效工作。例如,在基于立体匹配或运动恢复结构(SfM)的传统方法中,需要在多幅图像中找到同名点(对应关系)来计算 3D 坐标,但稀疏视图图像中这种对应点数量不足,导致无法精确重建 3D 场景结构。
  2. 解决稀疏视图问题的不同方法
    • 基于图像空间先验的优化方法:一种解决思路是利用学习到的图像空间先验信息来增强传统重建方法(如 NeRF)的优化过程。例如,深度信息 [9] 可以提供场景中不同物体的距离信息,法线贴图 [68] 可以描述物体表面的法线方向,而从生成对抗网络(GANs)[42] 或扩散模型 [61] 中获取的外观信息可以补充场景的纹理和细节等。通过将这些先验信息融入到优化过程中,可以在一定程度上弥补稀疏视图图像对应关系不足的问题,提高 3D 重建的准确性。
    • 前馈模型预测可渲染特征:另一种方法是使用前馈模型直接预测可用于渲染的特征。相关研究 [4, 6, 28, 56, 71] 通过构建特定的前馈网络结构,直接从输入的稀疏视图图像中学习并预测出能够用于生成 3D 场景表示(如体素、点云等)的特征。这种方法的优势在于可以快速得到结果,避免了复杂的优化过程,从而提高推理速度,适用于对实时性要求较高的应用场景,如实时 3D 建模或虚拟现实等。
    • 直接在 3D 空间学习:还有部分研究 [5, 13, 17, 66] 尝试直接在 3D 空间中进行学习,这种方法能够更好地保持 3D 空间中的一致性,减少因投影和转换带来的扭曲误差。通过直接在 3D 空间中学习和建模,可以更直接地捕捉场景的 3D 结构和几何关系,从而得到更准确的重建结果。例如,一些方法通过在 3D 空间中定义体素或点云表示,并利用深度学习模型学习其特征表示和几何关系,实现 3D 场景的重建。
  3. 本文方法的特点与挑战
    • 相似设置与更难挑战:本文的设置与 [13] 类似,输入图像来自同一设备(rig),但本文面临更大挑战。因为本文没有使用具有高重叠度的时间序列输入图像,这意味着在缺乏足够重叠信息的情况下,要从稀疏视图中准确重建 3D 场景更加困难。高重叠度的时间序列图像可以提供更多的对应信息和动态场景变化信息,有助于 3D 重建,而本文方法需要在更有限的信息条件下实现高质量的重建。
    • 与语义场景完成工作的对比:语义场景完成工作 [21, 25, 50, 60] 也涉及体素重建,但存在局限性。这些方法通常在较低分辨率下进行操作,并且主要关注场景的语义分割和部分几何重建,不涉及场景外观(如颜色、纹理等)的重建。相比之下,本文方法旨在实现更高分辨率、包含外观信息的 3D 场景重建,以提供更丰富、逼真的场景表示。

3D 生成模型相关内容解释

  1. 3D 重建的条件生成问题表述
    • 条件生成概念:3D 重建可以被看作是一个条件生成问题,即根据部分观测数据(如图像、点云等)来建模场景的分布,并生成完整的 3D 场景。这种建模方式需要考虑到观测数据与生成场景之间的关系,以及如何利用有限的观测信息生成合理、准确的 3D 场景表示。例如,给定一组从不同角度拍摄的图像,模型需要学习这些图像中包含的场景信息,并能够生成在未观测角度下的场景结构和外观。
  2. 对象级文本和单图像到 3D 生成的探索与局限
    • 对象级生成的研究现状:在对象级别的 3D 生成方面,已有许多研究 [17, 27, 37, 46, 54, 55, 59, 67] 对从文本描述或单张图像生成 3D 对象进行了探索。这些方法尝试根据输入的文本提示(如 “一个红色的立方体”)或单张图像中的对象信息,生成对应的 3D 对象模型。然而,这些对象级方法在处理大规模场景时存在局限性。
    • 面临的问题:由于对象级方法通常基于特定的假设和相对简单的数据表示,当应用于大规模场景时,会受到数据规模和场景复杂性的限制。例如,基于单图像的方法可能无法准确捕捉场景中多个物体之间的复杂关系和整体布局,而基于文本的方法可能在描述大规模场景时缺乏足够的细节和准确性。此外,对象级方法在生成复杂场景时,往往由于缺乏足够的场景先验知识,导致生成结果的质量和一致性较差,无法满足大规模场景重建的需求。
  3. 扩展到大规模场景的挑战与现有方法的不足
    • 任务的相对未探索性:将文本和单图像到 3D 生成任务扩展到大规模场景是一个相对较新且尚未充分探索的领域。与对象级生成相比,大规模场景具有更多的物体、更复杂的结构和更大的空间范围,这使得生成高质量的 3D 场景变得更加困难。例如,一个城市街道场景包含众多的建筑物、车辆、行人以及复杂的道路和交通设施,如何从文本或少量图像中准确生成这样复杂的场景是一个极具挑战性的问题。
    • 现有方法的问题示例:如 [47, 70] 等方法通过递归应用图像生成模型来填补 3D 场景中的缺失区域,但在大规模场景下,这种方法只能在有限的尺度内生成相对模糊的重建结果。由于缺乏对大规模场景结构和分布的有效建模,这些方法难以生成具有清晰细节和准确几何结构的大规模场景。
  4. XCube 模型及其扩展
    • XCube 模型的作用:XCube 模型 [39] 是较早直接学习高分辨率 3D 场景先验知识的方法之一。它通过对大规模 3D 场景数据的学习,能够捕捉到场景的一些基本特征和分布规律,为 3D 场景生成提供了重要的基础。例如,XCube 可以学习到不同类型场景(如室内场景、室外场景、城市景观等)中常见的物体布局、几何结构和语义关系等先验信息。
    • 本文对 XCube 模型的扩展:本文在此基础上对 XCube 模型进行了扩展,引入了多视图图像条件。这意味着模型在生成 3D 场景时,能够充分利用多个视角的图像信息,从而更准确地重建场景的几何结构和外观。通过结合多视图图像中的丰富信息,模型可以更好地理解场景中物体的形状、位置和相互关系,进而生成更逼真、高质量的 3D 场景。同时,本文方法还能够在生成几何结构的基础上,进一步预测场景的外观信息,使生成的 3D 场景不仅具有准确的形状,还具有真实的颜色、纹理等外观属性

3.效果展示

        1.数据集处理

        与基线方法相比,SCube + 合成的新视图。每个子图的插图展示了重建场景几何形状的自上而下的可视化效果(一种极端的新视图)。

        2.大规模场景重建

各基线方法的局限及所提方法的优势

  • PixelNeRF 受限于网络的表示能力,没办法捕捉场景中的高频细节。
  • PixelSplat 高度依赖输入视图中的重叠区域,在稀疏视图设置下适应性较差,从顶视图能看出它无法对真实的 3D 几何形状进行建模,只是把图像折叠成固定深度。
  • 基于多视图立体视觉的方法不能实现如鸟瞰图这类极端的新视图合成,也无法恢复高度遮挡的区域。
  • DUSt3R 虽因有效预训练能学习图像域中合理的位移,但存在缺失区域、对齐错误或者深度边界不准确等问题。
  • 相比之下,文中所提方法即便对于远距离区域也能重建完整的场景几何形状,既准确又能保持一致性,还能生成高质量的新视图渲染效果。

额外对比验证

        为更好地展示在 3D 中学习先验的能力,利用先进的度量深度估计器 Metric3Dv2 构建另一个基线,通过 2D 学习先验将图像反投影为点云,从图 5 可以看出,文中方法能重建出更完整、均匀且准确的场景,证明了直接在真实 3D 空间中表示和学习几何形状的优势。

3.消融实验

图 7:文本到场景生成。给定一个文本提示,我们可以生成各种多视图图像,并利用 SCube 将它们转换为 3D 场景。

外观重建:验证了在外观重建阶段体素网格分辨率以及每个体素中高斯数量(用表示)的影响。结果展示在表 3 中。发现,更高分辨率的体素网格对于捕捉精细几何形状至关重要,而使用更多数量的高斯只会略微提升性能。因此,将设为最终结果的适中取值。对比图 8 可以看出,基于生成对抗网络(GAN)的后处理虽然耗时,但通过锐化渲染效果,对生成高质量图像是有益的。

创新

  1. VoxSplat 表示:结合了高斯溅射(Gaussian splats)和稀疏体素层次结构(sparse-voxel-hierarchy),既能实现快速渲染,又能有效表示大规模 3D 场景的语义信息,支持从稀疏视图图像直接重建。
  2. 两阶段重建方法:将场景重建分为几何结构和外观预测两个阶段,分别使用高效的稀疏卷积网络实现,充分利用不同类型模型优势,提高重建质量和效率。
  3. 基于图像条件的几何生成:在几何重建阶段引入基于图像的条件生成,通过将图像特征提升到 3D 空间并有效处理遮挡,为 XCube 模型提供更准确的条件信号,提高几何结构预测的准确性。

贡献

  1. 提出 SCube 方法,为从稀疏图像进行大规模 3D 场景重建提供了一种高效、高质量的解决方案。
  2. 引入 VoxSplat 表示,创新地结合了两种已有技术优势,解决了现有方法在处理大规模场景时面临的一些问题,如内存限制和重建质量问题。
  3. 通过在多个应用场景(如 LiDAR 模拟、文本到场景生成)中的验证,展示了 SCube 方法的广泛适用性和有效性,推动了 3D 场景重建技术在相关领域的应用发展。

PS:

三维重建编码方式
  1. 体素编码(Voxel - based Coding)
    • 规则体素网格(Regular Voxel Grid)
      • 这是最基本的一种方式。将三维场景空间划分为均匀的小立方体(体素)。对于每个体素,可以用一个数值来表示其是否被占用(如在表示简单几何形状的场景中,被物体占据的体素标记为1,空的体素标记为0),或者用更复杂的属性来描述,比如颜色(RGB值)、材质类型等。例如,在一个简单的室内场景重建后,将房间空间划分为边长为1厘米的体素网格,对于有家具部分的体素,其属性可能包含家具的颜色、材质等信息;对于空的体素则标记为空属性。
      • 为了减少数据量,还可以采用稀疏体素表示。这种方法只存储被占用的体素信息,忽略空的体素。例如在一个大型的室外场景中,大部分空间是空气等空旷区域,通过稀疏体素表示可以大大降低存储成本。
    • 八叉树(Octree)编码
      • 八叉树是一种树状数据结构,用于在三维空间中表示场景。它是二叉树在三维空间的扩展。八叉树的根节点表示整个三维空间,然后这个空间被递归地划分为八个子空间(因此称为八叉树)。每个节点可以根据其子空间内是否包含场景内容(如物体部分)来决定是否继续划分。在编码时,通过记录每个节点的划分状态(是否划分、子节点的索引等)以及该节点所代表空间的属性(如是否被占用、平均颜色等)来表示场景。例如,对于一个复杂的机械零件的三维场景,靠近零件实体部分的八叉树节点会不断细分,以精确表示零件的形状;而远离零件的空间节点可能只进行较少的划分,从而有效地压缩了数据。
  2. 点云编码(Point Cloud Coding)
    • 直接存储点云(Direct Point Cloud Storage)
      • 对于三维重建后的场景,如果是以点云形式存在(由大量的三维点组成,表示场景中的物体表面等),最简单的编码方式就是直接存储这些点的三维坐标(X、Y、Z)。如果还需要表示点的其他属性,如颜色、法线方向等,可以在每个点的数据结构中添加相应的字段。例如,在一个激光扫描得到的古建筑三维重建场景中,点云数据包含了古建筑墙面、柱子等表面的点的坐标,以及这些点的颜色信息(通过扫描设备获取),这些数据可以按照一定的顺序(如按照扫描路径)直接存储。
      • 为了提高存储效率,可以采用一些压缩算法。例如,通过预测相邻点之间的坐标差值,利用差值来存储数据,而不是存储完整的坐标,在解压缩时再还原坐标。对于颜色等属性也可以采用类似的方法,如对颜色值进行量化和差值编码。
    • 基于几何特征的点云编码(Geometry - based Point Cloud Coding)
      • 这种方法是先提取点云的几何特征,如平面、曲面等然后对这些特征进行编码。例如,在一个室内场景的点云中,可以通过算法提取出墙面(平面特征)、天花板(平面特征)和家具的表面(曲面特征)等。对于平面特征,可以用平面方程(Ax + By + Cz+D = 0)和平面的范围(边界点坐标)来表示对于曲面特征,可以用多项式方程或者参数方程来表示。通过这种方式,可以更简洁地表示点云,并且在场景渲染等应用中,利用这些几何特征可以更高效地进行处理。
  3. 网格编码(Mesh Coding)
    • 多边形网格(Polygonal Mesh)
      • 对于三维重建后的场景,如果已经构建成多边形网格(如三角形网格或四边形网格),可以通过存储网格的顶点坐标、顶点连接关系(哪些顶点构成一个多边形)以及多边形的属性(如颜色、纹理坐标等)来进行编码。例如,在一个游戏场景的三维重建中,一个角色模型是由三角形网格构成的,需要存储每个三角形的三个顶点的坐标,以及这些顶点如何连接形成三角形,还可能包括每个三角形的纹理坐标,用于在模型表面贴上合适的纹理,使其看起来更真实。
      • 为了优化网格编码,可以采用网格简化技术在不影响场景视觉效果的前提下,减少顶点和多边形的数量。例如,通过合并距离较近的顶点、删除对场景形状影响较小的多边形等方法,降低数据量,同时可以采用一些高效的索引方式来存储顶点连接关系,提高数据访问效率。
    • 隐式曲面表示(Implicit Surface Representation)
      • 这种方法不是直接存储网格的几何形状,而是用一个函数来表示场景中的曲面。例如,使用符号距离函数(Signed Distance Function,SDF),对于空间中的任意一点,SDF可以计算出该点到最近曲面的距离(距离为正表示在曲面外部,距离为负表示在曲面内部)。通过存储这个函数的参数(如多项式系数等)来表示场景。在一些需要对场景进行变形、融合等复杂操作的应用中,隐式曲面表示具有很大的优势,因为可以通过对函数进行操作来实现场景的变化。
3D 高斯表示

3D高斯表示是使用大量的 3D 高斯函数来描述 3D 场景。每个 3D 高斯函数具有一些参数,例如:

  • 均值:一个三维向量,表示高斯函数的中心位置。
  • 协方差:一个 3x3 矩阵,描述了高斯函数的形状,决定了高斯函数在空间中的扩散程度。
  • 颜色:一个三维向量,表示高斯函数的颜色。
  • 透明度:一个标量,表示高斯函数对渲染图像的影响程度。

在 VoxSplats 中,这些 3D 高斯函数被放置在稀疏体素支架的每个体素上,或者说被 “支撑” 在体素上。通过预测每个体素内的高斯参数,来建模场景的外观。这种表示方法的优点包括:

  • 能够在保持几何结构的同时,更好地捕捉场景细节。
  • 利用稀疏体素支架,提高了存储和计算效率。
  • 避免了一些基于网格的表示方法中可能出现的问题,如处理动态场景或不同尺度物体时的困难。

例如,在 SCube 方法中,首先使用条件潜在扩散模型生成稀疏体素网格,然后在这个固定的体素网格基础上,预测每个体素内的一组高斯函数的参数(如位置、协方差、颜色等),这些高斯函数共同构成了 VoxSplats。通过这种方式,可以高效地渲染出 3D 场景的图像,并且能够处理从稀疏输入图像进行大规模 3D 场景重建的任务。

标签:场景,Instant,网格,Scale,图像,VoxSplats,体素,重建,3D
From: https://blog.csdn.net/weixin_61091146/article/details/143922894

相关文章

  • Language models scale reliably with over-training and on downstream tasks
    本文是LLM系列文章,针对《Languagemodelsscalereliablywithover-trainingandondownstreamtasks》的翻译。语言模型可以通过过度训练和下游任务可靠地扩展摘要1引言2为过度训练和下游任务制定缩放法3构建缩放试验台4结果:可靠的推断5相关工作6局限性......
  • 图像尺寸变换scalepadding方法
    在深度学习中,当需要将图像调整到特定尺寸时,直接resize可能会导致图像失真,特别是当目标尺寸与原始图像的宽高比不一致时。为了解决这个问题,一种最常见的方法是首先按照原始图像的宽高比将图像调整到与目标尺寸最接近的尺寸,然后在剩余的空间中使用padding进行填充,以得到目标尺寸......
  • Economies of Scale
    规模经济(EconomiesofScale)规模经济指的是随着生产规模的扩大,单位产品的平均成本下降的现象。这通常发生在企业生产规模增加到一定程度时,由于固定成本(如厂房、机器设备等)被更多的产品分摊,单位产品的固定成本降低,同时由于规模的扩大,企业可能会享受到采购原材料的批量 折扣、更......
  • CSC3100 Problem Scale & Subtasks
    RequirementsCode(90%)YoucanwriteyourcodeinJava,Python,C,orC++.Thetimelimitmayvaryamongdifferentlanguages,dependingontheperformanceofthelanguage.Yourcodemustbeacompleteexcutableprograminsteadofonlyafunction.Weg......
  • 【论文阅读】【IEEE TGARS】RRNet: Relational Reasoning Network WithParallel Multi
    引言任务:光学遥感显著目标检测-关系推理论文地址:RRNet:RelationalReasoningNetworkWithParallelMultiscaleAttentionforSalientObjectDetectioninOpticalRemoteSensingImages|IEEEJournals&Magazine|IEEEXplore代码地址:rmcong/RRNet_TGRS2021(g......
  • 2019-3-13-win10-uwp-使用-ScaleTransform-放大某个元素
    titleauthordateCreateTimecategorieswin10uwp使用ScaleTransform放大某个元素lindexi2019-3-1319:5:56+08002019-03-1316:50:36+0800Win10UWP本文告诉大家如何通过ScaleTransform放大元素放大一个元素的方法有很多个,通过ScaleTransform放大是比较清真的在UWP中Sc......
  • OpenWrt 运行 tailscale 登录 headscale,配置路由转发
    headscale安装参考:https://www.cnblogs.com/nihaorz/p/18455027tailscale安装cd/var/lib/curl-OLhttps://pkgs.tailscale.com/stable/tailscale_1.74.1_arm64.tgztar-zxvftailscale_1.74.1_arm64.tgzmvtailscale_1.74.1_arm64tailscalermtailscale/systemd/tails......
  • 异步实例化预制体Object.InstantiateAsync配合Async/Await使用
    Unity2022.3.20之后,可以使用异步克隆,正如前面一篇文章《Unity2022.3.20f1新功能,异步实例化预制体Object.InstantiateAsync》说明的那样,常规的使用携程方式异步克隆,但如今await/async写法如此简单方便,肯定就不想放IEnumerator里头去实现了,怎么办呢?实现一个,代码如下:publicGame......
  • Stable Diffusion-AI美女模特写真使用InstantID插件(附插件)
    ControlNet单元1:上传人脸定位照上传任意一张照片,它的作用是控制最终出图的人物脸部位置。我们可以和第一张图片一样。相关[参数设置如下:控制类型:选择"Instant_ID"预处理器:instant_id_face_keypoints模型:control_instant_id_sdxl控制权重:0.5左右(0.45-0.5)【第......
  • Python中,使用`sklearn.preprocessing`模块中的`StandardScaler`或`MinMaxScaler`可以
    在Python中,使用`sklearn.preprocessing`模块中的`StandardScaler`或`MinMaxScaler`可以对数据进行标准化或归一化处理。以下是如何对一个列表(list)中的数据进行标准化的示例:第一结合numpy###使用StandardScaler进行标准化(Z-scorenormalization)`StandardScaler`将数据转换为均值......