不可思议!英伟达新技术训练NeRF模型最快只需5秒,单张RTX 3090实时渲染,已开源...

关注并星标

从此不迷路

计算机视觉研究院

747eb6c62b0aab116746180652ba6402.gif

c2d9ba595c7396d6e434279893fe31a2.gif

6af7f920c4b6be7b20038bb0d711256a.png

公众号IDComputerVisionGzq

学习群扫码在主页获取加入方式

计算机视觉研究院专栏

作者:Edison_G


英伟达将训练 NeRF 模型从 5 小时缩至 5 秒。


转自《机器之心》

你曾想过在 5 秒内训练完成狐狸的 NeRF 模型吗?现在英伟达做到了!

68ef26f2bac73a19bb2d36dc9a5965ea.gif

令人不可思议的是,就如谷歌科学家 Jon Barron 在推特上表示的:18 个月前,训练 NeRF 还需要 5 小时;2 个月前,训练 NeRF 最快也需要 5 分钟;就在近日,英伟达的最新技术——基于多分辨率哈希编码的即时神经图形基元,将这一过程缩减到只有 5 秒!!??

3323ee56817924771a21b3c043faa9a1.png

NeRF 是在 2020 年由来自加州大学伯克利分校、谷歌、加州大学圣地亚哥分校的研究者提出,其能够将 2D 图像转 3D 模型,可以利用少数几张静态图像生成多视角的逼真 3D 图像。之后又出现了改进版模型 NeRF-W(NeRF in the Wild),可以适应充满光线变化以及遮挡的户外环境。

然而,NeRF 的效果是非常消耗算力的:例如每帧图要渲染 30 秒,模型用单个 GPU 要训练一天。因此,后续的研究都在算力成本方面进行了改进,尤其是渲染方面。

现在,英伟达训练 NeRF,最快只需 5 秒(例如训练狐狸的 NeRF 模型)!实现的关键在于一种多分辨率哈希编码技术,英伟达在论文《 Instant Neural Graphics Primitives with a Multiresolution Hash Encoding》进行了详细解读。

d7619ae060a4e6d589afb63ef8324ecd.png

  • 论文地址:https://nvlabs.github.io/instant-ngp/assets/mueller2022instant.pdf

  • 项目地址:https://github.com/NVlabs/instant-ngp

  • 项目主页:https://nvlabs.github.io/instant-ngp/

英伟达在 4 个代表性任务中对多分辨率哈希编码技术进行验证,它们分别是神经辐射场(NeRF)、十亿(Gigapixel)像素图像近似、神经符号距离函数(SDF)和神经辐射缓存(NRC)。每个场景都使用了 tiny-cuda-nn 框架训练和渲染具有多分辨率哈希输入编码的 MLP。

首先是 NeRF 场景。大型的、自然的 360 度场景(左)以及具有许多遮蔽和镜面反射表面的复杂场景(右)都得到了很好的支持。实时渲染这两种场景模型,并在 5 分钟内通过随意捕获的数据进行训练:左边的一个来自 iPhone 视频,右边的一个来自 34 张照片。


500856ec0f87314ee2352d078814ebb1.gif

接着是十亿(Gigapixel)像素图像近似。结果显示,多分辨率哈希编码实现了几个数量级的综合加速,能够在几秒钟内训练高质量的神经图形基元,并在数十毫秒内以 1920x1080 的分辨率进行渲染:如果你眨眼可能会错过它!

f5e5756f9df04dc82c6d3a648190f670.gif

然后是神经符号距离函数(SDF)。如下动图展示了各种 SDF 数据集的实时训练进度,训练数据是使用 NVIDIA OptiX 光线追踪框架从真值网格动态生成的。

a72a3fb6fc58ce6da0c600d3b8cab9d4.gif

最后是神经辐射缓存(NRC)的直接可视化,其中网络预测每个像素路径的首个非镜面反射顶点的出射辐射,并根据实时路径跟踪器生成的光线进行在线训练。图左为使用 Müller 等人在 2021 论文《Real-time Neural Radiance Caching for Path Tracing》中的三角波编码的效果,图右为本文多分辨率哈希编码技术的效果,允许网络学习更清晰细节,如阴影区域。

4584bcfed375b6758c9909043da5c0cb.gif

‍效果如此惊艳,特斯拉 AI 高级总监 Andrej Karpathy 也对这项研究感叹道:「令人印象深刻的架构组合和手工制作的元执行。我仍然不相信这项研究进展的这么好、这么快。」

0a443f740437db9913784640094a654c.png

更多的网友认为不可思议,可以预见下一步是在设备上运行,然后在设备上训练!

0d37a28e32f0680cea2d67648a8d50bb.png

从 5 小时缩至 5 秒,英伟达在技术上做了哪些突破?

计算机图形基元基本上是由数学函数表征的,这些数学函数对外观(appearance)进行参数化处理。数学表征的质量和性能特征对视觉保真度至关重要,因此英伟达希望在捕获高频、局部细节的同时保持快速紧凑的表征。多层感知机(MLP)表征的函数可以用作神经图形基元,并已经被证明可以满足需求,比如形状表征和辐射场。

上述方法的一个重要共性是将神经网络输入映射到更高维空间的编码过程,这是从紧凑模型中提取高近似精度的关键。在这些编码中,最成功的是那些可训练、特定于任务的数据结构,它们承担了很大一部分学习任务。有了这些数据结构,便可以使用更小、更高效的多层感知机。但是,这类数据结构依赖于启发式和结构改变(如剪枝、分割或合并),从而导致训练过程复杂化、方法局限于特定任务、甚至限制 GPU 性能。

针对这些问题,英伟达提出一种多分辨率哈希编码(multiresolution hash encoding),这是一种自适应、高效且独立于任务的技术。该技术仅包含两个值,分别是参数量 T 和预期最佳分辨率 N_max。

英伟达的神经网络不仅有可训练的权重参数 Φ,还有可训练的编码参数 θ。这些被排列成 L 个级别(level),每个级别包含多达 T 个 F 维 的特征向量。这些超参数的典型值如下表 1 所示:

0837e228ef49aa401bd28d14ae38fd3e.png

多分辨率哈希编码的显著特征在于独立于任务的自适应性和高效性。

首先来看自适应性。英伟达将一串网格映射到相应的固定大小的特征向量阵列。低分辨率下,网格点与阵列条目呈现 1:1 映射;高分辨率下,阵列被当作哈希表,并使用空间哈希函数进行索引,其中多个网格点为每个阵列条目提供别名。这类哈希碰撞导致碰撞训练梯度平均化,意味着与损失函数最相关的最大梯度将占据支配地位。因此,哈希表自动地优先考虑那些具有最重要精细尺度细节的稀疏区域。与以往工作不同的是,训练过程中数据结构在任何点都不需要结构更新。

然后是高效性。英伟达的哈希表查找是579e781823d0aa8690b103b51b8c1c59.png,不需要控制流。这可以很好地映射到现代 GPU 上,避免了执行分歧和树遍历中固有的指针雕镂(pointer-chasing)。所有分辨率下的哈希表都可以并行地查询。

下图 3 展示了多分辨率哈希编码中的执行步骤:

a692afd7822aa118c9ca7b8e89cc22c3.png

2D 多分辨率哈希编码示意图。

如上图所示,每个级别(其中两个分别显示为红色和蓝色)都是独立的,并在概念上将特征向量存储在网格顶点处,其中最低和最高分辨率之间的几何级数 [N_min, N_max] 表示为:

0a0e19466bcdc73475da36bfacd64191.png

实验效果

英伟达在下面 4 个代表性任务中验证了多分辨率哈希编码:

  • 十亿(Gigapixel)像素图像:MLP 学习从 2D 坐标到高分辨率图像的 RGB 颜色的映射;

  • 神经符号距离函数(Neural signed distance function, SDF):MLP 学习从 3D 坐标到表面距离的映射;

  • 神经辐射缓存(Neural radiance caching, NRC):MLP 从 Monte Carlo 路径跟踪器中学习给定场景的 5D 光场;

  • 神经辐射场(NeRF):MLP 从图像观察和相应的透视变换中学习给定场景的 3D 密度和 5D 光场。

结果表明,在经过几秒钟的训练后,英伟达的多分辨率哈希编码在各类任务实现了 SOTA 效果,如下图 1 所示:

0b25f7deaac15eb13f93781d19045287.png

下图 6 中,英伟达使用多分辨率哈希编码近似一张分辨率为 20,000 × 23,466(469M RGB 像素)的 RGB 图像。

8b86ff58bca0cb455b5fa5e0412cd09c.png

下图 7 展示了四个场景中,神经符号距离函数(SDF)训练 11000 步后的效果:

08b2426a3b231840047921b88247a511.png

图 8 展示了神经辐射缓存(Neural radiance caching, NRC)应用的流程:

78870508141eee35796f3704a9695cde.png

下图 12 为模块化合成器和大型自然 360 度场景的 NeRF 渲染效果。图左在使用一张 RTX 3090 的情况下,仅需 5 秒即累积了 128 个 1080p 分辨率的样本;图右使用同一张 GPU,以每秒 10 帧的速度运行交互式进程(动效图见文章开头)。

2e64ba0db03323e62459b99dc465b0ef.png

© THE END 

转载请联系本公众号获得授权

e6f7ce935cbadfecd8c9ecb226c761bb.gif

计算机视觉研究院学习群等你加入!

计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

0540df355da07caccb5a6fc7e7fd4d3e.png

扫码关注

计算机视觉研究院

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值