首页/文章/ 详情

3DGS无限重建,李飞飞发布新一代世界模型Marble~

10月前浏览492
昨天,李飞飞创办的企业world labs发布了他们最新的成果,一个真3D的世界生成模型Marble。根据介绍,通过给定一张图片或文字提示,Marble就能生成一个连续的 3D 世界,没有时间限制、没有变形、没有不一致性。
不过目前还是处于一个有限预览版的状态,还需要加入waitlist之后等待开放试用,所以暂时还无法体验模型模型本身,但是他们在Explore中开放了一些列的生成作品,可以通过这个作品来了解模型的生成情况。
world labs本次发布的marble模型和之前类似的模型存在明显的两个不同的地方:
一、真3D非连续视频,过去声称是世界模型或者是世界模拟器的生成结果一般都是一段连续的视频,而Marble的输出则是真3D的。
二、连续场景非3D单体,之前也有不少3D生成模型,但是这类模型更倾向于生成单个的3D资产对象,而Marble则更倾向于输出连续的3D场景。
三、使用3DGS格式,不同于过去的3D生成的导出格式,Marble直接使用了3DGS作为输出格式,虽然目前无法直接下载,但是打开Network还是可以发现生成的模型都被打包到了spz格式中,如果你有阅读过我上一篇文章《3DGS重建/切片/Cesium加载全流程~》,你会发现Cesium在3DGS版本的3D Tiles 中也使用了Niantic开源的spz压缩方法,但是没有做LOD所以即使使用了spz还是30M的体积,这个地方没有做授权控制,是可以直接使用这个地址把这个模型下载下来的。
在渲染上,则使用了THREE.js+SPARK插件的方式,虽然现在3DGS的轮子已经很多了,这下world labs又贡献了一个开源的3DGS插件。
如果缩放模型,很容易就可以穿透场景,然后就可以看到这样一个非常典型的3DGS模型的样子。
我们找了一个如下的非室内的场景,然后可以把他下载下来,然后使用spz工具将该模型进行解压成ply格式。
直接使用brush进行打开就可以看到完整的结果,然后我就想把这个模型转换成3D Tiles加载到Cesium中。
因为我相信这类工具未来会成为建模以及AI训练的重要数据来源,这种生成能力最好的应用就是作为模拟器训练各种AI模型,因为他可以提供足够的多样性和真实感。
我就直接使用《3DGS重建/切片/Cesium加载全流程~》开发的spz2tileset工具进行转换,转换后发现得到的模型颜色全部丢失,初步估计应该是颜色丢失的问题,后面详细分析了一下发现marble的输出丢掉了球谐参数,只保留了三个颜色分量。
而打开直接使用brush重建的3DGS输出可以看到,其实这个部分还有大量的参数,所以这个部分也占用了比较大的存储空间,因而正常压缩的时候都会选择将这些参数丢弃。
针对这个问题,我重新调整了转换工具,得到了一个支持压缩版本的spz2tileset3d_compress工具,然后就可以将模型正确的转换成3D Tiles,并且也可以Cesium加载进来,但是同样发现,周边还是存在了大量的干扰点,所以还需要对这个模型进行修建,将外面这一圈的效果不好的高斯点删掉。
修建过之后就可以得到一个比较干净的目标场景的显示,然后将修改好的模型进行转换之后,再重新加载到场景中就可以看到目标场景的显示了。
好了,今天就唠这么多,支持Marble压缩版本spz转Cesium 3DTiles的代码已经放到知识星球了,有需要的可以自己下载尝试,同时知识星球中前期规划的自己动手「空间智能」的视频内容也都已经完成,欢迎加入。

来源:车路漫漫
UM控制渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-12-11
最近编辑:10月前
李慢慢
硕士 自动驾驶仿真工程师一枚
获赞 14粉丝 93文章 322课程 0
点赞
收藏
作者推荐

一文尽览神经渲染(NERF/3DGS)技术在具身仿真框架Isaac Sim中的实现

本文转载来源:具身智能之心本文作者:张峻川一、写在前面&背景神经渲染(NERF/3DGS)引发了三维重建技术的革命,目前已经在辅助驾驶/具身智能领域得到大量应用。NERF和3DGS使用神经网络表达空间,其在新视角合成方面的优越表现直击辅助驾驶/具身智能仿真的一大痛点:传感器仿真。如果这一类深度学习技术能够推广应用,就能够很大程度上解决传统计算机图形学渲染出的图像缺乏真实性的问题,可以广泛应用在算法的闭环测试和训练中。目前已经有一些研究项目在围绕NERF和3DGS技术打造全新的面向闭环测试的仿真框架。然而完全新开发一个仿真框架,使其具有现行场景仿真软件类似的功能将会有巨大的工作量。因此另一个应用神经渲染新技术的思路是:将NERF和3DGS训练出的模型嵌入到现有仿真软件的框架中去,在保证实时渲染的前提下,同时能够应用仿真软件已有的3D数字资产和算法接口等工具链。在NERF和3DGS的研究兴起之初,就已经有相关的工程工作旨在将训练好的模型嵌入到现行游戏引擎的渲染框架中去,例如LumaAI的3DGS插件就可以将训练出的高斯点云ply插入到基于Unreal的CARLA。而在今年,具身智能领域广泛使用的仿真软件,来自NVIDIA的Isaac Sim也在软件中支持了神经渲染技术,具体信息可以参考文末 。本文将结合以上链接,展现在Isaac Sim中插入3DGS模型的具体流程,最终可以不仅让3DGS模型成为仿真环境的静态背景,还可以成为仿真环境中动态可交互的物体。NVIDIA在开源项目 中提出了自己的三维高斯渲染方法,我们可以在使用该方法建立三维高斯模型的同时,输出能够在Isaac Sim中渲染的usdz模型。另外,3DGRUT也提供了工具,可以让我们将用其他3DGS类方法建立的高斯点云ply转化成usdz模型,详见参考 。3DGRUT生成的usdz模型文件可以直接解压缩,解压出的文件夹内包含default.usda、gauss.usda等描述文件和一个nurec格式的模型文件,这些文件将会在下文描述的过程中使用。二、静态背景需要注意的是,Isaac Sim的神经渲染功能NuRec只能在5.0.0以上的软件版本(>Omniverse Kit 107.3)中使用。按照官方 中的方法安装好之后,打开gui界面,继续以下操作:在下方Content栏内导航到上 一节提到的3DGRUT生成的usdz模型解压后的文件夹中,将gauss.usda直接拖动到上方Stage中,也可以右键gauss.usda 选择将其插入到Stage中:等待片刻后,就可以看到你使用3DGRUT方法得到的三维高斯模型出现在了Isaac Sim中!本文完。:)显然,这样做是不够的。3DGRUT生成的模型,在Isaac Sim中仅仅是一个能够被“渲染”出的对象,也就是说只具备视觉特征,不具备任何物理特征。当然,如果你仅仅想用三维高斯模型做一个单纯的静态背景,那到此就已经足够了。但如果你想让机器人对这一团高斯点云“看得见”也“摸得着”,我们还要解决一些其他问题。所幸在此时此刻,在3DGS类的方法中提取场景mesh的方法已经有很多,在此我选择了 作为提取mesh的方法。在以下视频中,我选择了mipnerf360中的garden场景作为静态背景渲染的范例。首先用3DGRUT进行训练,并生成garden的usdz模型。然后使用2DGS建立garden的mesh。如上文所述将3DGRUT生成的usdz模型导入Isaac Sim后,可以继续操作导入mesh:在Isaac Sim工具栏点击File->Import,接下来选择garden的mesh(ply格式文件),点击Import,之后在右侧Stage栏中就可以看到导入的fuse_post这个对象,且该对象包含有一个mesh。但因为不同方法的尺度问题,我们还需要调整mesh的scale,以便和usdz模型的渲染结果匹配。同样,我们也需要调整mesh的位姿,使其能尽量贴近usdz的渲染结果。下面是一步关键操作:将usdz模型与对应的mesh进行绑定。在gauss的Property中选择Raw USD Properties,找到其中的proxy,点击Add Target,选择fuse_post中的mesh。最后勾选上omni:nurec:useProxyTransform这个特性,将渲染结果和mesh最终对齐。在上面的视频中,我们在仿真环境中插入一个球体,开始仿真后,发现球体穿过了garden的地面继续下落,这显然和我们预想的不一样!那是因为我们还没有对导入的模型添加物理属性。右键选择mesh,在Add中找到Physics,选择Collider,给这个mesh增加碰撞属性。接下来在mesh的Property中勾选Matte Object,这将使拥有mesh的usdz模型在仿真环境中具有光影交互的效果,这还需要和DomeLight光照配合使用。为了避免不必要的mesh反光,我们可以给mesh添加一个OmniPBR的材料,并在材料特性中将Reflectivity中的Specular降到最低。经过这一番操作,让我们再次运行仿真,我们可以明显观察到球体在渲染模型上的投影,并且先后落在桌面和地面上。这个建立的场景可以保存为一个usd文件,方便我们后续继续编辑和使用。三、动态物体至此,一个机器人仿真环境的背景已经完成。那么我们是否能够更进一步,让3DGS的建模结果变成仿真环境中的动态物体呢?其实,这仅仅只剩一步之遥!在这一节中,我将使用mipnerf360数据集中的kitchen场景作为示例,我将把kitchen中桌子上的神经渲染经典物品乐高推土机抠出来作为动态物体导入仿真环境。由于3DGRUT方法不直接生成ply文件,所以我选择原生的3DGS 训练了kitchen场景,并选择了一个在线 对ply进行编辑,最终获得推土机的点云ply,如下图: 上面编辑后的ply就可以经过3DGRUT的处理,转化成usdz模型文件。2DGS生成的mesh点云也可以经过类似的处理将推土机抠出来。接下来的操作和第二节类似,如上面的视频所示,经过导入usdz,导入mesh,绑定mesh和usdz之后,我们发现没有添加足够物理属性的模型仍然无法和仿真世界交互。所以在此我们可以给mesh添加一个Rigid Body with Colliders Preset的属性,而在增加了Rigid Body的物理属性后,我们就不难给这个物体增加更多的如质量等物理属性了。最终,推土机和球体以及地面产生了碰撞交互。我们可以把以上方法导入的推土机放入garden场景看一下效果:3DGS生成的模型之间、模型和仿真环境原生物体间产生了动态交互。仿真背景换成mipnerf360中的room场景的效果如以上视频所示。Stage窗口的右上角实时显示了当前的计算速度、资源消耗等情况,可以看出显存占用不大,且即使是在一个3090的显卡上,计算的fps也是相当不错的。四、未来:NuRec技术为3DGS模型在仿真环境中的应用提供了便捷方法,我们可以看到,使用3DGS模型制作仿真环境中的静态背景和动态物体已有了相对成熟的流程。但本文还没有探究的问题包括:在仿真环境渲染过程中3DGS模型间的光影交互关系问题:从视频4和视频5中可以看到,推土机并没有像人工创建的球体一样在神经渲染的背景中投下阴影。包含神经渲染的仿真环境测试具体算法的效果:例如将机器人放置在room环境中,我们给VLA算法下达“捡起地毯上的乐高推土机”会怎么样?此外,如果真的想要严肃考虑神经渲染在具身智能仿真中的技术落地,笔者认为还需要解决的问题有:包含神经渲染的仿真环境如何快速准确提供rbg图像外的真值信息,如图像分割、对象标注标签等。如果使用神经渲染技术创建可被 操作的动态物体,如何获取物体的其他物理属性真值,如硬度、摩擦系数、质量等,是个更为棘手的问题。如果在仿真中包含更多神经渲染的对象、更大规模的神经渲染场景,能否进一步提高计算效率。参考链接:[1]https://docs.omniverse.nvidia.com/materials-and-rendering/latest/neural-rendering.html#generating-and-importing-nurec-primitives[2]https://developer.nvidia.com/blog/how-to-instantly-render-real-world-scenes-in-interactive-simulation/[3]https://github.com/nv-tlabs/3dgrut[4]https://docs.isaacsim.omniverse.nvidia.com/5.0.0/index.html[5]https://github.com/hbb1/2d-gaussian-splatting[6]https://github.com/graphdeco-inria/gaussian-splatting[7]https://superspl.at/editor以上,原文完。来源:车路漫漫

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈