3D gaussian-splatting项目环境配置记录

1.前景

项目论文:https://arxiv.org/abs/2308.04079

GitHub项目下载地址:https://github.com/graphdeco-inria/gaussian-splatting

git clone时里面的子模块小项目会git不到,需要单独github下来,放入相应文件夹。

sibr_viewersSIBR / SIBR Core · GitLab,

diff_gaussian_rasterization和simple-knn库。其中后两个进入到相应目录pip安装。

环境:ubuntu22.04,cuda11.8,torch2.0,RTX4060。

刚好自己cuda版本的这位博主的相同,便按照其换进安装的虚拟环境:

conda create -n gaussian_splatting python=3.10
conda activate gaussian_splatting
#
pip install torch==2.0.0+cu118 torchvision==0.15.0+cu118 torchaudio==2.0.0+cu118 -f https://download.pytorch.org/whl/torch_stable.html
#
pip install submodules\diff-gaussian-rasterization    ##需要cd /home/xxxx/gaussian_splatting  ## error 降低setuptools的版本,70.0.0以下
pip install submodules\simple-knn
pip install plyfile
pip install tqdm

          一段时间后出现了莫名的错误,之前python环境安装好之后,因为使用jupyter notebook,使用其环境中的python环境,便在系统环境中安装jupyter,ipykernel,只需要在其它环境中安装ipykernel内核,不需要再次安装jupyter,在这个过程中自己创建的conda gaussian_splatting环境突然莫名其妙的不见了,突然不显示其环境了,整个环境什么都没有了。奇怪。只好再次从新创建环境安装一遍。

参考连接:Jupyter Notebook使用Anaconda虚拟环境的python_python -m ipykernel install --user --name myenv-CSDN博客

2. 安装colmap

2.1 步骤安装步骤基本都可以找到自己为ubuntu22.04,4060参考连接:Colmap在Linux下的安装_linux安装colmap-CSDN博客

去掉了评论里的../CMakeLists.txt。

没有使用这种方式安装:colmap三维重建(更新中)——Ubuntu版本(colmap的编译)_ubuntu22.04 colmap-CSDN博客

2.2报错,注意自己的cuda版本和算法89/87/等。

没有安装ceres库,就出现这一个错误。参考连接:

ubuntu20.04安装eigen3.4.0(两种方式)和ceres-solver2.0.0_ceres-solver-2.0.0-CSDN博客

接下来安装很顺利。

3.交互式界面SIBR_Viewers编译

3.1编译sibr
# 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

3.2问题

1、sudo apt install -y libgtk-3-dev 时会遇到问题。根据报错,网上很好找到答案。添加source.list中的源。

2、cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release出现错误。找不到assimp库。

在后面添加 -DASSIMP_LIBRARY=/usr/lib/x86_64-linux-gnu/libassimp.so。cmke找不到的可以直接添加。。参考连接:https://zhuanlan.zhihu.com/p/688557162中的第4节。

cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release -DOPENGL_gl_LIBRARY=/usr/lib/x86_64-linux-gnu/libGL.so -DOPENGL_glx_LIBRARY=/usr/lib/x86_64-linux-gnu/libGLX.so -DGLEW_DIR=/usr/lib/x86_64-linux-gnu -DGLEW_SHARED_LIBRARY_DEBUG=libGLEW.so.2.2.0 -DGLEW_SHARED_LIBRARY_RELEASE=libGLEW.so.2.2.0 -DASSIMP_LIBRARY=/usr/lib/x86_64-linux-gnu/libassimp.so -DBoost_DIR=/usr/lib/x86_64-linux-gnu -DBoost_FILESYSTEM_LIBRARY_RELEASE=libboost_filesystem.so -DBoost_SYSTEM_LIBRARY_RELEASE=libboost_system.so -DBoost_CHRONO_LIBRARY_RELEASE=libboost_chrono.so -DBoost_DATE_TIME_LIBRARY_RELEASE=libboost_date_time.so -Dglfw3_DIR=/usr/lib/x86_64-linux-gnu/cmake/glfw3/ -DCMAKE_CUDA_COMPILER=/usr/local/cuda-11.7/bin/nvcc -DCUDAToolkit_BIN_DIR=/usr/local/cuda-11.7/bin -DOpenCV_DIR=/usr/lib/x86_64-linux-gnu/cmake/opencv4/

上述步骤:会build一段时间,Populating xxx library...,在github拉取相关扩展库内容到extlibs文件夹下。

3、cmake --build build -j24 --target install执行过程中,又出现错误了。

No rule to make target 'lib64/libglfw3.a', needed by 'src/core/grapgics/libsibr_graphic.so'. Stop

原因是没有找到这个静态链接库,需要下载下来glfw.zip,make install一下。网上有相关教程。

然后就安装libglfw3.a文件,并连接到正确的位置: sudo ln -s 源文件 目标文件

然后就没有出错了。

4、测试验证

下载github官方提供的models模型,和其它数据集便可测试,可以自己拍视频自己测试,网上有很多详细操作教程。

参考连接

https://github.com/graphdeco-inria/gaussian-splatting

https://zhuanlan.zhihu.com/p/688557162

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C# WinForm —— 33 ContextMenuStrip介绍

1. 简介 右键某个控件/窗体时,弹出来的菜单,比如VS中右键窗体,弹出来的这个菜单: 和MenuStrip类似,ContextMenuStrip主菜单下面可以有子菜单,子菜单下面可以有下一级子菜单 2. 属性 和MenuStrip一样 …

第6章 应用层

考纲内容 (一)网络应用模型 客户/服务器模型;P2P模型 (二)域名系统(DNS) 层次域名空间;域名服务器;域名解析过程 (三)文件传输协议(FTP) …

升级和维护老旧LabVIEW程序

在升级老旧LabVIEW程序至64位环境时,需要解决兼容性、性能和稳定性等问题。本文从软件升级、硬件兼容性、程序优化、故障修复等多个角度详细分析。具体包括64位迁移注意事项、修复页面跳转崩溃、解决关闭程序后残留进程的问题,确保程序在新环境中的平稳运…

[Java基本语法] 从0到1带你精通Java基本语法

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀线程与…

undetected_chromedriver驱动浏览器结束报错OSError: [WinError 6] 句柄无效

undetected_chromedriver驱动浏览器结束报错OSError: [WinError 6] 句柄无效 问题背景 使用undetected_chromedriver包驱动浏览器结束后报错句柄无效 Exception ignored in: <function Chrome.del at 0x000001DD50F07A60> Traceback (most recent call last): File “D:…

ESP32 IDF ADF 加入音频

需要把mp3制作成音频bin 用ADF自带工具 果用户需要生成自己的 audio-esp.bin&#xff0c;则需要执行 mk_audio_bin.py 脚本&#xff08;位于 $ADF_PATH/tools/audio_tone/mk_audio_tone.py&#xff09;&#xff0c;并且指定相关文件的路径。 源 MP3 文件在 tone_mp3_folder …

软考-架构设计师-综合知识总结(试卷:2009~2022)(下篇)

说明 本文档对2009到2022年试卷的综合知识进行了归纳总结&#xff0c;同时对叶宏主编的《系统架构设计师教程》划分重点。 第十七章&#xff1a;通信系统架构设计 17.2 考题总结 第十八章&#xff1a;安全架构设计 18.1 重要知识点 18.2 考题总结 第十九章&#xff1a;大数据…

2080. 区间内查询数字的频率

题目&#xff1a; 请你设计一个数据结构&#xff0c;它能求出给定子数组内一个给定值的 频率 。 子数组中一个值的 频率 指的是这个子数组中这个值的出现次数。 请你实现 RangeFreqQuery 类&#xff1a; RangeFreqQuery(int[] arr) 用下标从 0 开始的整数数组 arr 构造一个…

跨国大文件传输需要哪些方面?怎么实现数据快速传输?

跨国大文件传输涉及到许多方面&#xff0c;包括网络速度、安全性、可靠性和法律合规性等。 以下是跨国大文件传输时需要考虑的一些重要方面&#xff1a; 高速稳定的网络连接&#xff1a;确保有足够的带宽和稳定的网络连接以支持大文件的快速传输。这可能需要考虑到跨国网络的延…

JVM 一些常见问题QA

GC Roots 虚拟机栈中引用的对象&#xff1b; 本地方法栈中JNI引用的对象&#xff1b; 方法区中类静态变量引用的对象&#xff1b; 方法区中常量引用的对象&#xff1b; Full GC是Minor GCMajor GC吗&#xff1f; Minor GC&#xff1a;回收年轻代&#xff1b; Major GC&…

[Cloud Networking] Layer 2 Protocol

文章目录 1. STP / RSTP / MSTP Protocol1.1 STP的作用1.2 STP 生成树算法的三个步骤1.3 STP缺点 2. ARP Protocol3. MACSEC 1. STP / RSTP / MSTP Protocol 1.1 STP的作用 消除二层环路&#xff1a;通过阻断冗余链路来消除网络中可能存在的环路链路备份&#xff1a;当活动链…

openh264 编码器源码分析:AnalyzePictureComplexity 函数

介绍 文件位置&#xff1a; openh264/codec/processing/src/complexityanalysis/ComplexityAnalysis.cpp 功能&#xff1a; 作为CWelsPreProcess类中一个方法&#xff0c;用来分析当前图像与参考图像之间的复杂度关系&#xff0c;以便编码策略。 原型&#xff1a; void CWels…

01背包问题(模板)

一、题目描述 描述 你有一个背包&#xff0c;最多能容纳的体积是V。 现在有n个物品&#xff0c;第i个物品的体积为vi,价值为wi。 &#xff08;1&#xff09;求这个背包至多能装多大价值的物品&#xff1f; &#xff08;2&#xff09;若背包恰好装满&#xff0c;求至多能装多大价…

XMind软件下载-详细安装教程视频

​简介 XMind是一款实用的思维导图软件&#xff0c;简单易用、美观、功能强大&#xff0c;拥有高效的可视化思维模式&#xff0c;具备可扩展、跨平台、稳定性和性能&#xff0c;真正帮助用户提高生产率&#xff0c;促进有效沟通及协作。中文官方网站&#xff1a;http://www.x…

Oracle最终会扼杀MySQL?(译)

原文网站&#xff1a;https://www.percona.com/blog/is-oracle-finally-killing-mysql/ 作者&#xff1a;Peter Zaitsev 自从Oracle收购了MySQL后&#xff0c;很多人怀疑Oracle对开源MySQL的善意&#xff0c;这篇percona的文章深入分析了Oracle已经和将要对MySQL采取的措施&a…

【C++】——继承(详解)

一 继承的定义和概念 1.1 继承的定义 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保 持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类&#xff0c;被继承的称为基类…

【多元统计】期末复习必备!按题型分类

一&#xff0c;简答题 二&#xff0c;证明题 三&#xff0c;计算题

推荐一款WPF绘图插件OxyPlot

开始 使用 NuGet 包管理器添加对 OxyPlot 的引用&#xff08;如果要使用预发布包&#xff0c;请参阅下面的详细信息&#xff09;向用户界面添加PlotView在代码中创建一个PlotModel绑定到你的属性PlotModelModelPlotView 例子 您可以在代码存储库的文件夹中找到示例。/Source/Ex…

9 - 上升的温度(高频 SQL 50 题基础版)

9 - 上升的温度 -- 找出与之前&#xff08;昨天的&#xff09;日期相比温度更高的所有日期的 id -- DATEDIFF(2007-12-31,2007-12-30); # 1 -- DATEDIFF(2010-12-30,2010-12-31); # -1select w1.id from Weather w1, Weather w2 wheredatediff(w1.recordDate,w2.recordDat…

【MySQL】表的基本增删查改(结合案例)

文章目录 1.前言2.插入数据&#xff08;Create&#xff09;2.1案例2.2单行数据全列插入2.3多行数据指定列插入2.4插入否则更新2.5替换 3. 读取数据(Retireve)3.1案例3.2全列查询3.3指定列查询3.4查询字段为表达式3.5为查询结果起别名3.6去重3.7where条件3.7.1案例 3.8排序3.9筛…