基于单目视觉的同时定位与地图构建方法综述

主要针对增强现实的应用场景。指出AR需要实时定位设备在环境中的方位。定位方案虽然已经有很多种,但多数方案要么在实际应用中存在诸多局限,要么代价太高难以普及。

背景

在AR应用中,由于虚拟物体的叠加目标通常为图像、视频,因此基于图像、视频等视觉信息的V-SLAM方案,对于确保虚实融合效果在几何上保持一致有着天然的优势。

主要针对单目相机的V-SLAM

  • V-SLAM的目标: 同时恢复出每帧图像对应的相机运动参数C1,…, Cm,及场景三维结构(即世界坐标系下的三维点)x1,…,xn。
    将世界坐标系下的三维点变换至具有特定位姿的相机的局部坐标系中,进而投影到图像中。
  • V-SLAM算法需要将不同图像中对应于相同场景点的图像点匹配起来
    通过优化,得到一组最优的C1,…, Cm和x1,…,xn。使得所有Xj在Ci图像中的投影位置hij与观测到的图像点位置xij尽可能靠近。注意Xj是指世界坐标系下的三维点。Xij是指图像点位置。
    由于V-SLAM需要进行图像特征的匹配,因此其稳定性严重依赖与场景特征的丰富程度加入其它传感器特征可以很大程度上解决这个问题。目前最常用的是结合IMU数据(加速度、角速度)。此时可以引入运动方程。VI-SLAM中需要求解每一时刻的运动速度和IMU数据的偏移量。

国际上主流的V-SLAM方法:基于滤波器、基于关键帧BA、基于直接跟踪的V-SLAM。

基于滤波器的V-SLAM:将每一时刻t的系统状态用一个高斯概率模型表达,其中期望为当前时刻系统状态估计值,协方差矩阵为该估计值误差的协方差矩阵。系统状态由一个滤波器不断更新。代表有MonoSLAM,和MSCKF。其中,

  • 前者使用EKF,后者为了缓解EKF方法的计算复杂度问题,进行了优化。
  • 传统EKF方法的局限:当预测函数和更新函数为非线性时,EKF不能保证全局最优,更容易造成误差累积。若将三维点引入状态变量,则每一时刻的计算复杂度为O(n^3)
    -MSCKF采用基于滑动窗口和通过对所有三维点进行消元来降低计算复杂度。

基于关键帧BA的V-SLAM:代表有PTAM、ORB-SLAM、RDSLAM。

  • PTAM创新在于:将tracking和mapping作为两个独立的任务在2个线程并行执行。Mapping线程仅维护原视频流中稀疏抽取的关键帧及关键帧中可见的三维点,从而高效的使用BA。有了BA恢复的精确三维结构,tracking仅优化当前帧运动参数,足以达到实时的计算效率。
  • ORB-SLAM基于PTAM,且做了改进。改用ORB特征和描述符,新增三维点的特征匹配。加入循环回路的检测和闭合机制,以消除误差累积。通过位姿图优化来闭合回路,其中关键帧作为位姿图中的节点,每个关键帧被赋予一个相似变换以矫正其方位;位姿图的边表示关键帧之间存在特征匹配。(其中,位姿图优化极大简化了全局优化的计算量,使得ORB-SLAM可以处理大尺度场景,且BA在系统中只运行于局部场景)。ORB-SLAM通过检测视差来自动选择初始化的2帧。有着更鲁棒的关键帧和三维点的选择机制。
  • RDSLAM:可自适应的对动态场景进行建模,从而实时有效的检测出场景的颜色和结构等变化并正确处理。提出基于时序先验的自适应RANSAC方法,即使在正确匹配点比例很小的情况下也能快速可靠地将无匹配点去掉。

基于直接跟踪的V-SLAM:前两类对于环境特征的丰富程度和图像质量(如模糊程度、图像噪声等)十分敏感。直接跟踪法直接比较像素颜色来求解相机运动,在特征缺失、图像模糊等情况下有更好的鲁棒性。但是直接跟踪发对光照变化和动态干扰较为敏感。且定位精度取决于选取的图像分辨率。代表有DTAM, LSD-SLAM。

  • DTAM:最显著的特点是实时恢复场景三维模型,这样既能允许AR应用中的虚拟物体与场景发生物理碰撞,又能实现稳定的直接跟踪。DTAM预测一个与当前帧相机方位十分接近的虚拟相机,在该虚拟相机中绘制场景3D模型,由此求解相机间的相对运动。为恢复场景3D模型,后台需要持续恢复参考帧的深度图。但是DTAM为每个像素都恢复稠密的深度图,并且采用全局优化,因此计算量很大,即使采用GPU加速,模型的扩展效率仍然较低
  • LSD-SLAM仅恢复半稠密深度图,且每个像素深度独立计算,因此能达到很高的计算效率。LSD-SLAM采用关键帧表达场景,每个关键帧k包含图像、逆深度图和逆深度的方差。后台对每个半稠密抽取的像素点x(梯度显著区域),并使用EKF更新逆深度图和逆深度的方差。LSD-SLAM也采用位姿图优化。

各类SLAM方法的性能分析和比较

基于单目视觉的同时定位与地图构建方法综述_第1张图片

  • 定位精度,看是否存在累积误差,以及在大尺度场景下的定位精度
  • 定位效率,计算复杂度。当前后端分开时,定位效率高。主要是定位效率和精度之间的权衡
  • 场景尺度,使用的场景中含有的点数目
  • 特征缺失鲁棒性,能否应对场景中缺乏丰富的纹理或者由于图像模糊造成的特征缺失
  • 快速运动和扩展效率,能否处理相机快速运动,一方面依赖于所采用的匹配方法在大运动情况下的鲁棒性,另一方面也依赖于场景地图的扩展效率。
  • 重定位能力,即从失败状态中恢复的能力
  • 近似纯旋转扩展鲁棒性
  • 场景变化的鲁棒性。上述的SLAM模型都假设场景是静止不变的,如果场景变化很大就会跟踪失败。如果场景中动态物体上的匹配点数相对于静态匹配点数的比例不是很大,一般能当做outliers剔除掉;但如果场景在不断改变,且大部分区域都发生了变化,那么这些系统就会失败。
  • 回路闭合能力

研究热点和发展趋势

  • 缓解特征依赖:可利用边缘、平面等更为高层的图像信息,或者是更为高层的空间布局。
  • 稠密三维重建:指出基于单目相机的V-SLAM比基于RGB-D的SLAM更为实用。难点在于需要实时恢复稠密的深度图,关键是如何权衡重建精度和计算效率。
  • 多传感器融合:融合多传感器数据本质上就是一个非线性优化问题,每种类型的传感器信息作为能量函数中的一项。难点在于运动参数需要实时的恢复出来,而变量个数会随着运行时间不断增加。
  • 运动模糊对目前的V-SLAM系统来说挑战性很大。如何支持近似纯旋转和快速扩展场景,提高对运动模糊的容忍能力,对于提高系统鲁棒性、改进AR应用体验尤为重要。
    若动态物体所占画面区域较大且特征丰富,那么传统的RANSAC方法很容易失败,需要更鲁棒的误匹配点剔除机制或者利用IMU信息来解决歧义。

你可能感兴趣的:(SLAM)