今天小编分享的科学经验:零AI含量!纯随机数学无限生成逼真3D世界火了,普林斯顿华人一作,欢迎阅读。
谁说生成影像、视频一定要靠 AI?
普林斯顿大学新出的神器,可无限生成逼真 3D 世界,特别强调"No AI"。
浅浅感受一下这个效果:
不要以为生成的只是一段视频,其实背后是一套完整的 3D 资产,基于建模軟體 Blender 打造。
此时所有 blender 用户一起跟我:啊?
如此一来,我们就能用参数来控制细节:
或者拿到相应的光流图、3D 场景光流图、深度图、全景分割图等等,轻松 hold 住各种 CV 任务。
最最重要的是,它还免费、开源!
妈妈真的再也不用担心我找不到高质量的 3D 数据投喂 AI 了……
完整视频感受一下震撼:
100% 基于随机数学的 3D 数据生成器
尽管 AI 发展迅猛,但目前 CV 领網域的许多任务仍然缺乏高质量的数据,3D 尤甚。
一个解决办法是用合成数据。事实证明,在这类数据上训练的模型在零样本的真实影像上也可以表现得很好。
但问题是,现有的大多数免费 3D 合成数据工具基本局限于单一场景:要么是自动驾驶相关,要么就是那种位于室内环境中的人造物体。
因此,为了扩大覆盖范围,尤其是真实世界里的自然场景,作者基于 Blender 打造了这个基于随机数学规则无限生成各种场景的 Infinigen。
Infinigen 主要利用 Blender 的 " 基元 "(或原语),设计了一个程式规则库,通过编码完成真实自然场景各个对象的生成。
论文主要介绍了 Infinigen 的程式体系,包括:
Node Transpiler(节点转换器),可以自动将 Blender 节点图转化为 Python 代码,方便非程式员用户使用 Infinigen。
如下图所示,它生成的代码更通用,既允许我们随机化输入参数,也允许随机化图结构。
Generator Subsystems(生成器子系统),Infinigen 的生成器是是一个个基于概率的程式,每个程式专门用于生成一个子对象(比如山脉或鱼类)。每个对象都有一组高级参数(比如山的总高度),用户可以使用 Python API 来调整这些参数,以实现对数据生成的细粒度控制。
Material Generators(材料生成器),一共有 50 个,每个都由一个能指定颜色和反射率的随机着色器和一个生成相应精细几何细节的局部几何生成器组成。
如下图由所示,它能保证非常真实的几何细节。
Terrain Generators(地形生成器),如下图所示,该生成器可以通过反复挤压生成巨石,使用 Blender 的内置插件生成小石块。
并帮助 Infinigen 通过使用 FLIP 模拟动力学流体,使用 Blender 的粒子系统模拟天气。
Plants & Underwater Object Generators(植物和水下物体发生器),包括使用用随机游走等算法对树木生长进行建模,从而形成一个覆盖各种树木、灌木甚至仙人掌的 3D 世界。
又或者是使用差异化生长、拉普拉斯生长和反应扩散制造各种珊瑚、使用几何节点图生成树叶、花朵、海藻、海带、软体动物和水母。
还有各种子生成器(比如生物生成器)就不一一介绍了。
除了这些,Infinigen 还包括一个影像渲染与 Ground Truth 提取程式,主要用于生成下图这些类型的影像。
其中对于前者,系统使用了 Blender 基于自然规律的路径跟踪渲染器 Cycles 来渲染影像。
作者介绍,虽然使用 Blender 开发了 Infinigen 的程式规则,不过程式生成的很大一部分是在 Blender 之外完成的。
另外,他们也表示,构建 Infinigen 是一项极大量的軟體工程,光是它代码库的主分支就囊括了40485 行代码。
最后,Infinigen 在 2 个 Intel Xeon Silver 4114 @ 2.20GHz CPU 和 1 个 NVidia GPU 上进行了基准测试,生成一对 1080p 影像的时间(wall time)为3.5 小时。
下表是它与现有合成数据集或生成器的比较。
作者表示,从中可以看出,Infinigen 最大的优点就是不需要任何外部参考资源库就能程式化地生成无限的自然 3D 数据,别的都不行。
团队介绍
Infinigen 将在本周三的 CVPR 会议上进行 Poster 展示。
它的作者全部来自普林斯顿大学 Vision & Learning Lab。
三位共同一作,其中一位叫Ma Zeyu,普林斯顿大学博士三年级在读,2020 年本科毕业于清华大学电子工程专业。
通讯作者为普林斯顿大学计算机科学系副教授邓嘉。
目前,Infinigen 的代码已经上线 GitHub,短短两天已有 850 个标星。
论文地址:
https://arxiv.org/abs/2306.09310
项目主页:
https://infinigen.org/
GitHub 地址:
https://github.com/princeton-vl/infinigen