语义SLAM的数据关联和语义定位(一)
语义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的数据关联和语义定位(一)的更多相关文章
- 语义SLAM的数据关联和语义定位(三)
与现有方法的异同 特征点SLAM中的数据关联 先回忆一下特征点SLAM中,我们是如何处理数据关联的.下面以ORBSLAM为例. 在初始化部分,我们通过特征描述子的相似性,建立两帧之间的特征点关联,然后 ...
- 语义SLAM的数据关联和语义定位(四)多目标测量概率模型
多目标模型 这部分想讲一下Semantic Localization Via the Matrix Permanent这篇文章的多目标测量概率模型.考虑到实际情况中,目标检测算法从单张图像中可能检测出 ...
- 语义SLAM的数据关联和语义定位(二)Semantic Localization Via the Matrix Permanent
论文假设和单目标模型 这部分想讲一下Semantic Localization Via the Matrix Permanent这篇文章的一些假设. 待求解的问题可以描述为 假设从姿态\(x\)看到的 ...
- 语义slam用于高精地图和高精定位的一些想法
最近一直在考虑语义slam在自动驾驶和辅助驾驶中的用法,研究了一下视觉为主的高精度地图+高精定位的模式,特别是mobileye的REM. 秉承先建图再定位的思路,在服务器端(云端)建图,在车端定位. ...
- 分享| 语义SLAM的未来与思考(泡泡机器人)
相比典型的点云地图,语义地图能够很好的表示出机器人到的地方是什么,机器人“看”到的东西是什么.比如进入到一个房间,点云地图中,机器人并不能识别显示出来的一块块的点云到底是什么,但是语义地图的构建可以分 ...
- 从5个经典工作开始看语义SLAM
本文试图概括Semantic SLAM的主要思路和近年工作,⻓期更新.但因水平有限,若有错漏,感谢指正. (更好的公式显示效果,可关注文章底部的公众号) Semantic SLAM 简介 至今为止,主 ...
- 最近一年语义SLAM有哪些代表性工作?
点击"计算机视觉life"关注,置顶更快接收消息! 本文由作者刘骁授权发布,转载请联系原作者,个人主页http://www.liuxiao.org 目前 Semantic SLAM ...
- 语义SLAM研究现状总结
博客转载自:https://blog.csdn.net/xiaoxiaowenqiang/article/details/81051010 原文标题:深度学习结合SLAM 语义slam 语义分割 端到 ...
- 三维重建5:场景中语义分析/语义SLAM/DCNN-大尺度SLAM
前言: 在实时/非实时大规模三维场景重建中,引入了语义SLAM这个概念,参考三维重建:SLAM的尺度和方法论问题和三维重建:SLAM的粒度和工程化问题 .大规模三维场景重建的尺度增大,因此相对于整个重 ...
随机推荐
- odoo开发笔记-tree列表视图拖拽排序
odoo列表tree视图 拖拽排序 实现效果: 实现方式: 模型中定义字段: class CusYourModel(models.Model): """ 你的模型 &qu ...
- MethodImplOptions.Synchronized的一点讨论
Review代码发现有一个方法加了[MethodImpl(MethodImplOptions.Synchronized)] 属性,这个属性的目的,从名字上就可以看出,是要对所有线程进行同步执行. 对方 ...
- Spark中的常用算子
更多有用的例子和算子讲解参见: http://homepage.cs.latrobe.edu.au/zhe/ZhenHeSparkRDDAPIExamples.html map是对每个元素操作, ma ...
- Apater适配器模式(结构型模式)
1.概要 适配:即在不改变原有实现的基础上,将原先不适合的接口转换成适合的接口. what is Apater?适配,这个概念在生活中无处不在,比如你的iphone 4手机充电器坏了,这是时候只有一个 ...
- 六、CLR下的托管代码应用程序与非托管代码程序之间的性能对比
1.托管程序二次编译的问题,以及微软做的优化 五.CLR加载程序集代码时,JIT编译器对性能的产生的影响中介绍了CLR下托管应用程序的二次编译对性能产生的影响.事实上,在IL编译成本机代码的时候的时候 ...
- 说说正则表达式的exec方法
话说,关于正则表达式有一个梗,大意是: 假如你有一个问题,想用正则来解决,于是你就有了两个问题 这句话侧面反映了精通正则是一件不容易的事.比如我今天遇到的诡异事件. 情景回放 这两天练手写了一个爬用户 ...
- 第一个WCF程序
WCF的服务需要寄宿在进程中,我们把服务端的叫做宿主,为服务指定宿主指定的过程叫服务寄宿.有两种方式一种是自我寄宿(Self-Hosting),一种是IIS寄宿方式.Self-Hosting我们通过一 ...
- 二:理解ASP.NET的运行机制(例:基于HttpHandler的URL重写)
url重写就是把一些类似article.aspx?id=28的路径重写成 article/28/这样的路径 当用户访问article/28/的时候我们通过asp.net把这个请求重定向到article ...
- 高可用Hadoop平台-集成Hive HAProxy
1.概述 这篇博客是接着<高可用Hadoop平台>系列讲,本篇博客是为后面用 Hive 来做数据统计做准备的,介绍如何在 Hadoop HA 平台下集成高可用的 Hive 工具,下面我打算 ...
- rabbitmq 部署(二进制和rpm)与常用命令
目录 一 rabbitmq 简介 二 erlang 安装 三 rabbitmq rpm安装 (二进制安装和rpm安装二选一) 四 rabbitmq 二进制安装(rpm 安装和二进制安装二选一) 五 初 ...