Transcription
那么,在我们的下一场会议中,我们将进行一场关于 3D 高斯溅射的精彩会议,届时我们将探讨这种用于高保真场景重建的变革性技术如何在物理人工智能中使用。请欢迎 NVIDIA 神经渲染工程经理 Nick Schneider 登台。 [掌声] 是的,感谢您的介绍。嗯,我是 Nick。我在 NVIDIA 领导一个团队,该团队将 NVIDIA 在神经重建方面所有的出色研究成果带入 Omniverse Neuro。今天,我将谈论高斯溅射如何在短短两年内成为物理人工智能的关键技术,为所有人提供高度逼真的模拟。高斯溅射是一种属于神经重建技术家族的方法,作为输入,神经重建会从场景中获取稀疏的观测数据,然后用于训练神经重建模型。然后,我们可以为新视图查询此模型,这在此示例中允许我们运行该场景的 360 度视图,用于机器人应用。这实际上是一个关键功能,因为我们现在可以模拟……抱歉,我们可以模拟新的相机路径,但它也允许我们测试不同的传感器或其他相机视点角度。为了理解我们如何训练这样的模型,我们首先需要了解高斯溅射的工作原理,为此,我想分享一个我最近与家人共度的周末的小故事。我当时正和他们在花园里坐着,他们问我,你实际上是做什么工作的?我说这很难解释。嗯,但我试着用一种非常简单的方式来解释。所以,让我们想象一下,你要画一幅你现在坐着的地方的画。但不是用笔和画布来画,而是用气球来画。基本上,你会把一组气球挂在钉子上,这些钉子固定在木板上。你会为气球使用不同的形状和颜色。所以,如果你放足够多的气球,你就会得到一幅不错的画,大致可以代表你视角看到的草地和天空。我的儿子实际上非常渴望直接尝试一下。所以他开始放气球,过了一会儿,他说,“哇,爸爸,这实际上很累人。”我说,“是的,没错。所以,恭喜你。你刚刚发现,放很多气球需要很多运行时间。”所以我们看了四个气球,然后他说,“嗯,但这离一幅好画还差得很远。”我说,“是的,这是另一个要点,对吧?为了获得良好的重建,我们需要很多气球。”所以,是的,我们继续这样做,有一次,他说,“哦,我们钉子用完了。”我说,“是的,这是另一个重要的方面。你刚刚意识到钉子用完了就像 GPU 内存用完了。”所以我们看了看我们的气球,我儿子对此非常满意。但我告诉他,现在从你的角度来看,这看起来很棒,但我的角度看起来完全不同,而你刚刚放了你的蓝色气球,比如,在我的角度那里是房子。所以我也想和他一起重新安排气球,以优化他和我视角的这组气球。我说,这就是我们所说的优化。所以,非常简单地说,这就是高斯溅射所做的。我们不是用气球,而是试图优化高斯的位姿、尺度、颜色和旋转,然后将它们投影到渲染图像上。我们使用实际图像来计算损失,然后反向传播给高斯。原始论文实际上是在 2023 年在这里提出的。那么,从那时起世界发生了什么变化?来自 NVIDIA 的两篇关键论文使高斯溅射能够应用于更广泛的领域,它们是 3D 高斯光线追踪和 3D 高斯无迹变换。3D 高斯光线追踪将光线追踪引入高斯,从而实现了二次照明、非线性相机模型(如鱼眼相机)以及补偿了滚动快门效应。然而,训练和渲染时间受到了很大影响。所以,3DQ 引入了一种混合方法,其中溅射用于确定用于追踪的光线。这通过 sigma 点完成,正如您可能从无迹卡尔曼滤波器中知道的那样。因此,也因此得名,这些 sigma 点被巧妙地选择来近似高斯的实际分布。这现在允许您使用非线性相机模型并在规划过程中考虑滚动快门。相比之下,3D GU 在重建质量和渲染方面取得了略高于原始论文的最新成果,并且在重建时间方面仅略慢。但正如我之前提到的关键优势是,这现在支持扭曲的非线性相机模型。这实际上是许多机器人平台的一个关键赋能者,这些平台配备了各种相机和不同的镜头,例如鱼眼相机。在这个比较视频中,您可以看到中间的高斯溅射比左侧的神经重建具有更高的保真度。当车辆转弯时,标准高斯溅射实现与 3D 高斯溅射之间的差异变得更加明显。您现在可以看到,原始实现没有考虑录制相机的滚动快门效应,导致重建非常模糊。这里,VDGRT 和 3D 的代码都可以在 GitHub 上公开获取。请查看并重建您自己的真实世界场景。这真的允许您将所有内容带入模拟。所以,您可以想象扫描您的客厅或附近的街道,然后将其放入 Omniverse 和 Isax simut 中,这使我们能够将真实世界带入模拟,并为各种机器人应用提供一个游乐场。使用一组稀疏图像和机器人模型,您现在可以将您的机器人放置在虚拟训练场中,在那里它可以安全地训练如何与环境互动。通过最近发布的 Omniverse Nurk,我们将此功能带给了所有人。所以,Omniverse New 是一组 API 和库,用于从真实世界数据生成交互式 3D 模拟。它包括用于高保真实时模拟环境的重建、渲染和生成增强。对于重建,URI 利用基于高斯的方法,将场景重建为数百万个可以移动和操作的粒子,与传统的神经方法相比,这大大加快了重建时间。对于渲染,我们添加了光线追踪以提高重建的保真度,使用了我们的 3D 渲染算法。最后,我们有生成模型,例如 fixer,我稍后会谈到它,它们可以填充重建伪影,以实现高质量的新视图合成。Murich 实际上是建立在各种 NVIDIA 模型和加速库之上的。例如,我们利用最新的 Cosmos World 基础模型来实现高斯溅射的生成式人工智能。我们将在稍后的演讲中看到更多这方面的例子。在模型之上,我们还使用 NVIDIA 加速库来真正榨干 GPU 的最后一丝性能。那么,典型的 Neurick 工作流程是怎样的?核心是机器人平台的传感器数据。您必须想象一下,这可以是任何自动驾驶平台。它可以是机器人或自动驾驶汽车。第一步是确保输入到重建管道的数据确实很好。所以,我们在第一阶段就有 encore。它带有一组库和工具,可以确保输入数据的质量是正确的。这确实是这里的关键步骤之一,因为您的重建质量只能与您的输入数据质量一样好。下一步是将真实世界数据转化为高保真重建。核心是我之前提到的 3D。但实际上,它通过领域特定的增强功能进行了扩展,例如汽车应用。然后在最上面,您可以看到 fixer,它允许我们在训练期间或渲染后直接优化重建。所以,我们可以将其作为后处理步骤。Neurick asset harvester 允许我们从场景中提取对象作为高斯溅射。这允许您稍后构建自己的高斯资产库。提取从车辆到行人的所有内容作为资产,然后将它们放回场景中。Neurick 重建输出以 USD 格式存储,然后可以加载到 Omniverse 中进行渲染,或者通过 gRPC 服务直接与任何模拟环境进行通信。最后一部分实际上与您的模拟最相关。对。所以,您现在可以要求 Nurick 渲染一个新视图。将其用作机器人应用程序的输入,根据这些输入做出反应。生成一条新路径。再次要求 Nurick 创建下一帧。然后这在一个循环中继续。高斯溅射受我们在训练期间提供的观测的限制。特别是泛化到新视图,例如在此示例中从一个全新的位置渲染视图,非常困难,并且会导致影响机器人应用的伪影。所以,在这个例子中,我们例如从原始记录偏移了一个车道,而这个偏移实际上从未在数据中观察到过。因此,当您从未在输入数据中见过它时,重建该场景实际上非常困难。所以,neurixer 是一个增强重建的模型,通过它,我们可以创建更干净的渲染。basopixer 是 Cosmos World 基础模型,它利用了数百万次物理驱动的驾驶知识。所以,我们可以填充观测中的这些空白,并显著提高重建保真度。另一个利用生成式人工智能的新扩展是 asset harvester。我真的很喜欢那个视频。可能会让你有点生气,但是,asset harvester 使用扩散模型生成对象的视图,然后使用 Transformer 从中估计高斯。通过它,我们现在可以为驾驶应用构建大型车辆资产库,这些资产库稍后可用于通过添加和替换车辆或更改其轨迹来生成新场景。看看视频,您可能会看到,我们只从一侧观察了其中一些车辆,对吧?但是生成式人工智能真的允许我们从另一侧的视角来看。这使我们能够全面了解该车辆,这非常重要。如果您再次想要渲染新视图,我们有 fixer 来帮助,但我们也有 asset harvester,它允许我们真正完成资产的形状。NVIDIA 使用 USD 作为存储高斯数据的方式。目前,高斯领域没有行业标准,并且该领域仍在快速发展,这使得标准化非常具有挑战性。谈论标准时,重要的是要考虑如果它过于僵化,创新可能会变得非常缓慢,而且仍然有很多创新正在进行,我认为尤其是在本次会议上,我们已经看到了如此多的高斯溅射论文,有些之间使用了 MLPS,对吧?这是一个非常复杂且快速发展的领域,我们必须非常小心,如果我们定义一个标准,不要减缓它。如果它太宽松,那么拥有标准就没有意义了。所以,在这一点上,我们确实相信可扩展性是良好标准的关键,我们期待与社区合作在那里定义一个合适的标准。我们为什么已经开始谈论标准化了呢?嗯,事实是,许多工业合作伙伴已经在他们的应用程序中使用了高斯溅射。所以,我们看到了旧金山、凤凰城、奥斯汀、洛杉矶和其他城市的自动驾驶出租车,对吧?但是将自动驾驶安全地扩展到全世界需要能够安全地导航几乎任何场景,而逼真的模拟是 AV 在进入实际交通之前测试数百万种场景的关键赋能者。您在这里看到的视频来自我们的内部 AV 模拟器,它每天都在生成和渲染大量新的重建。我还要宣布一个重要的里程碑,我们刚刚在 kala 中启用了 omniverse neur 渲染。这允许任何开发人员现在在模拟中测试使用真实世界高斯溅射数据的应用程序。我们已经重建了 80 多个不同的驾驶场景,并鼓励社区真正参与其中,并将其用于重放测试。与 Kala 类似,我们也刚刚宣布了 IS65,它集成了 Murric。所以,使用我之前描述的公开可用的 3D 存储库,您现在可以记录任何真实世界环境并将其转化为模拟,您可以在其中放置一个机器人,让它与环境互动。您也可以在视频中看到,也可以……让我重放一下。嗯,是的,您也可以在这里中间的视频中看到,也可以放置对象到模拟中。这允许机器人进行交互,并确保它们不会……比如避免模拟中的那些对象。而在最右边,您还可以看到一项非常新的工作,我们正在与高斯进行交互,并且我们可以操纵它们。是的。所以,最近我们宣布了关于高斯的进一步研究,例如生成式人工智能资产重塑。这允许您在黄昏、黎明或夜晚重放真实的驾驶。通过为高斯添加物理材料,我们使机器人能够操纵高斯,从而与对象进行交互。此外,我们还有一项工作真正实现了大规模的风景重建,这允许您重建整个城市,对吧?所以,您真的……当我之前谈到 new 时,我们谈论的是 AV 应用,它们通常规模要小得多,但是通过这项新的研究,我们可以真正扩展并重建整个环境。最后,是的,我们还有一个 Cosmos 模型,它允许您基本上从文本生成任何环境,并将其表示为高斯,这允许您将机器人放置在该场景中并与该环境进行交互。我们非常期待在您的……中实现这些,以在未来实现进一步的物理人工智能开发。是的。所以,最后,我真的想鼓励你们所有人尝试一下。去 BDTR 的 GitHub 页面。将您自己的客厅或邻里街道带入模拟。然后与 fixer 在cala 或 is sim 一起测试,所有这些工具都是公开可用的,我真的很期待在这个方向上进行更多令人兴奋的研究。谢谢大家。我们还有时间提问。所以,请举手,我们会把麦克风递给您,如果您有问题。>> 哦,>> 您是否尝试过……>> 哦,请稍等。您旁边就有一个麦克风。麦克风太响了。我真的不需要它。>> 您是否尝试过将体积数据集,例如医学数据集,例如堆叠的临床数据集,转换为高斯溅射?以前有人尝试过吗?>> 我个人没有这样做过。但是绝对有可能。所以,我现在展示的真正目标是把真实世界带入模拟。所以,您可以想象,您可以使用……比如手机摄像头……然后进入医疗环境,真正……捕捉它并将其转换为高斯,然后让您与之互动。>> 因为就像目前的最新技术一样,人们目前对医学的处理方式是,如果您想要一个体积堆栈,假设您想查看一个器官,您有一个数据堆栈,然后您可以提取……比如肾脏之类的东西,它通常是别名的,但我只是好奇,但它似乎主要是相机捕捉的,但将体积数据转换过来会很有趣。>> 是的,这是个好问题。实际上,这是一个有趣的研究方向,我到目前为止还没有接触过。>> 让我们谈谈。>> 听起来很棒。是的,酷。>> 谢谢。嗯,在您展示的一个幻灯片上,您展示了 USD 到 new recre……某种连接。那是一种文件格式插件吗?如果是的话,Omniverse 是否已经提供了?>> 是的,您可以在 Omniverse 中查找。我们描述了格式。您可以看到它是什么样的。目前,正如您在这里的图像中看到的,有一个 NVIDIA 标志,这意味着这是我们在 USD 之上的一种自定义格式。这使得目前无法与其他模拟进行交互。而这正是我们需要共同努力以实现标准的地方。>> 谢谢。您是否从这个数据中获得了大量深度数据,并且您正在从另一个角度处理视觉数据并进行清理?我只是好奇深度数据是如何用于训练和清理实际的……几何形状的。>> 是的,这确实是个好问题。所以,我们使用几何……我们使用 3D 数据,如果可用的话。所以,我们也有可能使用激光雷达数据作为重建的输入。这确实有助于新视图,因为您有一个几何先验,然后您可以使用它来重建场景。我们还使用……例如,正则化技术,因为我们知道这是地面,我们从分割中知道这是地面,它必须是平坦的。尽管如此,这仍然非常具有挑战性,因为模型在这方面不受任何约束。所以,转向新视图确实是最具挑战性的事情之一,而且我认为这仍然有很多研究可能性。我们可以为此使用生成模型,对吧?我们不需要仅仅使用我们从那次驾驶中获得的数据来重建场景。我们知道从我们已经收集的数百万数据中,驾驶场景是什么样的。所以,为什么不利用它呢?这就是生成模型发挥作用的地方,以帮助我们……实际上做得更好。>> 你好。我只是想了解一下,当您谈到机器人及其应用时,因为高斯溅射是一种体积场景,当您到处都有镶嵌的三角形时,它是如何……比如,机器人与环境的交互是如何复制的?>> 所以,您的问题是……如果我的模拟中有漂浮的高斯,我们如何与它们交互?>> 是的。那么控制点是什么?表面是什么?那里没有表面。它只是一堆高斯。>> 您在与什么互动?>> 对。>> 是的。所以,实际上我们通常通过网格和高斯数据的组合来做到这一点。所以,网格实际上是为了约束机器人可以驾驶的位置,而高斯则提供视觉输入,让您根据您看到的内容进行控制,对吧?所以,它通常是网格的组合。是的。>> 太棒了。谢谢 Nick,深入探讨了 3D 高斯溅射在物理人工智能中的最新进展。>> 谢谢。