【代码复现】5秒训练NeRF!英伟达instan-ngp在windows成功复现

前情提要

NeRF在我之前的文章中已经介绍过其牛X之处,不过它也存在如训练、推理慢等问题。近期,Nvidia提出的instant-ngp算法实现了快速的NeRF训练和推理。本文主要介绍了在Windows10系统下运行instant-ngp的方法和我在复现过程中出现的一些小问题。

instant-ngp代码链接:https://github.com/NVlabs/instant-ngp

准备工作

在运行instant-ngp之前,需要在电脑内安装以下几样工具:

  • Windows: Visual Studio 2019(测试了一下2022版本,可能是和CUDA不匹配,运行失败)

  • CUDA v10.2 or higher

  • CMake v3.21 or higher

- OptiX 7.3 or higher(非必要,可以不装)

  • COLMAP

注意!!!!安装好之后一定要检查路径是否添加到系统的环境变量中!!!!

**代码下载:**本人在复现的时候出现的第一个问题竟然在这。。。。无论是直接git还是直接下载,都出现了代码缺失的问题,找了好久才发现这个问题。我在这里给大家提供一个完整版的代码,大家用的时候改下路径就可以了:

链接:https://pan.baidu.com/s/1YlC89Qnk9-_TZkgZ8E0wvw?pwd=g3pg

提取码:g3pg

开始编译

官网给出了两种编译的方法,我在这里介绍的是cmake编译的方法。

首先打开cmake gui,选择根目录地址并在根目录下创建build文件夹作为输出目录。(路径中不要出现中文!!!)

点击Configure,选择 Visual Studio 16 2019,然后点击Finish。

然后就在下方框内得到Configuring done的结果。(无须在意出现的红色提示)

最后点击Generate就得到了Generating done,到这一步已经完成了编译的前期工作了!

点击Open project打开工程。

在VS2019界面选择Release&x64,然后右键选择ALL_BUILD,点击生成,等待一段时间没报错就是成功了!

上一步会在build文件夹中生成一个名为testbed.exe文件。

测试

现有数据集

首先对原作者使用的fox图片进行测试,fox的图像文件在data/nerf/fox下,其中images是图片数据,transforms.json是图片对应的位置信息。

打开Developer Command Prompt for VS 2019。(这里只能用这个终端,其他的像cmd和anaconda都不可用)在终端内切换到instan-ngp文件夹的路径。

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

【PATH:testbed.exe】 --mode nerf --scene 【PATH:transforms.json】

最终就成功调出了instant-ngp的GUI界面了!

自创数据集

在这个部分我将演示一下如何用手机拍摄视频创建自己的数据集并且进行NeRF训练。

第一步,我们需要拍摄一段视频存入电脑,对视频进行一个解码与缩放的操作,将视频转化为多个角度的图片。

这个页面下载脚本,将脚本放在instant-ngp文件夹下的scripts中,打开anaconda创建一个虚拟环境,cd进入instant-ngp文件夹,输入以下指令进行解码与压缩。

conda create -n ngp python=3.9
conda activate ngp
cd {Your PATH}
python .\scripts\convert_video.py --input {Video PATH}  --output {data\nerf\YOUR_file\images}  --show_image 1 --scale 2

其中input是视频的路径,output需要你在data\nerf下创建自己的数据集文件夹,并在该文件夹内创建images文件夹来存放图片。

第二步,进行Colmap重建,分别进行特征提取、匹配、稀疏重建,导出稀疏模型文件。

打开Colmap,点击file--->new project,在自定义数据文件夹下创建database文件,图片来源选择images文件夹,点击Save。

随后点击Processing---Feature extraction,不需要更改任何数据,直接点Extract即可。

然后选择Processing---Feature matching,同样不需要更改任何数据,点击Run。

点击Reconstruction---Start reconstruction进行重建。

在自定义数据集文件夹下新建sparse\0文件夹(注意!一定要按照这个命名,否则后边会出错),点击File---export model as text,将重建数据放到sparse\0文件夹中。

第三步,生成instant-ngp需要的transforms.json文件。

在第一步创建的虚拟环境下,运行如下代码:

python colmap2nerf.py  --aabb_scale 16 --images {YOUR_IMAGES}  --text {SPARSE\0}  --out {YOUR_DATA_PATH\transforms.json}

其中输入为图像路径,文本为上一步导出的TXT文件,输出为tranforms.json。

第四步,开始运行!!!!!

这里的方法和测试部分的方法一致,只需更改transforms的路径即可。

【PATH:testbed.exe】 --mode nerf --scene 【PATH:transforms.json】

看一下运行的结果:

大功告成!!!!

相关推荐
埃菲尔铁塔_CV算法11 分钟前
深度学习神经网络创新点方向
人工智能·深度学习·神经网络
艾思科蓝-何老师【H8053】29 分钟前
【ACM出版】第四届信号处理与通信技术国际学术会议(SPCT 2024)
人工智能·信号处理·论文发表·香港中文大学
weixin_452600691 小时前
《青牛科技 GC6125:驱动芯片中的璀璨之星,点亮 IPcamera 和云台控制(替代 BU24025/ROHM)》
人工智能·科技·单片机·嵌入式硬件·新能源充电桩·智能充电枪
学术搬运工1 小时前
【珠海科技学院主办,暨南大学协办 | IEEE出版 | EI检索稳定 】2024年健康大数据与智能医疗国际会议(ICHIH 2024)
大数据·图像处理·人工智能·科技·机器学习·自然语言处理
右恩1 小时前
AI大模型重塑软件开发:流程革新与未来展望
人工智能
图片转成excel表格2 小时前
WPS Office Excel 转 PDF 后图片丢失的解决方法
人工智能·科技·深度学习
ApiHug2 小时前
ApiSmart x Qwen2.5-Coder 开源旗舰编程模型媲美 GPT-4o, ApiSmart 实测!
人工智能·spring boot·spring·ai编程·apihug
哇咔咔哇咔3 小时前
【科普】简述CNN的各种模型
人工智能·神经网络·cnn
李歘歘3 小时前
万字长文解读深度学习——多模态模型CLIP、BLIP、ViLT
人工智能·深度学习