一起学SLAM之ORB-SLAM2(1)

一、 ORB-SLAM2简介

1.什么是ORB
ORB 是 O r i e n t e d F a s t a n d R o t a t e d B r i e f Oriented Fast and Rotated Brief OrientedFastandRotatedBrief 的简称, ORB特征由关键点描述子组成. 其中,关键点为改进后的FAST角点检测,关键点的描述子为BRIEF.

提取ORB特征需要如下两个步骤:

FAST角点提取:相较于原版FAST,ORB中计算了特征点的主方向,并未后续的BRIEF描述子增加了旋转不变性

FAST简介:FAST 是 F e a t u r e s f r o m A c c e l e r a t e d S e g m e n t s T e s t Features from Accelerated Segments Test FeaturesfromAcceleratedSegmentsTest 的简称,可以快速选择关键点,算法步骤如下:
a、 在图像中选取像素点 p p p,假设其亮度为 I p Ip Ip

b、 p p p为中点,选取半径为3的圆上的16个点

c、 设置一个阈值 T T T(如 I p Ip Ip的20%),判断 p p p点与周围的点的亮度,如有连续N个点的亮度大于 I p + T Ip+T Ip+T或小于 I p − T Ip-T IpT,那么 p p p点为特征点(常用的N的取值为12、9、11,他们被称为FAST-12 FAST-9 FAST-11)

d、 重复上述步骤,对每个像素执行相同的操作
在这里插入图片描述
BRIEF描述子:对前一步提取出特征点的周围图像区域进行描述。ORB对BRIEF进行了一些改进,主要是指在BRIEF中使用了先前计算的方向信息

BRIEF 是一种二进制描述子,是 Binary Robust Independent Elementary Features 的简称,它的作用是根据一组关键点创建二元特征向量。二元特征向量又称为二元描述符,是仅包含 1 和 0 的特征向量。在 BRIEF中每个关键点由一个二元特征向量描述,该向量一般为 128-512 位的字符串,其中仅包含 1 和 0

在这里插入图片描述


2.为什么是SLAM2
ORB-SLAM由Ra´ul Mur-Artal and Juan D. Tard´os于2015年提出,这一框架仅适用于单目模式,然后,在2016年二人加入了双目和RGB-D模式并发表了ORB-SLAM2


3.ORB-SLAM2框架介绍
ORB-SLAM是PTAM继承者中非常有名的一位,是现代SLAM系统中做的非常完善、易用的系统之一。其代表着主流特征点SLAM的一个高峰,相比于之前的工作,ORB-SLAM具有以下几点明显的优势:

a、 支持单目、双目、RGB-D三种模式;

b、 整个系统都是围绕着ORB特征进行计算,包括视觉里程计和回环检测的ORB字典。它体现了ORB特征是现阶段计算平台的一种优秀的效率与精度之间的这种方式;

c、 回环检测是ORB-SLAM的一大亮点。优秀的回环检测算法可以有效的防止累积误差,并且在丢失之后还能迅速的找回;

d、 ORB-SLAM使用了三个线程完成框架
实时跟踪特征点的Tracking线程,其负责对每幅新增的图像进行ORB特征点提取,并与最近的关键帧进行比较,计算特征点的位置并粗略的估计相机的位姿。

局部BA优化线程Local Mapping(俗称 “小图” ),这一线程求解一个 BA 问题,它包括局部空间内的特征点与相机位姿,可求解更加精确的相机位姿与特征点的空间位置。

全局位姿图的回环检测与优化线程Loop Closing(俗称 “大图” ),对全局的地图鱼关键帧进行回环检测,消除累积误差。由于全局地图的地图点太多,所以这个线程的优化不包括地图点,只有相机位姿组成的位姿图。

ORB-SLAM2框架中英文对照图 :
ORB-SLAM2框架中英文对照图


二、配置所需

ORB-SLAM 的开源网址:http://webdiis.unizar.es/~raulmur/orbslam/

ORB-SLAM2-Binaryhttps://github.com/poine/ORB_SLAM2,可读取二进制字典,读取速度比.txt字典文件要快得多

ORB-SLAM For Windows 的源码:https://github.com/phdsky/ORBSLAM24Windows,这里有windows下配置ORB-SLAM所需的第三方库,包括:
Pangolin(一款开源的OpenGL显示库,可以用做视频显示,而且开发容易可以用于3D视觉和3D导航的视觉图,可以输入各种类型的视频、并且可以保留视频和输入数据用于debug)
DBoW2(BOW: Bag of Words,这是一个开源的C++库,用于给图像特征排序,并将图像转化成视觉词袋表示。它采用层级树状结构将相近的图像特征在物理存储上聚集在一起,创建一个视觉词典)
g2o(图优化)

Cmake,我的是3.16.2版本,下载网址:https://cmake.org/download/

Visual Studio, 我用的是Visual Studio 2019 版

Eigen,下载网址:http://eigen.tuxfamily.org/index.php?title=Main_Page,这个库我下载的最新的版本,不需要单独的编译,在用Cmake的时候要引用

OpenCV,我用的是 2.4.13 版本,特别要注意,OpenCV3.几的版本和最新的版本我都试过,都会报错,配置的时候最好是用2.几的版本,配置过程中最麻烦的地方之一也就是在试OpenCV版本上了

配置成功后的测试数据集网址也一并放在这吧,https://vision.in.tum.de/data/datasets/rgbd-dataset/download

未完待续…

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值