SuMA++论文重点总结

SuMA++是一种基于LiDAR的高效语义SLAM方法,通过神经网络对点云进行语义分割,识别并去除动态物体,提升建图精度。它利用RangeNet++进行语义分割,采用漫水填充纠正错误标签,通过概率模型检测动态物体,并结合语义信息优化ICP模型,增强里程计的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SuMA++:Efficient LiDAR-based Semantic SLAM

简介:

基于曲面建图(surfelbased mapping)方法的基础上,增加语义信息的融合以解决建图时移动物体的问题。语义信息是通过神经网络完成,该网络给点云中的点添加标签,建图时得到的是带有标签的曲面,1、可以滤除动态物体 2、使用语义信息对里程计进行约束,提高建图的精度

主要贡献:

  1. 对点云进行语义分割,根据语义信息识别动态物体,并去除
  2. 把带有语义标签的物体进行数据关联,和几何信息一起建立约束关系,从而提高建图精度

整体思路:

  1. 通过网络对点云进行语义分割

使用RangeNet++方法。

  1. 使用漫水填充方法消除错误的类别标签

由于网络对点云进行的语义分割必然包含正确分类和错误分类,而这里面的错误会对后续环节产生不好的影响,因此有必要对其进行消除。这一环节的主要流程如下图所示。

 

上图中左侧是右侧图中虚线框方法的部分,先对(a)中的错误识别结果进行剔除,得到(b),然后利用周围的标签点云对他进行填充,得到(c)。最后(d)中显示的是(c)对应的深度图。

  1. 使用滤波器进行动态物体检测,并移除动态物体

动态物体的识别是根据物体在同一位置出现的概率实现的。具体来讲,就是说如果在这一帧中,某个位置出现了物体,在下一帧中,它还在,如果连续很多帧它都出现在同一个位置,那么它就是静止的,反之,在每一帧中检测到的位置都发生变化,那么它就是移动的。当然,此处位置指的是地图中的位置,而不是相对于当前帧点云的位置。上面是为了方便理解采用的通俗的解释,实际算法实现是用下面的公式

 

这个公式其实和cartographer移除动态物体的公式很像

  1. 建立带语义信息约束的ICP模型,优化里程计精度

我们知道ICP对两帧点云匹配其实就是让两帧点云对应点的距离达到最小,越小说明位姿估计的越准。但它仅使用几何信息,鲁棒性不是很好。此处作者为了改进这一问题,把语义信息也加入了ICP的数据关联当中,每一个物体对应一个关联关系,进行位姿估计时,除了点云要尽量接近,带语义标签的各个物体也要尽量接近。

在编程中,`suma` 和 `suma++` 的行为可以通过分析它们在循环或赋值中的作用来理解。以下是关于这两个变量的行为及其关系的详细说明: ### 变量 `suma` `suma` 是一个普通的变量名,在大多数编程语言(如 C/C++, Java, Python 等)中表示存储某个数值的数据容器。其具体含义取决于上下文以及开发者赋予它的意义。 例如: ```c++ int suma = 0; // 定义并初始化变量 suma ``` 在这个例子中,`suma` 被定义为整型变量,并被初始化为零。 --- ### 自增操作符 `++` 自增操作符 (`++`) 是一种用于增加变量值的操作符。它有两种形式:前缀自增 (`++varaible`) 和后缀自增 (`variable++`)。 #### 后缀自增 (`suma++`) 当使用后缀自增时,表达式的当前值会被返回,然后再执行加一操作。 ```c++ int a = 5; int b = a++; // 此处先将 a 的原始值 (5) 返回给 b,再对 a 执行 ++ 操作 // 结果: a=6, b=5 ``` #### 前缀自增 (`++suma`) 当使用前缀自增时,变量会立即增加 1 并将其新值作为表达式的结果返回。 ```c++ int c = 5; int d = ++c; // 此处先对 c 进行 ++ 操作变为 6,然后将结果赋值给 d // 结果: c=6, d=6 ``` --- ### 循环中的应用 在循环结构中,`suma++` 经常用于计数器场景。以下是一个典型的例子: ```c++ for(int suma = 0; suma < 10; suma++) { printf("%d\n", suma); // 输出从 0 到 9 的数字序列 } ``` 在此代码片段中,每次迭代都会使 `suma` 加一,直到满足退出条件为止。 如果改用前缀自增,则效果相同,但在某些复杂情况下可能会影响逻辑顺序。例如: ```c++ int array[] = {1, 2, 3}; int index = 0; printf("%d ", array[++index]); // 输出数组第二个元素 '2' ``` 此处由于采用了前缀自增,索引会在访问之前先行递增一次。 --- ### SuMa++ 中的相关概念扩展 虽然上述讨论集中在通用编程语法层面,但提到的 **SuMa++** 实际上是一种基于激光雷达的语义 SLAM 方法[^4]。尽管这里的 `suma++` 不直接对应于程序设计中的变量名称,但它隐喻了通过不断优化和增强传统方法(如同 `++` 表达的增长理念),达到更高精度的效果。 例如,在 SuMa++ 中利用 RangeNet++ 提取点云数据上的语义特征[^3],并通过洪泛算法减少误分类的影响[^1],最终实现了更加鲁棒的地图构建能力。 --- ### 总结 - 在编程领域,`suma` 是普通变量而 `suma++` 表示对其实施自增运算。 - 使用方式分为前后缀两种情形,需依据实际需求选取合适的形式。 - 对应至苏马系列技术栈而言,“++” 符号象征着功能升级和技术演进方向。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值