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

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

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


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


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


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》进行了详细解读。



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

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


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


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


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


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


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


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

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

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

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

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


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

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

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

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

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


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


实验效果

英伟达在下面 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 所示:


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


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


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


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

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
4月前
|
缓存 监控 中间件
Django中间件自定义开发指南:从原理到实战的深度解析
Django中间件是Web应用的“交通警察”,在请求与响应过程中进行全局处理,适用于身份验证、日志记录、性能监控等功能。本文详解中间件的工作原理、开发步骤及实战案例,帮助开发者掌握自定义中间件的构建方法,提升Django应用的可维护性与扩展性。
282 0
|
6月前
|
Ubuntu Linux 数据安全/隐私保护
Windows中安装WSL 2和Ubuntu系统的教程
回看这一路,有趣吧?你已经跨界成为了一个Windows和Linux的桥梁。期待在代码的世界里,把一切玩得风生水起!
358 13
|
负载均衡 监控 安全
如何管理 Docker Swarm 集群和节点
【10月更文挑战第7天】
260 3
|
存储 机器学习/深度学习 自然语言处理
知识图谱和向量数据库的关系
知识图谱和向量数据库在处理不同类型的数据和任务中具有各自的优势。它们可以在大语言模型中相互结合,以处理复杂的需求,提供更全面和准确的信息检索和推理能力。这种结合为我们在自然语言处理和机器学习领域中解决实际问题提供了有力的工具和方法。
2355 1
|
资源调度 DataWorks 安全
DataWorks产品使用合集之在离线同步任务中,可以使用函数对日期和时间参数进行拼接吗
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
210 7
|
机器学习/深度学习 数据采集 人工智能
R语言是一种强大的编程语言,广泛应用于统计分析、数据可视化、机器学习等领域
R语言是一种广泛应用于统计分析、数据可视化及机器学习的强大编程语言。本文为初学者提供了一份使用R语言进行机器学习的入门指南,涵盖R语言简介、安装配置、基本操作、常用机器学习库介绍及实例演示,帮助读者快速掌握R语言在机器学习领域的应用。
778 3
|
存储 开发框架 .NET
常见20道C#面试的题
常见20道C#面试的题
181 1
|
存储 固态存储 算法
OS—磁盘和固态硬盘
OS—磁盘和固态硬盘
383 0
|
安全 关系型数据库 MySQL
CentOS 8 中安装与配置 MySQL
CentOS 8 中安装与配置 MySQL
1530 3
|
缓存 监控 安全
中间件在Python Web框架中的角色与应用场景
【7月更文挑战第21天】中间件在Python Web开发中作为服务器与应用间的软件层,拦截、处理请求和响应,无需改动应用代码。它扩展框架功能,复用跨应用逻辑,加强安全,优化性能。如Django中间件处理请求/响应,Flask通过WSGI中间件实现类似功能,两者均在不触及核心代码前提下,灵活增强应用行为,是现代Web开发关键组件。
278 0