本文测试了NVIDIA提出的 Instant NeRF
Instant Neural Graphics Primitives with a Multiresolution Hash Encoding
Thomas Müller, Alex Evans, Christoph Schied, Alexander Keller
ACM Transactions on Graphics (SIGGRAPH), July 2022
Project page / Paper / Code / Video / BibTeX
安装 instant-ngp
完整的文字教程见这个链接instant-ngp-Windows,视频教程见这个链接。
安装该软件有以下要求:
- NVIDIA GPU
- A C++14 capable compiler.
- Windows: Visual Studio 2019
- Linux: GCC/G++ 7.5 or higher
- CUDA v10.2 or higher
- CMake v3.21 or higher.
- (optional)OptiX 7.3 or higher
- COLMAP
接下来的安装以及操作过程全部是以 WINDOW 11为例进行介绍。
1. VS-STUDIO
安装Visual Studio Community 2019, 设置如下图:
2. 安装CUDA
根据当前系统显卡驱动的版本安装合适的CUDA,这里收集了所有的CUDA版本。
例如,我电脑型号R9000P
,显卡型号NVIDIA RTX 3060 LAPTOP
,通过nvidia-smi
,查看CUDA Version
,可看到我的CUDA版本是11.4,于是我选择安装CUDA 11.4.4版本,大家可以根据自己的实际情况。
安装好之后在终端输入nvcc --version
查看nvcc版本。
3. 安装CUDNN (optinal)
这一步可选,根据CUDA版本,选择合适的CUDNN版本安装,如我需要安装cudnn-11.4。
注意:这一步需要开发者权限,需要输入账号密码等信息。
4. 安装OPTIX(optinal)
此外需要安装OPTIX,版本需要在7.3或者以上,随后将OptiX_INSTALL_DIR
加入系统路径
5. 下载+编译程序
1 | $ git clone --recursive https://github.com/nvlabs/instant-ngp |
由于原项目中有多个依赖项,GitHub限速严重,我上传了一份完整版到Google drive和[Aliyun ]
进入Developer Command Prompt
终端:
从终端进入项目目录,进行编译:
1 | cmake . -B build |
安装Anaconda3
在这里选择合适的版本进行安装。
更换pip源
创建目录C:\Users\realcat\AppData\Roaming\pip
,然后创建一个pip.ini
文件,填入下面的内容。
1 | [global] |
配置conda环境
1 | conda create -n ngp python=3.9 |
安装过程最后会出现一个关于openexr的ERROR!这个时候不要慌,在这个地址下载openexr,随后使用pip进行安装:
1 | pip install OpenEXR-1.3.2-cp39-cp39-win_amd64.whl |
最后一步,安装COLMAP
这里笔者就不多说了,Release版本,笔者安装的是COLMAP-3.7-windows-cuda.zip
真实世界演示
这里有一些NeRF原作者提供的虚拟以及真实数据集,不过我使用手机拍摄了真实世界的场景一段视频,随后将视频转换为图像,这些图像送入COLMAP使用SFM得到相机位姿(即posed images)。图像数据以及相机位姿文件要转换成intant-ngp输入需要的文件,最后运行intant-ngp编译好的可执行文件。这里需要注意的是,由于手机摄像机采集到的视频尺寸为$1920 \times 1080$,该分辨率在我的笔记本上造成了显存不足的问题,于是笔者对图像进行抽帧并降采样处理。
笔者将数据集放在了 Google Drive: tussock_tiny,备选地址: tussock_tiny
真实场景原始数据
目录结构:
1 | 📂instant-ngp/ # this is root |
原始的instant-ngp
在Windows上是不支持上述目录结构的,笔者对处理脚本做了一点小小的改动:DIFF
运行脚本
接下来展示如何使用instant-ngp
创建模型的关键步骤。
1 | # step1: 视频解码与缩放 |
结果
将结果放在了Youtube,如下:
B站视频如下:
由于时间有限,笔者没有测试更多场景,感兴趣的同学可以DIY一下:)
Bug Fix
VSCode 缩进问题
Ctrl+Shift+P
选择,转缩进为空格
或者 Convert Indentation to Spaces
。
Windows 11 POWER SHELL报错
运行python显示以下错误:无法加载文件 C:\Users\32973\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本
解决办法:
- 以管理员身份运行PowerShell
- 输入:get-ExecutionPolicy,显示:Restricted,这表示状态是禁止的
- 这时输入:set-ExecutionPolicy RemoteSigned