- 博客(37)
- 收藏
- 关注
原创 GS论文阅读--Mini-Splatting
高斯的广泛使用也会导致效率低下,高斯中心倾向于聚集在一起。这种次优的空间分布会限制渲染质量和速度。一些优化方法主要针对存储压缩,往往忽略了输入高斯的低效空间分布。
2025-02-05 12:41:55
1042
1
原创 GS论文阅读--Hard Gaussian Splatting
在训练过程中,它严重依赖于视图空间位置梯度的平均幅度来增长高斯以减少渲染损失。然而,这种平均操作平滑了来自不同视点的位置梯度和来自不同像素的渲染误差,阻碍了许多有缺陷的高斯的生长和优化。位置梯度的平均幅度不能反映某些局部图像区域的明显渲染误差,特别是当这些区域仅由少数视点观察时。这导致某些区域出现强烈的虚假伪影。
2025-01-22 20:50:33
1388
3
原创 GS-SLAM论文阅读--SplatMAP
现有的3D高斯溅射(3DGS)方法通常集中于光度一致性,忽略几何精度,并且未能利用SLAM的动态深度和姿态更新来进行场景细化。单目SLAM系统,由于有限的观察,浅三角测量基线,和弱姿态约束,容易产生不准确的点云。这些不准确性传播到下游的映射任务中,导致诸如墙壁和家具上的“重影”之类的伪像,特别是当从未经训练的视点观察时。传统的3DGS致密化管道通常依赖于RGB损失来校正这些错误,从而在补偿初始不准确性时引入额外的计算开销。
2025-01-22 11:14:33
1144
1
原创 GS论文阅读--GeoTexDensifier
3DGS的高质量重建依赖于足够的斑点和这些斑点的合理分布,以适应真实的几何表面和纹理细节,这是一个具有挑战性的问题。3DGS通过对初始高斯点的分裂和克隆,实现了完整的场景重建和纹理细节增强。3DGS模型的高质量重建和渲染依赖于两个条件:第一是具有足够数量的高斯splats来支持外观细节,第二是确保splats被优化到3D空间中的正确位置。目前,很少有研究探讨了高斯溅射致密化策略的改进。
2025-01-22 00:00:23
1348
1
原创 GS-SLAM论文阅读--RGBDS-SLAM
高保真重建是密集SLAM的关键。最近流行的方法利用3D高斯溅射(3D GS)技术进行场景的RGB、深度和语义重建。然而,这些方法忽略了场景不同部分的细节和一致性问题。3D GS技术以其高效的优化框架和实时渲染能力,弥补了NeRF的不足。因此,出现了许多基于3D gis的SLAM解决方案。然而,这些方法通常只使用原始图像特征进行训练,这些特征不足以完全捕获某些场景部分的细粒度细节,导致重建一致性差。而且,这些方法在进行多特征重构时,没有通过合理的约束进行有效的特征融合和优化,无法相互增强。
2024-12-09 15:35:47
1267
1
原创 GS-SLAM论文阅读--High-Fidelity SLAM Using Gaussian Splatting
3DGS的连续建图存在“遗忘”问题,即高斯参数倾向于过拟合最新帧,导致前一帧的重建质量下降。
2024-11-04 20:21:57
1214
1
原创 GS-SLAM论文阅读--GSORB-SLAM
3D高斯飞溅(3DGS)的出现最近引发了密集视觉SLAM研究的新浪潮。然而当前的方法面临着诸如对伪影和噪声的敏感性、训练视点的次优选择以及缺乏全局优化等挑战。目前迫切的问题仍然需要解决,例如Bundle Adjustment (BA)问题和对工件的敏感性,这会导致跟踪精度的降低。此外,缺乏多视图约束和强各向异性导致高斯函数对当前视点过拟合。虽然Photo-SLAM和TAMBRIDGE都利用了ORB特征点,但它们并没有充分利用特征点的潜在性能优势。
2024-10-19 20:49:38
1089
1
原创 GS-SLAM论文阅读笔记-CG-SLAM
现有的基于nerf的方法遵循差分体渲染管道,这是计算密集型和耗时的。因此,他们只能通过采样有限数量的相机光线来进行跟踪和建图,而忽略了图像中的自然结构信息。在SLAM设置中合理地加入三维高斯场并非易事。作为一种真实感视图合成技术,三维高斯场由于具有较强的各向异性和缺乏明确的多视图约束,容易对输入图像进行过拟合。一方面,三维高斯溅射不能保证三维曲面的精确建模;另一方面,由于高斯可能与环境表面不对齐,这将导致较差的外推能力,进一步降低相机跟踪。此外,建图过程中高斯基元的增加将不可避免地降低跟踪效率。
2024-10-10 16:25:51
1171
1
原创 GS-SLAM论文阅读笔记-MGSO
然而,现有的基于3dgs的SLAM系统难以平衡硬件简洁性、速度和地图质量。大多数系统在上述的一个或两个方面表现出色,但很少能做到全部。一个关键问题是在同时进行SLAM时初始化高斯的困难。传统上,SLAM系统提供语义差的地图表示,对定位和基本导航有效,但缺乏复杂任务所需的细节。解耦的稠密地图SLAM一个关键挑战是SLAM和密集重建组件之间缺乏协同作用。SLAM算法往往不能为高质量的密集重建提供最优数据,从而影响系统的整体性能。
2024-10-04 23:11:51
1278
1
原创 GS-SLAM论文阅读笔记-CaRtGS
Nerf虽然有前景,但将NeRF集成到SLAM系统中遇到了几个障碍,包括高计算需求,长时间的训练,有限的泛化性,过度依赖视觉线索,以及对灾难性遗忘的敏感性。现有的高斯飞溅SLAM (GS-SLAM)方法在处理有限数量的高斯原语时,难以在实时约束下实现卓越的渲染性能。这些问题源于算法的计算需求与可用处理资源之间的不一致,这可能导致训练和优化过程不足。MonoGS和SplaTAM是对耦合GS-SLAM算法的开创性贡献,它们开创了一种通过梯度反向传播同时优化高斯原语和相机姿态估计的方法。
2024-10-04 22:22:59
2016
2
原创 GS-SLAM论文阅读笔记--GEVO
虽然高斯飞溅(GS)允许高保真重建3D场景,但目前基于高斯飞溅的SLAM记忆效率不高,因为大量过去的图像被存储以重新训练高斯函数以减少灾难性遗忘。这些图像通常需要比建图本身高两个数量级的内存,因此占据了总内存使用量。为了减轻遗忘,基于神经辐射场和高斯飞溅(GS)的方法都在当前滑动窗口之外存储了大量的过去图像,以重复重新训练地图。不幸的是,用于存储这些图像的开销内存占总内存的大部分,并且比当前滑动窗口和地图本身都要高几个数量级。
2024-09-26 21:35:48
1329
1
原创 GS-SLAM论文阅读笔记--MM3DGS SLAM
虽然SLAM方法使用稀疏点云来表示操作环境,可以获得最先进的跟踪精度,但由于稀疏性,生成的地图是不相交的,在视觉上不如较新的3D重建方法。虽然视觉质量与导航的唯一目的无关,但创建逼真的地图对于人类消费,语义分割和后期处理是有价值的。3DGS的前置操作是高斯的深度初始化。大多数方法使用来自相对昂贵的传感器(如激光雷达)的深度输入,这些传感器可能不容易在消费者手机等设备上获得。其他方法使用RGB-D相机通过立体深度估计提供深度信息。
2024-09-26 10:50:57
1401
1
原创 GS-SLAM论文阅读笔记--GLC-SLAM
现有的基于3dgs的SLAM方法往往存在累积的跟踪误差和地图漂移,特别是在大规模环境中。Photo-SLAM结合了基于ORB-SLAM的闭环,但其对基于特征的跟踪器的依赖限制了闭环的有效性,因为跟踪器无法利用地图的细化。基于nerf的SLAM方法集成了在线闭环来实现准确和鲁棒的跟踪,但需要存储历史帧和昂贵的重新训练整个隐式建图来更新回环矫正。
2024-09-23 10:30:36
1435
1
原创 GS-SLAM论文阅读笔记--TAMBRIDGE
三维高斯溅射(3DGS)对运动模糊和相机噪声的鲁棒性有限,实时性差,限制了其在机器人SLAM任务中的应用。经过分析,产生这些问题的主要原因是运动模糊视图的密度和基于噪声原始图像和渲染结果计算损失的密集姿态估计累积误差,增加了3DGS渲染收敛的难度。以帧为中心、稀疏和有效的信息可以提高定位精度,但缺乏对整个场景的高层次理解。相反,以地图为中心的、密集的和全局的信息有助于构建全局一致的地图。因此,挑战的实质在于这两个方面的矛盾:高效而稀疏,密集而嘈杂。真实传感器的随机噪声和不断增加的视角重叠。
2024-09-22 11:09:05
1292
2
原创 GS-SLAM论文阅读笔记--MM-Gaussian
传统的SLAM方法往往受到地图表示的限制,如点云,surfel和voxel,它们只能以固定的分辨率重建地图。这一限制阻碍了对场景复杂纹理的捕捉,并阻碍了SLAM实现合成新视点等功能.此外,户外场景由于其无界特性,带来的挑战呈现出特别的复杂性。现存方法通常是基于RGB-D或单目相机。单目相机中深度数据的缺失会导致三维高斯分布的不准确。同时,RGB-D相机捕获的深度信息范围有限,使其在广阔的户外场景中的使用变得复杂。
2024-09-10 15:41:42
1615
1
原创 GS-SLAM论文阅读笔记--LoopSplat
基于3D高斯Splats (3DGS)的SLAM最近显示出更精确、更密集的3D场景地图的前景,现有的基于3dgs的方法无法通过回环或全局BAY优化来解决场景的全局一致性。现有的方法可以分为解耦和耦合两类,其中解耦方法不利用稠密地图进行跟踪任务,而耦合方法使用稠密地图进行帧到模型的跟踪。解耦映射和跟踪通常会在系统中产生不必要的冗余,例如低效的信息共享和增加的计算开销。另一方面,所有耦合的3DGS SLAM方法都缺乏在地图和姿态上实现全局一致性的策略,导致姿态误差的积累和地图的扭曲。
2024-09-06 15:26:28
1333
1
原创 GS-SLAM论文阅读笔记--GSFusion
传统的体积融合算法保留了三维场景的空间结构,这对计算机视觉和机器人技术中的许多任务都是有益的。然而,它们在可视化方面往往缺乏真实感。单纯的颜色融合通常会导致低照片真实感和不完整的地图,因为遮挡,深度图中的洞,以及忽视材料属性,如反射和透明度。新兴的三维高斯飞溅弥补了这一差距,但现有的基于高斯的重建方法经常受到伪影和与底层3D结构不一致的影响,并且难以实时优化,无法为用户提供高质量的即时反馈。
2024-09-04 11:00:04
1460
1
原创 环境配置小结
在上面的文章中,我主要讲了conda环境中cuda的相关问题,以及ubuntu中环境主要的编译配置方法。当我们了解了这些运行的具体过程,文件的安装目录,以及他们都有哪些功能时,就会更快定义到问题所在,不必对了解到的问题进行重复搜索。当然,这篇文章只是环境配置之前,需要了解的基本知识。但是了解了三方包的整个运行过程,很多问题都迎刃而解。对于之后具体常用的安装包,比如Opencv库的各种问题,还是需要不断记录与总结。
2024-06-28 14:36:19
1276
原创 Leetcode刷题笔记--回溯(back_tracking)
回溯是一种算法思想,它采用试错的方法来解决问题。在解决问题的过程中,如果发现当前的选择不正确或者无法达到目标,就会撤销上一步或者上几步的计算,并尝试其他可能的选择。这种方法也被称为探索与回溯法,是一种选优搜索法,通过递归的方式向前搜索,达到目标后再逐步回退,以找到问题的解。之前在学习二叉树的章节中,就对于有些回溯的过程有些模糊,为了对之后的图论打下基础,回溯是必须要好好掌握的。本文就参考代码回想录的回溯章节,循序渐进地进行学习!
2024-06-21 15:41:23
1045
原创 Leetcode刷题笔记--贪心
贪心选择性质就是从局部最优解可以得到全局最优解。它通常比动态规划更简单,但是其背后设计复杂的数学推理,大部分情况下我们不容易证明,只能通过感觉和尝试判断。可以使用「贪心算法」的问题需要满足的条件:1.最优子结构:规模较大的问题的解由规模较小的子问题的解组成,区别于「动态规划」,可以使用「贪心算法」的问题「规模较大的问题的解」只由其中一个「规模较小的子问题的解」决定。2.无后效性:后面阶段的求解不会修改前面阶段已经计算好的结果。直接刷题吧!
2024-06-05 12:02:58
928
原创 Leetcode刷题笔记--动态规划基础
文章目录前言一、动态规划基础问题二、网格二维dp三、背包类问题3.1 0-1背包0-1背包总结3.2 完全背包遍历顺序总结四、不同的题型3.1打劫问题3.2股票问题3.3子序列问题1.是否连续的子序列2.回文子串和子序列3.编辑距离类最终总结前言动态规划算是很难的一个知识点了,之前我按照代码随想录的教程做了相对应的题目,对动态规划有所入门,现在想把他进行一个总结,顺便复习之前做过的题目。一、动态规划基础问题动态规划(Dynamic Programming,简称DP)是一种解决复杂问题的方法。它通过
2024-05-07 16:53:40
445
1
原创 Leetcode刷题笔记--滑动窗口
滑动窗口也是常考知识点,他算是双指针的一个特殊形式,再复习一下之前做过的习题,顺便将之前刷过的题目分个类,不多废话了!未完待续。。
2024-04-06 13:42:37
1015
1
原创 Leetcode刷题笔记--链表
链表相对于二叉树简单多了,它可以看成只有左子树或者右子树的二叉树。复习一下之前做过的链表题目,放松一下心情。。对于链表的相关习题先写到这,还有很多有关链表的进阶题目,需要不断的练习,才能熟能生巧!
2024-04-03 21:40:50
979
1
原创 Leetcode刷题笔记--二叉树
二叉树节点通常包含一个值以及指向左子节点和右子节点的指针。定义一个节点结构来表示二叉树的节点。我们可以通过动态分配内存来创建二叉树节点,并将它们连接起来形成一棵树。int val;在我之前写dfs的代码时候,有时候改动一个函数参数是否为引用,代码就能实现了,从而实现不同的结果,当时没太在意,对这个深搜的回溯过程也不是很了解,但是前几天看代码回想录的讲解的时候,幡然醒悟,恍然大悟,终于大概弄明白了整个回溯的过程以及代码的编写。
2024-03-17 23:24:18
1024
1
原创 Leetcode刷题笔记--栈和队列
栈和队列是最常见的数据结构。他们是两个针锋相对却又相互关联的数据结构。栈的特点是后进先出,队列是先进先出。其他的不多说,知道这两点就完事了,直接开始!
2024-03-08 22:52:04
1181
1
原创 Leetcode刷题笔记--哈希表
在力扣习题当中,哈希表是非常常见的知识点。 哈希表通过哈希函数将键映射到索引位置,因此在理想情况下,查找和插入操作的时间复杂度为O(1)。这使得哈希表非常适合于需要快速检索的场景。 因此,在某些场景中有重要的作用。本文中主要介绍哈希表的两种常见形式:unordered_map和unordered_set,这也是做题中最常用的两种类型。unordered_map是一个将key和value关联起来的容器,它可以高效的根据单个key值查找对应的value。key应该是唯一的,key和value的数据类型可以不相同
2024-03-04 18:04:02
1046
1
原创 Leetcode刷题笔记--二分查找
之前刷了一段时间的Leetcode,当时似乎弄明白了一类题目,但是由于做的题目比较繁杂,而且没有进行总结,导致过一段时间之后有需要重新思考,又会花费大量的时间。所以我打算把之前刷过的题目类型进行一些总结与思考,以便我可以更好地掌握这些知识。今天,我打算从二分法开始进行总结。提示:以下是本篇文章正文内容,下面案例可供参考。
2024-02-27 23:07:50
1081
原创 C++学习笔记(四)--new与delete
提示:以下是本篇文章正文内容,下面案例可供参考通常情况下我们只会使用new和delete的基本用法,但是了解他们的实现过程,并且知道定制new和delete之后,我们就会耳目一新,发现一片新的天地。
2023-09-06 10:16:07
420
1
原创 C++学习笔记(三)--引用(reference)
为什么要使用引用?简单来说,引用就是给一个东西起别名,它的底层是由指针常量实现的(编译器内部实现),因此引用占用的空间大小与指针相同。引用的好处在于,它相对于指针操作更为简单,有些情况下相对于值传递效率更高。C++中引入了引用操作,在对引用的使用加了更多限制条件的情况下,保证了引用使用的安全性和便捷性,还可以保持代码的优雅性。在适合的情况使用适合的操作,引用的使用可以一定程度避免“指针满天飞”的情况,对于提升程序稳定性也有一定的积极意义。参考书籍《Effective C++》条款20,21。
2023-08-07 23:24:53
210
原创 C++学习笔记(2)--static
在C++中,static关键字有多种用法,它可以应用于变量、函数和类成员。接下来进行介绍。static的用法比较简单,也比较容易理解。
2023-07-31 09:58:20
395
1
原创 C++学习笔记(一):const的用法
最近在复习C++的相关知识,之前的学习过于零碎,有很多知识有所遗漏,关于const的用法很多,在这里我想做一个总结,希望自己学习的同时也可以帮助到别人。在c++中,一个const不必创建内存空间,是否为const常量分配内存空间依赖于如何使用。一般说来,如果一个const仅仅用来把一个名字用一个值代替(就像使用#define一样),那么该存储局空间就不必创建。如果存储空间没有分配内存的话,在进行完数据类型检查后,为了代码更加有效,值也许会折叠到代码中。下面介绍几种const在C++中的常见用法。
2023-07-31 00:17:11
508
1
原创 我的ROS学习笔记(六)
启动文件roslaunch一.使用启动文件二.启动文件的基本元素(1)插入根元素(2)启动节点(3)请求复位(4)为节点维护独立的窗口三.重映射1.创建重映射方法一方法二ADD1.包含其他文件2.启动参数声明参数参数赋值获取参数值向包括的启动文件中发送参数值一.使用启动文件执行启动文件 想要运行一个启动文件,可以像下面这样使用roslaunch命令 2:roslaunch package-name launch-file-name在启动任意节点之前,roslaunch 首先会判断 roscor
2021-09-11 16:14:56
472
原创 我的ROS学习笔记(五)
subscriber程序编写前言一、编写回调函数二、创建订阅者对象给ROS控制权总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、编写回调函数发布和订阅消息的一个重要的区别是:订阅者节点无法知道消息什么时候到达。为了应对这一事实,我们必须把响应收到消息事件的代码放到回调函数里,ROS 每接收到一个新的消息将调用一次这个函数。
2021-09-07 16:55:03
861
原创 我的ROS学习笔记(四)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档publisher程序代码学习前言一、包含消息类型声明二、创建发布者对象三、创建并填充消息对象四、发布消息五、消息发布循环1.节点是否停止工作的检查2.控制消息发布频率总结前言发布者程序包含了很多之前不懂的知识,刚开始也许只能复制粘贴代码来运行实例,但最终目的还是为了自己能够编写这些代码。因此,弄明白哪部分代码是什么意思非常有必要,不能做一个复制粘贴机器!一、包含消息类型声明每一个消息类型都有一个相对应 C++头文件。你需要在你的
2021-09-07 16:21:16
5208
原创 我的ROS学习笔记(三)
第一个ROS程序的诞生前言一、创建工作区和功能包1.创建工作区2.创建功能包二、编写程序1.编写C++程序2.编译 Hello 程序(1)声明依赖库(2)声明可执行文件(3)编译工作区(4)Sourcing setup.bash三. 执行 hello 程序总结前言成功编写第一个程序无疑是一个学习者最激动的时刻。接下来会以最简单的Hello ROS!程序为例,详细地讲解一下如何编译ROS程序。一、创建工作区和功能包1.创建工作区我们所创建的包,应该全部放到一个叫做工作区的目录中 。可以用任何你喜欢
2021-09-06 20:56:14
331
原创 我的ROS学习笔记(二)
ROS的常用命令与概念前言一、ROS常用命令消息类型的命名一个简单的的例子节点之间的松耦合关系总结前言在编写ROS程序前,先了解一下基本的一些命令与概念,这些命令和内容在之后都比较常用,所以需要牢牢记住!一、ROS常用命令1.要找到一个软件包的目录,使用 命令rospack find2.查看软件包 : 要查看软件包目录下的文件,使用如下命令:rosls package-name3如果想“访问”某软件包目录,可以将当前目录切换至此软件包目录,使用如下命令:roscd package-na
2021-09-06 19:08:58
303
原创 我的ROS学习笔记(一)
文章目录前言ROS系统架构1.文件系统级功能包功能包集消息类型2.计算图级3.开源社区级总结前言之前学习ROS的时候,因为身边的人可能接触的比较少,只能自己不断摸索。刚开始看了古月的21讲,之后又不断寻找各种资料,同时在官网运行例程。我觉得下面这本书讲的很清晰,所以想基于这本书整理一下笔记。ROS系统架构ROS系统架构主要分为三部分:1.文件系统级(解释ROS的内部构成,文件夹结构,工作的核心文件)2.计算图集(体现进程与系统的通信)3.开源社区集(解释一系列工具和概念)1.文件系统级
2021-09-04 23:58:48
436
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人