语义SLAM和多传感器融合是自动驾驶建图和定位部分比较热门的两种技术。语义SLAM中,语义信息的数据关联相较于特征点的数据关联有所不同。我们一般用特征描述子的相似性来匹配和关联不同图像中的特征点。特征点的描述子会受到光照、视角和传感器的影响,不太适用于大尺度长周期的任务,比如自动驾驶的高精度地图。得益于深度学习的快速发展,这些影响因素对于目标识别、语义分割来说已经不是最本质的困难,因此语义信息在高精度地图中越来越受重视。

语义SLAM数据关联的基本考虑

在SLAM中,语义信息的数据关仍然是一个值得研究的问题。这个问题的关键在于,一幅图像中可能检测出数个相同类别的目标物体,如何能够正确地将其对应于地图数据中已有的该类别的3D物体。

在语义SLAM中,虽然语义目标同样可以产生某种描述子(比如深度网络中的某些层),但对于相同类别且距离较近的目标,我们可能无法确定合理的对应关系。考虑到图像中的目标(10个左右)并不如特征点那样丰富(1000个左右),错误的匹配并不方便通过RANSAC算法来排除(样本不足)。

下面列出几种有用的因素。

  • 较为准确的先验估计(姿态),比如通过IMU、GPS、里程计等。
  • 能够得到VO和目标的准确位置,比如双目、深度摄像头、结合激光等。
  • 地图中有很多(局部)唯一确定的路标物体。
  • 考虑所有可能的数据关联。

利用第一点,我们能够使用一些简单的方法建立数据关联,但此时仍需考虑错误关联的影响。

利用第二点,我们能够准确地重建出语义目标的几何特性(空间位置、朝向等)。X-View: Graph-Based Semantic Multi-View Localization这篇文章将多帧的语义目标位置组合成图,利用图匹配算法求解相机在全局地图中的位置(只定位不建图)。

利用第三点,我们能够方便地确定关联关系。比如,行车道上的交通指示牌结合文字OCR识别,能够唯一确定该路牌的位置,相当于一个全局观测。比如,考虑到交通指示牌相互之间的间距很大,在局部唯一,因此结合GPS和指示牌即可唯一确定该指示牌的位置。根据Mobileye的REM的专利描述,它们可能利用了该类信息。

第四点即是本文想讲解的一种方法。

文章的出发点和创新点

本文主要想介绍一篇基于概率模型的语义定位方法。文章名字是Semantic Localization Via the Matrix Permanent,是 University of Pennsylvania 的GRASP实验室。还有一篇类似的文章,名字是Localization from semantic observations via the matrix permanent。他们组后续一篇文章Probabilistic Data Association for Semantic SLAM得了ICRA2018最佳论文奖。

本篇文章的出发点是用概率模型建模数据关联过程,通过求解后验概率\(p(Z|Y,X)\),利用粒子滤波的框架求解姿态\(X\)。其中,\(Z\)是观测,\(Y\)是地图中的路标点(landmark),\(X\)是姿态(pose)。这里假设地图已经建立,其中路标点的位置、类别等信息已经包含在地图中。文章的模型基于很少的先验假设,只需要语义信息和一些识别算法的先验概率,因此有很广的适用范围。

这篇文章的创新点个人总结有以下几点。

  • 尝试去建立路标点和观测之间的所有可能的概率关联,而不是一对一的数据关联。这样的好处是避免一对一关联中错误关联的影响。因为在语义SLAM中,语义信息的数量相比于特征点而言是稀少的,因此不当的数据关联的个数应当尽可能的少,否则可能导致姿态估计很快出现漂移。
  • 考虑了目标识别中的错误率和漏检率。
  • 优化了后验概率的计算方法。建立整个概率分布是一个\(N!\)复杂度的问题,作者将其转化为一个多项式复杂度的问题。

作者在文章中只用了语义信息,还没有应用传统SLAM和多传感器融合的方法。如果要应用到实际中,可能可以融合一些其它的想法。另外,这篇文章并没有开源代码能够参考,运行速度上肯定也需要优化。

先写这些吧,下次再介绍一些具体的内容。

语义SLAM的数据关联和语义定位(一)的更多相关文章

  1. 语义SLAM的数据关联和语义定位(三)

    与现有方法的异同 特征点SLAM中的数据关联 先回忆一下特征点SLAM中,我们是如何处理数据关联的.下面以ORBSLAM为例. 在初始化部分,我们通过特征描述子的相似性,建立两帧之间的特征点关联,然后 ...

  2. 语义SLAM的数据关联和语义定位(四)多目标测量概率模型

    多目标模型 这部分想讲一下Semantic Localization Via the Matrix Permanent这篇文章的多目标测量概率模型.考虑到实际情况中,目标检测算法从单张图像中可能检测出 ...

  3. 语义SLAM的数据关联和语义定位(二)Semantic Localization Via the Matrix Permanent

    论文假设和单目标模型 这部分想讲一下Semantic Localization Via the Matrix Permanent这篇文章的一些假设. 待求解的问题可以描述为 假设从姿态\(x\)看到的 ...

  4. 语义slam用于高精地图和高精定位的一些想法

    最近一直在考虑语义slam在自动驾驶和辅助驾驶中的用法,研究了一下视觉为主的高精度地图+高精定位的模式,特别是mobileye的REM. 秉承先建图再定位的思路,在服务器端(云端)建图,在车端定位. ...

  5. 分享| 语义SLAM的未来与思考(泡泡机器人)

    相比典型的点云地图,语义地图能够很好的表示出机器人到的地方是什么,机器人“看”到的东西是什么.比如进入到一个房间,点云地图中,机器人并不能识别显示出来的一块块的点云到底是什么,但是语义地图的构建可以分 ...

  6. 从5个经典工作开始看语义SLAM

    本文试图概括Semantic SLAM的主要思路和近年工作,⻓期更新.但因水平有限,若有错漏,感谢指正. (更好的公式显示效果,可关注文章底部的公众号) Semantic SLAM 简介 至今为止,主 ...

  7. 最近一年语义SLAM有哪些代表性工作?

    点击"计算机视觉life"关注,置顶更快接收消息! 本文由作者刘骁授权发布,转载请联系原作者,个人主页http://www.liuxiao.org 目前 Semantic SLAM ...

  8. 语义SLAM研究现状总结

    博客转载自:https://blog.csdn.net/xiaoxiaowenqiang/article/details/81051010 原文标题:深度学习结合SLAM 语义slam 语义分割 端到 ...

  9. 三维重建5:场景中语义分析/语义SLAM/DCNN-大尺度SLAM

    前言: 在实时/非实时大规模三维场景重建中,引入了语义SLAM这个概念,参考三维重建:SLAM的尺度和方法论问题和三维重建:SLAM的粒度和工程化问题 .大规模三维场景重建的尺度增大,因此相对于整个重 ...

随机推荐

  1. odoo开发笔记-tree列表视图拖拽排序

    odoo列表tree视图 拖拽排序 实现效果: 实现方式: 模型中定义字段: class CusYourModel(models.Model): """ 你的模型 &qu ...

  2. MethodImplOptions.Synchronized的一点讨论

    Review代码发现有一个方法加了[MethodImpl(MethodImplOptions.Synchronized)] 属性,这个属性的目的,从名字上就可以看出,是要对所有线程进行同步执行. 对方 ...

  3. Spark中的常用算子

    更多有用的例子和算子讲解参见: http://homepage.cs.latrobe.edu.au/zhe/ZhenHeSparkRDDAPIExamples.html map是对每个元素操作, ma ...

  4. Apater适配器模式(结构型模式)

    1.概要 适配:即在不改变原有实现的基础上,将原先不适合的接口转换成适合的接口. what is Apater?适配,这个概念在生活中无处不在,比如你的iphone 4手机充电器坏了,这是时候只有一个 ...

  5. 六、CLR下的托管代码应用程序与非托管代码程序之间的性能对比

    1.托管程序二次编译的问题,以及微软做的优化 五.CLR加载程序集代码时,JIT编译器对性能的产生的影响中介绍了CLR下托管应用程序的二次编译对性能产生的影响.事实上,在IL编译成本机代码的时候的时候 ...

  6. 说说正则表达式的exec方法

    话说,关于正则表达式有一个梗,大意是: 假如你有一个问题,想用正则来解决,于是你就有了两个问题 这句话侧面反映了精通正则是一件不容易的事.比如我今天遇到的诡异事件. 情景回放 这两天练手写了一个爬用户 ...

  7. 第一个WCF程序

    WCF的服务需要寄宿在进程中,我们把服务端的叫做宿主,为服务指定宿主指定的过程叫服务寄宿.有两种方式一种是自我寄宿(Self-Hosting),一种是IIS寄宿方式.Self-Hosting我们通过一 ...

  8. 二:理解ASP.NET的运行机制(例:基于HttpHandler的URL重写)

    url重写就是把一些类似article.aspx?id=28的路径重写成 article/28/这样的路径 当用户访问article/28/的时候我们通过asp.net把这个请求重定向到article ...

  9. 高可用Hadoop平台-集成Hive HAProxy

    1.概述 这篇博客是接着<高可用Hadoop平台>系列讲,本篇博客是为后面用 Hive 来做数据统计做准备的,介绍如何在 Hadoop HA 平台下集成高可用的 Hive 工具,下面我打算 ...

  10. rabbitmq 部署(二进制和rpm)与常用命令

    目录 一 rabbitmq 简介 二 erlang 安装 三 rabbitmq rpm安装 (二进制安装和rpm安装二选一) 四 rabbitmq 二进制安装(rpm 安装和二进制安装二选一) 五 初 ...