ubuntu20部署3d高斯

news2024/12/26 9:19:19

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.xz

sudo 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.coloradmin.cn/o/1648527.html

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

相关文章

使用Beego创建API项目并自动化文档

最近需要使用Go写一个Web API项目,可以使用Beego与Gin来写此类项目,还是非常方便的,这里就介绍一下使用Beego来创建的Web API项目并自动化文档的方法。 使用Gin创建API项目并自动化文档参见:使用Gin编写Web API项目并自动化文档 …

Android(一)

坏境 java版本 下载 Android Studio 和应用工具 - Android 开发者 | Android Developers 进入安卓官网下载 勾选协议 next 如果本地有设置文件,选择Config or installation folder 如果本地没有设置文件,选择Do not import settings 同意两个协议 耐…

idea提示 CreateProcess error=206, 文件名或扩展名太长有哪些具体的解决方法

背景: 项目启动后提示CreateProcess error206,通常我本地是将shorten command line改成如下就可以解决,但是今天遇到一个,无论这里怎么设置都是启动提示扩展名太长,经过一番处理问题终于解决,特此记录一下。…

Leetcode—1235. 规划兼职工作【困难】(upper_bound、自定义排序规则)

2024每日刷题&#xff08;125&#xff09; Leetcode—1235. 规划兼职工作 算法思想 实现代码 class Solution { public:int jobScheduling(vector<int>& startTime, vector<int>& endTime, vector<int>& profit) {int n startTime.size();vec…

RabbitMQ的介绍和使用

1.同步通讯和异步通讯 举个例子&#xff0c;同步通讯就像是在打电话&#xff0c;因此它时效性较强&#xff0c;可以立即得到结果&#xff0c;但如果你正在和一个MM打电话&#xff0c;其他MM找你的话&#xff0c;你们之间是不能进行消息的传递和响应的 异步通讯就像是微信&#…

基于GEE遥感影像处理和长时序土地分类以及生物量估算分析

简介 Google Earth Engine云平台是目前全球范围内测绘领域内使用最为广泛的遥感云计算平台&#xff0c;其凭借强大的数据存储和云计算能力&#xff0c;极大了提高了全球科研工作者的科研产出&#xff0c;每年借助GEE平台发布的各类期刊论文超1000篇&#xff0c;在海量遥感数据的…

鉴源实验室丨汽车入侵检测系统介绍及测试

作者 | 张诏景 上海控安可信软件创新研究院工控网络安全组 来源 | 鉴源实验室 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 01 入侵检测系统背景 智能网联汽车不再是一个孤立的嵌入式系统了&#xff0c;信息安全问题越来越被重视。国内外发布了多项标…

Jmeter 命令行压测 生成 HTML 测试报告,你真的会?

通常 Jmeter 的 GUI 模式仅用于调试&#xff0c;在实际的压测项目中&#xff0c;为了让压测机有更好的性能&#xff0c;多用 Jmeter 命令行来进行压测。 同时&#xff0c;JMeter 也支持生成 HTML 测试报告&#xff0c; 以便从测试计划中获得图表和统计信息。 以上定义的文件路…

无人售货机是否是下个风口?

当前&#xff0c;众多大中城市正逐步转变为无人零售的新兴试验场&#xff0c;其广阔的发展前景与潜在价值日益受到瞩目。据统计数据显示&#xff0c;无人零售领域已吸引超过650亿元的投资注入。未来五年内&#xff0c;无人零售渠道在中国快消品市场有望迎来爆发性增长&#xff…

2024智能电网与能源系统国际学术会议(ICSGES2024)

2024智能电网与能源系统国际学术会议&#xff08;ICSGES2024) 会议简介 我们诚挚邀请您参加将在南京隆重举行的2024年智能电网与能源系统国际学术会议&#xff08;ICSGES2024&#xff09;。南京&#xff0c;一座历史与现代交织的城市&#xff0c;将为这场盛会提供独特的学术…

10页面结构分析

我们打开一个网页&#xff0c;都会有一个清晰的结构和布局上图中的标签就是用来划分各个部分区域用的。其中比较常用重要的是header、footer和nav&#xff0c;需要重点掌握。 下面是部分代码及效果演示 <header> <h2>网页头部</h2> </header><sec…

安泰ATA-309C:功率放大器的分类及区别是什么

功率放大器是一种电子器件&#xff0c;用于将低功率信号放大到更高功率&#xff0c;以驱动负载或增强信号强度。功率放大器根据其工作原理、电路拓扑和应用领域的不同&#xff0c;可以分为多种类型。下面将介绍几种常见的功率放大器分类及其区别。 A类功率放大器&#xff1a;A类…

做好源代码防泄密的10条准则

#深度好文计划# 近年来&#xff0c;电脑以及互联网应用在中国的普及和发展&#xff0c;已经深入到社会每个角落&#xff0c; 政府&#xff0c;经济&#xff0c;军事&#xff0c;社会&#xff0c;文化和人们生活等各方面都越来越依赖于电脑和网络。企业需要花费大量的时间精力去…

搞定 TS 装饰器,让你写 Node 接口更轻松

前言 亲爱的小伙伴&#xff0c;你好&#xff01;我是 嘟老板。你是否用过 TypeScript 呢&#xff1f;对 装饰器 了解多少呢&#xff1f;有没有实践应用过呢&#xff1f;今天我们就来聊聊 装饰器 的那点事儿&#xff0c;看看它有哪些神奇的地方。 什么是装饰器 咱们先来看一段…

Spring中的Bean相关理解

在Spring框架中&#xff0c;Bean是一个由Spring IoC容器实例化、配置和管理的对象。Bean是一个被Spring框架管理并且被应用程序各个部分所使用的对象。Spring IoC容器负责Bean的创建、初始化、依赖注入以及销毁等生命周期管理。 注&#xff1a;喜欢的朋友可以关注公众号“JAVA学…

学习软考----数据库系统工程师25

关系规范化 1NF&#xff08;第一范式&#xff09; 2NF&#xff08;第二范式&#xff09; 3NF&#xff08;第三范式&#xff09; BCNF&#xff08;巴克斯范式&#xff09; 4NF&#xff08;第四范式&#xff09; 总结

茶多酚复合纳米纤维膜

茶多酚复合纳米纤维膜是一种结合了茶多酚与纳米纤维技术的创新材料。茶多酚作为茶叶中多酚类物质的总称&#xff0c;具有抗氧化、抗辐射、抗*等多种药理作用&#xff0c;是一种非常有益的天然物质。而纳米纤维膜则因其超细纤维结构、高比表面积和高孔隙率等特性&#xff0c;在过…

深度解读:Agent AI智能体如何重塑我们的现实和未来|TodayAI

​​​​​​​ 一、 引言 在当今时代&#xff0c;人工智能&#xff08;AI&#xff09;技术的快速发展正不断改变着我们的生活与工作方式。尤其是Agent AI智能体&#xff0c;作为AI技术中的一种重要形式&#xff0c;它们通过模拟人类智能行为来执行各种复杂任务&#xff0c;从…

基于51单片机的电子钟秒表LCD1602仿真设计( proteus仿真+程序+设计报告+原理图+讲解视频)

基于51单片机的电子钟秒表LCD1602仿真设计( proteus仿真程序设计报告原理图讲解视频&#xff09; 这里写目录标题 1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单&&下载链接 仿真图proteus7.8及以上 程序…

pynq7020系列的资源有多少

pynq系列的资源有多少 对比 查找表107&#xff0c;273 39.14 140&#xff0c;537 51.28查找表随机存储器17&#xff0c;457 12.12 19&#xff0c;524 13.56触发器67&#xff0c;278 12.27 81&#xff0c;453 14.95 Block RAMs ( 36 KB ) 264.5 29.00 457 50.11 Table 1: Zynq-…