作者:小觅智能
链接:https://www.zhihu.com/question/35116055/answer/517138352
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
ORB-SLAM 是西班牙 Zaragoza 大学的 Raúl Mur-Arta 编写的视觉 SLAM 系统。 它是一个完整的 SLAM 系统,包括视觉里程计、跟踪、回环检测,是一种完全基于稀疏特征点的单目 SLAM 系统,同时还有单目、双目、RGBD 相机的接口。其核心是使用 ORB (Orinted FAST and BRIEF) 作为整个视觉 SLAM 中的核心特征。
ORB-SLAM 基本延续了 PTAM 的算法框架,但对框架中的大部分组件都做了改进, 归纳起来主要有 4 点:
引自《基于单目视觉的同时定位与地图构建方法综述》
ORB-SLAM 的整体系统框架图
ORB-SLAM 它是由三大块、三个流程同时运行的。第一块是跟踪,第二块是建图,第三块是闭环检测。
这一部分主要工作是从图像中提取 ORB 特征,根据上一帧进行姿态估计,或者进行通过全局重定位初始化位姿,然后跟踪已经重建的局部地图,优化位姿,再根据一些规则确定新关键帧。
2. 建图(LocalMapping)
这一部分主要完成局部地图构建。包括对关键帧的插入,验证最近生成的地图点并进行筛选,然后生成新的地图点,使用局部捆集调整(Local BA),最后再对插入的关键帧进行筛选,去除多余的关键帧。
3. 闭环检测(LoopClosing)
这一部分主要分为两个过程,分别是闭环探测和闭环校正。闭环检测先使用 WOB 进行探测,然后通过 Sim3 算法计算相似变换。闭环校正,主要是闭环融合和 Essential Graph 的图优化。
ORB-SLAM 优缺点
优点:
缺点:
ORB-SLAM2
ORB-SLAM2 在 ORB-SLAM 的基础上,还支持标定后的双目相机和 RGB-D 相机。双目对于精度和鲁棒性都会有一定的提升。ORB-SLAM2 是基于单目,双目和 RGB-D 相机的一套完整的 SLAM 方案。它能够实现地图重用,回环检测和重新定位的功能。无论是在室内的小型手持设备,还是到工厂环境的无人机和城市里驾驶的汽车,ORB-SLAM2 都能够在标准的 CPU 上进行实时工作。ORB-SLAM2 在后端上采用的是基于单目和双目的光束法平差优化(BA)的方式,这个方法允许米制比例尺的轨迹精确度评估。此外,ORB-SLAM2 包含一个轻量级的定位模式,该模式能够在允许零点漂移的条件下,利用视觉里程计来追踪未建图的区域并且匹配特征点。
深度相机选择
目前的主流视觉深度传感器方案主要分结构光,Time-of-Flight 和纯双目三类。双目跟结构光一样,都是使用三角测量法根据物体匹配点的视差反算物体距离,只是双目是用自然光,而结构光是用主动光发射特定图案的条纹或散斑。ToF 是通过给目标连续发送光脉冲,然后用传感器接收从物体返回的光,通过探测光脉冲的飞行(往返)时间来得到目标物距离。
ToF 和结构光都属于主动光,比如 Kinect 1,2 代(现已停产),容易受可见光和物体表面干扰,所以更适合室内和短距离的应用场景。
图 | 「视觉+结构光+惯性导航」融合的双目方案效果更好
小觅双目深度相机系列融合了 VSLAM+IMU ,提升精度的同时减少了累积误差和漂移,(IR)红外主动光探测器可辅助识别室内白墙和无纹理物体,克服了 ORB-SLAM 初始化运动时对无纹理物体不友好的特性。同时支持 ORB-SLAM , OKVIS,viorb 和 vins 多个开源项目案例,为了方便小伙伴们开发、移植、学习和应用,我们在 Github 上分享了 MYNT-ORBSLAM2-Sample ( ROS 及非 ROS 的接口都有提供噢~)。戳这里:slightech/MYNT-EYE-ORB-SLAM2-Sample
这是我们跑 ORB-SLAM2 的效果:
ORB-SLAM2
更多 SLAM 学习资源可以看这里:
小觅智能开学季 | 学习 SLAM 该如何入门?zhuanlan.zhihu.com小觅智能 | VINS 学习笔记zhuanlan.zhihu.com
附专业名词解释
Bag-of-words:词袋算法 ,它是主要用来判断同一个地点是不是被重新访问过,它的算式在实现的原理上可以认为是对每一帧或者叫每一幅图用了很多单词来进行描述。
在实际应用中在这个词袋中使用的单词量会非常大,并且这些词在现实中并没有一个非常明确的物理含义;词袋方案现在主流所采取的方案之一,它做得最好的一方案叫 DBOW2,也是一个开源的方案。
Bundle Adjustment(BA):光束平差法,就是利用非线性最小二乘法来求取相机位姿,三维点坐标。在仅给定相机内部矩阵的条件下,对四周物体进行高精度重建。
Bundle Adjustment 可以将所观测的图像位置和预测的图像位置点进行最小 error 的映射(匹配),由很多非线性函数的平方和表示(error)。因此,最小化 error 由非线性最小二乘法实现。
Essential Graph:基于位置优化的实时闭环控制。它通过生成树构建,生成树由系统、闭环控制链接和视图内容关联强边缘进行维护。
PS:我们从不同的客户上发现了很多有趣的应用场景,比如有一个歪果仁用我们的双目识别健身时带动的每块肌肉,告诉你的健身姿势是否准确,自动追踪运动的次数,使健身这件事变得可以量化,提升健身效果,还让每一位健身爱好者摆脱健身房场地的束缚,想必健身行业未来会有更多的想象空间。
我们希望有更多行业用户能够分享小觅双目应用项目,激发更多研究灵感,并推出了有奖征集活动,快来参加啦啦啦~