0. 简介

作为一名技术博主,最主要的还是需要不断地学习新的知识,而最好的学习就是不断地阅读新的文章,并不断地学习和总结前人的思路和方法。所以博主打算开一个新的系列来介绍。这里主要来介绍一下《SuMa++: Efficient LiDAR-based Semantic SLAM》这篇论文。论文原文链接为:https://www.ipb.uni-bonn.de/wp-content/papercite-data/pdf/chen2019iros.pdf。下面的主要框架为任乾​博士博客的内容,加入了作者个人的学习和理解。

SUMA++

1. 文章贡献

可靠的高精度定位和建图是自动驾驶系统的关键环节。除了高精度的几何信息以外,地图中还应该包含语义信息,以为载体的智能行为提供依据。但在实际环境中,移动物体的存在会使建图过程变得更加复杂,因为它会污染地图并影响定位效果。在这篇文章里,我们在传统基于曲面建图(surfelbased mapping)方法的基础上,增加语义信息的融合以解决上面提到的问题。语义信息的提取是通过神经网络完成的,该网络对点云中所有的点都给予类别标签,从而让我们在使用曲面建图时,得到的是带有标签的曲面。通过这种方法,不仅可以滤除动态物体,而且可以使用语义信息对里程估计进行约束,以提到地图精度。

文中作者提到主要的两个贡献点在于

  1. 对点云进行语义分割,根据语义信息识别动态物体,并在地图中去除。

  2. 把带有语义标签的物体进行数据关联,和几何信息一起建立约束关系,从而提高建图精度。

2. 整体思路

下图为SuMa++整体的网络结构,可以看到主要的流程分为以下四个部分

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

  2. 使用漫水填充(flood-fill)方法消除错误的类别标签

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

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

    此外SuMa++离不开Surfel地图,Surfel地图中存在一些预定义的概念:

  • 深度地图(VDV_DVD):t时刻点云P的球形投影,得到深度图像(极坐标距离限制的点云原始数据).
  • 法向量地图 (NDN_DND): 根据上面的VDV_DVD得到的球面投影的法向量投影,类似于图片的雷达极坐标系投影。
  • 地图视角 (VMV_MVM&&NMN_MNM):将上面两步投影到地图上。(特征ICP更新位姿增量,累计位姿增量得到当前位姿)
  • 面元被:地图使用面元被表示,由一个位置,一个法向量和一个半径,两个时间戳(创建时间和最后一次更新时间)
  • 稳定对数几率lsl_sls:被维护使用一个二值贝叶斯滤波器来确定是否一个面元被考虑为稳定或者不稳定。
  • 语义地图(SDS_DSD):RangeNet++语义分割每针的球形投影生成的范围图片,传感器视角下逐点编号。(语义分割)

2.1 点云语义分割

语义分割使用的是RangeNet++方法,它的主要内容在另一篇论文里,该论文并没有对这个方法进行太多的改进。RangeNet++以Darknet53 Backbone作为基础改进为RangeNet53,从而实现深度图像的分割,并重映射到点云上。详细内容可以参考这篇文章。

2.2 漫水填充

漫水填充作为图像处理中常用的方法,在这里用于对错误分类进行修正,避免里面的分类错误对后续环节产生不好的影响,下图中左侧是右侧图中虚线框方法的部分,先对(a)中的错误识别结果进行剔除,得到(b),然后利用周围的标签点云对他进行填充,得到©。最后(d)中显示的是©对应的深度图。

下面是漫水填充的伪代码,在预处理内部,通过原始的语义掩码SrawS_{raw}Sraw,和对应的定点地图VDV_DVD,(在SrawS_{raw}Sraw中每个像素的值是一个语义编号,在定点地图中对应的像素包含最近3D点在雷达坐标系中的3d坐标。)首先移除在范围d内的邻居中存在至少一个不同语义编号的像素,组合该掩码和定点深度信息,设置空白边界像素为邻居带有标号的像素,如果对应点的距离是一致的,即小于某个阈值,即填充。

2.3 滤波滤除移动物体

动态物体的识别是根据物体在同一位置出现的概率实现的。具体来讲,就是说如果在这一帧中,某个位置出现了物体SDS_DSD,此时会同时将当前帧点云的位置SDS_DSD映射到地图中的位置SMS_MSM中,如果在下一帧中,物体物体SD1S_{D_1}SD1还在地图的SMS_MSM处,且连续很多帧它都出现在同一个位置SMS_MSM,那么它就是静止的,反之,在每一帧中检测到的位置都发生变化,那么它就是移动的。

在这里涉及到一个稳重比较重要的概念,也就是Surfel地图,Surfel地图创新的使用地图中的点形成的面元为对象,以地图一致性作为指标进行优化。文中提出使用语义分割提供的label来处理运动物体,即通过比较新观测位置SDS_DSD和地图中已经存在的SMS_MSM的语义一致性,在我们更新地图时,如果label是不一致的,我们假设那些面元属于移动物体。这时我们增加一个惩罚项oddsoddsodds到稳定性对数几率lsl_sls中。在一些观测后,我们可以移除不稳定的面元。下面是惩罚函数,其中odds(p)=log⁡(p(1−p)−1)odds(p)= \log (p (1-p)^ {-1} )odds(p)=log(p(1p)1),而pstablep_{stable}pstableppriorp_{prior}pprior是稳定面元的分别给出了相容的测量值和先验概率。expexpexp当中是补偿噪声量,aaa是面元法向量nsn_sns和测量法向量的的夹角,ddd是测量法向量相对于面元的距离。测量法向量取自于NDN_DND法向量地图。

…详情请参照古月居

经典文献阅读之--SuMa++相关推荐

  1. 货运服务网络设计:经典文献阅读笔记(3)复现Netplan

    **货运服务网络设计:经典文献阅读笔记(2)**提到说要把Crainic T G(1984年)文献使用的模型复现一下,但是文章给出的通用框架还是太笼统,在尝试后决定使用Jacques Roy & ...

  2. 经典文献阅读之--Swin Transformer

    0. 简介 Transfomer最近几年已经霸榜了各个领域,之前我们在<经典文献阅读之–Deformable DETR>这篇博客中对DETR这个系列进行了梳理,但是想着既然写了图像处理领域 ...

  3. 经典文献阅读之--NICE-SLAM(SLAM的神经隐含可扩展编码)

    0. 简介 对于深度学习而言,NeRF一定是最近两年最火的工作之一了,**NeRF(Neural Radiance Fields)**是最早在2020年ECCV会议上的Best Paper,其将隐式表 ...

  4. 经典文献阅读之--PL-SLAM(点线SLAM)

    0. 简介 之前作者基本都在围绕着特征点提取的路径在学习,最近看到了最近点云PCL推送的<Structure PLP-SLAM: Efficient Sparse Mapping and Loc ...

  5. 经典文献阅读之--PON

    0. 简介 作为Transformer在机器视觉领域的爆火,在自动驾驶领域目前很多工作都集中在前视转鸟瞰图的方法中,这里我们来讲2020年一篇经典的论文<Predicting Semantic ...

  6. 经典文献阅读之--OV2SLAM(高速视觉slam)

    0. 简介 视觉里程计最近几年越来越受到学术界以及工业界的认可,以ORB和VINS为代表的视觉SLAM已经可以满足绝大多数场景,而OV2SLAM在其他VSLAM中脱颖而出,其实时性以及具体的回环性能在 ...

  7. 货运服务网络设计:经典文献阅读笔记(1)

    服务网络设计 --(1984,Crainic,Multicommodity, Multimode Freight Transportation: A General Modeling and Algo ...

  8. 经典文献阅读之--Deformable DETR

    0. 简介 已经好久不写深度学习相关的博客了.但是我觉得DETR值得我重新拾起来进行详细介绍.Deformable DETR作为这两年来最有名的DETR变种之一,当然代码量也是比较多的.这里我们从论文 ...

  9. 经典文献阅读之--Globally Consistent and Tightly Coupled 3D LiDAR Inertial Mapping(紧耦合3D激光雷达)

    0. 简介 传统的地图生成方法一般是依靠Lidar和IMU结合的,但是问题在于,目前Lidar和IMU的紧耦合主要集中在前端里程计,基本没有涉及到后端全局优化以及建图的融合.为此文章<Globa ...

最新文章

  1. 最新!中国天气网api接口调用,key获取方式,数据请求秘钥获取,城市id获取方法
  2. python查询MySQL写入Excel
  3. Hadoop datanode正常启动,但是jps差不多datanode进程,而且Live nodes中却缺少节点
  4. Chrome 渲染流水线演化的未来
  5. rsync通过服务同步、linux日志、screen工具
  6. Python 3.5 协程究竟是个啥
  7. eclipse中自动生成javadoc文档的方法
  8. 蔻享学术下载器:KouShare-dl
  9. c语言中sqrt取整,69. Sqrt(x) 求根号再取整
  10. gerrit常见错误与处理
  11. PL/SQL Oracle恢复默认界面设置
  12. Cisco服务器硬盘状态jbod,2018-11-06 JBOD模式下LSI9361RAID卡操作步骤
  13. Kinect应用开发实战:用最自然的方式与机器对话
  14. 不能学习vlan的解决
  15. 锁相环环路滤波器计算公式_锁相环计算方法.doc
  16. java徽章_java – 设计可插拔的点和徽章系统
  17. 毕业后距离就这样慢慢拉开的
  18. 解决php的“It is not safe to rely on the system’s timezone settings”问题
  19. 基于stm32及LM041L的对角棋游戏
  20. PHP Fatal error: Uncaught think\\exception\\ErrorException: error_log相关解决方法

热门文章

  1. 添加 polygon 网路
  2. 算法-动态规划 Dynamic Programming--从菜鸟到老鸟
  3. 连作业都不会抄!盘点那些年被淘宝直播带沟里的直播平台
  4. 计算机学院运动会海报,运动会海报评比 | 第三十五届田径运动会,咱们燥起来...
  5. 西游记中孙悟空大闹天宫时天庭各路神将是真的对孙悟空放水吗?
  6. [日常] go语言圣经-声明,变量,赋值,类型,包和文件习题
  7. 百度网盘下载文件失败解决办法??
  8. 跨行交易的一些常见的知识
  9. 实例化对象是什么意思,什么是实例化,什么是对象。多态性
  10. 嵌入式系统设计与开发的生命周期简析