英伟达最新!SCube:仅用三张图,就能实现即时大规模三维场景重建

文摘   2024-11-16 07:00   中国香港  
学界在三维场景重建上可谓煞费苦心。谁不想重建出像“黑神话悟空”里一样真实的场景呢?为游戏平添了许多高级感!b站up团队“影视飓风”曾为了重建老君山,开了好几架无人机,花了整整一周采集数据,才把山重建出来。
来源:https://www.bilibili.com/video/BV1gF4m1u74D/?share_source=copy_web&vd_source=3c02362adfaf92cb2ff1d12c553dc123

想象一下,如果仅用三张图,就能实现大规模三维场景重建,是不是很nb?

最新英伟达团队就肝出来了!



 欢迎加入自动驾驶实战群




来源:https://research.nvidia.com/labs/toronto-ai/scube/

在此之前,前人已就 3D 场景重建做了许多相关的工作,主要聚焦于3D场景表示、稀疏视图3D重建、3D生成模型方面,具体如下:

(1)3D场景表示(3D Scene Representation):野外场景规模大且结构复杂,传统表示方法如三平面、密集体素网格或网格因容量或内存限制而失败。基于优化的重建方法虽使用高分辨率哈希网格,但神经网络推断存在困难。稀疏体素网格因高效稀疏神经算子在学习场景重建方面有效,高斯溅射实现了实时神经渲染,但现有混合表示未充分利用数据先验。本文提出的 VoxSplat 结合了稀疏体素层次结构和高斯溅射的优点,可直接推断重建。

(2)稀疏视图3D重建(Sparse-view 3D Reconstruction):稀疏视图图像缺乏传统重建方法所需的对应关系。一种方法是使用学习到的图像空间先验增强优化过程,另一种是使用前馈模型预测可渲染特征,还有在 3D 空间直接学习的方法能提高一致性和减少失真。本文输入来自同一装置且稀疏低重叠视图,更具挑战性,语义场景完成工作虽重建体素但分辨率低且无外观。

(3)3D生成模型(Generative Models for 3D):3D 重建可视为条件生成问题,对象的文本和单图像到 3D 生成已有探索,但扩展到大场景未被充分研究。一些方法通过递归应用图像生成模型修复 3D 缺失区域,但重建规模有限且模糊。XCube 是首个直接学习高分辨率 3D 场景先验的模型之一,本文在此基础上扩展,增加多视图图像条件并预测外观。

早期算法如立体匹配和 SfM 用于从图像数据恢复 3D 信号,近年来 NeRF 等方法通过拟合体素场增强了传统 SfM 管道,但存在逐场景优化耗时、无法利用数据先验及外推重建等问题。同时,深度学习方法在预测 3D 时也面临着如仅适用于低分辨率单物体、存在 3D 不一致性等局限。此外,尽管一些技术如高斯溅射和稀疏体素层次结构在特定方面有所进展,但仍存在不足。

鉴于现有方法的诸多问题,本文旨在提出一种新的方法 SCube,用于从稀疏的姿态图像集重建大规模 3D 场景(包括几何、外观和语义)。期望该方法能够克服现有技术的局限,满足以下要求:一是将重建推广到通用场景而非仅单一物体;二是在密集视图下产生准确、高质量重建,并在稀疏视图下利用数据先验生成合理重建;三是在处理大规模、高分辨率输入时快速且高效(运行时和内存方面)

英伟达实验室团队使用一种新颖的表示 VoxSplat 对重建的场景进行编码,VoxSplat 是一组支持在高分辨率稀疏体素支架上的 3D 高斯。为了从图像中重建 VoxSplat,文章采用了一个以输入图像为条件的分层体素潜在扩散模型,然后是前馈外观预测模型。扩散模型以粗略到精细的方式逐步生成高分辨率网格,并且外观网络预测每个体素中的一组高斯分布。从少至 3 个不重叠的输入图像中,SCube 可以在 20 秒内生成数百万个高斯,其中包含跨越数百米的 1024^3 体素网格。

SCube: Instant Large-Scale Scene Reconstruction using VoxSplats
https://arxiv.org/abs/2410.20030
https://research.nvidia.com/labs/toronto-ai/scube/

模型搭建

接下来一起看看SCube的流程吧~

SCube 分两步重建高分辨率 3D 场景,先重建场景几何,再预测场景外观,并可通过可选的后处理步骤提高输出质量。

(1)体素网格重建

以 XCube 为基础,通过将输入图像的 DINO - v2 特征提升到 3D 空间来实现几何重建:先使用预训练的 DINO - v2 模型提取输入图像特征,经处理后将特征通道拆分为常规特征和深度分布向量,通过特定策略将图像反投影到 3D 体素网格,构建条件输入并与 XCube 的潜在编码连接,作为扩散网络的输入,从而生成稀疏体素层次结构。

训练过程与 XCube 相似,先训练变分自编码器(VAE)学习稀疏体素层次结构的潜在空间,添加语义对数预测以辅助模型学习几何。然后训练扩散模型,采用包含扩散损失和深度损失的组合损失函数,深度损失用于监督深度分布向量,使模型能更好地权衡图像特征并正确放置到体素中。由于 XCube 的生成性质,即使部分 3D 数据不完整,模型也能学习数据先验生成完整几何。

(2)外观重建

在第二阶段,基于几何阶段生成的固定体素网格,通过预测每个体素中的一组高斯分布(VoxSplats)来建模场景外观。采用高斯溅射技术,将场景外观表示为高斯之和,每个高斯具有透明度、中心、协方差和颜色等属性。通过前馈模型预测高斯参数,限制高斯位置在支持体素邻域内,以保持几何结构,避免使用复杂的优化策略。

为捕捉远离预测几何的外观,从所有输入图像构建天空特征全景,将其视为扩展的单位球体并进行逆等距柱状投影。通过将全景像素投影到图像平面获取图像特征,应用天空遮罩确保聚焦于天空区域。渲染新视角时,通过采样天空全景并解码为 RGB 值获取背景外观,再与前景图像进行 alpha 合成。

通过 3D 稀疏卷积 U - Net 预测每个体素中的高斯参数,网络输入为几何阶段输出的稀疏体素网格,其中体素特征通过对输入图像进行处理和射线投射累积得到。天空全景模型使用相同图像特征,训练时通过特定损失函数监督外观模型,包括 L1 损失、SSIM 损失和 LPIPS 损失,以确保预测视图与真实视图在外观上的一致性。

(3)后处理及应用

直接从外观模型渲染的新视图可能存在体素化伪影或噪声,可通过可选的轻量级条件生成对抗网络(GAN)进行后处理。GAN 的判别器从输入稀疏视图图像采样图像块,并基于渲染图像生成的图像进行判别。在推理时为每个场景独立拟合 GAN,虽耗时但能有效提高图像质量,去除伪影和噪声(此为 SCube + 方法)。此外,还提出一种无需逐场景优化的通用后处理方法(SCube + *),使用 pix2pix - turbo 模型,能减少体素块伪影和解决图像内不一致问题,但会降低帧率。

SCube有广泛的应用场景,比如:(1)可以进行一致的 LiDAR 模拟:SCube 能够将稀疏视图图像转换为 LiDAR 点云,实现传感器到传感器的转换。通过利用模型输出的高分辨率高斯分布,对 LiDAR 射线进行光线追踪获取距离,由于重建场景的干净体素支架,可确保点云无浮动且与几何结构更好对齐,模拟的 LiDAR 序列能有效覆盖长距离并解析复杂几何结构。(2)也可用于从文本提示生成 3D 场景:首先训练一个多视图扩散模型(如采用 VideoLDM 架构),利用 CogVLM 自动大规模标注图像进行训练。训练完成后,将多视图模型输出输入 SCube,将 2D 观察提升到 3D 空间以实现新视图合成,生成的 3D 场景几何和外观符合输入文本提示及相应图像。

实验部分

接下来文章通过一些实验验证了SCube的有效性。数据集处理流程如图3所示。基于 Waymo Open Dataset 构建数据处理管道,包括 LiDAR 点云积累与语义标注、多视图立体算法重建点云及语义标签、添加动态对象点样本,最后裁剪为局部块用于训练和评估。

为评估方法在 3D 场景重建中的能力,遵循新视图合成任务的常见协议。给定输入多视图图像,渲染未来时间戳的新视图,并与真实帧对比,计算 PSNR、SSIM 和 LPIPS 指标。在大规模场景重建中,与 PixelNeRF、PixelSplat 等多种基线方法对比,如表1所示,SCube 在当前帧和未来帧的重建和预测任务中,在 PSNR、SSIM 和 LPIPS 等指标上均显著优于基线方法。

如图4所示,PixelNeRF 受网络表示能力限制,无法捕捉高频细节;PixelSplat 依赖输入视图重叠区域,在稀疏视图下表现差;基于多视图立体的方法无法实现极端新视图合成且难以恢复遮挡区域;DUSt3R 虽能学习合理位移,但存在缺失区域、不对齐和深度边界不准确等问题。而 SCube 能重建完整场景几何,准确且一致,生成高质量新视图渲染。如图5所示,通过与基于 Metric3Dv2 的方法对比,进一步证明了 SCube 在 3D 空间学习和表示几何的优势。

由于 SCube 生成的场景级 3D 高斯具有准确几何和外观,可用于初始化大规模 3D 高斯溅射训练,尤其在户外驾驶场景中,当结构光运动(SfM)因视点稀疏可能失败时,这种初始化方法非常有用。文中考虑并对比了三种初始化方法:随机初始化、Metric3Dv2 初始化和 SCube 初始化。文章选择第一帧视图,控制初始点数量,将后续帧纳入训练和测试,固定训练迭代次数和学习率,在 15 个静态场景中进行实验。结果如表2所示,SCube 初始化在平均指标上表现最佳,能提供准确的 3D 基础,缓解对训练视图的过拟合,证明了其作为初始化策略的有效性。

图 6 展示了一致的激光雷达模拟结果,其中模拟序列能够有效地覆盖远离输入相机位置的长距离范围,同时解析诸如建筑物、树木或电线杆等复杂的几何结构。

图 7 举例说明了文章的方法所实现的文本到场景生成能力,结果显示 3D 几何形状和外观遵循输入文本提示以及相应的图像。

在消融研究部分,文章将体素网格重建阶段的图像条件策略替换为普通方案(将相同特征广播到像素射线对应的所有体素),发现精细级体素网格的最终 IoU 从 34.31% 降至 30.33%,考虑体素语义预测准确性的 mIoU 从 20.00% 降至 16.61%,证明原策略能有效区分不同深度体素

文章对比了单阶段模型(同时预测稀疏体素和外观)和两阶段模型,单阶段模型在 PSNR/LPIPS(平均 T + 5 和 T + 10 帧)仅为 17.88/0.57,而两阶段模型为 19.34/0.48,且单阶段模型在几何质量(Chamfer 距离)上比两阶段模型差很多(高达 100 倍),表明两阶段模型能更好地利用不同类型模型。

文章还验证了外观重建阶段体素网格分辨率和每个体素中高斯数量(M)的影响。结果表明,更高分辨率的体素网格对捕捉详细几何至关重要,增加高斯数量仅略微提升性能,因此最终选择 M = 4。同时对比发现,基于 GAN 的后处理虽耗时,但能通过锐化渲染提高图像质量,对生成高质量图像有益。

讨论与展望

文章证明了SCube 是一种有效的前馈方法,能在数十秒内从稀疏非重叠图像预测高分辨率 3D 场景表示,在重建质量上优于现有方法。但当前方法不能处理复杂场景(如极端光照或天气下的动态场景),遮挡区域外观质量不确定,且依赖真实 3D 训练数据(并非总是可用)。未来计划通过结合更先进的神经渲染技术和探索生成训练数据的有效方法来解决上述局限性。

最后别忘了,帮忙点“在看”。  

您的点赞,在看,是我创作的动力。


AiFighing是全网第一且唯一以代码、项目的形式讲解自动驾驶感知方向的关键技术。


长按扫描下面二维码,加入知识星球。




Ai fighting
全网第一且唯一分享自动驾驶实战,以代码、项目的形式讲解自动驾驶感知方向的关键技术,从算法训练到模型部署。主要致力于3D目标检测,3D目标追踪,多传感器融合,Transform,BEV,OCC,模型量化,模型部署等方向的实战。
 最新文章