Nerf(instant-ngp)快速实现三维重建
Windows 版
搭建环境
(1)创建conda环境
1 | conda create -n nerf-ngp python=3.8 |
(2)下载instant-ngp应用
快速使用可以下载官方提供的instant-ngp.exe
应用,根据自己的显卡版本下载即可:
- RTX 3000 & 4000 series, RTX A4000–A6000, and other Ampere & Ada cards
- RTX 2000 series, Titan RTX, Quadro RTX 4000–8000, and other Turing cards
- GTX 1000 series, Titan Xp, Quadro P1000–P6000, and other Pascal cards
(如果链接失效请参考源项目中Installation部分,如果在ubuntu下使用,需要下载源码构建。)
根据自己的情况,下载完成后解压即可:
(3)测试
打开instant-ngp.exe
,将data\nerf\
下的fox
文件直接拖到窗口中即可
Colmap 计算相机位姿
(1)录制视频
对于要三维重建的物体或场景,使用手机录制一段视频。
尽量均匀扫描,手机不要移动太快或抖动。
(2)使用Colmap计算相机位姿
在项目文件夹内新建一个文件夹,将录制的视频放进去。
cd
到视频所在的目录下。在命令行内执行:
1 | conda activate nerf-ngp |
需要等待较长的一段时间
完成后会出现分割好的image文件夹
再继续执行:
1 | python ..\..\scripts\colmap2nerf.py --colmap_matcher exhaustive --run_colmap --aabb_scale 16 --overwrite |
在等待比较长的一段时间,完成。
instant-ngp 三维重建
打开instant-ngp.exe
,将desk文件夹整体拖进去就ok了
视觉效果还是相当可以的,不过导出 mesh 模型效果比较差
Ubuntu 版
该方法在 Ubuntu 20.04 +RTX 3090Ti 机器上进行过测试。
环境配置
首先安装以下依赖
1 | sudo apt-get install build-essential git python3-dev python3-pip libopenexr-dev libxi-dev libglfw3-dev libglew-dev libomp-dev libxinerama-dev libxcursor-dev |
安装 CUDA,参考 记录 Ubuntu 安装后的系统配置、常用软件安装过程/4.5 CUDA。
下载代码
1 | git clone --recursive https://github.com/nvlabs/instant-ngp |
进行编译
1 | cmake . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo |
Demo 测试
运行下面的可执行文件,启动 nerf
1 | ./instant-ngp |
将 data/nerf/fox
中的 transform.json
文件直接拖进 gui 界面即可进行训练
自建数据集
创建 conda 环境
1 | conda create -n nerf-ngp python=3.8 |
将自己录制的视频放置在 instant-ngp/script
目录下。
执行以下程序生成 transform.json
文件
1 | cd scripts |
直接把生成的 transform.json 文件拖到 instant-ngp 的 gui 界面就可以渲染。
评论