instant-ngp中run.py的使用

2023-05-16

      在https://blog.csdn.net/fengbingchun/article/details/129642774 中对instant-ngp进行了简单介绍,这里简单介绍下如何使用其中的run.py.
      1. 若能运行run.py,首先需要使用CMake编译instant-ngp源码,然后调用其中的.pyd文件,在windows上通过CMake编译instant-ngp源码: 

      (1).从https://github.com/NVlabs/instant-ngp clone code:

git clone --recursive https://github.com/nvlabs/instant-ngp

      (2).本机安装cuda 11.6,并将C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\extras\visual_studio_integration\MSBuildExtensions 目录下的四个文件CUDA 11.6.props, CUDA 11.6.targets, CUDA 11.6.xml, Nvda.Build.CudaTasks.v11.1.dll, 拷贝到C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations 目录下;

      (3).打开Developer Command Prompt for VS 2019,并将其定位到instant-ngp目录下,执行以下命令,执行结果如下图所示:

cmake . -B build

      (4).执行以下命令,执行结果如下图所示: 

cmake --build build --config RelWithDebInfo -j

      执行完后会在当前目录下生成执行文件instant-ngp.exe,直接双击即可运行,说明编译成功,如下图所示:

      经测试,在windows上通过Git Bash执行上述命令也可以正常生成可执行文件instant-ngp.exe.

      打开build目录下的instant-ngp.sln,结果如下图所示:

      2. 运行run.py:
      (1).在通过CMake编译后,会在build目录下生成pyngp.cp39-win_amd64.pyd,此pyd文件是由python 3.9.13生成的; 

      (2).参考https://blog.csdn.net/fengbingchun/article/details/129642774 构建虚拟环境instant-ngp2,将其定位到instant-ngp目录下,依次执行如下命令:

conda create -n instant-ngp2 python=3.9.13
conda activate instant-ngp2
pip install -r requirements.txt
conda install -c conda-forge colmap
conda install -c conda-forge ffmpeg
conda install -c conda-forge mpir

      (3).将pyngp.cp39-win_amd64.pyd拷贝到instant-ngp2所安装目录的DLLs目录下,这里为C:\ProgramData\Anaconda3\envs\instant-ngp2\DLLs,否则执行run.py时会报找不到ngp的error;

      (4).执行如下命令,获取使用说明:

python scripts/run.py --help

      3. run.py支持的输入参数说明:

      (1).--scene, --training_data: 默认为空,要加载的scene,可以是scene的name或训练数据的完整路径,如训练lego,保存为lego.ingp,执行如下命令:执行结果如下图所示: 生成的lego.ingp,可通过instant-ngp.exe Load,支持的图像格式: "png", "jpg", "jpeg", "bmp", "gif", "tga", "pic", "pnm", "psd", "exr";

python scripts/run.py --scene "D:\fengbingchun\instant-ngp\data\nerf\lego" --save_snapshot "lego.ingp"

      (2).--mode: 默认为空,已废弃; 

      (3).--network: 默认为空,网络配置的path,如果未指定,则使用scene的默认值,如instant-ngp\configs\nerf\base.json;
      (4).--load_snapshot, --snapshot: 默认为空,在train之前加载此snapshot,推荐扩展名: .ingp或.msgpack;
      (5).--save_snapshot: 默认为空,train后保存此snapshot,推荐扩展名: .ingp或.msgpack;
      (6).--nerf_compatibility: 若指定则为True,不指定则为False;将参数与原始NeRF匹配.在某些scene中可能会导致速度变慢和效果更差,但在合成场景(synthetic scenes)有助于提高PSNR(Peak Signal to Noise Ratio, 峰值信噪比);
      (7).--test_transforms: 默认为空,到nerf style transforms json的路径,我们将从中计算PSNR,如执行如下命令,执行结果如下图所示:

python scripts/run.py --scene "D:\fengbingchun\instant-ngp\data\nerf\lego" --load_snapshot "lego.ingp"  --save_snapshot "lego2.ingp" --nerf_compatibility --test_transforms "D:\fengbingchun\instant-ngp\data\nerf\lego\transforms.json"

      (8).--near_distance: 默认值为-1,float类型,为nerf设置train rays开始的相机距离,<0表示使用ngp默认值;
      (9).--exposure: 默认值为0.0,float类型,控制image的亮度(brightness),正值增加亮度,负值降低亮度;
      (10).--screenshot_transforms: 默认为空,NeRF transforms.json文件路径;
      (11).--screenshot_frames: list,指定需要截图的帧;
      (12).--screenshot_dir: 默认为空,指定保存截图的路径;
      (13).--screenshot_spp: 默认值为16, int类型,截图中每个像素的样本数,如执行如下命令,执行结果如下图所示:

python scripts/run.py --scene "D:\fengbingchun\instant-ngp\data\nerf\lego" --load_snapshot "lego.ingp"  --save_snapshot "lego2.ingp" --screenshot_transforms "D:\fengbingchun\instant-ngp\data\nerf\lego\transforms.json" --screenshot_dir "D:\fengbingchun" --screenshot_frames (5, 10, 15) --screenshot_spp 8  --screenshot_w 400 --screenshot_h 400

      (14).--video_camera_path: 默认为空,要渲染的相机路径,如base_cam.json;
      (15).--video_camera_smoothing: 若指定则为True,不指定则为False, 对相机轨迹(trajectory)应用smoothing;
      (16).--video_loop_animation: 若指定则为True,不指定则为False,在连续循环中连接最后一个和第一个关键帧;
      (17).--video_fps: 默认值为60,int类型,每秒帧数;
      (18).--video_n_seconds: 默认值为1,int类型,渲染视频的秒数;
      (19).--video_spp: 默认值为8,int类型,每个像素的样本数,数字越大意味着噪点越少,但渲染速度越慢;
      (20).--video_output: 默认值为video.mp4, str类型,输出视频的文件名;
      (21).--save_mesh: 默认为空,从NeRF或SDF模型输出基于marching-cubes的mesh,支持OBJ或PLY格式,生成的.obj文件可使用windows上的3D查看器打开;
      (22).--marching_cubes_res: 默认值为256,int类型,设置marching cubes grid分辨率,如执行如下命令,执行结果如下图所示: 

python scripts/run.py --scene "D:\fengbingchun\instant-ngp\data\nerf\lego" --load_snapshot "lego.ingp"  --save_mesh "lego_mesh.obj" --marching_cubes_res 512

      (23).--width, --screenshot_w: 默认值为0,int类型, GUI和屏幕截图的分辨率宽度;
      (24).--height, --screenshot_h: 默认值为0,int类型, GUI和屏幕截图的分辨率高度;
      (25).--gui: 若指定则为True,不指定则为False, 以交互式方式运行测试平台GUI,如执行如下命令,执行结果如下图所示:

python scripts/run.py --scene "D:\fengbingchun\instant-ngp\data\nerf\lego" --load_snapshot "lego.ingp"  --save_mesh "lego_mesh.obj" --marching_cubes_res 512 --width 1920 --height 1080 --gui --train

      (26).--train: 若指定则为True,不指定则为False, 如果启用了GUI,则控制是否立即开始训练;
      (27).--n_steps: 默认值为-1,int类型,停止(quitting)前要训练的步数;
      (28).--second_window: 若指定则为True,不指定则为False, 打开包含a copy of the main output的第二个窗口;
      (29).--vr: 若指定则为True,不指定则为False, 渲染VR头戴式设备;
      (30).--sharpen: 默认值为0,float类型,设置应用于NeRF训练图像的锐化量(amount of sharpening),范围:[0.0, 1.0],如执行如下命令,执行结果如下图所示:

python scripts/run.py --scene "D:\fengbingchun\instant-ngp\data\nerf\lego" --save_snapshot "lego.ingp" --gui --width 1920 --height 1080 --train --n_steps 500000  --sharpen 1.0

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

instant-ngp中run.py的使用 的相关文章

随机推荐

  • C语言——鸡兔同笼问题

    include lt stdio h gt int main int a b c d printf 34 head 34 scanf 34 d 34 amp a printf 34 feet 请输入偶数 34 scanf 34 d 34 a
  • Python 通过爬虫获取网页内容时去掉某一标签内容

    以这篇文章https finance sina com cn money smjj smdt 2020 08 12 doc iivhvpwy0527268 shtml为例 xff0c 在抓取文章内容时 xff0c 不抓取 今日直播 的模块内
  • cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器

    在开始之前先介绍一下CAS 官网地址 xff1a https www apereo org Github地址 https github com apereo cas 介绍 CAS是Central Authentication Service
  • 海康ISAPI使用相关

    海康ISAPI使用相关 海康SDK对运行环境有要求 xff0c 只支持x86系统 xff0c ARM或者单片机等无法使用 可以使用海康提供的ISAPI接口协议对设备进行操控 1 接口验证使用Digest Auth 2 使用设备ip地址 43
  • 计算机网络习题(IP地址分类及CIDR划分方法)

    计算机网络习题 xff08 IP地址分类及CIDR划分方法 xff09 题目描述 xff1a 已知地址块中的一个地址是140 120 84 24 20 xff08 1 xff09 求这个地址块中的最小地址和最大地址 xff08 2 xff0
  • centos7 nvidia-smi命令很慢

    nvidia smi命令很慢 xff0c 长时间才有输出 sudo usr bin nvidia persistenced verbose 设置开机自启动 chmod 43 x etc init d rc local vim etc ini
  • PX4代码解析:振动分析

    本篇文章首发于公众号 xff1a 无人机系统技术 更多无人机技术相关文章请关注此公众号 一 前言 前面的文章主要都是一些理论知识为主 xff0c 很多读者朋友看了之后可能会有点枯燥 xff0c 里面很多公式看起来也比较晦涩 xff0c 今天
  • 如何学习飞控

    本篇文章首发于公众号 xff1a 无人机系统技术 更多无人机技术相关文章请关注此公众号 xff0c 有问题也可在公众号底部添加个人微信进行交流 无人机涉及哪些工作 自开公众号以来 xff0c 陆续有不少关注者提问怎么去学习无人机技术 xff
  • Python3中.pyd文件介绍

    pyd文件是用Python编写生成的动态链接库 xff0c 包含一个或多个Python modules xff0c 可以被其它Python代码调用 以下是 pyd的生成及调用测试 xff1a 通过conda创建虚拟环境Python Test
  • PX4姿态控制算法详解

    本篇文章首发于公众号 xff1a 无人机系统技术 更多无人机技术相关文章请关注此公众号 xff0c 有问题也可在公众号回复 加群 进入技术交流群进行交流 倾转分离 今天的内容我们来解析开源飞控软件PX4中关于多旋翼飞行器的姿态控制算法 首先
  • 我为什么不挣钱也要写公众号

    本篇文章首发于公众号 xff1a 无人机系统技术 更多无人机技术相关文章请关注此公众号 xff0c 有问题也可在公众号回复 加群 进入技术交流群进行交流 自开无人机系统技术这个公众号以来已经有半年之久了 xff0c 我是在今年一月份开的公众
  • 开源飞控PX4姿态控制代码解析

    本篇文章首发于公众号 xff1a 无人机系统技术 更多无人机技术相关文章请关注此公众号 xff0c 有问题也可在公众号回复 加群 进入技术交流群进行交流 本公众号将于9月11号联合电子工业出版社送出15本价值98元的 多旋翼飞行器设计与控制
  • 位置控制器PX4代码解析(文中有福利!!!)

    号外号外 xff01 xff01 xff01 本公众号将联合电子工业出版社于9月11号送出15本价值98元的全权老师著作 多旋翼飞行器设计与控制 xff0c 关注本公众号的朋友均可参加 xff0c 敬请期待 还没关注的朋友赶紧关注吧 xff
  • 多旋翼无人机的控制分配

    本文最先发表于公众号 xff1a 无人机系统技术 公众号回复 加群 进入无人机技术交流群交流 公众号回复 多旋翼 获取国际顶尖团队科研成果 公众号回复 控制分配 获取控制分配相关论文 引言 本文内容主要阐述控制分配在多旋翼无人机上的使用方法
  • 无人机

    引言 本文最先发表于公众号 xff1a 无人机系统技术 公众号回复 加群 进入技术交流群进行交流 公众号回复 多旋翼 获取国际顶尖团队科研成果 公众号回复 控制分配 获取控制分配相关论文 从今年初开始写公众号也有一段时间了 xff0c 不知
  • 顺丰旗下丰鸟无人机高薪诚聘海内外英才

    公司简介 丰鸟无人机 xff08 顺丰无人机 xff09 成立于2017年 xff0c 是顺丰集团旗下大型无人机技术和服务提供商 xff0c 致力于运用智能航空技术 xff0c 提供高效物流服务 通过自主研发和对外合作 xff0c 打造业载
  • 无人机研发什么?

    更多无人机知识请关注公众号 xff1a 无人机系统技术 xff0c 北航博士为你解析全面的无人机系统知识 无人机是一个很复杂的系统 xff0c 有点类似于我们平常使用的手机 xff0c 都是软件和硬件的结合体 xff0c 手机上面需要各种芯
  • PX4算法解析:L1制导律

    一 前沿 更多无人机知识请关注公众号 xff1a 无人机系统技术 xff0c 北航博士为你解析全面的无人机系统知识 从今天开始 xff0c 会陆续为大家解读开源飞控软件px4中使用到的各种算法 xff0c 今天要讲述的是L1制导律 xff0
  • PX4算法:L1制导律(二)

    一 前沿 上一篇文章中我们对L1制导律做了一个比较详细的解释 xff0c 但没有对PX4软件中的算法和理论进行对应 xff0c 好多读者看了之后还是云里雾里 xff0c 在后台提问的也有不少 今天我们就来具体介绍一下PX4中的L1参数和制导
  • instant-ngp中run.py的使用

    在https blog csdn net fengbingchun article details 129642774 中对instant ngp进行了简单介绍 xff0c 这里简单介绍下如何使用其中的run py 1 若能运行run py