Win10配置instant-ngp算法环境说明

目录

一、基础环境安装

1.系统版本升级

2.conda环境安装

3.cuda安装

4.cmake安装

5.OptiX安装

6.vulkan安装

二、源码编译

1.下载代码

2.源码编译

1)算法环境配置

2)使用cmake进行源码编译

3)使用终端命令窗口进行编译

4)编译过程中出现问题解决

三、算法测试

1.在终端命令输入

2.结果显示

四、参考网址


一、基础环境安装

1.系统版本升级

win+R打开运行窗口,输入:dxdiag,点击确定

显示结果 系统内部版本如果是19041,如下所示:

则需要进行升级,升级到19044。

易升工具地址:https://www.microsoft.com/zh-cn/software-download/windows10,进行升级,正确结果如下:

2.conda环境安装

按照官网安装conda或者minicoda

conda:Anaconda | Anaconda Distribution

miniconda:Miniconda — conda documentation

3.cuda安装

按照官网说明进行安装,亲测cuda11.7都可以运行成功,cuda11.3会有报错

CUDA Toolkit Archive | NVIDIA Developer

4.cmake安装

按照官网说明进Windows版本安装

Download | CMake

5.OptiX安装

按照官网进行下载安装

NVIDIA OptiX™ Downloads | NVIDIA Developer

6.vulkan安装

按照官网进行下载安装

LunarXchange

二、源码编译

1.下载代码

推荐使用:git clone --recursive GitHub - NVlabs/instant-ngp: Instant neural graphics primitives: lightning fast NeRF and more

在进行源码下载过程中,如下图示红色矩形框部分,由于网速下载不全,会导致下载失败,需要手动对应的下载,然后放到源码对应的位置,切记依赖项版本号必须与源码保持一致

在下载好instant-ngp文件夹中比对查看依赖项是否完全下载完整,重要事情说三遍:一定要确保文件下载完整!!!

不然会出现这样的错误:

以为是交叉环境问题,然后各种百度,最后在网上找的答案统统都不对,让自己欲哭无泪,因此必须保证自己的源代码文件内容完整和版本一致。

2.源码编译

1)算法环境配置

cmake.txt 修改

由于本机显卡nvidia rtx3090算力值为86 需要在CMakeLists.txt 中增加set(CMAKE_CUDA_ARCHITECTURES 86)

CUDA 11.7.props修改

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.7.props

$(CudaToolkitCustomDir)处添加本机cuda安装路径,如本机为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7

其他版本CUDA方法类似

2)使用cmake进行源码编译

按照如下所示进行操作:

红色警告不需要注意,点击Generate没有报错后,再点击Open Project

按如下所示进行操作:

3)使用终端命令窗口进行编译

cmake . -B build

cmake --build build --config RelWithDebInfo -j64

4)编译过程中出现问题解决

由于vs2019原因会出现相应库缺失,一定要保证库版本一致,不然会出现”0xc000007b“错误

  • 缺少VCRUNTIME14D.dll库

安装vs2015运行时库https://www.microsoft.com/en-gb/download/details.aspx?id=48145

  • 缺少ucrtbased.dll库

按照ucrtbased.dll 免费下载 | DLL‑files.com进行操作

  • CudaToolkitDir找不到

按照上面步骤配置CUDA X.X.props

  • visual studio 2019编译错误

查看是不是在Release模式下进行编译

  • 缺少pyngp安装包

新建setup.py

# python setup.py bdist_wheel

importsetuptools

setuptools.setup(

name='pyngp',

version='1.0',

description='this is a program for EE',

author='',

author_email='',

packages=setuptools.find_packages(),

include_package_data=True,

)

运行python setup.py bdist_wheel

 

三、算法测试

1.在终端命令输入

.\build\testbed --scene data\nerf\fox

2.结果显示

四、参考网址

  1. https://www.bilibili.com/read/cv17508935
### Instant-NGP 和 NeRF 的对比与关系 #### 背景介绍 Neural Radiance Fields (NeRF) 是一种基于神经网络的方法,用于从多视角图像合成高质量的三维场景渲染效果[^1]。它通过优化一个连续的体积密度场和辐射场来实现逼真的视图合成。然而,NeRF 存在一些局限性,例如训练时间较长、内存消耗大以及对高频细节处理不够理想等问题。 Instant Neural Graphics Primitives (Instant-NGP) 则是一种改进版方法,旨在解决上述问题并提升效率。Instant-NGP 使用了一种混合表示法——结合了哈希编码(hash encoding)和多层感知机(MLP),从而显著提高了模型的学习速度和推理性能[^4]。 --- #### 主要差异分析 ##### 1. **计算效率** Instant-NGP 显著提升了训练和推断的速度。相比于传统的 NeRF 方法可能需要数小时甚至更长时间才能完成单个场景的训练,Instant-NGP 可以在几秒钟到几分钟内达到相似的效果。这是由于其采用了高效的哈希表结构来进行空间划分,并减少了冗余参数的数量[^4]。 ##### 2. **存储需求** NeRF 需要较大的存储容量来保存复杂的隐式函数权重矩阵;而 Instant-NGP 借助稀疏网格技术降低了整体所需的显存占用率,在实际应用中更加友好[^5]。 ##### 3. **泛化能力** 尽管两者都能很好地重建已知数据集中的物体外观特性,但在面对未知环境或者更大规模的数据集合时,Instant-NGP 展现出更强的适应性和鲁棒性。这是因为它的设计允许快速调整配置以匹配不同的输入条件[^6]。 ##### 4. **频率响应行为** 正如提到过的那样,标准版本的 NeRF 对于距离较远却携带高频率变化的信息难以有效捕捉,容易造成所谓的“信号走样”。相比之下,Instant-NGP 更加注重平衡全局一致性和局部精细度之间的关系,因此能够更好地应对这种情况下的挑战[^7]。 --- #### 关系探讨 虽然二者都属于神经辐射领域范畴内的研究方向之一,但从本质上讲,Instant-NGP 应该被看作是对经典 NeRF 架构的一次重要升级迭代而非完全替代品。具体来说: - 它们共享相同的目标:即利用深度学习手段构建精确且视觉上令人满意的虚拟世界表现形式; - 同时也继承了一些共同的技术理念比如依赖 MLP 来预测颜色强度分布规律等等; - 不过为了克服原始方案存在的缺陷,后者引入了许多创新机制使得整个流程变得更加高效便捷同时也具备更高的灵活性去满足多样化的需求场景。 ```python import torch from instant_ngp import NGPModel # Example usage of Instant-NGP model initialization and training loop. model = NGPModel() for epoch in range(num_epochs): predictions, loss = model.train_step(input_data) optimizer.zero_grad() loss.backward() optimizer.step() ``` --- #### 总结 综上所述,Instant-NGP 提供了一个更快捷、资源利用率更高并且适用范围更为广泛的解决方案相对于传统意义上的 NeRF 技术而言。不过需要注意的是,任何新技术都有其特定的应用边界,在选用之前还需充分考虑项目实际情况做出合理判断。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值