初识视觉SLAM

经典视觉SLAM框架:

传感器数据
前端:视觉里程计
后端:非线性优化
建图
回环检测

分为上述几个模块:传感器数据采集、视觉里程计(Visual Odometry)、后端优化、建图(Mapping)、闭环检测(Loop closure detection)。

视觉里程计

就是利用一个图像序列或者一个视频流,计算摄像机的方向和位置的过程。一般包括图像获取后、畸变校正、特征检测匹配或者直接匹配对应像素、通过对极几何原理估计相机的旋转矩阵和平移向量。

后端优化

后端优化理论上来说,如果视觉里程计模块估计的相机的旋转矩阵R和平移向量t都正确的话,我们就能得到完美的定位和建图了。但实际试验中,我们得到的数据往往有很多噪声,且由于传感器的精度、错误的匹配等,都对造成结果有误差。并且由于我们是只把新的一帧与前一个关键帧进行比较,当某一帧的结果有误差时,就会对后面的结果产生累计误差,最后的结果肯定误差越来越大。为了解决这个问题,引入后端优化。
  后端优化一般采用捆集调整(BA)、卡尔曼滤波(EKF)、图优化等方式来解决。其中基于图优化的后端优化,效果最好。Graph-based SLAM一般使用g2o求解器,进行图优化计算。

闭环检测

后端优化可能得到一个比较优的解,但当运动回到某一个之前去过的地方,如果我们能认出这个地方,并找到那个时候的关键帧进行比较,我们就可以得到比单用后端优化更准确更高效的结果。闭环检测就是要解决这个问题。
  闭环检测有两种方式,一是根据估计出来的相机的位置,看是否与之前否个位置邻近;另外一种是根据图像,去自动识别出来这个场景之前到过,并找到那时候的关键帧。现在比较常用的是后一种方法,其实是一个非监督的模式识别问题。比较常用的方法是使用Bag-of-Words(BOW),ORB-SLAM就是使用这个方法来进行闭环检测。

核心问题:

谈论视觉SLAM,主要指如何用 相机 解决定位和构图问题,也就是SLAM的含义所在。——Simultaneous Localization And Mapping。SLAM问题模型:状态估计问题:如何通过带有噪声的测量数据,估计内部的,隐藏着的状态变量。

根据相机不同,slam有不同实现

相机分了很多种。主要有

  • 单目相机(Monocular)
  • 双目相机 ( Stereo )
  • 深度相机 ( RGB-D )

单目相机的缺点:

  • 无法确定真实尺寸
  • 平移之后才能计算深度

双目相机

  • 通过相机间的距离(Base line)来估算像素间的位置。(和人眼类似)
  • 测量的深度范围和基线相关,基线越大,测量越远。
  • 视差的计算非常消耗资源

深度相机

  • 主动向物体发射光,并接受光,来测算距离,相当于单目和雷达的结合。避免了双目大量的计算消耗。

其中单目SLAM:
(1).PTAM(Parallel Tracking And Mapping):2007年 很牛逼的SLAM项目,是第一个使用BA完成实时SLAM的系统,论文中提出的关键帧以及多线程处理思想成为之后视觉SLAM标配。但其由于缺乏回环检测和重定位等功能,只能作用于小规模的场景,且稳定性也不是很高;
(2).2011年,Direct SLAM方法的鼻祖:DTAM(Dense tracking and mapping in real-time);
(3).2014年一个半稠密SLAM系统:LSD-SLAM(Large-Scale Direct Monocular SLAM);
(4).2015年一个比较完整的基于特征点的SLAM系统:ORB-SLAM。

RGBD:
(1).KinectFusion 2011
(2).RGBD-SLAM2 2014
(3).ElasticFusion 2015

目前根据特征点的ORB-SLAM2最为全面简洁,适合新手入门。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值