NeRF室内重建对比:Nerfstudio vs. Luma AI vs. Instant-NGP

十年前,Matterport 改变了房地产业,让房地产买家可以进行数字旅游。 买家可以在房产内从一个点移动到另一个点并环顾四周。 与 2D 照片库相比,这是一个巨大的改进。 然而,买家仍然被房产内的一系列问题所困扰。

在这里插入图片描述

推荐:用 NSDT设计器 快速搭建可编程3D场景。

如今,神经辐射场 (NeRF) 是房地产可视化现实捕获的下一代发展。 这项新技术将使购房者能够在房间内走动,观察光线如何在空间中移动,并获得更加身临其境的空间感觉。

我决定测试目前可用的前 3 个 NeRF 软件包,看看哪一个最适合捕捉房间内部情况。 我测试了 Luma AI、Nerfstudio 和 Instant-NGP(Instant-NeRF)。 我保持测试简单,只是 NeRFed 我的厨房/餐厅区域。 我比较了易用性和输出质量。

1、测试方法

任何好的测试都是从有计划的方法开始的。 我尽力保持所有三个软件包之间的变量一致。 为了清楚起见,我将测试方法分为几个主要部分:

  • 图像采集
  • 图像预处理
  • 训练
  • 视频渲染
  • NeRF 质量比较

2、图像采集

我使用 iPhone 14 Pro 超广角镜头,设置为 4K/30fps。 我以垂直视频格式拍摄,以最大限度地增加在房间内每次经过时捕捉到的地板或天花板的数量。 空间有限,在一个更开放的房间里我会使用我的主摄像头。

超广角相机的一个缺点是它不具备光学稳定性。 我计划使用 DJI OM5 云台重新拍摄片段,以便在将来的比较中稍微稳定片段。 我在我的镜头中添加了一张示例图像,你可以在其中看到过度的模糊。 这对所有三个 NeRF 结果都有影响。
在这里插入图片描述

源视频图像模糊

最后,我以不同的高度和倾斜角度绕着房间走了多个圈,试图捕捉整个天花板和地板。

作为参考,你可以在此处观看源视频。

3、图像预处理

我使用 FFMPEG 在 PC 上执行图像提取。 Nerfstudio 和 Luma AI 都有自己的提取管道,但目标是将每个平台与完全相同的输入图像进行比较。 我每秒提取 4 帧,并将图像下采样到 1920x1080 — 结果是 503 个图像。 我进行了降采样以避免在 NeRF 训练期间耗尽 RTX 3090ti 上的 VRAM。 然而,这并不理想,本文的结论部分将对此进行详细介绍。

我将 COLMAP 用于 Instant-NGP 和 Nerfstudio。 我将处理模式设置为顺序来确定相机姿势。
在这里插入图片描述

在 Instant-NGP 中可视化视频漫游中的摄像机位置
Luma AI 有自己的相机姿态估计管道。 我将所有源图像压缩到一个文件夹中并将它们上传到 Luma AI。 由于大多数非科学家很难理解 COLMAP,因此该工作流程在预处理简便性方面显然是赢家。

此外,还可以上传高达 5GB 的视频或压缩的图像文件夹,让生活变得极其轻松。 你甚至可以在 Luma AI iPhone 应用程序中上传视频,而无需使用 PC。

Nerfstudio 通过自动决定从视频中提取多少图像,在消除你的猜测工作方面做得非常出色。 它会对图像进行降采样,因此无需将 4K 视频转换为 1080p。 我没有使用 Nerfstudio 管道进行此测试,以确保源数据与所有三个软件平台一致。

Instant-NeRF 使用我的批处理文件与 Nerfstudio 一样简单。 我只需将视频拖放到批处理文件中即可。 然而,我仍然需要将视频从 iPhone 传输到 PC,这很麻烦。 另外,如果没有我的批处理文件,Instant-NGP 是最糟糕的选择。

3、训练

我对每个平台的培训流程进行了细分:

Instant-NGP:数据经过 35,000 个步骤的训练。 我减少了近距离以确保整个场景都得到训练。 这可能引入了一些飞蚊症。 我不确定训练需要多长时间,它是在我做晚餐玉米饼时运行的。

Nerfstudio:使用 nerfacto 方法将数据训练到默认完成步骤。 我忘了实际的完成步骤是什么,我相信大约是20k。 我没有更改任何默认参数。 再说一次,我没有记录这花了多长时间……比吃我准备晚餐的炸玉米饼所花的时间还要短。

Luma AI:这个平台不给你任何训练选项,这使得它非常适合那些想要制作 NeRF 而不想摆弄参数的人。 这可能是好是坏,具体取决于你的最终用途。 对于创作者和非科学家来说,这是一件很棒的事情! 训练 NeRF 所花费的时间比我清理晚餐做的炸玉米饼所花费的时间还要少。

4、渲染

我尽力在每个相机编辑器中重新创建相同的场景飞行。 我制作了一个 1 分钟的宽视场视频。 输出素材为 1080p/30fps。

Luma AI 的相机设置与其他两个软件包不同。 我将Luma AI的相机镜头设置为16mm。 Instant-NeRF 和 Nerfstudio 只允许我设置 FOV 值。 我选择了 70,现在回想起来,它比 16 毫米窄。

以下是我对每个平台的渲染过程的想法:

Instant-NGP:他们的相机路径编辑器是我的最爱。 可能是因为我用得最多。 我喜欢使用 DLSS 实时渲染 NeRF,并在创建相机轨迹时了解最终渲染的样子。 缺点是我无法控制关键帧之间的时间。 NVIDIA,如果你正在阅读本文,请添加关键帧计时!

在我的 RTX 3090ti 上渲染最终输出花了 38 分钟。 我在 GUI 中渲染了视频。 如果我离线渲染,时间会更快。

在这里插入图片描述

在 Instant-NGP 中创建相机动画

Nerfstudio:哦,我多么希望这个软件有 DLSS! 相机路径编辑器马马虎虎。 当源图像位置打开时,很难看到场景。 场景被严重降低采样。 渲染速度很快——大约花了 30 分钟。

Luma AI:我对场编辑器没有太多经验,但是,他们提供预制轨道和振荡路径,这很好。 另外,AR录音机也很有趣。 我发现创建我的路径很简单,而且他们有最好的用户界面。 与 Instant-NGP 或 Nerfstudio 相比,在这个编辑器上查看我的路径要容易得多。

在这里插入图片描述

在 Luma AI 中创建相机动画

5、NeRF 质量比较

在你深入阅读本节之前,我在结论中添加了额外的比较注释。 如果你期望一款软件比其他两款好几倍,那么你会失望的。 但等一下,显然有一个是赢家!

从远处看,这三个场景看起来都不错,但如果你仔细观察,你就会发现差异。 白色的凳子和椅子在 Nerfstudio 的输出中显得模糊。 Instant-NGP 钉住了凳子,但椅子腿仍然很模糊。

在这里插入图片描述

Nerfstudio 远景
在这里插入图片描述

Instant-NeRF 远景
在这里插入图片描述

Luma AI远景

细节差异在特写时变得更加明显。 Luma AI 的结果中,台面边缘的瓷砖细节最为清晰。 你还可以在柜台顶部看到更多细节。 Luma AI 结果中的生日气球是最清晰的,并且保留了闪亮的品质。

在这里插入图片描述

Nerfstudio 特写
在这里插入图片描述

Instant-NeRF特写
在这里插入图片描述

Luma AI特写

最后一个场景不是竞争。 不管用什么方法,这张桌子的结果都不好。 我将此归咎于我不稳定的镜头。 花朵质量与 Instant-NeRF 和 Luma AI 相关。 花瓶与 Luma AI 搭配效果最佳。

最显着的区别是 Luma AI 更好地再现了窗户反射和墙壁。

在这里插入图片描述

Nerfstudio用餐区
在这里插入图片描述

Instant-NeRF用餐区
在这里插入图片描述

Luma AI用餐区

6、结束语

显然,Luma AI 在易用性和输出质量比较方面均胜出。 这不应该令人震惊,因为他们的产品背后有一家专门的公司。 Instant-NGP 是一个 NVIDIA 研究项目,Nerfstudio 是一个由伯克利分校的学生小组运行的项目。

  • 实时查看

Instant-NGP 是我唯一可以实时运行 NeRF 并具有良好视觉效果的软件。 Nerfstudio 实时运行,但质量对于“虚拟游览”或类似用例来说不够好。 如果我的目标是创建一个实时运行 NeRF 的房产游览,那么 Instant-NGP 会胜出。

  • 虚拟现实

Instant-NeRF 有一个简单的 VR 查看器,还可以让我清理 NeRF 中的漂浮物。 这是一个巨大的优势! 从技术上讲,你可以通过 Nerfstudio 和 Luma AI 的虚幻引擎集成之一在 VR 中可视化。 我认为 VR 地产之旅的市场很小。

  • 第三方集成

Nerfstudio 既有 Blender 插件,也能通过 Volinga beta 在虚幻引擎中实时渲染 NeRF。 我认为他们正朝着正确的方向前进。 这两种集成对于构建房产参观体验至关重要。

Luma AI 也正在运行虚幻引擎集成测试版。 我对这种集成有个人经验,并且它可以通过蓝图轻松开箱即用。 将此与他们的 SDK 访问权限配对,你可以从技术上构建端到端 NeRF 房产游览体验。

  • 网格输出

Luma AI 对于较小的物体具有出色的网格输出。 如果你想要对大型无人机扫描进行网格划分,此时一切都会崩溃。

Nerfstudio 具有出色的网格和点云输出选项,但其质量无法与摄影测量获得的任何东西相媲美。 对于房间网格,SDFStudio 集成值得研究。

  • 其他问题

源图像远非理想。 运动模糊是影响 NeRF 渲染质量的一个重要因素。 Luma AI 显然是处理模糊的最佳软件。 这让我想到一个问题:使用更清晰的源图像会得到相同的结果吗?

我也没有使用 Nerfstudio 最新的 nerfacto 方法。 他们发布了 nerfacto-big,它的训练速度较慢,但可能会产生更好的结果。 如果采用新的训练模式,我会有不同的获胜者吗?

在撰写本文时,Zip-NeRF 已发布,它将内部 NeRF 的细节提升到一个新的水平。 目前的 NeRF 软件选项是否可以与 Zip-NeRF 的质量竞争?


原文链接:NeRF室内重建对比 — BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/27627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rk3399移植linux kernel

rk3399移植linux kernel 0.前言一、移植ubuntu根文件系统二、移植linux1.支持NFS(可选)2.配置uevent helper3.支持etx4文件系统(默认已支持)4.配置DRM驱动5.有线网卡驱动6.无线网卡驱动 三、设备树四、内核镜像文件制作五、烧录六、总结 参考文章: 1.RK3399移植u-bo…

TypeScript 中【class类】与 【 接口 Interfaces】的联合搭配使用解读

导读: 前面章节,我们讲到过 接口(Interface)可以用于对「对象的形状(Shape)」进行描述。 本章节主要介绍接口的另一个用途,对类的一部分行为进行抽象。 类配合实现接口 实现(impleme…

如何用正确的姿势监听Android屏幕旋转

作者:37手游移动客户端团队 背景 关于个人,前段时间由于业务太忙,所以一直没有来得及思考并且沉淀点东西;同时组内一个个都在业务上能有自己的思考和总结,在这样的氛围下,不由自主的驱使周末开始写点东西&…

QT生成Debug和Release发布版后,运行exe缺少dll问题

在QT Creator生成debug和release的exe执行文件后,运行时,报错缺少*.dll.解决办法1: 在系统环境变量中添加D:\Qt\Qt5.13.2\Tools\mingw730_64\bin后,即可运行。 当使用此方法时,将exe拷贝到其他电脑中运行时&#xff0c…

软件性能测试有哪些测试指标?性能测试报告对软件产品起到的作用

在软件开发过程中,性能测试是一个至关重要的环节,主要关注软件系统在不同负载条件下的表现,以评估其稳定性、可扩展性和响应能力。它可以帮助开发人员评估软件系统的质量和性能。 一、软件性能测试的测试指标 性能测试的测试指标直接影响着…

【代码解读】RRNet: A Hybrid Detector for Object Detection in Drone-captured Images

文章目录 1. train.py2. DistributedWrapper类2.1 init函数2.2 train函数2.3 dist_training_process函数 3. RRNetOperator类3.1 init函数3.1.1 make_dataloader函数 3.2 training_process函数3.2.1 criterion函数 4. RRNet类(网络模型类)4.1 init函数4.…

计算机视觉--距离变换算法的实战应用

前言: Hello大家好,我是Dream。 计算机视觉CV是人工智能一个非常重要的领域。 在本次的距离变换任务中,我们将使用D4距离度量方法来对图像进行处理。通过这次实验,我们可以更好地理解距离度量在计算机视觉中的应用。希望大家对计算…

IPC之一:使用匿名管道进行父子进程间通信的例子

IPC 是 Linux 编程中一个重要的概念,IPC 有多种方式,本文主要介绍匿名管道(又称管道、半双工管道),尽管很多人在编程中使用过管道,但一些特殊的用法还是鲜有文章涉及,本文给出了多个具体的实例,每个实例均附…

CentOS 7 构建 LVS-DR 群集 nginx负载均衡

1、基于 CentOS 7 构建 LVS-DR 群集。 DS(Director Server):DIP 192.168.231.132 & VIP 192.168.231.200 [root132 ~]# nmcli c show NAME UUID TYPE DEVICE ens33 c89f4a1a-d61b-4f24-a260…

AIGC:【LLM(四)】——LangChain+ChatGLM:本地知识库问答方案

文章目录 一.文件加载与分割二.文本向量化与存储1.文本向量化(embedding)2.存储到向量数据库 三.问句向量化四.相似文档检索五.prompt构建六.答案生成 LangChainChatGLM项目(https://github.com/chatchat-space/langchain-ChatGLM)实现原理如下图所示 (与基于文档的问答 大同小…

Python连接Hive实例教程

一 Python连接hive环境实例 经在网络查询相关的教程,发现有好多的例子,发现连接底层用的的驱动基本都是pyhive和pyhs2两种第三方库的来连接的 hive,下面将简介windows 10 python 3.10 连接hive的驱动程序方式,开发工具:pycharm …

架构实践方法

一、识别复杂度 将主要的复杂度问题列出来,然后根据业务、技术、团队等综合情况进行排序,优先解决当前面临的最主要的复杂度问题。对于按照复杂度优先级解决的方式,存在一个普遍的担忧:如果按照优先级来解决复杂度,可…

List list=new ArrayList()抛出的ArrayIndexOutOfBoundsException异常

1.应用场景,今天生产日志监控到一组new ArrayList() 进行add 异常,具体日志如下: eptionHandler.handler(178): TXXYBUSSINESS|执行异常 java.util.concurrent.CompletionException: java.lang.ArrayIndexOutOfBoundsException: Index 1 out…

银河麒麟QT连接DM8数据库

1. 安装达梦8 官网下载, 按照官方文档进行安装即可. 2. 安装unixodbc 1> 下载odbc安装包 unixODBC-2.3.7pre.tar.gz 2> 解压 tar -xvf unixODBC-2.3.7pre.tar.gz3> 编译 ./configure -prefix /usr/local make && make install4> 查找配置 odbcinst -j5…

【从零学习python 】04. Python编程基础:变量、数据类型与标识符

文章目录 变量以及数据类型一、变量的定义二、变量的类型三、查看数据类型 标识符和关键字标识符命名规则命名规范 关键字进阶案例 变量以及数据类型 一、变量的定义 对于重复使用,并且经常需要修改的数据,可以定义为变量,来提高编程效率。…

代码随想录算法训练营第51天|动态规划part09|198.打家劫舍、213.打家劫舍II、337.打家劫舍III

代码随想录算法训练营第51天|动态规划part09|198.打家劫舍、213.打家劫舍II、337.打家劫舍III 198.打家劫舍 198.打家劫舍 思路: 仔细一想,当前房屋偷与不偷取决于 前一个房屋和前两个房屋是否被偷了。 所以这里就更感觉到&a…

鉴源论坛·观模丨形式化方法的工业应用:轨交领域

作者 | 王依玲 上海控安可信软件创新研究院系统建模组 版块 | 鉴源论坛 观模 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 引言:前面几期文章介绍了形式化方法的发展历史和具体技术,并从整体的角度介绍了形式化方法的工程化。本…

SpringBoot 的事务及使用

一、事务的常识 1、事务四特性(ACID) A 原子性:事务是最小单元,不可再分隔的一个整体。C 一致性:事务中的方法要么同时成功,要么都不成功,要不都失败。I 隔离性:多个事务操作数据库中同一个记录或多个记录时,对事务进…

TikTok推出PrivacyGo,品牌可与平台共享部分用户数据

1.TikTok宣布允许用户关闭内容自动显示功能 TikTok近日宣布修改运营方式,即允许用户关闭内容自动显示功能,以遵守将于8月底生效的欧盟新规定(欧盟数字服务法案DSA),该法案对平台提出了新的要求,以更好地保…

.NET 应用程序 部署

**硬件支持型号 点击 查看 硬件支持 详情** DTU701 产品详情 DTU702 产品详情 DTU801 产品详情 DTU802 产品详情 DTU902 产品详情 G5501 产品详情 本文内容 在设备上部署 dotnet应用,与任何其他平台的部署相同,可以2种方式: 依赖于框…