instant-ngp简介及NeRF的使用

2023-05-16

      英伟达实验室开源的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上进行编译运行. 
      instant-ngp有4个neural graphics primitives的实现,即neural radiance fields(NeRF), signed distance functions (SDFs), neural images, and neural volumes.在每种情况下,都使用tiny-cuda-nn框架(https://github.com/NVlabs/tiny-cuda-nn)训练和渲染具有多分辨率hash输入编码的MLP(Multilayer Perceptron, 多层感知机).
      在windows上可直接从github上下载与显卡对应的版本,解压缩后,直接启动instant-ngp.exe,如下图所示:instant-ngp带有一个交互式GUI

      instant-npg中NeRF的使用,如fox,两种方式:执行结果如下图所示

      1.双击instant-ngp.exe,然后将data/nerf/fox文件夹拖到窗口中;
      2.使用命令行cmd: instant-ngp.exe data/nerf/fox

      instant-npg中推荐的用户控件:
      1.Snapshot: 使用"Save"保存训练好的NeRF,名字可修改,使用"Load"重新加载.
      2.Rendering:
      (1).DLSS: 勾选,并将值设置为1.0,通常可以提高渲染质量;
      (2).Crop size: 修剪周围环境以专注于model 

      gui是可关闭的:Use ./instant-ngp --no-gui or python scripts/run.py. You can also compile without GUI via cmake -DNGP_BUILD_WITH_GUI=off ...

      创建自己的NeRF数据集操作流程:

      1.clone instant-ngp:

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

      2.通过conda创建虚拟环境instant-ngp用来执行脚本scripts/colmap2nerf.py,将终端定位到instant-ngp目录下,依次执行如下命令:

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

      3.通过COLMAP软件获取相机参数,其存放在名为transforms.json文件中,与图像序列目录名在同一目录中,可通过脚本scripts/colmap2nerf.py实现,如lego图像序列集:将lego图像序列集存放到instant-ngp中的data/nerf目录下: data/nerf/lego/train,将终端定位到data/nerf/lego目录下,执行以下命令:需要几分钟时间,执行结果如下图所示

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

      4.生成transforms.json后,双击打开instant-ngp.exe,将lego目录直接拖到窗口中,执行结果如下图所示: 

      输入参数--colmap_matcher :

      (1).sequential:适用于从平滑变化的相机路径拍摄的图像,如视频中
      (2).exhaustive:适用于图像没有特定的顺序

      对采集图像序列集要求:具有良好的覆盖范围;不包含错误标记的相机数据;不包含模糊帧(运动模糊和散焦模糊都是有问题的);图像不能太少.
      经验法则:如果你的NeRF模型在20秒左右后似乎没有收敛,那么经过长时间的训练后,它不太可能变得更好。建议调整数据,以便在训练的早期阶段获得明确的结果。对于大型真实场景,最多训练几分钟就可以获得一点额外的清晰度。几乎所有的收敛都发生在最初的几秒钟内。
      默认情况下,instant-ngp的NeRF实现仅将光线(rays)穿过从[0,0,0]到[1,1,1]的单位边界框(unit bounding box).默认情况下,数据加载器在输入JSON文件中采样相机转换,并将位置缩放为0.33,偏移量缩放为[0.5,0.5,0.5],以便将输入数据的原点映射到此立方体的中心: 在transforms.json中为"scale": 0.33, "offset": [0.5, 0.5, 0.5]
      transforms.json中aabb_scale参数值设置:对于在单元立方体(unit cube)外部有可见背景的自然场景,有必要将参数aabb_scale设置为2的幂,最大为128(即1, 2, 4, 8, ..., 128).默认为1,适合于小型场景.
      许多数据集在图像中的曝光、白平衡或照明(exposure, white-balance, or lighting)不一致.这可能导致重建中的问题,通常是"飞蛾症(floaters)".虽然避免此问题的最佳方法是重新记录(re-record)数据集,但这并不总是一个选择.在这种情况下,instant-ngp支持通过向transforms.json添加以下行来学习每个图像的"潜在"外观代码("latent" appearance code): {"n_extra_learnable_dims": 16,} ,其中16是性能良好的默认数字,但也可以尝试其它数字。
      为了训练自我捕获的数据,必须将数据处理成instant-ngp支持的现有格式,提供脚本来支持3种方法: COLMAP、Record3D、NeRFCapture.
      NeRF模型最佳使用50到150张图像训练,这些图像表现出最小的场景移动、运动模糊或其它模糊伪影(blurring artifacts).重建的质量取决于colmap2nerf.py能够从图像中提取准确的相机参数

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

instant-ngp简介及NeRF的使用 的相关文章

随机推荐

  • 从零开始使用Realsense D435i运行VINS-Mono

    从零开始使用Realsense D435i运行VINS Mono 从零开始使用Realsense D435i运行VINS Mono xff08 1 xff09 安装测试librealsense SDK 2 0 xff08 2 xff09 安
  • VINS-Mono关键知识点总结——边缘化marginalization理论和代码详解

    VINS Mono关键知识点总结 边缘化marginalization理论和代码详解 VINS Mono关键知识点总结 边缘化marginalization理论和代码详解1 边缘化理论1 1 为什么要进行边缘化操作 xff1f 1 2 怎样
  • linux安装clang和clang-format

    EPEL网站提供了clang的RPM安装包 xff0c 所以要想在cnetOs安装clang xff0c 首先需要安装EPEL包 xff1a sudo yum install epel release 接下来安装 clang sudo yu
  • docker学习记录(2)——在 Ubuntu 16.04 上升级 Docker CE

    以root用户为例 apt get update apt get remove docker docker engine docker ce docker io y 确保卸载干净 wget qO https get docker com s
  • vins-mobile

    最近项目需求 xff0c 需要在新版ios设备上面配置vins mobile xff0c 但是vins mobile采用oc代码 xff0c 需要将其迁移到swift vins对时间戳要求比较严格 xff0c 原版修改了opencv源码 x
  • ROS入门之话题消息的定义与使用

    1 定义msg文件 xff1a 在catkin ws src learning topic文件下新建msg文件夹并在文件夹下新建Person msg文件 msg文件中代码如下 xff1a string name uint8 sex uint
  • git为什么会有冲突

    看了百度很多回答 xff0c 觉得和实操有点出入 xff0c 记录一下个人理解 结论 xff1a 冲突的产生就是各分支修改的文件版本不一致 xff08 远程冲突同理 xff09 例 xff1a 分支 m 和分支 d 都有一个相同文件 61
  • 视觉SLAM十四讲:运动方程

    SLAM xff1a 同时定位和建图 xff08 Simultaneous Localization and Mapping xff09 希望机器人从未知环境的未知地点出发 xff0c 在运动过程中通过重复观测到的地图特征 xff08 比如
  • NeRF简介及nerf-pytorch的使用

    NeRF全称为Neural Radiance Field 神经辐射场 是2020年发表的论文 xff0c 论文名字为 NeRF Representing Scenes as Neural Radiance Fields for View S
  • SLAM如何定位与建图

    SLAM xff1a 同时定位和建图 xff08 Simultaneous Localization and Mapping xff09 机器人从未知环境中的未知地点出发 xff0c 在运动过程中通过重复观测到的地图特征 xff08 比如
  • OpenMV——串口通信+发送中心位置

    串口通信 OpenMV本质还是一个单片机 xff0c 可以通过调用pyb中的UART使用串口通信 xff0c 注意发送的数据类型为字符串 xff0c 可以通过json dumps 进行字符串转换 span class token keywo
  • liunx下rpm包mysql安装脚本

    目录 文章目录 前言 一 mysqlshell安装脚本 二 xff0c mysql 配置文件 前言 liunx下mysql安装脚本shell脚本 采用的版本时 mysql 5 7 28 xff0c rpm安装方式 shell安装脚本 xff
  • setTimeout与setInterval的坑以及优缺点

    转自 xff1a setTimeout与setInterval的坑以及优缺点 找寻的千寻 博客园 setInterval和setTimeout的缺陷和优势分析 F ZERO F的博客 CSDN博客 settimeout缺点 说到setTim
  • 登录功能app端的建立与实现

    选择使用Android文件的一些主要包装命名搭建 1 Layout存放布局界面的地方 xff0c values是存放图片和颜色 字体等 2 manifests体现层 61 61 代码 3 执行界面打开 lt application lt 登
  • 麻将胡牌算法(遍历+剪枝)

    麻将胡牌算法 xff08 遍历 43 剪枝 xff09 简介麻将胡牌算法及代码1 方法引入2 类型定义2 1 牌定义2 2 牌特征定义 3 计算胡牌3 1 检测十三幺牌型3 2 检测七小对牌型3 3 检测普通牌型胡牌3 3 1 检测所有可能
  • 接口报错Missing grant type

    错误详情 xff1a 原因 xff1a 缺少表单参数 xff1a grant type 但如果传递了该参数依旧报错则说明传递的数据格式有误 xff0c 需要修改数据格式 解决方式 xff1a 第一步 xff1a 设置数据格式 Content
  • 如何关闭vue-element-admin中的格式化校验

    1 找到根目录下的 eslintignore文件 xff0c 如下 xff1a 2 将该文件内的内容全部替换为 xff0c 如图所示 xff1a 3 删除node modules和package lock json文件 xff0c 重新运行
  • D435i问题及解决

    提问连接 https support intelrealsense com hc en us requests new 1 使用realsense viewer时 xff0c 如果在3D模式下观看 xff0c 需要打开stereo modu
  • ubuntu磁盘空间不足解决办法

    df h后发现 目录下空间很少 点击左下角 搜索disk 点击 disk usage 看各个目录下占用的空间 xff0c 删除空间 2 在ubuntu 使用Windows的磁盘空间 发现 media liao 软件 下还有空间 xff0c
  • instant-ngp简介及NeRF的使用

    英伟达实验室开源的instant ngp全称为Instant Neural Graphics Primitives xff0c 源码地址为https github com NVlabs instant ngp xff0c 可用于快速的训练N