找回密码
 会员注册
查看: 28|回复: 0

Windows环境下nerfstudio环境配置及复现(含tinycudann安装、poster数据)

[复制链接]

3

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2024-9-10 13:52:32 | 显示全部楼层 |阅读模式
Windows系统下的nerfstudio复现nerfstudio简介配置环境AcknowledgeConclusionDataAvailablenerfstudio简介nerf自从出世之后便有了各种各样的变体,比如mip-nerf,mip-nerf306等等。2023年加州大学伯克利分校(BAIR)的研究人员开发了名为Nerfstudio的Python框架,用于神经辐射场(NeRF)的开发。配置环境目前,因为在某实景三维中心实习需要用到nerfstudio完成项目,所以经历了这两天的环境配置踩坑之后将整个配置流程写在这里,以供有需求的人使用。Windows系统和Ubuntu系统下的安装还是有些差别的,为了方便项目开发,我单位采用Windows系统进行环境配置。配置环境中的命令,部分来自GitHub上原作者给出的,部分来此CSDN上一些老哥分享的。配置过程中,最难搞的是tinycudann的配置,我查看了很多方法,又根据自身电脑配置,将符合自己情况且可行的方法分享出来。虚拟环境创建虚拟环境中使用的torch和cuda版本如下:python3.8CUDA11.8torch2.1.2torchvision0.16.2condacreate--namenerfstudio-ypython=3.8#创建名为nerfstudio的虚拟环境,python版本为3.8condaactivatenerfstudio#激活该虚拟环境pipinstall--upgradepip#将pip进行更新123进行pip更新的时候报错如图1:仔细查看报错信息:‘ERROR:Tomodifypip,pleaserunthefollowingcommand:E:\Anaconda\envs\ns\python.exe-mpipinstall--upgradepip’,那么我们重新执行命令:E:\Anaconda\envs\ns\python.exe-mpipinstall--upgradepip1更新完pip之后,接着需要安装torch和torchvision。使用如下命令行:pipinstalltorch==2.1.2+cu118torchvision==0.16.2+cu118--extra-index-urlhttps://download.pytorch.org/whl/cu1181如果顺利的话,这里会正常运行,如果您也是用的和我一样的破电脑,那就会报错,如图2:报错信息:CouldnotfetchURLhttps://download.pytorch.org/whl/cu118/torch/:Therewasaproblemconfirmingthesslcertificate:HTTPSConnectionPool(host=‘download.pytorch.org’,port=443):Maxretriesexceededwithurl:/whl/cu118/torch/(CausedbySSLError(“Can’tconnecttoHTTPSURLbecausetheSSLmoduleisnotavailable.”))-skipping如果你的电脑上有VPN的话,那就把VPN代理打开重新运行该命令,如果还是不行,那就直接将torch和torchvision包下载到本地手动安装。根据安装命令,我们导航到网址:https://download.pytorch.org/whl/cu118(图3):在网页上我们可以找到torch和torchvision的入口,点击torch进去下载我们需要的包,直接在该页面上ctrl+f,然后输入2.1.2+cu118,可以发现搜索到了以下几个包:因为操作系统为Windowsx64,环境配置为CUDA11.8、python3.8,所以我们下载的包名称为torch-2.1.2+cu118-cp38-cp38-win_amd64.whl;同样的方法我们在torchvision的页面上搜索0.16.2+cu118,选择下载torchvision的包名称为torchvision-0.16.2+cu118-cp38-cp38-win_amd64.whl。下载完之后,我们开始手动配置torch和torchvision,在自己的虚拟环境中,使用如下命令行:cdpath/to/your/downloadfiles#将文件切换到你的下载路径#比如我的下载路径是C:\Users\vip\Downloads#那么我就要使用命令行cdC:\Users\vip\Downloads切换到下载文件中pipinstalltorch-2.1.2+cu118-cp38-cp38-win_amd64.whl#使用命令安装torchpipinstalltorchvision-0.16.2+cu118-cp38-cp38-win_amd64.whl#使用命令行安装torchvision1234567接下来安装cudatoolkit相关扩展,虽然我们没有直接安装CUDA11.8,但是使用如下命令行会自动安装相关的包以匹配该命令中的目标安装包:condainstall-c"nvidia/label/cuda-11.8.0"cuda-toolkit1tinycudann编译安装好的,接下来就是最难安装的tinycudann了,使用GitHub上原作者给的如下命令行:pipinstallninjagit+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch1虽然这里看起来是安装pipinstallninja,但其实需要安装的是tinycudann,即使用condalist已经看到ninja成功安装了,但如果没有装上tinycudann还是跑不动。如果你是天选之子的话,那么这里应该是可以顺利进行的,但如果没有顺利进行的话(图4),那说明老天没开眼没把咱选上。如果是因为连接超时的话,那可以把VPN代理打开试一试,如果没用咱就仍然下载到本地安装。根据命令行中的git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch,我们可以分析得到我们需要拉取的目标仓库是https://github.com/NVlabs/tiny-cuda-nn,而我们需要安装的仓库是#subdirectory=bindings/torch。我们直接将整个tiny-cuda-nn包从GitHub上zipdownload下来。然而,直接下载包会发现fmt文件夹和cutlass文件夹都是空的,所以我们还要将这两个库下载并替换到tinycudann的包中,具体操作我借鉴了这位博主的这篇博客:【深度学习】【三维重建】windows11环境配置tiny-cuda-nn详细教程。【tinycudann的下载地址】——【fmt的下载地址】——【cutlass的下载地址】,下载好之后,做如下替换(图5,图源于所借鉴博客),并记住tinycudann的包所在位置路径:好的,到这一步我们所需要的安装包就准备好了,接下来对tinycudann进行编译,在虚拟环境中使用命令行如下:cdpath/to/tinycudann包/tiny-cuda-nn/bindings/torch#切换到你的tinycudann包中torch所在位置pythonsetup.pyinstall#运行编译命令12在运行pythonsetup.pyinstall的时候,我的环境出现报错AttributeError:module'importlib_metadata'hasnoattribute'MetadataPathFinder',如图6所示:这意味着importlib_metadata坏了或者是没安装,使用condalist查看之后,发现是没安装,运行命令行安装该包;pipinstallimportlib_metadata1再次运行之后报错如图7,RuntimeError:CouldnotlocateasupportedMicrosoftVisualC++installation意思是找不到VisualC++编译器的位置:查阅了其他大佬的文章才知道tinycudann编译之前需要安装vs2019或者vs2022,如果没有安装的话在执行pythonsetup.pyinstall之后会报错。没有安装VS2019或者VS2022的话,请参考文章【安装tiny-cuda-nn时报错RuntimeError:CouldnotlocateasupportedMicrosoftVisualC++installation】以及【复现nerfstudio并训练自己制作的数据集】,如果安装了却依然报同样错误的,说明可能是环境变量未配置,也请参照该文章。然后我重新运行pythonsetup.pyinstall,结果仍然报错,如图8:内容很多,我查看了一下里面报错的信息有FAILED:E:/Anaconda/envs/ns/Lib/site-packages/tiny-cuda-nn-master/bindings/torch/build/dependencies/fmt/src/format.obj、E:\Anaconda\envs\ns\Lib\site-packages\tiny-cuda-nn-master/dependencies/fmt/include\fmt/format-inl.h(11):fatalerrorC1083:无法打开包括文件:“algorithm”:Nosuchfileordirectory、FAILED:E:/Anaconda/envs/ns/Lib/site-packages/tiny-cuda-nn-master/bindings/torch/build/dependencies/fmt/src/os.obj、E:\Anaconda\envs\ns\Lib\site-packages\tiny-cuda-nn-master/dependencies/fmt/include\fmt/os.h(11):fatalerrorC1083:无法打开包括文件:“cerrno”:Nosuchfileordirectory、E:\Anaconda\envs\nerfstudio\include\crt/host_config.h(231):fatalerrorC1083:无法打开包括文件:“crtdefs.h”:Nosuchfileordirectory等等,报错信息很多,我最开始以为是缺少了os.obj、format.obj、cpp_api.obj等等文件,但后来查阅了很久才发现不是。真正原因是tinycudann需要管理员方式打开"x64NativeToolsCommandPromptforVS2022"执行指令。直接在Windows下方的搜索栏打开该vs终端(图9)打开VS2022终端之后,输入以下命令行:cd/dpath\to\your\tiny-cuda-nn-master\bindings\torch#切换到你的tinycudann包的所在路径activateyour_virtual_env#激活你的虚拟环境pythonsetup.pyinstall#运行安装命令123当我执行了这些命令之后,发现和图9报一样的错,说明还是有地方没弄对。后来我搜索了一下为什么会报错fatalerrorC1083:“crtdefs.h”:Nosuchfileordirectory,找到了这位博主的文章【Windows编译tiny-cuda-nn时出现fatalerrorC1083:“crtdefs.h”:Nosuchfileordirectory】,可能是因为安装的VS设置的编译项默认为x86,与当前系统的CUDA的位数不一致。我所使用电脑为x64,应该先将路径Community/VC/Auxiliary/Build/vcvarsall.bat下的开发环境配置为x64参数。经过everything搜索发现有两个路径的D:\VisualStudio2022(64bit)\IDE\VC\Auxiliary\Build\vcvarsall.bat和D:\VisualStudio2022(64bit)\BuildTools\VC\Auxiliary\Build\vcvarsall.bat,最终两个都试了之后,发现后者才是需要被配置的。还是在VS2022终端中输入:"D:\VisualStudio2022(64bit)\BuildTools\VC\Auxiliary\Build\vcvarsall.bat"x64#将VS开发环境配置为x64的pythonsetup.pyinstall#执行编译命令12等一会儿之后,出现Installede:\anaconda\envs\ns\lib\site-packages\tinycudann-1.7-py3.8-win-amd64.eggProcessingdependenciesfortinycudann==1.7Finishedprocessingdependenciesfortinycudann==1.7表示编译成功(图10)!nerfstudio的安装tinycudann编译好之后,最难做的也就弄完了,接下来我们安装nerfstudio,GitHub上原作者给出了两种方法,咱采用最简单的那种:pipinstallnerfstudio1这里安装nerfstudio如果网速不佳的话会等很久很久,等安装好过后,就只有ffmpeg、colmap、hloc需要安装了。数据下载和测试按道理来说,到这一步咱就可以直接训练了,所以使用作者给出的命令来下载数据测试一下:#Downloadsometestdata:ns-download-datanerfstudio--capture-name=poster12结果依然超时没法下载,想着可以自己根据报错找出URL从网上手动下载吧,参考了一下这篇文章【谷歌直链下载云盘数据集,使用谷歌云盘生成直接下载的url,示例:NeRFStudio-nerfacto默认训练数据集poster下载,nerfstudio数据集下载链接】结果却是404找不到网址。最后从别人那里找到了分享数据,但是需要会员才能下载,这就很烦。明明人家是开源数据,好家伙一放在这儿就变成了收费内容,damn这太知网了!!!!我将该测试数据以链接的形式贴在文章的末尾,有需要的自取!弄好数据之后,运行作者给的命令行:#Trainmodelns-trainnerfacto--datadata/nerfstudio/poster12好的,单位的破电脑稳定输出给我来个报错(图11),ImportErrorLLloadfailedwhileimporting_ssl:找不到指定的程序。:网上给出了很多解决方法,各位可以对照着试一试,比如:1.环境变量配置有问题的,参照这篇文章【importerror:dllloadfailedwhileimporting_ssl:找不到指定的程序。问题解决记录】2.文件缺失,需要复制替换的,参照【ImportErrorLLloadfailedwhileimporting_ssl:找不到指定的程序】3.需要重装openssl的【参考这篇】4.需要更改python版本的,看看这个【解决fastapi项目使用conda新创建的虚拟环境报错:ImportErrorLLloadfailedwhileimporting_ssl:找不到指定的模块】我将网上的方法都试过了,并且重装两次虚拟环境,都没有用。后来单位这边催我,只好先将后面的包安装了,没想到在装完colmap之后这个问题自己就解决了:#安装ffmpegcondainstall-cconda-forgeffmpeg#安装colmapcondainstall-cconda-forgecolmapcondainstall-cconda-forgempir#安装hloccd..#切换到上级目录gitclone--recursivehttps://github.com/cvg/Hierarchical-Localization/cdHierarchical-Localization/#克隆仓库python-mpipinstall-e.#安装编译12345678910安装完之后,就可以正常运行测试数据了,只是需要下载一个权重,等权重下载好出现图12的样子就说明已经可以了。点击图12中的http://localhost:7007之后,出现web界面(图13):Acknowledge好的,到这里说明nerfstudio已经复现成功了!网上有很多老哥都分享了自己的安装过程,其实大多数操作都相同,只是因为大家各自所使用的环境、系统等等因素不同,需要我们自己动态地对该过程出现的问题进行调整。我只是众多可行方法中的一种,大家选择合适自己的方法即可,感谢文中所引用文章作者做出的贡献!Conclusion搭建好环境之后,就需要将其应用到项目中了,后续我可能会继续更新如何将nerfstudio用于重建自己的数据集,以及记录我第一次实习经历和第一次项目落地经历。DataAvailable链接:https://pan.baidu.com/s/1jnRJ7fL-MOpnPFiAdkkzdA提取码:x18r12下载好之后,请在你的nerfstudio项目文件夹中data/nerfstudio/poster路径下,然后运行ns-trainnerfacto--datadata/nerfstudio/poster。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-5 09:56 , Processed in 0.793478 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表