ubuntu20部署3d高斯

3d高斯的链接:https://github.com/graphdeco-inria/gaussian-splatting

系统环境

ubuntu20的系统环境,打算只运行训练的代码,而不去进行麻烦的可视化,可视化直接在windows上用他们预编译好的exe去可视化。(因为看的很多人说在ubuntu上去安装这个可视化的程序,有点麻烦,cmake版本要改到最新,还有一些其他的操作,所以既然有简单的方法就不想在ubuntu上折腾,毕竟我的ubuntu主要开发ros程序,环境搞崩了就还要自己再重装)

安装cuda

之前在跑nerf的时候,我安装的是cuda11.6,但是github上说他们用的是cuda11.8,所以我这里再装一个cuda11.8.
cuda11.8的下载地址,直接下的是runfile的。(注意不要去用wget下载,很有可能在进度99%的时候失败,直接将http链接复制到浏览器上,用浏览器下载,不会出问题)

  1. 给下载好的文件加权限
sudo chmod +x cuda_11.8.0_520.61.05_linux.run
  1. 运行这个cuda文件
sudo sh cuda_11.8.0_520.61.05_linux.run

运行这个指令后需要注意,要等一阵,终端才会进入安装画面:
在这里插入图片描述
选择continue后,输入accept
在这里插入图片描述
把这个驱动包的驱动按空格取消安装,即用本来安装好的显卡驱动
在这里插入图片描述
然后选install,出现下面的画面,因为之前有一个11.6cuda,这里他检测到了有cuda,想要更新,这里选no,否则应该会覆盖安装。123
然后就是等待安装的过程,安装完成后终端会有显示:
在这里插入图片描述
注意这里的安装目录是==“/usr/local/cuda-11.8/”==

  1. 修改环境变量
    目前在/usr/local的文件是这样的:
    在这里插入图片描述
    注意这时候这个cuda是一个软链接,直接无视也可以,通过下面指令打开配置文件
sudo gedit ~/.bashrc

然后在cuda相关的部分改成下面的形式:

# cuda11.6
#export PATH=$PATH:/usr/local/cuda-11.6/bin  
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.6/lib64  
#export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-11.6/lib64# cuda11.8
export PATH=$PATH:/usr/local/cuda-11.8/bin  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64  
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-11.8/lib64

更新配置

source ~/.bashrc

当你去使用11.8的时候,就将11.6的注释掉,用11.6的就把11.8的注释掉。

  1. 切换版本并且验证
nvcc  --version

在这里插入图片描述
结果是11.8,代表切换成功了。

配置cudnn

直接用的是之前下载的cudnn8.4.1 for cuda11.x,应该对cuda11.8也是适用的。
下载的链接:https://developer.nvidia.com/rdp/cudnn-archive
推荐中文链接:https://developer.nvidia.cn/rdp/cudnn-archive
这里我选择的是cudnn8.4.1 for cuda 11.x的tar版本
在这里插入图片描述

  1. 下载完后进行解压:并且将对应的库和头文件移到cuda11.8目录中,反正需要注意的就是cuda11.8的路径。
tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xzsudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda-11.8/include sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64 sudo chmod a+r /usr/local/cuda-11.8/include/cudnn*.h /usr/local/cuda-11.8/lib64/libcudnn*
  1. 检查cudnn
cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

在这里插入图片描述

创建一个3d高斯的conda环境

  1. 首先就是创建目录下载Gaussian Splatting的源码,记得加==–recursive==
mkdir ~/code/3DGS/gaussian-splatting/gaussian-splatting
cd ~/code/3DGS/gaussian-splatting/gaussian-splatting
git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
  1. 创建conda环境
    直接根据他们github上的conda配置文件去创建(注意conda我在之前安装之后,就换成了清华源,pip也是换成清华源)
conda env create --file environment.yml
conda activate gaussian_splatting

然后就是漫长的等待,安装完成没有报错(ps:我也不敢相信,为啥我安装的是cuda11.8版本,而他environment.yml里安装的是11.6的cudatoolkit,这是为什么??而且pytorch 1.12.1版本也没有支持11.8,黑人问号?而且深度学习这方面接触的少,按我的理解,一般是根据cuda版本去选择支持这个cuda版本的pytorch,所以也不太理解这是为什么)
在这里插入图片描述

3D高斯训练过程

训练的数据集先用他们提供的数据集:从github中的链接进行下载023
有四个场景,两个室内两个室外,我先选择火车头来进行训练。目录就需要设置自己下载好的目录

python train.py -s /home/xz/dataset/3DGS/tandt/train

训练的过程也没有报错,整个训练过程13分钟,显卡是3090。还是不懂为什么cuda和pytorch版本不对应,训练的过程也没有报错。123

3D高斯训练结果的可视化

在windows上的可视化我是看到b站的一个视频:https://www.bilibili.com/video/BV1Z5411C7rB/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=2cbf4364275a2c6c4db080c149572d49。他介绍了在windows上用官方直接编译好的exe文件去对训练结果做可视化,我后续的文字也是对这个视频的文字说明,想看视频的可以去看这个老哥的视频。

  1. 下载官方编译好的exe文件。
    具体的下载位置在官方的github中:
    在这里插入图片描述
  2. 准备好训练的结果
    正常就在代码中的output目录下:
    在这里插入图片描述
  3. 将准备好的文件拷到windows电脑中,主要的文件有三个:编译好的文件、训练时的数据、训练后的数据
    在这里插入图片描述
  4. 将这些文件都解压,需要注意的就是去修改训练后的数据中的==cfg_args==配置文件,用记事本打开。主要是修改两个路径:

①下面这个需要改成训练后数据的目录:
在这里插入图片描述
②下面这个需要改成训练时数据的目录:
在这里插入图片描述
5. 使用编译好的文件去做可视化
解压并打开 viewers 的 bin 目录,看到里面有高斯viewer的exe文件在这里插入图片描述

用windows的终端打开,输入下面指令,注意后面的目录需要换成在第四步中改好配置文件的训练后数据的目录

.\SIBR_gaussianViewer_app.exe -m E:\postgraduate\3DGS\train\b9ba46d3-3
  1. 最后就是可以可视化这个3D高斯训练后的模型
    在这里插入图片描述

总结

这样就可以完成整个3d高斯的流程,整体的视图质量确实很高,而且这个场景才训练了13分钟,而最初的nerf在训练那个乐高模型的时候,3090跑了6个小时,这个时间长的原因可能迭代次数也比3D高斯多,而且整体网络也比较简单,但是3D高斯耗时低且渲染的质量高,真的是非常好的工作。后续就是进一步学习这类工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/7518.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

暗区突围pc端资格发放了吗 暗区突围pc测试资格怎么获取

暗区突围pc端资格发放了吗 暗区突围pc测试资格怎么获取 暗区突围是一款很火爆的第一人称射击网游,现在终于要上线PC端啦!小伙伴们是不是已经迫不及待想要体验电脑上的硬核射击快感了?暗区突围pc端资格已经陆续发放,想要参与PC端…

TC8002D 是一颗带关断模式的音频功放IC

一、一般概述 TC8002D是一颗带关断模式的音频功放IC。在5V输入电压下工作时,负载(3Ω)上的平均功率 为3 W,且失真度不超过10%。而对于手提设备而言,当VDD作用于关断端时,TC8002D将会进入关断模式,此时的功耗极…

探索淘宝API接口对接(属性规格丨sku价格丨详情图丨优惠券等):打造智能电商解决方案

一、引言 随着电子商务的快速发展,越来越多的企业和开发者希望通过自动化和智能化的方式接入电商平台,以实现更高效的数据交互和业务流程。淘宝作为中国最大的电商平台之一,其提供的API接口成为了众多企业和开发者关注的焦点。本文将探讨淘宝…

【spring】Bean的生命周期回调函数和Bean的循环依赖

目录 1、Bean的生命周期 2、Bean的生命周期回调函数 2.1、初始化的生命周期回调 2.2、销毁的生命周期回调 3、Bean的循环依赖 1、Bean的生命周期 spring的bean的生命周期主要是创建bean的过程,一个bean的生命周期主要是4个步骤:实例化,…

视频剪辑图文实例:一键操作,轻松实现视频批量片头片尾减时

视频剪辑是现代媒体制作中不可或缺的一环,而批量处理视频更是许多专业人士和爱好者的常见需求。在剪辑过程中,调整视频的片头片尾时长可以显著提升视频的质量和观感。本文将通过图文实例的方式,向您展示如何一键操作,轻松实现视频…

直播录屏怎么录?分享3种方法

随着网络直播的兴起,直播录屏已成为众多网友记录精彩瞬间、分享有趣内容的重要工具。直播录屏不仅能帮助我们回顾和保存直播中的精彩片段,还能为创作者提供更多的素材和灵感。 本文将为大家介绍3种直播录屏的方法,帮助大家能够更好地利用这一…

【IEEE独立出版|往届均已成功检索】ISPDS 2024诚邀投稿参会

第五届信息科学与并行、分布式处理国际学术会议(ISPDS 2024) 2024 5th International Conference on Information Science, Parallel and Distributed Systems 2024年5月31-6月2日 | 中国广州NEWS:会议已在格林威治大学官网上线会议已经上线到…

学术咸鱼入门指南(2)

巧用思维导图阅读文献 化整为零:读文献,从拆分文章的结构开始 大家在初步接触自己学科的论文时,要了解清楚基本的范式,日后读起来就比较顺了。 科研论文的第一部分,是文章的标题,摘要和关键词&#xff0…

【MySQL】连接查询(JOIN 关键字)—— 图文详解:内连接、外连接、左连接、左外连接、右连接、右外连接

文章目录 连接查询驱动表连接查询分类 内连接(INNER JOIN)内连接 —— 等值连接内连接 —— 自然连接(NATURAL JOIN)内连接 —— 交叉连接(笛卡尔积) 外连接(OUTER JOIN)外连接 ——…

nodejs里面的 http 模块介绍和使用

Node.js的HTTP模块是一个核心模块,它提供了很多功能来创建HTTP服务器和发送HTTP请求。 http.Server是一个基于事件的http服务器,内部是由c实现的,接口是由JavaScript封装。 http.request是一个http客户端工具。 用户向服务器发送数据。 创…

嵌入式RTOS面试题目

用过哪些嵌入式操作系统?使⽤RTOS和裸机代码开发有什么区别(优缺点)? 之前的⼀个项⽬是采⽤裸机代码开发的,写起来还⾏,通过状态机来管理业务逻辑和各种外设。 但是随着外设的增加,任务之间的…

CSDN我的创作纪念日128天||不忘初心|努力上进|勇往直前

机缘 Hello,大家好,我是景天,其实很早之前我就加入到了CSND的大军,但那是我还是个小白,经常回来CSND汲取养料,就这样慢慢的来提升自己,强大自己。经过多年的学习,积累与总结&#x…

Davinci工程开发方法论

基本概念 Flash Driver是下载到RAM里面的bin文件 Boot Manager是ROM上启动运行的第一个实例,可以是独立的bin文件,可以是集成在FBL里面。 Bootloader存储在ROM里面的bin文件 Demo Appl一个示例模板,用来跳转到Bootloader的,也是一…

本地的git仓库和远程仓库

文章目录 1. 远程创建仓库2. 关联远程和本地代码3. 推送本地分支到远程 1. 远程创建仓库 2. 关联远程和本地代码 上面创建完后会得到一个git仓库的链接,有SSH或者http的 http://gitlab.xxxxx.local:18080/xxxxx/dvr_avm.git ssh://gitgitlab.xxxxx.local:10022/xx…

220V转18V500mA非隔离恒压WT5113

220V转18V500mA非隔离恒压WT5113 亲爱的朋友们,你们是否在为如何提高电源方案而烦恼呢?今天我给大家带来了一款芯片,WT5113宽输出范围非隔离交直流转换芯片,它可是电源方案中的得力助手哦! 这款芯片拥有220V降12V、2…

Mujoco210和Mujoco-py在 Ubuntu22.04 下的安装

mujoco和mujoco-py的关系:mujoco是一个物理引擎,主要应用于强化学习和最优化控制领域。mujoco-py是mujoco编程的 Python 接口,由OpenAI Gym开发,可以使用mujoco_py方便地调用mujoco的API。 mujoco官网: https://mujoco…

国产中间件概述

1、什么是中间件? 1.1、基本概念 定义:中间件,英文名为 Middleware,是独立的系统级软件,连接操作系统层和应用程序层,将不同操作系统提供应用的接口标准化、协议统一化,屏蔽具体操作的细节。位置:居于各类应用与操作系统之间,在操作系统、网络和数据库之上,应用软件…

Linux(openEuler、CentOS8)企业内网主备DNS服务器搭建

本实验环境为openEuler系统<以server方式安装>&#xff08;CentOS类似&#xff0c;可参考本文&#xff09; 知识点 什么是DNS&#xff1a;DNS服务器&#xff0c;即域名服务器&#xff08;Domain Name Server&#xff09;&#xff0c;是进行域名和与之相对应的IP地址转换…

24年最新AI数字人简单混剪

24年最新AI数字人简单混剪 网盘自动获取 链接&#xff1a;https://pan.baidu.com/s/1lpzKPim76qettahxvxtjaQ?pwd0b8x 提取码&#xff1a;0b8x

2024年如何下载51cto的视频

你是否对学习新的技术知识感到困惑&#xff1f;是否在寻找一个优质的在线学习平台&#xff1f;那么&#xff0c;我告诉你一个秘密——51cto视频平台&#xff01;它是一个专注于技术领域的视频平台&#xff0c;提供了大量的高质量视频资源。如果你想在2024年下载51cto的视频&…