NeRF-SLAM部署运行(3060Ti)

这篇具有很好参考价值的文章主要介绍了NeRF-SLAM部署运行(3060Ti)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

记录在部署运行期间遇到的一些问题,分享给大家~

一、环境

RTX 3060 Ti、8G显存、Ubuntu18.04

二、部署

1. 下载代码
git clone https://github.com/jrpowers/NeRF-SLAM.git --recurse-submodules
git submodule update --init --recursive
cd thirdparty/instant-ngp/ && git checkout feature/nerf_slam

这里clone的不是原作者的code,而是jrpowers的​ code,12 commits ahead, 2 commits behind ToniRV:master ​,因为官方给的代码在安装部署过程中遇到了不少问题,所以先跳过,给大家介绍成功的流程,下文会介绍部分官方代码在部署过程中遇到的问题及对应的解决方法。

2. 安装CUDA 11.7 和PyTorch

这里我用的是anaconda,如何使用conda请参照ubuntu下anaconda的安装、配置与使用_ubuntu怎么使用anaconda_zllz0907的博客-CSDN博客,


conda create -n nerf python=3.9
conda install -c "nvidia/label/cuda-11.7.0" cuda-toolkit
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
官方安装的是CUDA 11.3和torch 1.12.1,后来试了也是没问题的。
3. 安装requirements
pip install -r requirements.txt
pip install -r ./thirdparty/gtsam/python/requirements.txt
4. 编译ngp(确保cmake版本>3.22)
cmake ./thirdparty/instant-ngp -B build_ngp
cmake --build build_ngp --config RelWithDebInfo -j
5. 编译gtsam

官方代码在编译gtsam时大概率会遇到问题

cmake ./thirdparty/gtsam -DGTSAM_BUILD_PYTHON=1 -B build_gtsam 
cmake --build build_gtsam --config RelWithDebInfo -j
cd build_gtsam
make python-install

如果设备性能有限,或者编译时遇到cplusplus internal相关的问题,将上述第二行编译指令后的-j改为-j8或者更小的-j6,降低在编译时的并行数量。

6. 安装
python setup.py install

三、运行

1. 下载数据集
./scripts/download_replica_sample.bash
2. 运行
python ./examples/slam_demo.py --dataset_dir=./datasets/Replica/office0 --dataset_name=nerf --buffer=100 --slam --parallel_run --img_stride=2 --fusion='nerf' --multi_gpu --gui

注意download_replica_sample.bash中的数据下载地址是Datasets,而运行地址是小写字母datasets,需改成一致。

如果运行时出现检测不到CUDA设备或者无gui画面时,错误如下:

RuntimeError: Could not allocate memory: 
/thirdparty/instant-ngp/dependencies/tiny-cuda-nn/include/tiny-cuda-nn/gpu_memory.h:123 cudaMalloc(&rawptr, n_bytes+DEBUG_GUARD_SIZE*2) 
failed with error no CUDA-capable device is detected

将上述运行指令中的--multi_gpu选项去掉即可。

3. 其他模式运行

跳过SLAM,用位姿真值和深度运行。3060Ti 8G现存可以运行这种模式

./scripts/download_cube.bash 
python ./examples/slam_demo.py --dataset_dir=./datasets/nerf-cube-diorama-dataset/room --dataset_name=nerf --buffer=100 --img_stride=1 --fusion='nerf' --gui

运行画面如下:

NeRF-SLAM部署运行(3060Ti),深度学习,视觉SLAM,深度学习,计算机视觉,机器人

四、官方代码问题解决记录

1. gtsam编译问题

在执行cmake --build build_gtsam --config RelWithDebInfo后遇到

#0 3.429 pyparsing.exceptions.ParseException: Expected string_end, found 'namespace'  (at char 1249), (line:46, col:1)
#0 3.450 make[2]: *** [python/CMakeFiles/pybind_wrap_gtsam_unstable.dir/build.make:76: python/gtsam_unstable.cpp] Error 1
#0 3.450 make[1]: *** [CMakeFiles/Makefile2:32340: python/CMakeFiles/pybind_wrap_gtsam_unstable.dir/all] Error 2

解决:

将thirdparty中的gtsam代码替换为https://github.com/ToniRV/gtsam-1下的代码,重新执行编译步骤即可。

2. 路径问题

download_replica_sample.bash中的数据下载地址是Datasets,而运行地址是小写字母datasets.

3. 运行时报错
 File "/NeRF-SLAM/./examples/../slam/vio_slam.py", line 65, in initial_state
    naive_pose = gtsam.Pose3.identity()
AttributeError: type object 'gtsam.gtsam.Pose3' has no attribute 'identity'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "anaconda3/envs/zl/lib/python3.9/multiprocessing/spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "anaconda3/envs/zl/lib/python3.9/multiprocessing/spawn.py", line 126, in _main
    self = reduction.pickle.load(from_parent)
  File "anaconda3/envs/zl/lib/python3.9/multiprocessing/synchronize.py", line 110, in __setstate__
    self._semlock = _multiprocessing.SemLock._rebuild(*state)
FileNotFoundError: [Errno 2] No such file or directory
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "anaconda3/envs/zl/lib/python3.9/multiprocessing/spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "anaconda3/envs/zl/lib/python3.9/multiprocessing/spawn.py", line 126, in _main
    self = reduction.pickle.load(from_parent)
  File "anaconda3/envs/zl/lib/python3.9/multiprocessing/synchronize.py", line 110, in __setstate__
    self._semlock = _multiprocessing.SemLock._rebuild(*state)
FileNotFoundError: [Errno 2] No such file or directory

重新卸载安装其他版本的gtsam也没解决,于是跳转至前文介绍的部署流程了。文章来源地址https://www.toymoban.com/news/detail-737258.html

到了这里,关于NeRF-SLAM部署运行(3060Ti)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker 部署深度学习 运行deeplabV3

    本文主要介绍docker发展历史,常用的镜像,容器命令。以及部署深度学习环境,运行deeplabV3 项目。 2010年,美国一家公司dotcloud做一些pass的云计算服务,lxc有关的容器技术,他们讲自己的技术(容器化技术)命名为Docker。 刚诞生的时候,没有引起关注,然后2013年,他们讲D

    2024年01月21日
    浏览(33)
  • RTX4070ti-40系列显卡配置pytorch深度学习环境过程

    这几天新配的4070需要安装深度学习环境,开始为了图简便把之前显卡的环境复制过来,结果有各种小问题,什么环境无法导入pytorch,显卡算力和torch的算力不匹配等小问题,导致两天才弄好,下面说下成功安装过程。。。。 1,首先安装好对应的驱动和cudnn-英伟达官网下载具

    2024年02月03日
    浏览(29)
  • SLAM学习入门--计算机视觉一

    IoU(Intersection over Union),又称重叠度/交并比。 1 NMS :当在图像中预测多个proposals、pred bboxes时,由于预测的结果间可能存在高冗余(即同一个目标可能被预测多个矩形框),因此可以过滤掉一些彼此间高重合度的结果;具体操作就是根据各个bbox的score降序排序,剔除与高

    2024年02月02日
    浏览(32)
  • NeRF+SLAM论文阅读笔记

    input: RGB-D contribution: 1.场景表示:多分辨率哈希网格(加速保留高频特征) 2.编码方式:one-blob(提升未观察到区域的补全能力和一致性)编码方式根据场景表示(hash网格)制定 3.改进关键帧:支持在所有关键帧上执行BA Related Work iMap:由于实时性的要求,iMap使用系数采样

    2024年02月09日
    浏览(39)
  • 【视觉SLAM十四讲学习笔记】第五讲——相机模型

    专栏系列文章如下: 【视觉SLAM十四讲学习笔记】第一讲——SLAM介绍 【视觉SLAM十四讲学习笔记】第二讲——初识SLAM 【视觉SLAM十四讲学习笔记】第三讲——旋转矩阵 【视觉SLAM十四讲学习笔记】第三讲——旋转向量和欧拉角 【视觉SLAM十四讲学习笔记】第三讲——四元数 【视

    2024年01月17日
    浏览(30)
  • 视觉学习笔记4——ORB-SLAM3的地图保存与使用

    前言:视觉学习笔记4——学习研究ORB-SLAM3 ORB-SLAM3基本搭建完成,具体可以看开头的系列文章目录,接下来需要研究如何自定义自己的地图,也就是实时地图的保存与运用。 按照开源说明来看,地图保存与加载在V1.0已经实现了,需要修改相应的yaml文件即可,也就是相机yaml文

    2024年02月06日
    浏览(35)
  • 【三维重建】【深度学习】【数据集】基于COLMAP制作自己的NeRF(LLFF格式)数据集

    提示:最近开始在【三维重建】方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法。 LLFF格式是NeRF网络模型训练使用的数据集格式之一,本文基于COLMAP软件展示从LLFF格式数据集的制作到开始模型训练的完整流程。NeRF(神经辐射场)通过输入同一场景不同视角下

    2024年02月10日
    浏览(33)
  • 大盘点!22项开源NeRF、SLAM顶会方案整理!(上)

    作者:泡椒味的口香糖  | 来源:计算机视觉工坊 添加微信:dddvisiona,备注:SLAM,拉你入群。文末附行业细分群。 NeRF结合SLAM是这两年新兴的方向,衍生出了很多工作。目前来看SLAM结合NeRF有两个方向,一个是SLAM为NeRF训练提供位姿,然后建立稠密细腻的三维场景,一个是在

    2024年04月27日
    浏览(18)
  • 【深度学习环境配置】ubuntu 20.04+4060 Ti+CUDA 11.8+pytorch(装机、显卡驱动、CUDA、cudnn、pytorch)

    【深度学习环境配置】ubuntu 20.04+4060 Ti+CUDA 11.8+pytorch(装机、显卡驱动、CUDA、cudnn、pytorch) 📆 安装时间 2023.11.08-2023.11.10 Windows 和 Ubuntu 双系统的安装和卸载 B站教程 【本文基本上跟这个详细教程一致,优先推荐看这个!】ubuntu20.04 下深度学习环境配置 史上最详细教程 【精

    2024年02月04日
    浏览(39)
  • 从计算机视觉(Computer Vision)的角度出发,从传统机器学习的特征工程、分类器设计和优化,到深度学习的CNN架构设计、训练优化、模型压缩与推理部署,详细阐述了图像识别领域最新的技术发展方向

    作者:禅与计算机程序设计艺术 在现代信息技术的快速发展过程中,图像识别技术越来越重要。早期的人工智能算法主要侧重于特征提取、分类或回归任务。近几年,随着神经网络(Neural Networks)在图像识别领域的不断突破,很多研究人员将目光投向了深度学习(Deep Learni

    2024年02月10日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包