最近在研究多张照片转3D模型想过的技术。NeRF是目前最主流的方式之一。本文主要在腾讯云CVM云服务器上实操Nerfstudio的安装及example运行。过程中遇到了很多坑,希望本篇文章能帮助大家不再遇到相关的安装、配置、运维的坑,顺利在应用层上纵横驰骋。
Nerfstudio是面向 NeRF 的协作友好的工具环境。它就像即插即用plug and play一样简单!
Nerfstudio提供了一个简单的API,允许简化创建,训练和测试NeRF的端到端过程。该库通过模块化每个组件来支持 NeRF 的更可解释性实现。通过更多的模块化NeRF,我们希望在探索技术时创造更加用户友好的体验。
这是一个对贡献者友好的存储库,其目标是建立一个社区,用户可以更轻松地在彼此的贡献基础上进行构建。Nerfstudio 最初于 2022 年 10 月由伯克利学生在伯克利人工智能研究 (BAIR) 的 KAIR 实验室作为研究项目(论文)的一部分作为开源项目推出。它目前由伯克利的学生和社区贡献者开发。
我选择在腾讯云CVM的西南地区(成都)购买服务器,原因主要是我之前荣获了腾讯云开发者社区征文优质作者奖,奖品是一张限额券,适用于购买大陆地区带GPU的云服务器,有效期一个月。我发现,西南地区(成都)的服务器价格相对较低,这使得我能够用这张限额券购买一台带有300GB硬盘的带GPU的云服务器。如果选择其他地区,由于价格较高,我可能无法用这张限额券购买同样配置的服务器。闲话不多说。我购买的GN7.2XLARGE32,操作系统是 Ubuntu Server 20.04 LTS 64位,镜像ID是 img-22trbn9x,后台自动安装GPU驱动版本见下图(GPU驱动版本 450.102.04,CUDA版本 10.2.89, cuDNN版本 7.6.5)。其他具体配置见下图。
这个相对NeROIC要容易得多,但如果你希望一次性就走通,尽量不要换其他配置,否则保不定就是各种问题。我的这种购买安装配置路径,是能保证你一次性搞定的。另外,过程中面临了几次必须要翻墙的问题,我是在我另外的腾讯云CVM新加坡区域的服务器上完成下载,然后导入到这台服务器的。后面会详细说明。
PS:这台云服务器使用的私有网络-安全-安全组,务必放开7007端口。
本地电脑使用ssh ubuntu@【腾讯云CVM IP地址】,鉴权后登陆。
sudo apt-get update
sudo apt update
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh
sh Anaconda3-2023.03-Linux-x86_64.sh
安装完成后,需要exit登出后再ssh登陆进来。
conda create --name nerfstudio -y python=3.8
conda activate nerfstudio
pip install --upgrade pip
由于我选择的GPU版本较低(见下图),因此我选择的是官方教程的CUDA 11.7 。
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
conda install -c "nvidia/label/cuda-11.7.1" cuda-toolkit
pip install ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
pip install nerfstudio
以下这一句我在这台成都的云服务器上下载不下来,我是在新加坡的同样配置的云服务器上下载成功,然后下载到本地,再上传到这台成都的云服务器解决这个问题的。
# 下载一些测试数据:
ns-download-data nerfstudio --capture-name=poster
然后,你就可以训练你的第一个模型了。
# 训练模型
ns-train nerfacto --data data/nerfstudio/poster
有点儿慢,由于是ssh登陆到云服务器上的,建议这么做:
nohup ns-train nerfacto --data data/nerfstudio/poster &
tail -f nohup.out
如果一切正常,你可以看到如下日志:
其中关键的一句是:
Viewer at: https://viewer.nerf.studio/versions/23-05-15-1/?websocket_url=ws://localhost:7007
我这里面是23-05-15-1,你运行时这一段可能是和我不一样的。这是正常的。这句本来是你本地运行nerfstudio时,在本地PC的浏览器中访问web界面的地址,但我们现在是在腾讯云CVM云服务器上运行的nerfstudio,因此直接执行不了这个网址。那该怎么办呢?有办法。
退出ssh后,在本地命令行运行(需要输入ubuntu账号的密码,如果是使用密钥,则应该是加-i ***.pem证书):
ssh -CNg -L 7007:127.0.0.1:7007 ubuntu@[你的腾讯云云服务器外网IP地址]
再次强调一句,私有网络-安全-安全组,务必放开7007端口。
然后,在你的浏览器中,输入:Viewer at: https://viewer.nerf.studio/versions/23-05-15-1/?websocket_url=ws://localhost:7007 ,就可以看到训练的过程和结果了。
总的来说,NerfStudio是一个强大而灵活的工具,它将深度学习和3D建模的复杂性降至最低,同时提供了极高的自定义性和操作性。无论你是一名研究人员,寻求改进现有模型,还是一名艺术家,寻找新的创作工具,或者是一名开发者,寻求构建具有深度和细节的3D环境,NerfStudio都能为你提供强大的支持。它的易用性和高效性,使得任何人都可以无缝地将他们的创新和想象力转化为令人印象深刻的3D作品。在未来,我们期待看到NerfStudio将如何继续改变我们理解和利用3D空间的方式,开创更多的可能性。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。