服务器的选择&&在服务器上跑通3D Gaussian(新手向)

注意

zu安装前准备:

Xftp软件:实现本地与远程服务器的文件传输

Xshell软件:实现本地远程连接服务器

参考文献:

AutoDL连接Xftp和Xshell

前言:

由于学校实验室的服务器出现了一点问题,所以不得不在网上找服务器进行连接,经过试用阿里云、腾讯云、智星云(智星云真的是很惨痛的教训)和AutoDL,又通过大佬的指点,最后敲定了使用AutoDL,其中选的是RTX 4090。

而我们用视频作为高斯的输入,所以说在参考文献的基础上加了安装ffmpeg这一步。

一.高斯所需环境:

根据Github的原始配置文件,我选择了:

python 3.8

cuda 11.8

cudann 8.9.6.50

pytorch:2.0.0

二.AutoDL的优点

  1. 存在社区镜像,在搜索栏里直接搜索3D Gaussian(不用完全搜完,第三个就是),已经有镜像配好了环境,安装了Comalp,只需要在Ubuntu上安装ffmpeg图片分割器
  2. 性价比较高,可以按量计费,使用完了关机不会进行计费
  3. 它具有学生认证,大学生可以经过学生认证之后打折

三.在Ubuntu上进行3D Gaussian

参考文献:

3D Gaussian Splatting的使用_计算机视觉_gootyking-GitCode 开源社区 (csdn.net)

以下内容大部分与参考文献相同,但是加入了一点我自己安装过程中遇到的问题和解决问题的方法

接下来的指令打开Xshell进行输入就好,Xshell的连接方法在前文已经提及

1 配置显卡驱动

1.1更新软件列表和安装必要依赖

sudo apt update

sudo apt install g++

sudo apt install gcc

sudo apt install make

sudo apt install cmake

更新rz服务便于windows上传文件到服务器

apt-get install lrzsz

这一步可以使用Xftp代替,直接下载到本地,打开Xftp,将解压好的文件直接拖拽到服务器对应窗口

1.2 查询当前显卡信息

使用指令查询当前机器的版本情况

lsb_release -a

使用指令查询当前机器的显卡情况

lspci | grep VGA

使用指令查询最佳的NVIDIA驱动

cat /proc/driver/nvidia/version

最后我显现出来的结果是这样:

根据图片所示,应该使用53.86.05的显卡驱动

NVIDIA驱动下载:

官方驱动 | NVIDIAc

创建一个放置各种包的文件夹:

mkdir linux_packages
cd linux_packages

选择准备上传的驱动

1.3 禁用系统自带的显卡驱动nouveau

在终端输入命令打开blacklist.conf文件

sudo vim /etc/modprobe.d/blacklist.conf

有时候使用vim打不开的话,可以打开Xftp找到对应路径的blacklist.conf进行重命名,之后再运行这条命令就可以打开这个文件了

在打开的文件末尾输入,输入方式是先输入i进入insert模式,将文本加入后先按Esc退出Insert模式,然后Shift+X(Shift一直按,X按两次)就可以退出+保存啦。

blacklist nouveau

options nouveau modeset=0

最后更新一下系统的initramfs镜像文件,在终端输入:

sudo update-initramfs -u

完成以上步骤后,在终端中输入:

lsmod | grep nouveau

如果没有输出的话就说明禁用了nouveau

1.4 安装gdm3

直接输入

sudo telinit 3

cd命令进入到你存放驱动的目录linux_packages,执行以下指令

sudo chmod 777 NVIDIA-Linux-x86_64-535.54.03.run   #给你下载的驱动赋予可执行权限,才可以安装
sudo ./NVIDIA-Linux-x86_64-535.54.03.run --no-opengl-files --no-x-check #安装
sudo sh nvidia.run --add-this-kernel
-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件
-add

显卡驱动安装过程中一些选项:

The distribution-provided pre-install script failed! Are you sure you want to continue?

选择continue installation

剩下全部选no

安装结束后

sudo telinit 5

1.5 检验显卡驱动

1.6 挂载Nvidia驱动

modprobe nvidia

输入以下指令,出现显卡信息说明安装成功:

nvidia-smi

2.配置CUDA环境

由于服务器镜像自带,所以说这一步省略

3.配置3D Gaussian Splatting环境

3.1 源码下载

镜像中自带,这里不过多赘述

3.2 配置渲染器

安装必要的依赖,注意这里的cmake --build build -j24 --target install会遇到报错,提示需要CURL_OPENSSL_4,故考虑重新构建opencv对应版本的库

下载地址:Releases · opencv/opencv (github.com)(下载完记住先解压然后用Xftp移动到服务器即可)

# Dependencies
sudo apt install -y libglew-dev libassimp-dev libboost-all-dev libgtk-3-dev libopencv-dev libglfw3-dev libavdevice-dev libavcodec-dev libeigen3-dev libxxf86vm-dev libembree-dev
# Project setup
cd SIBR_viewers
cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release # add -G Ninja to build faster
cmake --build build -j24 --target install

下载完成后:

cd opencv-4.5.3
ll

mkdir build
cd build/

cmake ..
make -j16
make install

# 记录编译路径( CMakeLists.txt 中需要指定该路径 ):

/build/ownOppenCV/opencv-4.5.3/build

然后修改SIBR——viewers里的Cmakelist.txt,指定OpenCV路径,注意vim指令有时候会报错,进入Xftp修改对应路径的Cmakelist.txt即可

vim CMakeLists.txt 
 # 添加如下:指定编译安装的目录
 set(OpenCV_DIR /build/opencv-4.5.3/build)
 find_package(OpenCV REQUIRED)

3.5 安装COLMAP

由于该镜像已经安装过了COLMAP,所以说这一步我们省略

详见可以第一个参考文献

四. 3D Gaussian相关配置的安装

1.准备场景样本

拍视频最好,可以用ffmpeg进行抽帧。

PS:

因为训练的照片要分辨率同意,相机参数、光照等看着都比较同意比较好。

另外,建议分辨率推荐1080P,至少720p。再退一步,至少保证宽或高有一个能到720,不然训练出来的效果不好

拍视频的时候,一定不要在一个位置转着拍,要缓慢走动,边走边转,上下左右,然后再走回来,这个路线根据场景要设计好,目的是在任何位置上都有任何角度的照片

2.ffmpeg下载及视频切割

在Xftp中gaussian-splatting中建一个data目录,data目录里建个input文件夹,名字必须是input

使用下面这个指令进行ffmpeg下载

sudo apt update

sudo apt install ffmpeg

这个下载时间有点长,需要等待

安装完之后检查是否安装完成,请输入:

ffmpeg

最终输出结果:

然后输入以下指令进入data目录(注意上一级目录是否是gaussian-splatting)

cd data

最后输入:

 ffmpeg -i Scene_1.mp4 -r 3 -f image2 input/%06d.jpg

注意这里的mp4文件要通过Xftp从本地移动到服务器的data目录中,然后代码中的mp4写成你自己命名的mp4

3. 生成相机位姿

在gaussian-splatting的项目目录下,运行convert.py

python convert.py -s data

这里 -s 要传入数据目录,一定写data这个目录级别(input在这个目录下)

这时用的是CPU跑的,多等会儿,最终就在data目录下生成一堆目录和文件,包括相机位姿

4.训练

输入代码:

python train.py -s data -m data/output

但是我出现了以下错误:RuntimeError:CUDA error:an illegal memory access was encountered

但是这个错误不知道是哪里出现了问题

然后输入python之后

输入:

import os
os.environ['CUDA_LAUNCH_BLOCKING']='1'
exit()

就可以显示具体的错误位置了

查看了网上的解决方法,是batch_size的问题

应该是显存显卡适配的问题

然后换了个服务器型号

最后训练成功啦

五.总结

以上步骤都成功之后,会在data/output里面生成文件夹,生成点云文件input.ply,可以用unity等软件进行查看

之后每次训练步骤如下:

1.打开Xshell和Xftp链接服务器

2.把视频文件移动到data文件夹中并新建input文件夹(在Xftp直接按windows操作即可),注意要将之前的文件进行备份保存然后从data文件中移除

3.ffmpeg -i Scene_1.mp4 -r 3 -f image/%06d.jpg(笔者补充:如果输入是图像就不用ffmpeg,因为ffmpeg是为了分割视频为图像照片)

4. cd ..//回到gaussian-splatting文件夹中

   python convert.py -s data

5.python train.py -s data -m data/output

就这样可以一直在服务器训练啦

<think>好的,用户问的是如何在Ubuntu上部署sibr_viewers。首先,我需要回顾用户提供的引用内容,特别是引用[2],里面提到了具体的步骤。用户可能已经看过这些步骤,但可能需要更详细的解释或者遇到问题需要帮助。 首先,用户提到的引用[2]中的步骤包括安装依赖库、克隆仓库、编译安装。我需要确认这些步骤是否正确,是否有遗漏。比如,用户提供的安装依赖命令是否完整,是否需要其他包。另外,用户的环境是Ubuntu 22.04,需要确保所有依赖库在该版本中可用。 接下来,可能需要检查是否有常见的安装问题,例如权限问题、路径错误,或者缺少某些开发工具。比如,cmake是否安装,git是否安装,这些在引用中没有提到,但可能是前提条件。用户可能没有提到这些,所以需要在回答中包含这些步骤。 然后,编译过程中使用-j24参数,这取决于用户的CPU核心数,可能需要提醒用户根据实际情况调整。此外,安装完成后,如何运行程序或者测试是否安装成功也是需要考虑的,用户可能需要这方面的指导。 另外,用户可能遇到依赖项安装失败的情况,比如某些库的版本不兼容,或者需要添加第三方PPA源。例如,libembree-dev可能在默认仓库中没有,需要确认安装方法。 最后,生成相关问题需要考虑用户在部署过程中可能遇到的问题,比如依赖问题、编译错误,以及如何验证安装是否成功,或者如何配置环境等。这样可以帮助用户进一步解决可能出现的困难。</think>### 在Ubuntu系统中部署SIBR_viewers的步骤 #### 1. 安装系统依赖 首先安装编译所需的依赖库: ```bash sudo apt update sudo apt install -y libglew-dev libassimp-dev libboost-all-dev libgtk-3-dev libopencv-dev libglfw3-dev libavdevice-dev libavcodec-dev libeigen3-dev libxxf86vm-dev libembree-dev git cmake ``` > 注意:`libembree-dev`可能需要先添加Intel Embree仓库[^2] #### 2. 获取源代码 克隆仓库并进入项目目录: ```bash git clone --recursive https://github.com/sibr/sibr.git cd sibr/SIBR_viewers ``` #### 3. 编译安装 使用CMake进行编译配置: ```bash mkdir -p build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make -j$(nproc) ``` > 说明:`-j$(nproc)`会根据CPU核心数自动设置并行编译线程数 #### 4. 验证安装 编译完成后,可执行文件将生成在`build/bin`目录,可以运行测试命令: ```bash ./bin/Viewer -h ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值