语义SLAM的数据关联和语义定位(三)
与现有方法的异同
特征点SLAM中的数据关联
先回忆一下特征点SLAM中,我们是如何处理数据关联的。下面以ORBSLAM为例。
在初始化部分,我们通过特征描述子的相似性,建立两帧之间的特征点关联,然后通过RANSAC框架下的姿态估计算法得到初始的R和t,重建和优化三维点的位置。
在追踪部分,我们首先会关联当前帧和上一帧。通过预估的姿态和三维点的深度范围,初步确定每个三维点在当前帧上的搜索范围,并依靠特征描述子的相似性建立关联关系。由于这样建立的关联关系中存在部分误匹配,因此在姿态估计等后续算法中需要RANSAC框架。
在重定位部分,我们通过特征描述子的相似性建立当前帧和候选帧之间的特征点关联,在RANSAC框架下利用P4P尝试求解并优化相对姿态。
回环检测部分和重定位部分类似,只不过求解的是Sim3姿态。
可以看出,ORBSLAM中的数据关联是一对多的,即一个landmark对应于一组观测值,每个观测值只对应于一个landmark。特征点SLAM是先做数据关联,再求解和优化姿态。由于错误的数据关联会影响姿态估计准确性,因此上述算法中大量调用RANSAC框架。
直接法SLAM中的数据关联
直接法的数据关联方法和特征点法有明显的区别。以DSO为例,在初始化部分,直接法通过极线搜索光度误差最小的点,并计算逆度和方差。在追踪部分,数据关联和姿态优化是融合一体的。这里没有显式的对应点的概念。而是根据深度和姿态的变化,图像上的对应点一直在变化,通过最小化光度误差来求解姿态和深度。直接法暂时没有重定位和回环检测部分。
在优化时,DSO用鲁棒的核函数来降低局外点的影响,并通过一些规则去除错误的数据关联。
基于概率的数据关联
基于概率的数据关联和上述两种有区别也有联系。
对于一个landmark和一幅图像,特征点SLAM是一对一的,直接法是一对多的(一个由深度及其方差决定的区域),概率关联是多对多的。
图像中的检测出的目标物体有固定的位置,是离散的,在这方面更像特征点。但由于图像中的目标(10个左右)并不如特征点那样丰富(1000个左右),错误的匹配不方便通过RANSAC算法来排除(样本不足)。
基于概率的数据关联会充分考虑到一个物体对应于多个检测结果的情形,这点和直接法的数据关联又有点像,其关联关系并不固定。
语义SLAM的数据关联和语义定位(三)的更多相关文章
- 语义SLAM的数据关联和语义定位(一)
语义SLAM和多传感器融合是自动驾驶建图和定位部分比较热门的两种技术.语义SLAM中,语义信息的数据关联相较于特征点的数据关联有所不同.我们一般用特征描述子的相似性来匹配和关联不同图像中的特征点.特征 ...
- 语义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的粒度和工程化问题 .大规模三维场景重建的尺度增大,因此相对于整个重 ...
随机推荐
- C#递归方法遍历目录及子目录
众所周知,获得某一目录下第一级的所有文件和文件夹列表,很容易办到:DirectoryInfo di=new DirectoryInfo(strBaseDir);//strBaseDir是起始目录,绝对 ...
- List集合和Set集合的遍历方法
Set集合遍历方法: 对 set 的遍历 1.迭代遍历: Set<String> set = new HashSet<String>(); Iterator<String ...
- 通过修改CR0寄存器绕过SSDT驱动保护
为了安全起见,Windows XP及其以后的系统将一些重要的内存页设置为只读属性,这样就算有权力访问该表也不能随意对其修改,例如SSDT.IDT等.但这种方法很容易被绕过,我们只要将这些部分修改为可写 ...
- 一口一口吃掉Volley(二)
欢迎访问我的个人博客转发请注明出处:http://www.wensibo.top/2017/02/17/一口一口吃掉Volley(二)/ 相信看了第一篇教程之后,你应该会对Volley有一个初步的了解 ...
- StreamSets学习系列之StreamSets支持多种安装方式【Core Tarball、Cloudera Parcel 、Full Tarball 、Full RPM 、Docker Image和Source Code 】(图文详解)
不多说,直接上干货! Streamsets的官网 https://streamsets.com/ 得到 https://streamsets.com/opensource/ StreamSets支持多 ...
- 快速选择算法/Select 寻找第k大的数
参考算法导论9.3节的内容和这位大神的博客:http://blog.csdn.net/v_JULY_v上对这一节内容代码的实现进行了学习 尝试实现了以查找中位数为前提的select算法. 算法功能:可 ...
- 在Idea2017.1中编译时发生如下的错误
错误 在Idea2017.1中编译时发生如下的错误 Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8 Information:java: Errors ...
- mysql dbcp Caused By: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy ...
- 从nsq中学习如何优雅的退出go 网络程序
退出运行中的程序,可以粗暴的kill -9 $PID,但这样会破坏业务的完整性,有可能一个正在在执行的逻辑半途而费,从而产生不正常的垃圾数据. 本文总结在go语言中,如何能优雅的退出网络应用,涉及的知 ...
- (转)mybatis-plus入门
目前正在维护的公司的一个项目是一个ssm架构的java项目,dao层的接口有大量数据库查询的方法,一个条件变化就要对应一个方法,再加上一些通用的curd方法,对应一张表的dao层方法有时候多达近20个 ...