VO综述

最近对视觉里程计(Visual Odometry,VO)比较感兴趣,就做了一些关于VO的相关调研,在这里用QA的方式总结。

什么是VO?

指通过机器视觉技术,分析相关图像序列来实时估计移动机器人的位姿(位置和姿态)过程,能克服传统里程计的不足,更加精准进行定位,并且可以运行在全球定位系统(Global Position System,GPS)无法覆盖或失效的环境中,例如室内环境、星际探索等。

鉴于视觉里程计的特点和优势,VO 在火星探测器上得到了成功应用,也在公共安全、虚拟现实(Virtual
Reality,VR)、增强现实(Augmented Reality,AR)等领域凸显出其重要的应用价值。

vSLAM与VO的区别

VO仅关注局部轨迹的一致性,而前者关注的是全局机器人轨迹的一致性。理解什么时候产生回环和有效集成新的约束到当前地图是视觉SLAM主要研究问题。VO目标是增量式重建轨迹,可能只优化前 n 个路径的位姿,即基于窗口的捆绑调整。这个滑动窗口优化在 SLAM 中只能是建立一个局部地图。

视觉里程计(VO)基本介绍

视觉里程计 (VO) 是一个仅利用单个或多个相机的输入信息估计智能体的运动信息的过程。VO 通过获取相邻两帧之间的 RT 变换关系,将获取得到的多个 RT 相乘获取得到当前帧与原始位置之间的变换关系, 然后进行迭代优化。

作为基于视觉技术的一种,在最近十几年的时间里已广泛应用于各类机器人的导航定位中,其中最成功的应用当属美国 NASA 开发的火星探测器 “勇气号” 和 “机遇号” 。除此以外,还用于无人空中飞行器、水下机器人、室内/外陆地机器人等。

视觉里程计是视觉导航的一种特殊形式,其最早可追溯到 Moravec ,他利用一个可滑动相机获取视觉信息作为输入,完成了机器人室内导航。1980 年, Matthies 等人提出了视觉里程计的概念,并设计了从特征提取、特征匹配与跟踪到运动估计的理论框架。该框架至今仍为大多数视觉里程计系统所遵循。2004 年,Nister 等人首次提出术语 “Visual Odometry”,因为它和车轮里程计的概念相似,增量式地通过对车轮转过的圈数积分估计车辆的运动。他们还提出了使用 3D 到 2D 重投影误差的基于 RANSAC 的运动估计,与 3D 到 3D 误差相比,使用 3D 到 2D 重新投影误差可以提供更好的估计。与此同时,还提出了在单目和双目立体系统中通过视觉输入获取相机的运动的开创性方法,为后来视觉里程计的研究奠定了新的基础。

相比传统的里程计技术,视觉里程计更具优势。它只利用相机完成,无需场景和运动的先验信息;不会存在编码器读数不准、传感器精度降低或惯导漂移等因素引起的数据误差;可以运用于非结构化的环境或非常规的任务和平台,如 CPS 不能满足的星际探索和导航等任务,很难满足条件的城市环境或室内环境,以及传统里程计不能应用的腿式机器人的导航和定位等。另外,系统在利用视觉信息完成里程计的同时,还可以提供丰富的景象特征, 完成障碍物识别、目标检测和可通行区域的划分等任务,为机器人的实时导航提供更充分的支持。

视觉里程计(VO)类型

视觉里程计可以根据系统所配置的相机数分为单目视觉里程计和立体视觉里程计。

单目视觉最大的缺点是缺少绝对尺度 (即图像帧序列,特征点的对应不能唯一确定,有一个变化的尺度因子),模型求解过程中,会出现尺度因子的模糊性。所以在单目视里程计中,需要一定的约束和假设,在计算过程中,也需要更多的视觉特点和图像帧参与。

而对于立体视觉,如双目视觉,其固定基线在三角测量:是一个很好的优势。已知基线便可进行视差图的精确计算,能进行快速密集的三维三角测量,而且还解决了单目视景中白尺度二义性。立体视觉通过固定和已知的基线能提供深目信息,但当物体距离远大于基线时,立体视觉也近似于单目视觉,所以立体视觉有一个景深信息获取范围。

视觉里程计(VO)著名算法

ORB-SLAM

ORB-SLAM 是西班牙 Zaragoza 大学的 Raúl Mur-Arta 编写的视觉 SLAM 系统。 它是一个完整的 SLAM 系统,包括视觉里程计、跟踪、回环检测,是一种完全基于稀疏特征点的单目 SLAM 系统,同时还有单目、双目、RGBD 相机的接口。其核心是使用 ORB (Orinted FAST and BRIEF) 作为整个视觉 SLAM 中的核心特征。

ORB-SLAM 优缺点

优点:

  • 一个代码构造优秀的视觉 SLAM 系统,非常适合移植到实际项目。
  • 采用 g2o 作为后端优化工具,能有效地减少对特征点位置和自身位姿的估计误差。
  • 采用 DBOW 减少了寻找特征的计算量,同时回环匹配和重定位效果较好。重定位:比如当机器人遇到一些意外情况之后,它的数据流突然被打断了,在 ORB-SLAM 算法下,可以在短时间内重新把机器人在地图中定位。
  • 使用了类似「适者生存」的方案来进行关键帧的删选,提高系统追踪的鲁棒性和系统的可持续运行。
  • 提供最著名的公共数据集( KITTI 和 TUM 数据集)的详尽实验结果,以显示其性能。
  • 可以使用开源代码,并且还支持使用 ROS。 (Github)

缺点:

  • 构建出的地图是稀疏点云图。只保留了图像中特征点的一部分作为关键点,固定在空间中进行定位,很难描绘地图中的障碍物的存在。
  • 初始化时最好保持低速运动,对准特征和几何纹理丰富的物体。
  • 旋转时比较容易丢帧,特别是对于纯旋转,对噪声敏感,不具备尺度不变性。
  • 如果使用纯视觉 slam 用于机器人导航,可能会精度不高,或者产生累积误差,漂移,尽管可以使用 DBoW 词袋可以用来回环检测。最好使用 vSLAM+IMU 进行融合,可以提高精度上去,适用于实际应用中机器人的导航。

现有研究中实用性最好的基于特征的 VO 方法是 ORB-SLAM2,它提出了一个更为完整的 VO 框架。ORB-SLAM2 在 ORB-SLAM 的基础上,还支持标定后的双目相机和 RGB-D 相机。双目对于精度和鲁棒性都会有一定的提升。ORB-SLAM2 是基于单目,双目和 RGB-D 相机的一套完整的 SLAM 方案。它能够实现地图重用,回环检测和重新定位的功能。无论是在室内的小型手持设备,还是到工厂环境的无人机和城市里驾驶的汽车,ORB-SLAM2 都能够在标准的 CPU 上进行实时工作。ORB-SLAM2 在后端上采用的是基于单目和双目的光束法平差优化(BA)的方式,这个方法允许米制比例尺的轨迹精确度评估。此外,ORB-SLAM2 包含一个轻量级的定位模式,该模式能够在允许零点漂移的条件下,利用视觉里程计来追踪未建图的区域并且匹配特征点。

视觉里程计(VO)研究热点

多传感器融合-视觉惯导里程计(VIO)

VINS

VINS-Mono 是基于单目视觉惯性系统的实时 SLAM 框架, 是目前非常先进的单目 VIO 算法,更是视觉与 IMU 的融合中的经典之作,其定位精度可以媲美 OKVIS,而且具有比 OKVIS 更加完善和鲁棒的初始化以及闭环检测过程,代码在 Linux 上运行,并与 ROS 完全集成。VINS-Mono 主要用于自主无人机的状态估计和反馈控制,但它也能够为 AR 应用提供精确的定位。VINS-Mobile 可以运行在 iOS 系统。

相机和 IMU 的天然互补性和智能手机的普及,使得视觉惯性里程计 VIO 近几年很流行,苹果的 ARKit 和谷歌的 ARCore 都是 VIO 的典型应用。VIO 为将来 SLAM 的小型化与低成本化提供了一个有效的方向,而且结合稀疏直接法,有望在低端硬件上取得良好的 SLAM 或 VO 效果,是非常有未来前景的。

在 VINS 相关应用案例的研究中,为了达到更好的精度效果,我们需要提前做好相机和 IMU 的标定,并且在选型相机时,要尽量选用双目和 IMU 硬件同步、同步精度较小的深度相机,这样可以避免少走很多弯路。

作者:诗人写代码
链接:https://www.jianshu.com/p/2410162b35bb
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 » 转载请注明:站长资讯平台 » 《VO综述》
 » 本文链接地址:http://www.1994july.club/?p=317

标签

防复制