实验笔记之——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.gitgit clone https://github.com/Lab-of-AI-and-Robotics/fast_gicp.gitgit clone https://github.com/camenduru/simple-knn.git

然后执行下面代码

conda activate gsicpslam
pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knncd 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 gsicpslampython -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 --verbosepython -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 --verbosepython -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.shcd 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 gsplpython 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.plypython 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及中文注释

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

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

相关文章

基于人脸识别的发型推荐系统代码实现

1.摘要 本文介绍了一个基于人脸识别技术的发型推荐系统的实现与分析。该系统利用Python编程语言和相关库,结合Face人脸识别API,实现了用户上传照片后的性别识别、脸型分析和发型推荐功能。首先,用户通过Tkinter GUI界面选择上传照片&#xff…

gpt在线网页版最全收录

ChatGPT镜像 今天在知乎看到一个问题:“平民不参与内测的话没有账号还有机会使用ChatGPT吗?” 从去年GPT大火到现在,关于GPT的消息铺天盖地,真要有心想要去用,途径很多,别的不说,国内GPT的镜像…

Linux网络基础 (二) ——(IP、MAC、端口号、TCPUDP协议、网络字节序)

文章目录 IP 地址基本概念源IP地址 & 目的IP地址 MAC 地址基本概念源MAC地址 & 目的MAC地址 端口号基本概念源端口号 & 目的端口号 TCP & UDP 协议基本概念TCP 与 UDP 的抉择 网络字节序大端、小端字节序 🎖 博主的CSDN主页:Ryan.Alask…

1.9 数据结构之 并查集

编程总结 在刷题之前需要反复练习的编程技巧,尤其是手写各类数据结构实现,它们好比就是全真教的上乘武功 本栏目为学习笔记参考:https://leetcode.cn/leetbook/read/disjoint-set/oviefi/ 1.0 概述 并查集(Union Find&#xff09…

# Nacos 服务发现-快速入门-测试多实例 Ribbon 负载均衡

Nacos 服务发现-快速入门-测试多实例 Ribbon 负载均衡 1、修改 服务生产模块 quickstart_provider 子工程中的 配置文件 application.yaml port: ${port:56010} # 启动端口 # 修改为动态传参,如果未传参数,默认端口为 56010 2、在 idea 中,…

内网渗透-Linux内网渗透

系列文章目录 文章目录 系列文章目录一、Linux内网渗透二、提权 2.1 利用内核漏洞进行提权2.2 利用文件权限配置不当进行提权2.3 利用SUID程序进行提权 三、隧道 3.1 SSH3.2 nc/ncat3.3 portmap3.4 portfw 四、反弹shell 4.1 bash4.2 netcat4.3 php4.4 perl4.5 python4.6 ruby4…

Prime (2021): 2

前言 这个靶机有亿点难,收获很多。打靶的时候,前面很顺,到创建ssh公钥之后就一点不会了。 1 01 arp扫描,发现有一个130,再查看端口 有22,80,129,445,10123 dirb扫描目录 这…

蓝牙技术在智能硬件中应用火热,你的蓝牙适配测试如何解决?

蓝牙技术在物联网中的应用非常广泛,可以为人们的生活和工作带来更多的便利和智能化体验,主要五大核心应用场景,具体如下: 1、智能家居 通过蓝牙连接智能家居设备,如智能灯泡、智能插座、智能恒温器等,可以…

mysql 查询实战-变量方式-解答

对mysql 查询实战-变量方式-题目,进行一个解答。(先看题,先做,再看解答) 1、查询表中⾄少连续三次的数字 1,处理思路 要计算连续出现的数字,加个前置变量,记录上一个的值&#xff0c…

AI大模型日报#0413:谷歌引入“无限注意力”、Picsart AI 开源120秒超长AI视频模型

导读: 欢迎阅读《AI大模型日报》,内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。 标题: 速递|木头姐 ARK 宣布已投资 OpenAI!还将 Anthropic 及 Figure1 等 AI 独角兽一网打尽摘要: ARK已通过其风…

IO流基本流

目录 什么是IO流 IO流的体系 字节流 FileOutputStream FileInputStream 字符集 字符流 FileReader FileWriter 字节流和字符流的使用场景 什么是IO流 内存不能永久化存储,程序停止,数据丢失,所以要添加一个存档功能,存储到硬盘的文件,我们要知道文件在哪里和如何传…

【web3技术】什么是 WEB3?

Web3 简介 中心化网络已经帮助数十亿人融入了互联网,并在其上创建了稳定、可靠的基础设施。 与此同时,少数中心化巨头几乎垄断了互联网,甚至可以为所欲为。 Web3 是摆脱这一困境的方案。 不同于科技巨头垄断的传统互联网,Web3 采用去中心化,由所有用户构建、运营和拥有。…

day57 判断子序列 不同的子序列 两个字符串的删除操作 编辑距离

题目1 392 判读子序列 题目链接 392 判断子序列 题意 判断字符串s是否为字符串t的子序列 (子序列的相对位置在原字符串中不改变) 就是求最长公共子序列的长度与字符串s的长度是否相等 动态规划 1)确定dp数组及下标i的含义 dp[i][j]…

城市预约挂号统一平台的实现

目录 一、需求分析 二、界面设计 ​ 三、前端开发 四、代码下载 一.需求分析 二、界面设计 三、前端开发 <!DOCTYPE html> <html lang"zh-ch"> <head><meta charset"UTF-8"><title>基本样式页</title><link rel…

宜搭无权查询该应用信息,唯一排查码:21081d4e17130865292352743e9ed8

这种问题可能是关联表单出现了问题&#xff0c;当前应用中没有这个表单 所以就出现了应用无权访问的问题

【第二十四篇】使用Burpsuite实现反射、储存、DOM型XSS(靶场实战案例)

目录 反射性XSS储存型XSSDOM XSS反射性XSS 搜索1后,审查元素: 猜测<font>标签中没有进行XSS特殊字符转义,而在<font>标签内,可使用<script>标签: <script>alert(1)</script>储存型XSS 该模块对姓名、电子邮件、网站做过滤处理,但评论处…

基于深度学习的生活垃圾智能分类系统(微信小程序+YOLOv5+训练数据集+开题报告+中期检查+论文)

摘要 本文基于Python技术&#xff0c;搭建了YOLOv5s深度学习模型&#xff0c;并基于该模型研发了微信小程序的垃圾分类应用系统。本项目的主要工作如下&#xff1a; &#xff08;1&#xff09;调研了移动端垃圾分类应用软件动态&#xff0c;并分析其优劣势&#xff1b;分析了深…

鸿蒙开发学习笔记第一篇--TypeScript基础语法

目录 前言 一、ArkTS 二、基础语法 1.基础类型 1.布尔值 2.数字 3.字符串 4.数组 5.元组 6.枚举 7.unkown 8.void 9.null和undefined 10.联合类型 2.条件语句 1.if语句 1.最简单的if语句 2.if...else语句 3.if...else if....else 语句 2.switch语句 5.函数…

Java 入门教程||Java 关键字

Java 关键字 Java教程 - Java关键字 Java中的关键字完整列表 关键词是其含义由编程语言定义的词。 Java关键字和保留字&#xff1a; abstract class extends implements null strictfp true assert const false import package super try …