nerfstudio官方网站:Data conventions - nerfstudio
如果想要训练自己的数据集,那么还需要
conda create --name nerfstudio -y python=3.8
conda activate nerfstudio
python -m pip install --upgrade pip
注意:
查看自己显卡的类型:
图源:AI脑洞君
查看显卡支持的cuda版本:
nvidia-smi
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118
conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit
pip install ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
下载nerfstudio源码有两种方法,任选其一即可
但第二种方法速度更快一些
pip install nerfstudio
或者
git clone https://github.com/nerfstudio-project/nerfstudio.git
cd nerfstudio
pip install --upgrade pip setuptools
pip install -e .
官网给出的数据集下载地址,下不起一点......
ns-download-data nerfstudio --capture-name=poster
可以直接用命令下载数据集,需要先在项目下建立data/nerfstudio的目录
找了可以下载数据集的地址:
https://download.csdn.net/download/qq_35831906/87929708
谷歌直链下载云盘数据集,使用谷歌云盘生成直接下载的url,示例: NeRFStudio-nerfacto默认训练数据集poster下载,nerfstudio 数据集下载链接_谷歌云盘直链_LeapMay的博客-CSDN博客
ns-train nerfacto --data data/nerfstudio/poster
找到 HTTP 那一行的网址
找到 localhost 后对应的端口号
比如我这幅图的端口号就为7007
然后打开自己的命令行
输入:ssh -L 端口号 : localhost : d端口号 服务器用户名
然后复制HTTP那一行的网址到自己电脑里的浏览器
点击回车
就可以看到可视化的结果
提前配置环境
如果不是root用户,不能使用 sudo 命令
也就不能使用 sudo 来下载 colmap,或者其他依赖项都是不可以下的
直接使用 nerfstudio 官方方法
conda install -c conda-forge colmap
然后使用 -h 来检查一下 colmap是否工作
colmap -h
如果不成功
可以删除目录,按照一下方法重装(cuda版)
git clone https://github.com/microsoft/vcpkg
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg install colmap[cuda]:x64-linux
我自己用这个方法失败了。。。。但是用第一种方法成功了
如果没有使用第一种方法的命令语句来下载 colmap
使用 sudo 或者通过 wget + 下载地址 的方法下载 colmap
要特别注意要进行编译
以及检查 cmake 的更新
综上:
十分推荐第一种方法的命令语句直接下载 colmap
对于 ffmpeg 的下载方法 nerfstudio 官网说的并不是很清楚
目前网上大多使用的方法有三种
很不幸的是
我使用这三种方法去配置 ffmpeg 的时候
都失败了。。。。。
运行后面生成输入数据位姿和帧的命令时
都会出现下面这个报错
报错原因可能是:
对于第二种可能报错的原因
是因为我安装到后面的时候
我发现可能是我当时先使用了后面用于处理自己数据集的 ns-process-data 命令语句
然后才发现我的 ffmpeg 还没配置
安装完 colmap ,就使用了 ns-process-data 这个命令
这个命令就先一步对输入数据进行了 colmap 处理
我并不能确定到底是因为哪一个原因导致上图的报错
我先只调整了输入视频的目录和输出的目录
但依然报错
我就把通过 pip 和 wget 下载的 ffmpeg 全删了 (我用不了sudo)
使用下面这条下载命令来重新下载 ffmpeg
conda install -c conda-forge ffmpeg
同时我在 nerfstudio 目录下
新建了一个目录用来放输入的视频 / 照片
新建了一个目录用来放输出的帧和位姿信息
来避免需要重建的数据与之前 colmap 处理过的数据在相同目录中出现
成功解决报错
在配置好 colmap 和 ffmpeg 之后
使用下面这个数据进行处理数据
ns-process-data {images, video} --data {DATA_PATH} --output-dir {PROCESSED_DATA_DIR}
如果输入的是图片,第一个括号选择 images
如果输入的是视频,第一个括号选择video
DATA_PATH:输入数据所在的绝对路径
PROCESSED_DATA:输入之前新建 / 指定的输出目录的绝对路径
例如 我自己的输入
ns-process-data video --data /home/zhangzihui/nerfstudio/video --output /home/zhangzihui/nerfstudio/data
直接输入命令
ns-train nerfacto --data {PROCESSED_DATA_DIR}
这里 data 后面的地址要与处理数据时输出的地址一致
我自己的输入
ns-train nerfacto --data /home/zhangzihui/nerfstudio/data
然后就可以进入查看可视化结果了
非 root 用户不能使用 sudo 命令
因此只能用 pip 或者 wget 来下载
这里应用更广泛的是 wget
进入下载页面
点击要下载的版本
出现上面这个页面,里面的地址就是我们需要的地址
使用 wget 命令
wget https://ffmpeg.org/releases/ffmpeg-6.0.tar.xz
tar -zxvf xxx.tar.gz
3、进入解压后的目录
cd xxx
./configure –prefix=/PATH/bin
make && make install
export PATH=/PATH/bin:$PATH
这里的 PATH 与上一步的 PATH
均为解压目录的绝对路径
注意
如果是动态链接库
export LD_LIBRARY_PATH=/PATH/library:$LD_LIBRARY_PATH