视觉里程计 (VO) 是一个仅利用单个或多个相机的输入信息估计智能体的运动信息的过程。
相比传统的里程计技术,视觉里程计更具优势。它只利用相机完成,无需场景和运动的先验信息;不会存在编码器读数不准、传感器精度降低或惯导漂移等因素引起的数据误差;可以运用于非结构化的环境或非常规的任务和平台,如 CPS 不能满足的星际探索和导航等任务,很难满足条件的城市环境或室内环境,以及传统里程计不能应用的腿式机器人的导航和定位等。另外,系统在利用视觉信息完成里程计的同时,还可以提供丰富的景象特征, 完成障碍物识别、目标检测和可通行区域的划分等任务,为机器人的实时导航提供更充分的支持。
视觉里程计可以根据系统所配置的相机数分为单目视觉里程计和立体视觉里程计
单目视觉最大的缺点是缺少绝对尺度 (即图像帧序列,特征点的对应不能唯一确定,有一个变化的尺度因子),模型求解过程中,会出现尺度因子的模糊性。所以在单目视里程计中,需要一定的约束和假设,在计算过程中,也需要更多的视觉特点和图像帧参与。
而对于立体视觉,如双目视觉,其固定基线在三角测量:是一个很好的优势。已知基线便可进行视差图的精确计算,能进行快速密集的三维三角测量,而且还解决了单目视景中白尺度二义性。立体视觉通过固定和已知的基线能提供深目信息,但当物体距离远大于基线时,立体视觉也近似于单目视觉,所以立体视觉有一个景深信息获取范围。
ORB-SLAM 优缺点
优点:
- 一个代码构造优秀的视觉 SLAM 系统,非常适合移植到实际项目。
- 采用 g2o 作为后端优化工具,能有效地减少对特征点位置和自身位姿的估计误差。
- 采用 DBOW 减少了寻找特征的计算量,同时回环匹配和重定位效果较好。重定位:比如当机器人遇到一些意外情况之后,它的数据流突然被打断了,在 ORB-SLAM 算法下,可以在短时间内重新把机器人在地图中定位。
- 使用了类似「适者生存」的方案来进行关键帧的删选,提高系统追踪的鲁棒性和系统的可持续运行。
- 提供最著名的公共数据集( KITTI 和 TUM 数据集)的详尽实验结果,以显示其性能。
- 可以使用开源代码,并且还支持使用 ROS。 (Github: slightech/MYNT-EYE-ORB-SLAM2-Sample)
缺点:
- 构建出的地图是稀疏点云图。只保留了图像中特征点的一部分作为关键点,固定在空间中进行定位,很难描绘地图中的障碍物的存在。
- 初始化时最好保持低速运动,对准特征和几何纹理丰富的物体。
- 旋转时比较容易丢帧,特别是对于纯旋转,对噪声敏感,不具备尺度不变性。
- 如果使用纯视觉 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 包含一个轻量级的定位模式,该模式能够在允许零点漂移的条件下,利用视觉里程计来追踪未建图的区域并且匹配特征点。
多传感器融合-视觉惯导里程计(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 硬件同步、同步精度较小的深度相机,这样可以避免少走很多弯路。