NeRF三维重建从环境配置到实操创建目标三维模型全过程

1. 在Windows操作系统下配置instant_ngp

1.1 代码下载

instant_ngp在github上的网址:GitHub - NVlabs/instant-ngp: Instant neural graphics primitives: lightning fast NeRF and more。GitHub项目仓库中的一些子模块是通过链接的方式链接到主项目目录上的,在下载过程中如果只下载主目录的文件会导致链接的文件夹是空的,所以需要单独打开每一个文件夹查找带有链接的子模块进行下载,如图红框中标注出来的,除了图中标识出来的文件夹,还有多个请自行查找并下载。

注意:“instant-ngp/dependencies/tiny-cuda-nn/dependencies/”文件夹中同样存在链接子模块。

下载压缩包之后,其文件名会在原有的基础上增加许多乱码,需要手动删除,并将解压后的文件夹放置在instant_ngp项目目录的原位置。

1.2 软件准备

①Visual Studio 2019。参考知乎上其他大神的说法,必须是2019。但官方文档中写的是2022也可以,可以自行尝试。

②cuda。官方给的是CUDA 11.5或以上,还需要对应版本的cuDNN。

③Cmake。参考上图,官方建议3.21以上。在官网选择适合的版本下载。

⑤python。官网建议3.7及其以上。

⑥OptiX。官网建议7.3以上。下载安装配置教程:【optix 7】 下载安装与编译示例(Win10) - 简书 (jianshu.com)

1.3 编译

有两种方法,可以参照官网使用命令编译,如下图。 

也可以参考英伟达的Nerf:instant_ngp在Windows10下的配置和使用--保姆级教学 - 知乎 (zhihu.com)】使用Cmake进行。该教程的编译过程很详细。

2. 测试

Github获取的instant_ngp项目中自带有用来测试的数据,在文件夹的data \nerf\fox目录下有自带的数据。images文件里面是影像数据,transforms.json文件里面存储的是对应影像的位置等信息。

在instant_ngp目录下找到【instant-ngp.exe】,双击会打开如下界面:

 

然后,将【fox】文件夹直接拖动到上述窗口中,训练即刻开始,在观察loss曲线逐渐平稳后,点击上方的【stop training】,停止训练,注意:训练时间太长会导致过拟合报错。

点击下方的【save】可以保存建立好的点云文件到fox文件夹中,同样在下方输入点云文件的路径,点击【load】可以加载训练好的结果。使用鼠标或【WASD】键可以控制视角转动。

3. 创建其他目标的三维模型

3.1 准备照片

照片的拍摄具体可以参考上述fox文件夹中的50张狐狸影像,需要从各个角度环绕拍摄,同样也需要近距离拍摄细节。也可以拍摄一段视频然后使用3DF Zephyr或其他软件逐帧生成照片。本教程以一株杉木进行实操。在fox的同级目录创建shamu文件夹,照片放置在shamu文件夹里。

注意:照片需要放置在同一个文件夹中并给文件夹命名为【train】。

3.2 生成保存照片信息的json文件

生成json文件需要利用一个保存在instant-ngp文件夹中的python脚本。在调用该脚本之前需要进行一些环境配置。

将终端定位到instant-ngp目录下,需要创建虚拟环境,以及利用conda安装一些包,使用conda命令的前提是安装过anaconda。我的电脑下载的python版本是3.9。依次执行如下命令:

conda create -n instant-ngp python=3.9
pip install -r requirements.txt
conda install -c conda-forge colmap
conda install -c conda-forge ffmpeg
conda install -c conda-forge mpir

注意:所有的包的安装都在第一步创建的虚拟环境下进行。

在使用conda安装包的时候,可能会出现长时间无法安装或者失败的情况,可以先使用conda config --add channels命令添加一些镜像源,具体可以参考conda配置国内镜像源_conda国内镜像源_汪小敏同学的博客-CSDN博客

如果在添加了镜像源后还是出现失败的情况,可以在:: Anaconda.org中搜索需要安装的包。

比如可以直接搜索ffmpeg,然后在结果中会出现多个安装命令,挑选一个和原来不同的复制,返回终端运行。

在所有包都安装完成之后,确保照片也放置在指定位置,将终端定位到data/nerf/shamu目录下,使用conda activate instant-ngp命令激活前面创建的虚拟环境,然后执行以下命令:

python ../../../scripts/colmap2nerf.py --colmap_matcher exhaustive --colmap_camera_model PINHOLE --run_colmap --images train --aabb_scale 4

回车运行时会有下面的提示,输入【Y】后回车。

接下来的过程需要几分钟,命令框中会显示进度。运行结果如下:

在shamu文件夹中会生成如下的文件:

3.3 训练模型

双击打开instant-ngp.exe,将shamu文件夹直接拖到窗口中,即开始训练。训练结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值