nvdiffrec在Windows上的配置及使用

2023-11-07

      nvdiffrec是NVIDIA研究院开源的项目,源代码地址:https://github.com/NVlabs/nvdiffrec ,论文为《Extracting Triangular 3D Models, Materials, and Lighting From Images》,从图像中提取三角形三维(三角网格)模型、空间变化的材质(存储在2D纹理中)和照明(一个高动态范围((HDR))的环境探针),该方法学习曲面网格的拓扑和顶点位置,而无需对3D几何图形进行任何初始猜测。总体来说,NVIDIA研究人员提出了一种高效的逆渲染方法(将一系列静态照片重建为3D物体或场景模型的技术),能从多视角图像中提取具有空间变化的材质和环境照明的未知拓扑三角网格,它们可以部署在任何传统图形引擎中而未经修改。

      NVIDIA团队假设在一个未知的环境光照条件下,有相应的摄像机位姿和背景分割掩模来指示这些图像中的物体,进行3D重建生成的3D模型无需转换,就能部署在手机、web浏览器等任意支持三角渲染的设备上,并以交互速率呈现。

      Windows上通过Anaconda安装:
      1.安装cuda 11.6
      2.依次执行如下命令:

conda create -n nvdiffrec python=3.9
conda activate nvdiffrec
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1+cu116 -f https://download.pytorch.org/whl/torch_stable.html
pip install ninja imageio PyOpenGL glfw xatlas gdown
pip install git+https://github.com/NVlabs/nvdiffrast/
pip install --global-option="--no-networks" git+https://github.com/NVlabs/tiny-cuda-nn#subdirectory=bindings/torch
imageio_download_bin freeimage

      3.下载数据集,将Anaconda Powershell Prompt定位到data目录下,执行如下命令:也可根据需要,直接从https://drive.google.com/drive/folders/128yBriW1IG_3NJ5Rp7APSTZsJqdJdfc1 下载

python download_datasets.py

      使用:以lego为例,执行如下命令:很耗显存,若显存不够,可减少nerf_lego.json中的batch

python train.py --config configs\nerf_lego.json --display-interval 100

      执行结果如下图所示:

      执行完后会在out/nerf_lego目录下产生一些文件,如下图:我们需要的是mesh目录下产生的6个文件:mesh.obj, mesh.mtl, probe.hdr, texture_kd.png, texture_ks.png, texture_n.png

 

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

nvdiffrec在Windows上的配置及使用 的相关文章

  • 在 R 中使用 persp3D 函数时,如何向轴标签添加下标?

    I am trying to define my z axis label as R0 in plot3D below are my code I am using expression for my zlab but I get the
  • 求和面积表 (SAT) 的 3D 变体

    根据维基百科 A 面积求和表 http en wikipedia org wiki Summed area table是一种数据结构和算法 用于快速有效地生成网格矩形子集中的值之和 对于二维空间 可以通过迭代生成求和面积表x y超过所需的范
  • Java/LWJGL:OpenGL 中的 Z 轴表现得像左手坐标系

    最近 我寻求帮助 https stackoverflow com q 18836484 1530508关于 OpenGL 中的 3D 相机旋转 这个答案 https stackoverflow com a 18836618 1530508接
  • 根据表面包围的 3D 区域将表面分配给区域

    给定三维空间中的一组曲面 我尝试将每个曲面分配给一个区域 该区域引用该组所包围的最小 3D 区域 或者如果不适用则不指定任何区域 我还想确定一个表面是否是两个区域之间的界面 因此 例如 如果我们有 11 个表面 代表两个堆叠在一起的立方体
  • Python在3D散点图中用线连接相邻点

    我有两组 x y z 坐标 我用 Matplotlib 将它们绘制在 3D 散点图中 现在 我想将每个生成的四边形与平面连接起来 我已经了解了如何在 3D 空间中绘制 2D 多边形在 python matplotlib 中绘制 3D 多边形
  • Python openAL 3D 声音

    我刚刚开始使用 python 正在制作音频操作程序 我正在尝试在我的 python 应用程序中使用 openAL 实现 3D 声音 但我只能让它工作 这是我的 3D 声音代码 from openal loaders import load
  • 如何在 MATLAB 中可视化如图所示的体积数据?

    我的问题非常简单 我有一堆矩阵 所有矩阵都相互堆叠起来 这样我就有了大量的数据 我想可视化这些数据 如下图所示 在我看来 需要一定程度的透明度 这可能与每个体素的值有关 也就是说 值越高 体素对其后面的事物越不 透明 我不知道如何开始 这是
  • 使用四元数进行 OpenGL 旋转[重复]

    这个问题在这里已经有答案了 因此 我正在编写一个程序 其中对象以 spacesim 方式移动 以便学习如何在 3D 空间中平滑地移动对象 在对欧拉角进行了一番研究之后 它们似乎并不真正适合任意方向上的自由形式 3D 运动 因此我决定继续使用
  • 如何旋转 3D 散点图

    下面的代码使用 scatterplot3d 函数来运行高度 重量和体积的 3D 散点图 其中点是 1 6 之间的类值 角度目前为 45 度 我知道我可以通过改变角度来倾斜绘图 我应该使用什么代码将绘图向左或向右旋转 以便我可以提供绘图的多个
  • 使用相机将 3D 透视投影到 2D 屏幕上的基本渲染(无需 opengl)

    假设我有一个如下的数据结构 Camera double x y z ideally the camera angle is positioned to aim at the 0 0 0 point double angleX angleY
  • 将点云转换为深度/多通道图像

    我有一个通过使用立体相机扫描平面生成的点云 我已经生成了法线 fpfh 等特征 并使用这些信息我想对点云中的区域进行分类 为了能够使用更传统的 CNN 方法 我想将此点云转换为 opencv 中的多通道图像 我将点云折叠到 XY 平面 并与
  • DirectX Release 构建可以通过 VS2010 运行,但不能运行 exe

    我已经通过 Google 访问 Stack Overflow 几年了 但到目前为止还没有询问 回答任何问题 所以就到这里吧 基本上 我有一个在 DirectX 11 中设置绘图模型和地形的 3D 渲染框架 一切正常 通过 Visual St
  • 如何在 Three.js 中从三角面获取多边形?

    我在网上查了一下是否有人遇到同样的问题 我正在使用 Three js 我有一个 3DObject 其中可能包含孔 面是三角形的 假设我想从上面看到它 我的目标是获得一个代表顶面周长的多边形 这对我来说意味着不再有三角面 而只有 1 个多边形
  • 提取给定 2D 图像点、深度图和相机校准矩阵的 3D 坐标

    我有一套2D image输出的关键点OpenCV FAST角点检测功能 使用Asus Xtion I还有一个时间同步的深度图 其中所有相机校准参数都是已知的 使用这些信息我想提取一组3D坐标 点云 在OpenCV 任何人都可以给我任何有关如
  • 可点击的精灵标签?

    我一直在玩精灵文本标签 更具体地说是这个例子 http stemkoski github io Three js Sprite Text Labels html http stemkoski github io Three js Sprit
  • 光线追踪三角形

    我正在用java编写一个光线追踪器 并且我能够追踪球体 但我相信我追踪三角形的方式有问题 据我了解 这是基本算法 首先确定射线是否与plane三角形已打开 剪裁所有点 使它们与三角形位于同一平面上 因此xy以平面为例 根据沿着新平面向任意方
  • 使用 ThreeJS 获取球体纹理上的点击位置

    目前 我有一个带有纹理的球体 它绕 y 轴旋转 我还有在 3D 空间中单击的位置 以及球体上的旋转位置 我认为 目标 获取纹理上的位置 例如 我想获取我点击的图像的哪个方块 参见示例球体和下图 在实践中 我不会使用此图像 但我觉得这将是一个
  • 颜色重新映射 - 使用 3D 网格匹配目标调色板?

    假设我有颜色 FOO 它以 RGB 格式存储 我需要重新着色 FOO 以便它与颜色列表中最接近的颜色匹配 即时执行此操作 我是否无法将每种颜色的 RGB 值视为 3D 网格上的点 r x g y b z 并计算点 FOO 与每个颜色点之间的
  • OpenGL z轴指向哪里?

    我正在尝试了解 OpenGL 坐标系 我到处都看到它被描述为右撇子 但这与我的经验不符 我尝试绘制一些形状和 3 d 对象 我发现 z 轴显然指向 屏幕 而 x 指向右侧 y 指向上方 这是左手坐标系的描述 我缺少什么 编辑 例如 http
  • IE9-11 检测变换样式:preserve-3d

    我为一个项目制作了一个 3d 类型的菜单 自然 IE 会引起问题 因为 IE10 即使 3d 变换工作 也不支持变换样式 preserve 3d 我尝试了解决方法 通过对 3d 菜单容器的每个子元素应用变换 但至少可以说 动画看起来很糟糕

随机推荐

  • [转]background-image属性研究

    http blog sina com cn s blog 4a0eab070100d8pk html 在设置background image属性时 经常会遇到一个background position 一直不怎么会用 今天有空研究下 版本
  • ssh简介

    常见的远程管理工具方式 RDP remote desktop protocal 协议 windows远程桌面管理 图形界面 telenet CLI界面下远程管理 几乎所有操作系统都有 内容明文传输 23 ssh CLI界面下的远程管理 几乎
  • WIFI:802.11协议帧格式

    802协议桢格式 802 11和Wi Fi技术并不是同一个东西 Wi Fi标准是802 11标准的一个子集 并且是Wi Fi联盟负责管理 802协议桢格式 协议 发布年份 日期 Op 标准频宽 实际速度 标准 实际速度 最大 半径范围 室内
  • JavaScript和php(各版本)对称加解密

    使用npm先安装crypto js npm install crypto js javascript对称加解密 import CryptoJs from crypto js method encrypt 对称加密字符串 param Stri
  • 八股文死记硬背打脸记

    背景 我们都知道 再编程领域数据结构的重要性 常见的数据结构包括 List Set Map Queue Tree Graph Stack 等 其中 List Set Map Queue 可以从广义上统称为集合类数据结构 而Java也提供了很
  • C语言中如何使用system函数

    C语言中如何使用system函数 一 system函数 c语言中的system 函数主要用于发出一个DOS命令 该函数已经收录在标准c库中 可以直接调用 使用时包含头文件
  • Rancher和K8s的关系是什么?Rancher和K8s区别对比

    Rancher和K8s的关系是什么 K8s全称为Kubernetes 它是一个开源的 用于管理云平台中多个主机上的容器化的应用 而Rancher是一个完全开源的企业级多集群Kubernetes管理平台 实现了Kubernetes集群在混合云
  • Matrikon OPC 模拟器使用教程

    一 OPC协议 OPC通信技术因其帮助大量的使用不同通信协议的下层现场设备的数据得以与上位机的应用程序进行交互的作用 成为了一种工业通信领域中一套广为流行的方案 它使得硬件供应商和软件开发商都可以专注于做自己的工作 只要双方都能提供OPC接
  • Python NLTK 自然语言处理入门与例程

    Python NLTK 自然语言处理入门与例程 在这篇文章中 我们将基于 Python 讨论自然语言处理 NLP 本教程将会使用 Python NLTK 库 NLTK 是一个当下流行的 用于自然语言处理的 Python 库 那么 NLP 到
  • jupyter notebook参数化运行python

    Updates 2019 8 14 19 53 吃饭前用这个方法实战了一下 吃完回来一看好像不太行 跑完一组参数之后 到跑下一组参数时好像没有释放之占用的 GPU 于是 notebook 上的结果 后面好几条都报错说 cuda out of
  • Linux系统Squid代理添加用户、密码认证

    安装了Squid后会有一些不明的流量和CPU占用95 以上 估计是因为没加密码 被扫描到端口后被滥用 我们给Squid代理添加用户 密码认证 1 密码用apache2自带的NCSA 先做个密码档 然后设为任何人可读 sudo touch e
  • make all、make clean、make install 等命令的来源

    在命令行输入make命令后 会查找当前目录下的Makefile文件来执行 一切都是自动运行的 有时候Makefile中有多个程序需要编译 这时可以使用 make all 来编译所有的程序 当然也可以使用 make 程序名 来单独编译某一个文
  • C - Coprime 2(质因数)

    C Coprime 2https vjudge csgrandeur cn problem AtCoder abc215 d1 先把a数组元素里面每个元素的因数求出来 再把他们的倍数标记 剩下的1到M没标记的数就是答案 include
  • 一般试卷的纸张大小是多少_【教学研究】标准化试卷是如何编制出来的?

    作为教师 日常教学工作中经常需要编制试卷 一般我们可以用Word来编制各类试卷 对于标准化试卷来说 有很多样式是统一的 在Word中 本文以Word2003为例 我们可以按以下步骤进行设置 一 试卷页面设置 标准化试卷一般都采用8K纸张 横
  • octave下实现积分/求解微分方程

    我电脑是AMD的不是Intel的 所以matlab很多功能用不了 矩阵乘法都用不了 虚拟机也没工夫折腾 找了octave来替代 首先安装 symbolic包 要求已安装好Python3的SymPy库 pkg install forge sy
  • MongoDB4.x创建数据库帐号,启用密码认证,启用外部ip访问,创建数据库,创建集合.

    创建数据库 use company 这样就创建了一个名称为company的数据库 但如果不创建集合 表 的话则不保存 创建集合 db createCollection employ salary 创建了一个employ salary表 创建
  • WPF的MVVM框架Stylet开发文档 14.6 StyletIoC 模块

    14 6 StyletIoC 模块 任何具有合理复杂性的应用程序都将包含大量 IoC 容器配置 有大量接口与实现的显式绑定 指定单例和其他 完全必要的 配置 默认方法是将所有这些配置放在您的引导加载程序中 这是有道理的 所有配置都在一个地方
  • ModuleNotFoundError: No module named ‘tensorflow.contrib‘ 关于TensorFlow2中没有contrib包的解决办法

    在学习中文实体识别的过程中 参考很多以前的ltsm crf代码 以及谷歌的开源bert代码 过程中都遇到了该问题 简单查阅可得这是因为TensorFlow2版本中删除了contrib包所导致的问题 其中有部分大佬给出的解决办法是降低版本 但
  • PHP 短信验证码验证(短信宝)

    注册的短信验证 控制器 public function save Request request echo 11 die phone input last time Cache store redis gt get register tim
  • nvdiffrec在Windows上的配置及使用

    nvdiffrec是NVIDIA研究院开源的项目 源代码地址 https github com NVlabs nvdiffrec 论文为 Extracting Triangular 3D Models Materials and Light