实验笔记之——RGBD GS-ICP SLAM配置与测试

《RGBD GS-ICP SLAM》是最新开源的一个3DGS-SLAM工作,通过利用GICP来实现当前帧gaussian与已mapping的gaussian进行匹配进行位姿的估算,并通过关键帧的选择策略来进一步提升performance~

  • Use G-ICP to align the current frame with the 3D GS map which contains covariance (solely need to compute the covariance for the current frame);
  • When adding keyframes to the 3D GS map, utilize the covariance computed in GICP during tracking (no need for densifying or opacity reset);

该工作取得了较好的tracking以及渲染的性能,同时FPS可高达107

详细的原理此处不做介绍,本博文记录本人配置以及测试该算法的过程,并且mark对代码的解读的github仓库。本博文仅供本人学习记录用~

论文原文:https://arxiv.org/pdf/2403.12550.pdf

源码链接:GitHub - Lab-of-AI-and-Robotics/GS_ICP_SLAM

目录

配置过程

测试效果

代码解读


配置过程

下载源码(加上后缀--recursive就可以把submodules的也下载下来)
git clone git@github.com:Lab-of-AI-and-Robotics/GS_ICP_SLAM.git --recursive

配置conda环境
conda create -n gsicpslam python==3.9
conda activate gsicpslam
conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.8 -c pytorch -c nvidia
pip install -r requirements.txt

安装PCL库的另外的方式
pip install pcl
conda config --add channels conda-forge
conda install -c sirokujira python-pcl    

配置完成~

由于是PCL库中的GICP,因此也需要安装fast-gicp子模块

单纯git clone的时候是无法把submodules内三个model下载的,为此进入目录分别git如下

 cd submodules/

git clone https://github.com/Lab-of-AI-and-Robotics/diff-gaussian-rasterization.git

git clone https://github.com/Lab-of-AI-and-Robotics/fast_gicp.git

git clone https://github.com/camenduru/simple-knn.git

然后执行下面代码

conda activate gsicpslam
pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knn

cd submodules/fast_gicp
mkdir build
cd build
cmake ..
make
cd ..
python setup.py install --user

安装fast_gicp的时候报错如下

应该是环境中没有安装pcl库~

conda install -c conda-forge python-pcl

安装好后再执行一次~应该就问题了~

重新编译一次可视化软件~

cd SIBR_viewers
cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release
cmake --build build -j24 --target install

编译有问题,感觉是作者给的代码有问题,不过之前3DGS的时候已经用过SIBR_viewers了,为此直接用回当时的吧~

对于数据集之前splatam已经下载好了

修改下面s数据路径。然后运行

打开MobaXterm来可视化(不需要SIBR_viewers)
tmux new -s gs-icp-slam (开了tmux可能导致检测不出显示器)

conda activate gsicpslam

python -W ignore gs_icp_slam.py --config configs/TUM/rgbd_dataset_freiburg2_xyz.txt --dataset_path /home/gwp/SplaTAM/data/TUM_RGBD/rgbd_dataset_freiburg2_xyz --verbose


python -W ignore gs_icp_slam.py --config configs/TUM/rgbd_dataset_freiburg1_desk.txt --dataset_path /home/gwp/SplaTAM/data/TUM_RGBD/rgbd_dataset_freiburg1_desk --verbose

python -W ignore gs_icp_slam.py --config configs/TUM/rgbd_dataset_freiburg3_long_office_household.txt --dataset_path /home/gwp/SplaTAM/data/TUM_RGBD/rgbd_dataset_freiburg3_long_office_household --verbose


或运行
bash tum_unlimit.sh


cd SIBR_viewers
./install/bin/SIBR_remoteGaussian_app --rendering-size 1280 720


但是报错如下(明明所有的依赖都安装了吖~)

重新安装(加上后缀--recursive就可以把submodules的也下载下来,以及用新的pcl安装方式)

下载源码(加上后缀--recursive就可以把submodules的也下载下来)
git clone git@github.com:Lab-of-AI-and-Robotics/GS_ICP_SLAM.git --recursive


安装PCL库的另外的方式
pip install pcl
conda config --add channels conda-forge
conda install -c sirokujira python-pcl    

测试效果

看视频实时性效果还是很不错的~

RGBD GS-ICP SLAM testing in rgbd

RGBD GS-ICP SLAM testing in rgbd

RGBD GS-ICP SLAM testing in rgbd

前面三个视频应该只是把tracking过程可视化图片而已。下面视频才是真正的渲染结果。从渲染的结果与真值对比来看。效果一般般hhh~

RGBD GS-ICP SLAM渲染结果

查看输出的文件如下,有ply文件

那么理论上就可以按照之前博客《实验笔记之——Gaussian-SLAM测试与配置-CSDN博客》的方法来进行可视化了~

conda activate gspl


python viewer.py TRAINING_OUTPUT_PATH
 
在本次实验中为如下:
python viewer.py /home/gwp/Gaussian-SLAM/output/TUM_RGBD/rgbd_dataset_freiburg3_long_office_household/rgbd_dataset_freiburg3_long_office_household_global_map.ply

python viewer.py /home/gwp/GS_ICP_SLAM/experiments/results/scene.ply

但是其输出的点云格式不支持。。。

但是从程序输出的performance来看,帧率是达到了实时的了,PSNR还是比较低,ATE还不错~

代码解读

至于代码解读就不额外写博客了,看后续把中文注释放到下面GitHub中

KwanWaiPang/RGBD-GS-ICP-SLAM-Comment · GitHubContribute to KwanWaiPang/RGBD-GS-ICP-SLAM-Comment development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/KwanWaiPang/RGBD-GS-ICP-SLAM-Comment更多关于3DGS及3DGS-SLAM的工作的测试与解读如下:

  • 学习笔记之——3D Gaussian Splatting及其在SLAM与自动驾驶上的应用调研_3d gaussian splatting slam-CSDN博客
  • 学习笔记之——3D Gaussian Splatting源码解读_gaussian splatting源码分析-CSDN博客
  • 学习笔记之——3D Gaussian SLAM,SplaTAM配置(Linux)与源码解读_splatam代码-CSDN博客
  • 实验笔记之——Gaussian Splatting SLAM (MonoGS)配置与测试-CSDN博客
  • 实验笔记之——Gaussian-SLAM测试与配置-CSDN博客
  • GitHub - KwanWaiPang/Photo-SLAM_comment: Photo-SLAM的中文注释
  • GitHub - KwanWaiPang/3dgs_cuda_opencv: C++版本的3DGS及中文注释

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

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

相关文章

Redis消息队列-基于PubSub的消息队列

7.3 Redis消息队列-基于PubSub的消息队列 PubSub(发布订阅)是Redis2.0版本引入的消息传递模型。顾名思义,消费者可以订阅一个或多个channel,生产者向对应channel发送消息后,所有订阅者都能收到相关消息。 SUBSCRIBE …

OpenHarmony实战开发-图片选择和下载保存案例。

介绍 本示例介绍图片相关场景的使用:包含访问手机相册图片、选择预览图片并显示选择的图片到当前页面,下载并保存网络图片到手机相册或到指定用户目录两个场景。 效果图预览 使用说明 从主页通用场景集里选择图片选择和下载保存进入首页。分两个场景点…

Linux的重要命令(二)+了解Linux目录结构

目录 一.Linux的目录结构 二.查看文件内容命令 1.cat 命令 2.more 命令 3.less 命令 4.head 命令 5.tail 命令 6.拓展 head 和 tail 的其他用法 ​编辑 三.统计文件内容的命令-wc ​编辑 四.检索和过滤文件内容的命令-grep ​编辑 ​编辑 五.压缩命令 gzip 和 bz…

Canvas 画布基本用法详解

Canvas 画布 HTML中的 <canvas> 标签用于动态绘制图形&#xff0c;所有在<canvas>中的画图必须用JavaScript完成。 <canvas>标签是透明的&#xff0c;它是图形的容器&#xff0c;必须使用脚本才能实际绘制图形。 绘制一个简单的矩形 <!-- canvas标签&a…

Python基于卷积神经网络的车牌识别系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

【数据结构与算法】递推

来源&#xff1a;《信息学奥赛一本通》 所谓递推&#xff0c;是指从已知的初始条件出发&#xff0c;依据某种递推关系&#xff0c;逐次推出所要求的各中间结果及最后结果。其中初始条件或是问题本身已经给定&#xff0c;或是通过对问题的分析与化简后确定。 从已知条件出发逐…

jenkins(docker)安装及应用

jenkins Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具&#xff0c;起源于Hudson&#xff08;Hudson是商用的&#xff09;&#xff0c;主要用于持续、自动的构建/测试软件项目、监控外部任务的运行&#xff08;这个比较抽象&#xff0c;暂且写上&#xff0c;不做解…

论坛直击|发展新质生产力,高校怎么做?

新质生产力浪潮涌动 三大议题聚焦高校人才培养 今年全国两会的政府工作报告将“大力推进现代化产业体系建设&#xff0c;加快发展新质生产力”列在2024年政府工作任务首位&#xff0c;发展新质生产力的先导是培养拔尖创新人才&#xff0c;高等教育改革必须以立德树人为根本任…

幽灵漏洞进阶版来了

近日&#xff0c;网络安全研究人员披露了针对英特尔系统上 Linux 内核的首个原生 Spectre v2 漏洞&#xff0c;该漏洞是2018 年曝出的严重处理器「幽灵」&#xff08;Spectre&#xff09;漏洞 v2 衍生版本&#xff0c;利用该漏洞可以从内存中读取敏感数据&#xff0c;主要影响英…

Java怎么获取今天最早的时间

今天在实现项目里的一个功能的时候&#xff0c;需要获取今天最早的时间&#xff0c;比如今天是2024-4-15&#xff0c;则今天的开始时间为2024-4-14日24点之后&#xff08;2024-4-15零点&#xff09;的那个时间点。 这篇文章就分享一下博主获取这个时间的方法&#xff1a; 很简…

Python数据可视化库—Bokeh与Altair指南【第161篇—数据可视化】

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在数据科学和数据分析领域&#xff0c;数据可视化是一种强大的工具&#xff0c;可以帮助我们…

代码随想录刷题day53|最长公共子序列不相交的线最大子序和

文章目录 day53学习内容一、最长公共子序列1.1、动态规划五部曲1.1.1、 确定dp数组&#xff08;dp table&#xff09;以及下标的含义1.1.2、确定递推公式1.1.3、 dp数组如何初始化1.1.4、确定遍历顺序1.1.5、输出结果 1.2、代码 二、不相交的线2.1、动态规划五部曲2.1.1、 确定…

【Git】Git的安装与常用命令

Git的安装与常用命令 一、Git的安装 &#xff08;一&#xff09;下载 官网下载&#xff1a;https://git-scm.com/downloads 镜像网站&#xff1a;https://registry.npmmirror.com/binary.html?pathgit-for-windows/ &#xff08;二&#xff09;安装 双击安装&#xff0c…

智能客服系统如何高效分配会话的实用指南

面对现在快节奏的商业市场&#xff0c;能否快速地把握住商机成为了企业制胜的关键&#xff0c;所以很多企业都想要一个可以快速响应客户需求的工具来帮助他们实现更高效的转化。如果能够有一个可以智能识别并自动将客户分配给合适客服的系统&#xff0c;来保证每个客户都能享受…

抖音扫码登录

抖音扫码登录&#xff0c;ck可以点赞关注上传视频 主要涉及参数: bd_ticket_guard_client_data bd_ticket_guard_server_data bd_ticket_guard_ree_public_key bd_ticket_crypt_cookie x–secadk–csrf–token req_sign abogus ts_sign ticket {"is_digg":…

从工程师到医疗高管,复旦MBA助我实现职场飞跃 | 校友故事

2月12日&#xff0c;英国《金融时报》&#xff08;FT&#xff09;发布2024年全球MBA项目百强榜单&#xff0c;复旦大学MBA项目位列全球第27位&#xff0c;并在多个分指标上位居全球前列。其中“职业服务”和“ESG与零排放教学”蝉联亚洲第1、“薪酬增长率”全球第2、“职业成长…

“智能医疗新纪元:机器学习在医疗健康领域的创新应用“

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

[docker] 核心知识 - 容器/镜像的管理和操作

[docker] 核心知识 - 容器/镜像的管理和操作 想要查看完整的指令&#xff0c;可以通过 docker --help 列举所有的指令&#xff0c;这里会提到一些比较常用的核心指令 查看容器的状态 这个应该是最常用的指令&#xff0c;语法为 docker ps&#xff0c; ps 为 process status …

java:多线程解决生产者消费者问题

生产者消费者问题 生产者消费者问题&#xff0c;也称有限缓冲问题&#xff0c;是一个多线程同步问题的经典案例。该问题描述了共享固定大小缓冲区的两种线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中…

【Qt 学习笔记】Qt常用控件 | 按钮类控件Radio Button的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 按钮类控件Radio Button的使用及说明 文章编号&#xff…