分享

视觉SLAM核心综述:地图初始化、实时跟踪、局部建图、回环检测、BA优化,工程技巧

 新用户0118F7lQ 2021-12-18

视觉/图像重磅干货,第一时间送达

转自 |  计算机视觉life

什么是视觉SLAM?

先说说SLAM的定义。SLAM是指某种移动设备(如机器人、无人机、手机、汽车、智能 穿戴设备等) 从一个未知环境里的未知地点出 发, 在运动过程中通过传感器(如相 机、激光雷达、 IMU等)观测定位 自身位置和姿态,再根据自身位 姿进行增量式的地图构建, 从而达到同时定位和地图构建的 目的。

图片

如果SLAM过程使用的主要是视觉相关的传感器(如单目、双目、RGB-D、鱼眼、全景相机),一般称之为视觉SLAM。目前最知名的、效果最好的视觉SLAM是ORB-SLAM2/3系列。

图片

ORB-SLAM2/3简介

2015年,西班牙萨拉戈萨大学机器人感知与实时研究组开源了ORB-SLAM第一个版本,由于其出色的效果受到广泛关注。该团队分别在2016年和2020年开源了第二个版本ORB-SLAM2和第三个版本ORB-SLAM3。

其中ORB-SLAM2是业内最知名、应用最广泛的开源代码。它有如下优点:

  • 支持单目,双目和RGB-D相机的完整开源SLAM方案,能够实现地图重用、回环检测和重新定位的功能。
  • 支持轻量级定位模式,可以达到零漂移,此时不使用局部建图和回环检测的线程,可以用视觉里程计来跟踪未建图区域。
  • 采用ORB特征,具有旋转不变性、光照不变性、尺度不变性,匹配速度快,适合实时应用。无论是在室内的小型手持设备,还是到工厂环境的无人机和城市里驾驶的汽车,ORB-SLAM2都能够在CPU上进行实时工作。
  • 跟踪、局部地图、闭环、重定位等所有的任务都采用相同的ORB特征,使得系统内数据交互更高效、稳定可靠。
  • 单目初始化和应用场景解耦,不管是平面还是非平面场景,都可以自动初始化,无需人工干预
  • 地图点和关键帧创建比较宽松,但后续会进行严格筛选,剔除冗余关键帧和误差大的地图点,增加建图过程的弹性,在大旋转、快速运动、纹理不足等恶劣情况下可以提高跟踪的鲁棒性
  • 采用共视图,使得跟踪和建图控制在局部共视区域,与全局地图大小无关,可以在大场景下运行
  • 使用本质图(Essential Graph)来优化位姿实现回环检测,耗时少精度高 。
  • 相比于直接法,可以用于宽基线特征匹配,更适合于对深度精度要求较高的场景,比如三维重建。
  • 定位精度高,可达厘米级,是特征点法SLAM的经典代表作品。
  • 代码可读性强,包含很多工程化技巧,非常实用。

下面是ORB-SLAM2的算法框架

图片

ORB-SLAM2/3效果展示

ORB-SLAM2 在汽车上应用

图片

ORB-SLAM2 手持设备上的定位

图片

ORB-SLAM2 用于室内三维重建

图片

ORB-SLAM3在上个版本基础上,增加了视觉惯性里程计、多地图融合、适配鱼眼相机等功能,精度碾压同类型算法(见下图),功能强大到让SLAM算法研究者感慨“把自己想做的都做了”

图片

看 ORB-SLAM3 疯狂绕圈,稳的很!

图片

甚至滑滑梯从黑管子中穿过!

图片


本文仅做学术分享,如有侵权,请联系删文。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多