大家好,我是和你们聊设计花生~
3D 建模是当下设计热门,大家熟知的 C4D、blender 等 3D 软件都是通过先在三维空间中建模,然后设置参数进行渲染的方式构建 3D 场景。渲染内容元素越复杂、尺寸越大、精度越高,所需的渲染时间也越长,而且对电脑硬件的要求也不低。
但是前不久,英伟达(NVIDIA)在其官网上发布了一篇文章,表明其研究团队已经开发出一个可以实现快速渲染 3D 场景的模型 Instant NeRF。
「文章链接」 https://blogs.nvidia.com/blog/2022/03/25/instant-nerf-research-3d-ai
文章表示,Instant NeRF 模型可以在几分钟内对数张静态照片以构建 3D 场景为基础进行训练学习,然后在几十毫秒内渲染出该 3D 场景的图像。
英伟达还在文章内放上了一段视频,以可视化的方式展示了 Instant NeRF 的运作方式——以逆向渲染的方式,模拟光线在现实世界中的运作 ,以实现用数张从不同角度拍摄的2D图像来重构一个逼真的3D场景。
如果我们看到一张图片,大脑很容易就能通过空间想象判断一个物体的空间体积、位置、颜色等信息。就如通过一个人物的三视图,我们便能构建出一个完整的立体人物形象。
图片来源: 优设文章《出海产品如何从零搭建 IP 插画库?让大厂高手教你!》作者:腾讯设计
但是这对人工智能来说并非易事。就以往来说,即使我们给出多个角度的图片,人工智能也无法像人脑那样自动推算空白角度的细节,因此也无法自动构建出完整的 3D 场景。
这也是为什么现在的 3D 场景都是由建模开始的——先把所有的造型细节构建好,才能实现后期多角度场景渲染。
来源:Artstation-Merve Kaplan
那 Instant NeRF 是如何实现仅依靠数张不同角度有图片,在几秒的时间内渲染出完整逼真的 3D 场景的呢?
通过文章内容,我们可以了解 Instant NeRF 技术的实现,主要依靠 2 点:
NeRF,即神经辐射场。 用过函数分析预测 2D 镜头中的颜色和光强度,并渲染完成的 3D 场景
多分辨率哈希网格编码技术,将 NeRF 模型的训练学习时间由数小时缩短为几分钟,渲染时间更是缩短至毫秒。
什么是 NeRF(神经辐射场)技术
Instant NeRF 技术并非英伟达全新研发,其中的 NeRF(神经辐射场)技术早在 2020 年提出了。
NeRF 由加州大学伯克利分校、谷歌研究院和加州大学圣地亚哥分校的研究人员共同开发的,旨在使用神经网络,将输入的二维图像集合,渲染输出位逼真三维场景。
用 NeRF 技术将图片转为 3D 场景
具体步骤为:先将一个连续的场景,描述为一个 5D 矢量值函数,包括一个 3D 位置(x;y;z)和 2D 观察方向(θ;Φ)。将这个5D函数输入模型后,输出为一个发射的颜色C=(r;g;b)和体积密度(α)。
然后使用体积渲染技术,将输出的颜色与密度数据合成为 RGB 图像。渲染函数是可微分的,所以可以通过最小化合成图像和真实图像之间的残差,实现优化场景表示,最终形成完整了 3D 场景。
通过 NeRF 技术,可以实现利用多张不同角度 2D 照片构建逼真完整的 3D 场景,与实景拍摄几乎无异。
在此基础上,无论是想固定视角查看不同光照角度效果:
具有复杂遮挡的场景:
还是将虚拟对象插入具有明显遮挡效果的现实世界场景中,都是可以实现的。
NeRF 甚至能渲染出对真实对象进行 360°视图捕获的效果,而且无需绿幕等背景隔离或掩蔽。
开发人员还在继续深入对进行 NeRF 开发扩展,以实现在任意光照条件下从新的视角对场景进行渲染。
NeRF 技术的出现无疑是激动人心的。根据可视化的复杂性和分辨率,用传统方法创建一个三维场景需要几个小时甚至更长时间。将人工智能带入画面会加快事情的进展——省去前期建模的工作,极大地提高了3D捕捉的效率和便利性。
我们已经知道,NeRF 是通过 5D 数据输入-模型运算学习- 输出 RGBσ数据-体积渲染的步骤,来形成完整3D场景。
早期的 NeRF 模型在几分钟内就能渲染出没有伪影的清晰场景,但在模型训练学习这一步,由于要处理大量数据,且可能需要进行结构修改,例如修剪、拆分或合并等步骤,模型训练过程非常耗费资源和时间,需要十几小时甚至一天。
然而,英伟达的却通过一种名为多分辨率的哈希网格编码技术,却将这一步所需的时间缩短了几个量级——由原来的十几小时缩短为几分钟。
多分辨率哈希编码技术
多分辨率哈希编码技术,是由来自英伟达的 Thomas Müller、Alex Evans、Christoph Schied 和 Alexander Keller 组成的研究小组创造的一种新的输入编码方法。
“我们通过一种通用的新输入编码来降低成本,该编码允许在不牺牲质量的情况下使用更小的网络,从而显着减少浮点和内存访问操作的数量:
一个小型神经网络,由可训练的多分辨率哈希表增强通过随机梯度下降优化其值的特征向量。多分辨率结构允许网络消除哈希冲突的歧义,从而形成一个简单的架构,在现代 GPU 上并行化是微不足道的。
——多分辨率哈希编码技术研究小组
多分辨率哈希编码技术原理涉及很多计算机专业术语和知识,但是如果你对哈希算法有所了解,知道哈希算法的特征之一:无论大的数据,通过哈希算法都能将其转换为固定长度的哈希值。我们就能对多分辨率哈希编码技术的逻辑有一个大致的了解。
多分辨率哈希编码技术的总体思路,就是通过减少所使用的参数编码技术所需的参数数量,并使数据结构本身更易于 GPU 处理,从而进行神经网络训练明显更快。
无论输入 Instant NeRF 的数据大小如何,通过希哈编码技术先将数据转换为唯一对应的索引值。在知道检索数据的索引值的前提下,在执行训练操作时,不需要对数据结构进行结构更新,模型处理速度就能提升很多。
不同编码的重建质量演示。可以看出使用哈希表编码方式的(d)和(e)的训练时间分别为 1 分 40 秒和 1 分 45 秒,比其他编码方式的训练速度提高了 8 倍以上。且在可训练参数总数相同的情况下,(e)比(d)质量更高,但训练时间不会增加。
此外,哈希编码技术会自动优先考虑“具有最重要精细尺度细节的稀疏区域”。这样就不用将时间和计算资源花费在空白空间或细节较少的空间上。
例如,图像中具有较粗糙细节的区域不会在不必要的精细分辨率上重复查询,从而提高训练和渲染的效率和速度。
多分辨率哈希编码技术让 Instant NeRF 模型只需要几秒钟就能对几十张静止的照片进行训练,再加上它们的拍摄角度的数据,然后可以在几十毫秒内渲染出结果的 3D 场景。相比 NeRF 之前数小时的训练学习时间,Instant NeRF 的进步无疑是惊人的。
新的多分辨率哈希编码算法将时间缩短到 5 秒,不仅可以训练场景,还可以提供实时渲染
总结
英伟达研究团队将自己研发的多分辨率哈希编码技术和 NeRF 模型结合,使 Instant NeRF 成为首批将超快的神经网络训练和快速渲染相结合的模型之一。
它能几分钟内处理图像并在“几十毫秒”内生成完整的 3D 场景,极大地提高了 3D 捕捉和分享的速度、便利性和范围。
且多分辨率哈希编码技术经过优化后,Instant NeRF 可以在单个英伟达 GPU 上进行训练并高速运行,而且渲染结果质量极高。
英伟达的研究人员表示,Instant NeRF 有多种应用:
帮助自动驾驶系统了解现实世界物体的大小体积,用来训练自动驾驶汽车;
用于为虚拟世界创建化身,为“元宇宙”的构建提供技术支撑;
还可用于建筑和娱乐业,以快速生成真实环境的数字表现,创作者可在此基础上进行修改和构建
以上这些都只是 Instant NeRF 目前应用的一小部分。
Instant NeRF 的 3D 场景构建逻辑完全不同于现在传统的 3D 软件,在应用方面有很大的不同。随着元宇宙和人工智能的深入发展,相信 Instant NeRF 的应用价值会不断替提升,技术的迭代升级也会不断深入拓展。
「参考资料」
https://blogs.nvidia.com/blog/2022/03/25/instant-nerf-research-3d-ai/
https://www.matthewtancik.com/nerf
https://finance.sina.com.cn/wm/2020-04-10/doc-iirczymi5502874.shtml
https://nvlabs.github.io/instant-ngp/
https://www.dpreview.com/news/3150421614
https://www.bilibili.com/video/BV1pq4y1M7qq
https://en.wikipedia.org/wiki/Hash_function
更多设计资讯
原作者:优设@ 夏花生er