Ubuntu20.04复现instant-ngp,自建数据集,导出mesh

本文详述了在Ubuntu20.04系统上配置Instant-NGP环境,包括CUDA、Cmake、Python等依赖的安装,并提供了ffmpeg和meshlab的安装参考。通过colmap2nerf.py脚本从视频生成transform.json文件,然后在Instant-NGPGUI中进行渲染和导出mesh。文章还强调了影响渲染质量的因素,如光线、视角和图像质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、环境配置:

 二、具体安装过程

三、源代码复现

四、自建数据集渲染

1.拍摄一段视频,并新建文件夹

2.生成transform.json文件

 3.利用instant-ngp进行渲染

4.导出mesh

五、总结


一、环境配置:

操作系统:ubuntu20.04

GPU:RTX3090

CUDA:11.3(linux系统cuda版本要>=10.2)

Cmake:3.23.0(>=3.21)

python:3.7(>=3.7)

gcc:9.4.0(GCC/G++ >=8)

optix:(>=7.6)安装步骤参考:https://www.jianshu.com/p/02c3d3cce99b

colmap:3.6

ffmpeg:用于处理视频

meshlab

e5c69ed01246494683bac204b3a3f3c2.png

 二、具体安装过程

具体的安装过程就不详细介绍了,给出一些参考的博客与文章。

源码在这:NVlabs / instant-ngp  (官方文档给的安装流程也很详细,download跟着来就可)

ffmpeg安装(Ubuntu20.04 )

 ubuntu安装meshlab,全网最简单的方法

linux(ubuntu)安装 GCC 和 G++ C++ 开发环境

Ubuntu升级cmake版本

Ubuntu20.04安装Colmap

三、源代码复现

注:关于conda环境的配置、

我一开始准备复现的是葵酱的ngp_pl但是在安装apex的时候一直出错,无奈就复现这个了,但是配置的一些环境还是用到了这篇博客:带你复现nerf之instant-ngp(从0开始搭环境)。安装torch-scatter和安装tinycudann参考的是这篇。

看到一些博主说葵司的npg_pl也不错,而且葵司是台湾人,在youtube上也有讲解的视频。我配置的环境是跟着这篇走的。

97a1e9cb1e0f47c491bb6cda19e45b56.png

如果对linux代码不熟悉的话可以直接打开instant-ngp的gui界面(./instant-ngp),然后把/home/wxy/instant-ngp/data/nerf/fox 中的transform.json文件直接拖进gui界面即可进行训练,几秒钟就可看到渲染的结果。

f7ac93a9ab44452a9be9d5666d72ad00.png

四、自建数据集渲染

关于instant-ngp界面的详细介绍:instant-ngp简介及NeRF的使用

先安利一波资源,我在复现自己的数据集的时候主要参考了youtube上的一个博主,他是在windows下进行复现的,区别不大,完全可以参考。

How To Make Datasets for Instant NGP (NeRF)

1.拍摄一段视频,并新建文件夹

在github上搜索colmap2nerf下载这个python文件scripts/colmap2nerf.py,然后把你拍摄的视频和这个.py文件放在一起,组建一个文件夹。

50f3943a7e4040c3b5d1b26909e0e364.png

aaec9a2c49b44d9c8c60fadb3683329a.png

2.生成transform.json文件

然后就开始运行colmap进行抽帧+生成transform.json文件啦。

 (ngp_pl) wxy@wxy:~/下载/statue$ /home/wxy/instant-ngp/scripts/colmap2nerf.py --video_in statue.MP4 --video_fps 1 --run_colmap --aabb_scale 16

其中/home/wxy/instant-ngp/scripts/colmap2nerf.py要替换为你自己的视频和.py文件所在的地方

视频的名称也一定要改,记住是MP4不是mp4要不然的话会找不到视频的路径。

报错:

如果出现以下这个错误,说明你没有配置colmap的环境变量,需要在path中添加路径。

==== running: colmap feature_extractor --ImageReader.camera_model OPENCV --ImageReader.camera_params "" --SiftExtraction.estimate_affine_shape=true --SiftExtraction.domain_size_pooling=true --ImageReader.single_camera 1 --database_path colmap.db --image_path "data/safeguard"
sh: 1: colmap: Permission denied
FATAL: command failed

解决方法:

在终端输入以下代码,手动添加环境变量。

sudo gedit ~/.bashrc
export PATH=/home/wxy/download/colmap36-linux/bin:$PATH

d0acf83501364fc6b102ff7ed45da557.png

 接着运行这个代码:

 (ngp_pl) wxy@wxy:~/下载/statue$ /home/wxy/instant-ngp/scripts/colmap2nerf.py --video_in statue.MP4 --video_fps 1 --run_colmap --aabb_scale 16

最后就可以生成transform.json文件了

f7841e659f7a4d5a9d6cd880af36a565.png

 3.利用instant-ngp进行渲染

直接把生成的transform.json文件拖到instant-ngp的gui界面就可以渲染。

bbdb791d924140f6b24c6d53194319b8.png

ab9226ca94d445c48f27546681bd1a06.png

渲染的效果还是可以的,相对于源码来说还是有点模糊,我一些参数也没有设置,直接就拉进来进行渲染,速度是非常快的。

4.导出mesh

在instant-ngp的gui界面上有个Export mesh /volume /slices选项 点击它,然后再点击mesh it! 下面还有个save it!选项就可以导出mesh,而且可以在meshlab上进行查看。

e25aea4a66f6477493a651131ac40a6b.png

导出的mesh效果不是很好,NeRF模型最佳使用50到150张图像训练,重建的质量取决于colmap2nerf.py能够从图像中提取准确的相机参数。如果要效果好点的话,需要注意几点:

  1. 尽量光线比较充足均匀;
  2. 拍摄物体尽量覆盖所有的视角;
  3. 采用防抖动设备,避免在拍摄过程中图像失真;
  4. 图像分辨率尽量要高;神经辐射场NeRF之Instant-ngp环境搭建与应用

五、总结

 本次仅仅记录一下自己复现instant-ngp的过程,如果里面的参考有冒犯到原博主请联系我删除,本人也是nerf的小白一枚,可以一起交流学习神经辐射场,希望大家在复现instant-ngp的时候少走一些坑,情况允许下可以去复现一下npg-pl和nerfStudio,最后希望大家一起进步。

Instant NGP是英伟达实验室开源的一种神经图形原语,全称为Instant Neural Graphics Primitives。它提供了4种神经图形原语的实现,包括神经辐射场(NeRF)、有符号距离函数(SDF)、神经图像和神经体积。 Instant NGP使用了多分辨率哈希输入编码的多层感知机(MLP)来进行训练和渲染,并且借助了tiny-cuda-nn框架。 在Windows操作系统上,您可以直接从GitHub上下载与您的显卡对应的版本,并解压缩后启动instant-ngp.exe来使用Instant NGP的交互式GUI。 如果您想在Linux上编译和运行Instant NGP,您可以使用以下命令克隆instant-ngp的GitHub存储库:git clone --recursive https://github.com/NVlabs/instant-ngp.git。 另外,Instant NGP的GUI是可关闭的。您可以使用./instant-ngp --no-gui或python scripts/run.py命令来关闭GUI。您还可以通过使用cmake -DNGP_BUILD_WITH_GUI=off ...来在编译时禁用GUI。 参考资料: 英伟达实验室开源的instant-ngp全称为Instant Neural Graphics Primitives,源码地址为https://github.com/NVlabs/instant-ngp,可用于快速的训练NeRF模型,论文名为:Instant Neural Graphics Primitives with a Multiresolution Hash Encoding, 项目主页为: https://nvlabs.github.io/instant-ngp/。支持在windows和linux上进行编译运行。 1.clone instant-ngp: git clone --recursive https://github.com/NVlabs/instant-ngp.git。 gui是可关闭的:Use ./instant-ngp --no-gui or python scripts/run.py. You can also compile without GUI via cmake -DNGP_BUILD_WITH_GUI=off ...
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XINYU W

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值