【ORB-SLAM 论文总结】A Versatile and Accurate Monocular SLAM System

本文为原创博客,转载请注明出处:https://blog.csdn.net/q_z_r_s/article/details/101036346

机器感知
一个专注于SLAM、三维重建、机器视觉等相关技术文章分享的公众号

Abstract

ORB-SLAM是一个基于特征点法的单目SLAM

1. Introduction

BA在给定好的初始值时可以对相机进行高精度定位估计,想要实现计算复杂度不严重的实时SLAM,必须满足如下要求:

a. 场景特征的对应观测分布在所有帧的子集中,即关键帧中
b. 由于复杂度随着关键帧的数量而增加,所以必须避免不必要的冗余
c. 要有足够的视差和充足的闭环匹配
d. 对关键帧位姿和3D点初始估值进行非线性优化
e. 使用局部地图优化实现可扩展性
f. 能够快速的执行实时的全局闭环优化,即位姿图优化

ORB-SLAM主要有以下贡献
a. 统一使用ORB特征进行跟踪、建图、重定位及闭环检测
b. 通过使用共视图,将跟踪、建图在局部共视区域中完成,独立于全局地图
c. 基于位姿图优化的闭环检测,即所谓的 Essential Graph,来自于 spanning tree,即共视图中强连接的边和闭环
d. 实时相机重定位功能
e. 自动的初始化模型选择
f. 自适应的关键帧选择,自动剔除冗余帧

2. Related Wrok

2.1 Place Recognition

在大场景中,基于 appearance 的 place recognition 比基于 map-to-map 或者 image-to-image 的效果更好。词袋模型就是属于基于 appearance 的方法,比如概率方法 FAB-MAP,还有使用从BRIEF获得的二进制单词的DBoW2。为了改善 place recognizer,使用共视图进行约束闭环候选帧,而不只是单纯的选取最佳匹配帧。

2.2 Map Initialization

从两幅图中初始化的方法要么使用单应矩阵(适用于平面场景),要么使用本质矩阵(适用于非平面场景,可以使用5点法恢复,但低视差时并不适合),另外,视差充足时,也可以通过8点法恢复基础矩阵,相机位姿也可以无模糊的恢复。而作者使用的是同时计算基础矩阵和单应矩阵,根据阈值自动选择较好的模型来初始化系统。

2.3 Monocular Simultaneous Localization and Mapping

连续帧之间含有的有用信息很少,由此看来需要适当的选择frame,PTAM就是一个基于关键帧的SLAM系统,并首次将跟踪、建图分离思想引入到SLAM中。同时,为了矫正系统尺度漂移,使用 sim3 进行7自由度位姿图优化。

3. System Overview

3.1 Feature Choice

作者选择特征的出发点是统一系统建图、跟踪及场景识别所用的特征,这里使用ORB。

3.2 Three Threads: Tracking, Local Mapping, and Loop Closing

系统总共三个并行线程:跟踪、局部建图、闭环检测
在这里插入图片描述
Tracking 线程负责估计每帧相机位姿,并决定是否需要插入新的关键帧。

Local Mapping 线程处理新的关键帧,并执行 Local BA 优化,然后对新的关键帧与其共视关键帧间再找一些新的匹配点。

Loop Closing 线程检查每个关键帧是否产生了闭环,如果确定了闭环检测,然后就计算 sim3 变换,然后再进行 sim3 位姿优化来保证全局一致性。

3.3 Map Points, Keyframes, and Their Selection

地图点和关键帧的创建很普通,但是会在后续的流程中执行剔除机制,即检测冗余关键帧和误匹配点、无法跟踪的地图点,这遏制了地图的扩张,同时提高了 tracking 的鲁棒性。

3.4 Covisibility Graph and Essential Graph

该系统从初始的关键帧开始建立增量 spanning tree,由此形成 Covisibility Graph and Essential Graph。

3.5 Bags of Words Place Recognition

闭环检测

4. Automatic Map Initialization

同时计算单应矩阵和基础矩阵,使用DLT八点法,模型选择使用评分比值决定:
在这里插入图片描述
选择好模型之后,单应矩阵会分解出8个可能的结果,基础矩阵会分解出4个可能的结果,最终会得到一对 [R | t],由此可对场景点进行重建,重建之后执行全局BA优化初始化这两帧的位姿、3D点。

5. Tracking

特征提取–>帧间位姿估计(tracking失败时进行重定位)–>跟踪局部地图–添加新的关键帧,其中关键帧选择标准如下:
在这里插入图片描述

6. Local Mapping

插入新的关键帧,更新关键帧共视图、spanning tree,地图点剔除,创建新的地图点,Local BA,关键帧剔除

7. Loop Closing

闭环候选帧检测–>计算闭环帧 sim3 变换–>使用闭环 sim3 矫正当前关键帧位姿,并传播到当前帧的共视帧–>Essential Graph sim3 优化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值