实验笔记之——基于TUM-RGBD数据集的SplaTAM测试

2024-01-19 07:36

本文主要是介绍实验笔记之——基于TUM-RGBD数据集的SplaTAM测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

之前博客对SplaTAM进行了配置,并对其源码进行解读。

学习笔记之——3D Gaussian SLAM,SplaTAM配置(Linux)与源码解读-CSDN博客SplaTAM全称是《SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM》,是第一个(也是目前唯一一个)开源的用3D Gaussian Splatting(3DGS)来做SLAM的工作。在下面博客中,已经对3DGS进行了调研与学习。其中也包含了SplaTAM算法的基本介绍。学习笔记之——3D Gaussian Splatting及其在SLAM与自动驾驶上的应用调研-CSDN博客。https://blog.csdn.net/gwplovekimi/article/details/135647242?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22135647242%22%2C%22source%22%3A%22gwplovekimi%22%7D在原博客中也对TUM-RGBD数据集的freiburg1_desk_seed0进行了测试,感觉效果一般般,为此本博文打算对下载的TUM几个序列都进行测试看看效果。

本博文为本人实验测试SplaTAM过程的实验记录,本博文仅供本人实验记录用~

目录

运行过程

rgbd_dataset_freiburg1_desk

rgbd_dataset_freiburg1_desk2

rgbd_dataset_freiburg1_room

rgbd_dataset_freiburg2_xyz

rgbd_dataset_freiburg3_long_office_household

总结与分析


运行过程

注意:要修改configs/tum/splatam.py中的scene_name来决定训练哪个序列

(之前的desk训练时间大概30分钟左右,还是打开一下tmux吧)
tmux new -s desk2 
tmux new -s room
tmux new -s xyz
tmux new -s household(开启运行的环境)
conda activate splatam(开始测试运行)
python scripts/splatam.py configs/tum/splatam.py

运行后,可以看到experiments文件如下:

忘记指定GPU了,都挤到一块板子上跑了

等待一段时间,下面看看再各个序列的测试效果

要训练完才可以可视化建图与定位的效果(注意跟训练一样要修改对应的config文件来选用序列,seed统一都为0)

(最终的建图效果)
python viz_scripts/final_recon.py configs/tum/splatam.py(训练过程的可视化)
python viz_scripts/online_recon.py configs/tum/splatam.py

rgbd_dataset_freiburg1_desk

SplaTAM Testing using TUM-Dataset freiburg1

SplaTAM Testing using TUM-Dataset freiburg1

训练完结果如下:PSNR只有21.49算是比较差的吧,当然deth恢复的精度是3.38cm以及定位精度是3.34(论文里面是3.35)这个结果还是不错的。细看论文会发现,论文里面对于TUM数据集好像只用来验证定位精度,而mapping性能都是采用Replica与ScanNet++。目前不打算花太多时间去逐一验证了,有小伙伴验证了的话可以给个评论看看是否如论文的效果,因为在tum数据集上,个人感觉mapping效果一般般~

rgbd_dataset_freiburg1_desk2

结果如下:

这个效果比上面的要更差一些,可以发现各个性能指标都差一些(此处定位精度是是6.58cm,论文是6.54cm)。

视频效果如下所示:

SplaTAM Testing using TUM-Dataset freiburg1

rgbd_dataset_freiburg1_room

结果如下(此处定位精度是11.49cm,论文结果是11.13cm)

视频效果如下所示:

SplaTAM Testing using TUM-Dataset freiburg1

rgbd_dataset_freiburg2_xyz

rgbd_dataset_freiburg3_long_office_household

总结与分析

综合下来,几个数据集下的表现,tracking的结果跟论文给出的差不多,而mapping的psnr都比较差(论文验证psnr性能指标是用其他几个数据集),而depth的恢复精度(L1)都是3~4cm这个结果还是比较好的(不过毕竟用了RGBD~),

后面有时间再试试用手机实测来看看吧,不过目前看来用数据集测试的效果都比较差,实时性也很一般,比如rgbd_dataset_freiburg1_desk序列都训练30多分钟了,PSNR还只有21左右,应该3DGS性能不至于这样,可能是因为一些参数的设置包括剪枝等等的操作吧~感觉还是有比较大可以研究的空间~

这篇关于实验笔记之——基于TUM-RGBD数据集的SplaTAM测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/621681

相关文章

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr