[论文][环境]3DGS+Colmap环境搭建_WSL2_Ubuntu22.04 - 副本

0. 前言

仅使用Ubuntu进行场景编译,场景渲染查看则使用Windows下官方提供的编译好的预编译包打开即可,非常方便(要注意即使是预编译版本,Windows端也应该安装VS和CUDA Toolkit要注意的是,最新的SIBR预编译版本是由CUDA Toolkit 12.0编译的)。

另外,后面的Colmap 3.10部分应该进行自己编译,官方编译好的Linux预编译包只支持CPU编译,不支持GPU

0.1 教程内软件版本号:

名称版本
Ubuntu(WSL)22.04
CUDA ToolKit(WSL)11.8
ninja(WSL)1.10.1
cmake(WSL)3.22.1
colmap(WSL)3.10
Visual Studio Community(Win)2022
CUDA ToolKit(Win)(要在VS之后安装)12.6.2

1. WSL安装

这里不再赘述

2. CUDA Toolkit安装

Ubuntu这里使用CUDA Toolkit 11.8 版本进行安装,安装WSL-Linux版本,这里不再赘述

CUDA Toolkit 11.8 Downloads

Windows则安装版本12.6.2,用于SIBR_viewer,安装之前请安装VS2022,并且勾选C++开发平台。

CUDA Toolkit 12.6 Update 2 Downloads

image-20241104184431114

2.1 配置PATH

此步骤非常重要,必须按照下面的顺序来!不然编译3DGS的时候会出各种各样的问题!

.bashrc中,最后一行添加如下语句:

export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda

3. 安装anaconda

直接官网找资料,非常简单不再赘述

4. 安装3DGS

3.1 克隆Git仓库

# HTTPS
git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive

3.2 安装ninja

sudo apt install ninja-build

3.3 开始构建

cd gaussian-splatting
conda env create --file environment.yml
conda activate gaussian_splatting

出现这个就说明没有问题了

image-20241105101421875

5. 编译colmap

5.1 安装cmake

sudo apt install cmake # 我这里的版本是3.22.1

5.2 克隆项目

自己找一个地方克隆下来

git clone https://github.com/colmap/colmap.git
cd colmap

5.3 切换正式版分支

先看看远程分支目前最新的release

git branch -r

image-20241105102633054

然后我们切换过去

git checkout release/3.10

确认一下是不是切换过去了

vim CMakeLists.txt

image-20241105102832904

看到这个就切换过去了

5.4 安装依赖

sudo apt-get install \git \cmake \ninja-build \build-essential \libboost-program-options-dev \libboost-filesystem-dev \libboost-graph-dev \libboost-system-dev \libeigen3-dev \libflann-dev \libfreeimage-dev \libmetis-dev \libgoogle-glog-dev \libgtest-dev \libgmock-dev \libsqlite3-dev \libglew-dev \qtbase5-dev \libqt5opengl5-dev \libcgal-dev \libceres-dev

5.5 设定GPU支持

修改CMakeLists.txt

在这里加入(我是3060 12G,所以填写86):

set(CMAKE_CUDA_ARCHITECTURES "86")

image-20241105105401759

具体的数字可以根据这个来填写

image-20241105104801822

5.6 Ubuntu 22.04特例

如果你是其他版本,请参考这个链接:

https://colmap.github.io/install.html#installation

image-20241105111111790

sudo apt-get install gcc-10 g++-10
export CC=/usr/bin/gcc-10
export CXX=/usr/bin/g++-10
export CUDAHOSTCXX=/usr/bin/g++-10
# ... and then run CMake against COLMAP's sources.

照做即可(如果已经安装了,可以使用sudo ninja uninstall卸载,然后删除build再重新来,第一次安装往下看)

5.7 开始编译

如果编译报错了建议看看下面这两篇文章

https://blog.csdn.net/m0_63071397/article/details/138454295

【超详细】安装了anaconda后,Ubuntu18+COLMAP配置疯狂踩坑踩至魔怔的记录

先进入到colmap目录(如果已经在了就不用管了)

image-20241105104148721

之后运行如下命令:

mkdir build
cd build
cmake .. -GNinja
ninja
sudo ninja install
编译TIP1:

执行cmake .. -GNinja的途中,你如果看到这个,说明他检测到你的CUDA了

image-20241105104414442

编译TIP2:

如果你在编译途中出现了任何问题,可以删除build文件夹,再重复上述步骤。(清空缓存,不然你做什么更改都没有用)

编译TIP3:

执行完ninja的结果:

image-20241105110436383

编译结果

image-20241105110627349

5.8 测试

colmap gui

image-20241105120206091

这里说一嘴,如果你用MobaXterm去打开,你会得到这样的问题。

image-20241105120250682

查了一下是opengl版本太低。我们看一下自己的版本号

image-20241105120315045

确实是这样,但是如果我们使用Windows自带的窗口呢?**就可以运行成功了。**看一下OpenGL的版本:

image-20241105120404786

看到没有,这俩的OpenGL版本天差地别。暂时不懂什么原因,如果有知道的大佬,希望可以评论区留言!感谢大佬们!

6. SIBR_viewer

在官方的GitHub界面下载好SIBR_viewer的预编译包。安装好VS2022和CUDA12之后。

在其bin目录运行:

E:\SIBR_viewers\bin> .\SIBR_gaussianViewer_app.exe -m "<your output path>"

image-20241105172423229

至此,完成整个3DGS的安装!

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

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

相关文章

json-server的使用(根据json数据一键生成接口)

一.使用目的 在前端开发初期&#xff0c;后端 API 可能还未完成&#xff0c;json-server 可以快速创建模拟的 RESTful API&#xff0c;帮助前端开发者进行开发和测试。 二.安装 npm install json-server //局部安装npm i json-server -g //全局安装 三.使用教程 1.准备一…

导入和部署自定义 LLM 大模型

本文以【Qwen2-7B-Instruct】模型为例&#xff0c;指导如何将自定义大模型导入到 TI 平台&#xff0c;并使用平台内置推理镜像部署大模型对话推理服务。 前置要求 申请 CFS 本文所涉及到的操作需要通过 CFS 存储模型文件&#xff0c;详情请查看创建文件系统及挂载点。 操作…

开源办公软件 ONLYOFFICE 深入探索

文章目录 引言1. ONLYOFFICE 创建的背景1. 1 ONLYOFFICE 项目启动1. 2 ONLYOFFICE 的发展历程 2. 核心功能介绍2. 1 桌面编辑器2. 1. 1 文档2. 1. 2 表格2. 1. 3 幻灯片 2. 2 协作空间2. 3 文档编辑器 - 本地部署版 3. 技术介绍4. 安装5. 优势与挑战6. 个人体验7. 强大但不止于…

HTTP慢速攻击原理及解决办法

目录 引言 HTTP慢速攻击原理 解决办法 Nginx Tomcat 华宇TAS IIS 结论 引言 HTTP慢速攻击&#xff08;Slow HTTP Attack&#xff09;是一种拒绝服务攻击&#xff08;DoS&#xff09;&#xff0c;攻击者通过故意缓慢地发送HTTP请求来耗尽服务器资源&#xff0c;导致合法…

[mysql]修改表和课后练习

目录 DDL数据定义语言 添加一个字段 添加一个字段到最后一个 添加到表中的第一个一个字段 选择其中一个位置: 修改一个字段:数据类型,长度,默认值(略) 重命名一个字段 删除一个字段 重命名表 删除表 清空表 DCL中事务相关内容 DCL中COMMIT和ROLLBACK的讲解 对比TR…

SpringBoot+ClickHouse集成

前面已经完成ClickHouse的搭建&#xff0c;创建账号&#xff0c;创建数据库&#xff0c;保存数据库等&#xff0c;接下来就是在SpringBoot项目中集成ClickHouse。 一&#xff0c;引入依赖 <!-- SpringBoot集成ClickHouse --> <dependency><groupId>com.baom…

搜维尔科技:【煤矿虚拟仿真】煤矿企业、高校、科研单位-多语言支持、数字孪生、交互式学习体验

品牌&#xff1a;SouVR 发票&#xff1a;支持专票、普票 单位&#xff1a;套 版本号&#xff1a;1.0 包装清单&#xff1a;软件1套 软件形式&#xff1a;U盘、光盘 运行环境&#xff1a;windows 应用对象&#xff1a;煤矿企业、高校、科研单位 系统配置&#xff1a;…

(五)Spark大数据开发实战:灵活运用PySpark常用DataFrame API

目录 一、PySpark 二、数据介绍 三、PySpark大数据开发实战 1、数据文件上传HDFS 2、导入模块及数据 3、数据统计与分析 ①、计算演员参演电影数 ②、依次罗列电影番位前十的演员 ③、按照番位计算演员参演电影数 ④、求每位演员所有参演电影中的最早、最晚上映时间及…

单链表的实现(数据结构)

一. 单链表的实现 我们在上一篇中简单的认识了链表的组成和结构&#xff0c;并打印出链表&#xff0c;那么今天就来具体实现一下单链表对于数据增加、删减、插入等。 接下来就是我们在链表中对于数据的增、删、插的实现&#xff0c;对于我们的链表来说在任何地方增加数据都需…

Golang | Leetcode Golang题解之第540题有序数组中的单一元素

题目&#xff1a; 题解&#xff1a; func singleNonDuplicate(nums []int) int {low, high : 0, len(nums)-1for low < high {mid : low (high-low)/2mid - mid & 1if nums[mid] nums[mid1] {low mid 2} else {high mid}}return nums[low] }

算法: 链表题目练习

文章目录 链表题目练习两数相加两两交换链表中的节点重排链表合并 K 个升序链表K 个一组翻转链表 总结 链表题目练习 两数相加 坑: 两个链表都遍历完后,可能需要进位. class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode cur1 l1;ListNode…

深入Pillow:处理图像下载中的意外挑战

在当今数字化时代&#xff0c;获取和处理图像数据已经成为了许多应用程序的核心功能。从社交媒体到电子商务&#xff0c;图像的获取和处理对于用户体验至关重要。下载图片不仅能够丰富我们的内容&#xff0c;还能够通过分析图像数据为我们的应用提供更多价值。然而&#xff0c;…

零基础Java第十三期:继承与多态(一)

目录 一、继承 1.1. 继承的目的 1.2. 继承的概念 1.3. 继承的语法 1.4. 父类的访问 1.5. 继承中的重载与重写 1.6. 子类的构造方法 1.7. 再谈初始化 一、继承 1.1. 继承的目的 我们来定义一个Dog和Cat的类&#xff1a; public class Dog {public int age;public Strin…

【ONLYOFFICE文档】8.2版本测评

文章目录 引言ONLYOFFICE 产品简介PDF编辑器新功能1.协作编辑 PDF&#xff0c;让团队合作更高效2.为 PDF 表单添加签名3.改进的简洁界面4.性能优化&#xff1a;更快、更高效的体验 文档编辑器中的新功能域代码功能&#xff1a;自动更新文档中的动态数据协作功能&#xff1a;轻松…

【JAVA】java 企业微信信息推送

前言 JAVA中 将信息 推送到企业微信 // 企微消息推送messageprivate String getMessage(String name, String problemType, String pushResults, Long orderId,java.util.Date submitTime, java.util.Date payTime) {String message "对接方&#xff1a;<font color\…

【RK3588 Linux 5.x 内核编程】-GPIO设备驱动与点亮LED

GPIO设备驱动与点亮LED 文章目录 GPIO设备驱动与点亮LED1、Linux中的GPIO介绍2、GPIO库和工具3、Linux内核GPIO操作步骤3.1 验证GPIO3.2 请求GPIO3.3 导出GPIO到sysfs(可选)3.4 设置GPIO为输入/输出3.5 更改GPIO的电平(值)3.6 读取GPIO的值(电平)3.7 释放GPIO4、GPIO驱动…

金华迪加 现场大屏互动系统 mobile.do.php 任意文件上传漏洞复现

0x01 产品简介 金华迪加现场大屏互动系统是一种集成了先进技术和创意设计的互动展示解决方案,旨在通过大屏幕和多种交互方式,为观众提供沉浸式的互动体验。该系统广泛应用于各类活动、展览、会议等场合,能够显著提升现场氛围和参与者的体验感。 0x02 漏洞概述 金华迪加 现…

[VUE]框架网页开发1 本地开发环境安装

前言 其实你不要看我的文章比较长&#xff0c;但是他就是很长&#xff01;步骤其实很简单&#xff0c;主要是为新手加了很多解释&#xff01; 步骤一&#xff1a;下载并安装 Node.js 访问 Node.js 官网&#xff1a; Node.js — Download Node.js 下载 Windows 64 位版本&…

[signal] void QComboBox::currentTextChanged(const QString text)

[signal] void QComboBox::currentTextChanged(const QString &text) This signal is sent whenever currentText changes. The new value is passed as text. This function was introduced in Qt 5.0. Note: Notifier signal for property currentText. 属性currentText的…

Unity中实现伤害飘字或者提示飘字效果(DoTween实现版本)

&#xff01;&#xff01;&#xff01;在实现以下效果之前&#xff0c;一定要往项目中导入DoTween插件。 一、搭建测试场景 1、在场景中新建一个带有Text组件的游戏物体A&#xff0c;并把这个游戏物体A中Text组件的Color属性中alpha值为0&#xff0c;让文字在场景中隐藏。 …