英伟达的Nerf:instant_ngp在Windows10下的配置和使用–保姆级教学

英伟达的Nerf:instant_ngp在Windows10下的配置和使用–保姆级教学

1、前言

Nerf的原理和厉害之处在这里就不做详细介绍了,本文主要是针对小白在Windows10环境下配置instant_ngp遇到的问题和bug做详细的解读。如果有介绍不当或者不对的地方,欢迎大家指出。

instant_ngp在github上的网址:NVlabs/instant-ngp: Instant neural graphics primitives: lightning fast NeRF and more (github.com)。在官网的文档中对环境的配置介绍的还是很详细的,如果你有一定的基础和阅读能力,相信大家自己是可以摸索出来的,当然,如果在我编译代码的过程中还是遇到的一些bug,接下来我会详细的指出。

2、准备工作

在编译instant_ngp代码之前需要准备以下几样东西:

  • Visual Studio 2019。必须是2019,当然我只在2019上编译过,没有在其他版本的Visual Studio上尝试过,但是听说只有Visual Studio 2019才可以。
  • cuda。官方给的是cuda v10.2以上,我使用的是cuda11.6,我使用的显卡是3090,之前用的cuda11.3,但是好像失败了,就又安装了11.6,如果你的cuda版本不能用,又不想卸载之前的cuda,那么我建议安装两个版本的cuda,根据情况切换,具体操作网上有很多,大家自行查看。当然,还要下载对应的cudnn。
  • Cmake。官网建议3.21以上。
  • python。官网建议3.7及其以上。非必须,但是建议安装。
  • OptiX。官网建议7.3以上。非必选,但是意见安装。

以上所有内容安装之后一定要检查环境,是否将路径添加到环境中。

3、代码下载

没想到吧,代码下载还可以介绍一章,那是因为直接从GitHub拉下来或者下载的代码不全。

在源代码dependencies文件中,有很多的文件夹并没有随着代码一起下载下来,没有下载下来的文件夹主要是下面红色方框中的文件夹。(我是这样的,不知道大家是不是会遇到一样的问题)

image-20220710164951576

image-20220710164844132

并且在dependencies/yiny-cuda-nn/dependencies/cutlass中的内容也需要单独下载。

image-20220710165425445

所有的代码下载之后,再根据对应位置放好文件才得到了完整的instant_ngp源文件。

3、编译

3.1、Cmake

可以按照官网用命令编译,也可以用Cmake。本文以具有GUI的Cmake为例。首先选择源文件的目录,并在文件下创建build作为输出目录,大家一定养成好习惯啊,不要有中文。

image-20220710170441385

然后点击Configure,选择vs2019,x64。选择后点击finish。

image-20220710170656336

然后就得到这Configuring done的结果。虽然很多红色的出现,但是不要害怕!这只是Warning不是error。

然后点击Generate就得到了Generating done,此时恭喜你已经完成了编译的准备工作,如果你做到这里了,接下来应该没什么大问题了,我们继续加油,完成编译工作。

3.2、编译

完成Cmake的配置工作之后,就可以直接在VS中打开,记住一定是VS2019。

打开工程之后,需要选择Release版本,X64平台。

image-20220710171951682

右键ALL_BUILD,点击生成

等好久之后,不出意外就是成功了。

image-20220710172734074

生成的exe文件默认位置在build下面,叫testbed.exe。如果你希望在Release文件夹下,也可以修改输出路径。

image-20220710172903773

4、测试

4.1、自带数据

我只演示使用图片的测试,在文件夹的data目录下有自带的数据。

image-20220710173140259

images文件里面是影像数据,transforms.json文件里面存储的是对应影像的位置等信息。如果你想训练自己的影像数据,也需要将数据整理成这样的格式。

打开Developer Command Prompt for VS 2019。必须用这个,cmd等其他的终端是不行的好像。

image-20220710173459621

在终端按照下面两个步骤运行程序,首先要切换到你源文件的位置,输入E:即可切换到E盘,在cd切换到对应位置(不切换运行会出错好像)

然后按照以下格式输入命令:

【testbed.exe】 –mode nerf –scene 【transforms.json】

【testbed.exe】是exe文件位置,

【transforms.json】是transforms文件位置image-20220710174244996

最后就调出GUI界面了。

image-20220710174141069

4.2、自己的数据

在scripts文件下有一个colmap2nerf.py可以实现colmap相机格式转Nerf需要的transform.json格式

colmap软件的官网:COLMAP — COLMAP 3.8 documentation,大家自行下载

下载安装好之后打开软件,打开是点击CLOMAP.bat打开软件,接下来可以创建一个文件夹放你的数据。

image-20220710175032935

新建工程项目

image-20220711091229862

选择项目位置和照片位置,点击save保存

image-20220711094943046

点击processing->feature extraction进行特征提取

点击processing->feature match进行特征匹配

点击Reconstruction->Start reconstruction开始重建

image-20220711094920493

最后点击File->export model as text将结果保存为文本

然后将instant-ngp-master/scripts/colmap2nerf.py文件copy到刚才结果的上一级目录
image-20220711095313982

image-20220711100412994

接下来运行colmap2nerf.py文件,可以在终端也可以在vscode。

运行之后会生成一个transforms.json的文件

image-20220711100903250

想要运行这个数据,就像4.1中自带数据一样使用

按照以下格式输入命令:

【testbed.exe】 –mode nerf –scene 【transforms.json】

【testbed.exe】是exe文件位置,

【transforms.json】是transforms文件位置

5、参考

NVlabs/instant-ngp: Instant neural graphics primitives: lightning fast NeRF and more (github.com)

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年5月11日
下一篇 2023年5月11日

相关推荐