神经辐射场基于点,训练速度提升30倍,渲染质量超过NeRF

简介: 神经辐射场基于点,训练速度提升30倍,渲染质量超过NeRF
Point-NeRF:基于点的神经辐射场,一种高质量神经场景重建和渲染的新方法。

2020 年是立体神经渲染(Volumetric neural rendering)爆发的一年,比如 NeRF 可以生成高质量的视图合成结果,但这种方法需要对每个场景进行优化,导致重建时间过长。另一方面,深度多视图立体(multi-view stereo)方法可以通过网络推理快速重建场景几何。


来自南加州大学、Adobe Research 的研究者们提出了 Point-NeRF,该方法使用神经 3D 点云及其相关神经特征,将立体神经渲染以及深度多视图立体方法两者的优点进行结合,来建模辐射场。

在本文中,从 1000 个点发展出完整的点云:


通过逐步优化最初的 COLMAP 点的渲染结果:


在基于光线行进的渲染 pipeline 中,通过聚合场景表面附近的神经点特征,Point-NeRF 可以被有效渲染。此外,Point-NeRF 可通过对预训练深度网络的直接推理进行初始化,产生神经点云;该点云可以被微调,比 NeRF 训练时间快 30 倍,且重建视觉质量超过 NeRF。Point-NeRF 可以与其他 3D 重建方法相结合,并通过一种新的剪枝和增长机制处理这些方法中的错误和异常值。在 DTU、NeRF Synthetics、ScanNet 和 Tanks and Temples 数据集上的实验表明,Point-NeRF 可以超越现有方法,取得 SOTA 结果。


Point-NeRF

Point-NeRF 是基于点的神经辐射场,这是一种高质量神经场景重建和渲染的新方法,图 2 (b)为架构图:

体渲染和辐射场:基于物理的体渲染可以通过可微射线推进(differentiable ray marching)进行数值计算。具体而言,一个像素的辐射可以通过一束光线穿过该像素来计算,在 {x_j | j = 1, ..., M} 中沿射线采样 M 个着色点,并使用体积密度累积辐射,如:

这里τ表示体积透光率,σ_j 和 r_j 是 x_j 处每个着色点 j 的体积密度和辐射度,Δ_t 是相邻着色样本之间的距离。NeRF 建议使用多层感知器(MLP)来回归这样的辐射场。本研究提出的 Point-NeRF 利用神经点云来计算体积属性,从而实现更快和更高质量的渲染。

基于点的辐射场:该研究用 P = {(p_i, f_i,γ_i)|i = 1,…N}表示神经点云,P_I 处的每个点为 i,与编码局部场景内容的神经特征向量 f_i 相关联。该研究还为每个点分配了一个置信值γ_i∈[0,1],表示该点位于实际场景表面附近的可能性。该研究从这个点云反演辐射场。

给定任意 3D 位置 x,在半径为 R 的范围内查询 K 个相邻神经点。基于点的辐射场可以抽象为一个神经模块,它从邻近的神经点对任何阴影位置 x 上的视觉依赖亮度 r(沿任何视觉方向 d)和体积密度σ进行回归,如下所示:

该研究使用具有多个子 MLP 的类似 PointNet 的神经网络来进行回归。总体而言,该研究首先对每个神经点进行神经处理,然后聚合多点信息以获得最终估计。

Point-NeRF 重建

Point-NeRF 重建 pipeline 可用于有效地重建基于点的辐射场。首先利用跨场景训练的深度神经网络,通过直接网络推理生成基于点的初始场。这个初始场通过点增长和剪枝技术进一步优化每个场景,从而实现最终的高质量辐射场重建。图 3 显示了这个工作流程,其中包含用于初始预测和场景优化的相应梯度更新。

给定一组已知图像 I_1、...、I_Q 和点云,Point-NeRF 表示可以通过优化随机初始化的每一个点的神经特征和具有渲染损失的 MLP(类似于 NeRF)来重建。然而,这种纯粹的逐场景优化依赖于现有的点云,并且可能非常缓慢。

因此,该研究提出了一个神经生成模块,通过前馈神经网络预测所有神经点属性,包括点位置 p_i 、神经特征 f_i 和点置信度 γ_i ,以实现高效重建。在很短的时间内,渲染质量更好或与 NeRF 相当,而后者需要更长的时间来优化(参见表 1 和表 2)。

端到端重建:该研究结合多视图点云,得到最终的神经点云。该研究用渲染损失从头到尾训练点生成网络和表示网络(见图 3),这允许生成模块产生合理的初始辐射场。该研究还使用合理的权重在 Point-NeRF 表示中初始化 MLP,从而显着节省了每个场景的拟合时间。

此外,除了使用完整的生成模块外,该研究的 pipeline 还支持使用从其他方法(如 COLMAP [44])进行点云重建,其中模型(不包括 MVS 网络)仍然可以为每个点提供有意义的初始神经特征。

实验
该研究首先在 DTU 测试集上对模型进行评估,比较内容包括 PixelNeRF 、IBRNet 、MVSNeRF 和 NeRF ,并用 10k 迭代微调所有方法以进行比较。此外,该研究仅用 1k 迭代以展示 Point-NeRF 优化效率。具体结果如下:

表 1 为不同方法定量比较,比较内容包括 PSNR, SSIM, LPIPS,图 6 为渲染结果。由结果可得,在 10k 次迭代之后,SSIM 和 LPIPS 达到最佳,分别为 0.957 和 0.117,优于 MVSNeRF 和 NeRF 结果。IBRNet 生成的 PSNR 结果稍好一些为 31.35,但 Point-NeRF 可以恢复更精确的纹理细节和高光,如图 6 所示。

另一方面,IBRNet 的微调成本也更高,相同的迭代次数,比 Point-NeRF 微调多花 1 小时,也就是 5 倍的时间。这是因为 IBRNet 依赖大型的全局 CNN,而 Point-NeRF 利用局部点特征以及 MLP 更容易优化。更重要的是,基于点的表示位于实际场景表面附近,从而避免了在空场景中采样射线点(ray points),从而实现高效的逐场景优化。

虽然 IBRNet 中更复杂的特征提取器可以提高质量,但它会增加内存使用,影响训练效率。更重要的是,Point-NeRF 生成网络已经提供了高质量的初始辐射场,以支持高效优化。该研究发现,即使经过 2 min / 1K 的微调迭代,Point-NeRF 也能获得非常高的视觉质量,可与 MVSNeRF 最终的 10k 次迭代结果相媲美,这也证明了 Point-NeRF 方法重建效率的高效性。

虽然 Point-NeRF 是在 DTU 数据集上训练而来,但其可以很好地泛化到新的数据集。该研究展示了在 NeRF synthetic 数据集中,Point-NeRF 与其他 SOTA 方法比较结果,定性结果如图 7 ,定量结果如表 2。

实验结果表明,Point-NeRF_20K 明显优于 IBRNet 结果,具有更好的 PSNR、SSIM 和 LIPIPS;该研究还通过更好的几何和纹理细节实现了高质量渲染,如图 7 所示。

与不同场景的比较:Point-NeRF 在 20K 迭代后,非常接近 NeRF 在 200K 迭代训练后的结果。从视觉上来讲,Point-NeRF 在 20K 迭代后在某些情况下已经有了更好的渲染效果,例如图 7 中的 Ficus 场景(第四行)。Point-NeRF_20K 只用了 40 分钟进行优化,而 NeRF 需要 20 + 小时,两者相比,Point-NeRF 快了近 30 倍,但 NSVF 的优化效果只比 Point-NeRF 的 40 分钟效果略好。如图 7 所示,Point-NeRF 200K 结果包含最多的几何和纹理细节,而且,该方法是唯一可以完全恢复的方法。

相关文章
|
10月前
|
数据采集 测试技术 Python
自动化淘宝秒杀:使用Selenium WebDriver的实战指南
本文详细介绍了如何利用Selenium WebDriver自动化淘宝秒杀操作,包括环境配置、代码实现及注意事项,旨在帮助读者提升秒杀成功率,同时提醒合理使用以遵守平台规则。
474 8
|
10月前
|
人工智能 自然语言处理 算法
具身智能高校实训解决方案 ----从AI大模型+机器人到通用具身智能
在具身智能的发展历程中,AI 大模型的出现成为了关键的推动力量。高校作为培养未来科技人才的摇篮,需要紧跟这一前沿趋势,开展具身智能实训课程。通过将 AI 大模型与具备 3D 视觉的机器人相结合,为学生搭建一个实践平台。
810 64
|
Ubuntu 编译器 C语言
Ubuntu 源码编译指定版本 make:神秘代码背后的激情冒险,等你来战!
【8月更文挑战第19天】在Ubuntu中编译指定版本的`make`工具是一项高级技巧,能让你针对特定需求定制软件。首先确保已安装`build-essential`等必要组件。下载所需版本源码后,遵循README指南配置与编译。使用`./configure`检测环境,`make`编译,最后`sudo make install`安装。面对问题如缺失依赖或编译选项不当,需耐心解决。对于大型项目,可利用多核加速编译,如`make -j 4`。这一过程虽具挑战,却能显著提升软件性能与功能适配。
188 2
|
存储 安全 Java
阿里开发手册 嵩山版-编程规约 (六)集合处理
《阿里开发手册 嵩山版》Java编程中的集合处理规范和最佳实践,旨在提升代码质量和开发效率。
|
Dart 开发者
Flutter笔记 - 关于 fit 属性以及相关知识的总结
Flutter笔记 - 关于 fit 属性以及相关知识的总结
491 0
|
Ubuntu Linux
【问题复盘】在Ubuntu 20.04下安装OFED驱动 复盘:在Ubuntu 20.04下安装OFED驱动
整个问题主要是由于不同的内核版本导致文件路径不同,进而导致安装过程中某些库无法按预期安装而出现问题。 为什么使用最新的OFED驱动解决了问题呢?推测是最新驱动补充了之前缺失的某些文件,因此后续安装过程能够正常进行。 例如,在OFED 5.4中,某个安装所需的文件F位于A处,但安装程序却在B处查找该文件,导致报错。而在OFED 5.8中,该安装所需的文件F被移回到B处,此时不管去哪里查找都能找到文件F,因此安装可以正常进行。
931 0
|
存储 Shell 开发者
Shell 变量详解:如何定义、使用和管理
**Shell脚本中,变量是核心元素,用于暂存数据。变量默认为字符串,赋值时等号两侧无空格。命名遵循:数字、字母、下划线,以非数字开头。常用特殊变量如 `$0` (脚本名),`$#` (参数个数)。定义变量可使用单引号(不解析变量)、双引号(解析变量)或不加引号(注意空格)。使用花括号明确变量边界,`readonly` 则可设定只读变量,`unset` 删除变量。实践这些概念以加深理解。**
404 0
|
安全 Linux Docker
当zmq 和 docker 都要绑定一个端口时,怎么不修改端口号就能解决冲突?
主机模式运行docker 容器 要使用主机模式运行Docker容器,你可以在运行Docker命令时使用--network=host选项。这将使容器共享主机的网络命名空间,意味着容器将直接使用主机的网络,而不是虚拟的网络。
232 0
|
存储 机器学习/深度学习 人工智能
向量数据库:新一代的数据处理工具
向量数据库是一种特殊类型的数据库,它可以存储和处理向量数据。向量数据通常用于表示多维度的数据点,例如在机器学习和人工智能中使用的数据。在向量数据库中,数据被表示为向量,这些向量可以在多维空间中进行比较和搜索。这种数据库的一个关键特性是它能够快速地找到与给定向量最相似的其他向量,这是通过计算向量之间的距离(例如欧氏距离或余弦相似度)来实现的。
2753 0
向量数据库:新一代的数据处理工具
五分钟对接『短信验证码API接口』(入门教程——适用学生/开发者/各种商用)
该接口特点: 1、支持免费试用,精选1分钱套餐无限量供应,可使劲薅羊毛,很适合学生等初学者练习API接口对接; 2、支持全行业对接,适用于各类短信验证码、会员通知提醒; 3、支持自定义签名和模板(无限量)、长度自适应,长达500字; 4、配备《管理控制台》,可随时随地自行添加签名、模板,查询发送明细、也可支持在控制台手工发送等; 5、支持虚拟运营商短信发送,大容量高并发,3秒可达; 6、适用企事业单位/个体使用;