前言
Install
原文章github链接
- 下载代码
git clone https://github.com/ToniRV/NeRF-SLAM.git --recurse-submodules
git submodule update --init --recursive
因为有相关依赖,所以尽量使用命令下载代码。
2. 新建nerf-slam环境,github上也没提到python是哪个版本,这里就随便选了一个(这个github真的好简陋),下面这几行都是按照mip-nerf-pytorch的代码安装的
conda create --name nerf-slam python=3.9.12
source activate nerf-slam
conda install pip; pip install --upgrade pip
3.安装torch
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch
# 切换到NeRF-SLAM文件夹下,安装requirements.txt
pip install -r requirements.txt
pip install -r ./thirdparty/gtsam/python/requirements.txt
4.安装cmake
到这一步就彻底卡住了
#查看当前cmake版本是不是>3.22
cmake --version # 若不是升级cmake
# 下载cmake
wget https://cmake.org/files/v3.22/cmake-3.22.1.tar.gz
# 解压
tar xzf cmake-3.22.1.tar.gz
cd cmake-3.22.1
./configure
make
# 安装cmake
sudo make install
cmake --version
5.编译,在执行cmake ./thirdparty/instant-ngp -B build_ngp
,(以下顺序不太记得了)会出现无数个错误
出现 No CMAKE_CUDA_COMPILER could be found.
,终端输入:
export PATH=/usr/local/cuda/bin:$PATH
接着出现CMake Error: Could not find CMAKE_ROOT !!!
,终端输入:
hash -r
然后出现CMake Error at dependencies/glfw/CMakeLists.txt:163 (message): RandR headers not found; install libxrandr development package
,需要进行一系列的安装
# 缺哪个安装哪个
sudo apt-get install libxrandr-dev
sudo apt-get install libxinerama-dev
sudo apt-get install libxcursor-dev
sudo apt-get install libxi-dev
sudo apt install doxygen
接着出现Could NOT find GLEW (missing: GLEW_INCLUDE_DIRS GLEW_LIBRARIES)
sudo apt install libglew-dev
以上全都安装完成后,执行以下命令,应该需要几分钟时间吧
cmake ./thirdparty/instant-ngp -B build_ngp
cmake --build build_ngp --config RelWithDebInfo -j
6. 编译gtsam
这个步骤遇到过很多奇奇怪怪的错误,以下逐一列出
cmake ./thirdparty/gtsam -DGTSAM_BUILD_PYTHON=1 -B build_gtsam
# 运行至这里会报错
cmake --build build_gtsam --config RelWithDebInfo -j
cd build_gtsam
make python-install
1.遇到报错“No module named 'pyparsing”时,命令conda install matplotlib (参考链接)
2.运行上述命令后仍然报这个错误,这是可能是因为找不到parsing的包,在找不到包的那个文件中添加以下命令,其中("this\is\the\path")
指向你的pypparsing安装路径(参考链接)。
import sys
sys.path.append("this\is\the\path")
import pyparsing
3.ln: failed to create symbolic link ‘XXXXXX’: Operation not supported
参考链接,这是因为我使用的是文件夹挂载,最简单的办法就是转到本地再进行编译。
4. CMakeFiles/check.dir/build.make:70: recipe for target 'CMakeFiles/check' fai
,make check
运行后已经几乎100%,但是还是报了错参考链接。
这里按照他的方法使用make代替make check。
5. 零零碎碎记录一些有点没的:关于解压一定要使用命令解压,nerf-slam提供的gtsam链接不好用要用其他链接gtsam-1,和另一个版本的链接。
总体的命令是
git clone https://bitbucket.org/gtborg/gtsam.git
cd gtsam/
mkdir build &&cd build
cmake ..
make check # 报错
make
sudo make install
7. 结尾命令
把目录调回主文件下,环境换成nerf-slam环境,运行以下命令
python setup.py install
以上就完成了,接下来下载运行命令。
运行demo
# 下载数据集
./scripts/download_replica_sample.bash # 这行命令显示权限不够 无法运行
# 打开bash文件可以看到他新建了一个目录,所以我也按照他的命令新建目录Datasets
# 运行
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
报错ModuleNotFoundError: No module named 'colored_glog'
,我真想骂一句,作者能不能把他的包写全,数据集无法下载,命令总是找不到包,还不止一次了,到底是什么玩意???使用pip install colored_glog
安装。