SLAM十四讲-后端(1)

0.特征点法

视觉SLAM主要分为视觉前端和优化后端。前端也称为视觉里程计(VO),根据相邻图像的信息估计处粗略的相机运动,给够后端提供较好的初始值。 VO的实现方法,按是否需要提取特征,可分为特征点的前端和不提特征点的直接法前端。

VO的主要问题是如何根据图像估计相机的运动:从图像选取有代表性的点(路标),在相机发生微小变化时会保持不变,接着从各个图片找到相同的点,进而讨论相机位姿估计问题。其中,一种直观的提取特征方式就是在不同图像间辨认角点,确定其关系。

特征点由关键点和描述子俩部分组成。其核心思想为:“提取关键点,计算描述子”。关键点是指该特征点在图像里的位置,有些具有朝向、大小等。描述子为向量,描述了该关键点周围像素的信息,“外观相似的特征应有相似的描述子”。

特征提取:SIFT,考虑了图像变换过程中出现的光照等变化,但是计算量大,需要经过GPU加速后才能满足实时要求。FAST关键点,没有描述子。ORB特征提取,改进了FAST不具方向的问题,运用了BRIEF描述子,较好的选择。

1.1.ORB特征提取

ORB特征提取分为两个步骤:

1.FAST角点提取:找出角点,计算特征点主方向,为后面的描述子增加了旋转不变性。
2.得到描述子,进而对前一步提出特征点的周围图像区域进行描述。

A. 原始FAST关键点:

主要检测局部像素灰度变化明显的地方,速度快。主要思想是:如果一个像素与领域像素差别较大,则很有可能是角点。

检测过程如下:

1.在图像中选取像素p,假设它的亮度为 IpIp 。
2.设置一个阈值TT(比如,IpIp 的30%30%)
3.以像素为中心,选取半径为3的圆上的16个像素点。
4.假如圆上有连续的N个点的亮度大于Ip+TIp+T 或小于 Ip−TIp−T,那么像素pp可以被认为是特征点(NN通常取12,FAST-12,其他取值为9和11)
5.对每个像素执行此操作。

优缺点:

虽然速度快,但是经常会出现角点“扎堆”,FAST特征点数量很大但是不确定,而我们往往希望提取固定数量的特征点。

B. ORB改进后的FAST关键点(Oriented FAST):

在满足上述方法的前提下,首先对角点进行Harris响应值计算,然后选取前N个具有最大响应值的角点作为最终角点集合同时添加了尺度和旋转的描述,

尺度不变性:由构建图像金字塔,并在金字塔的每一层上检测角点来实现。

特征的旋转:由灰度质心法实现。

C. BRIEF描述子(Steer BRIEF)

BRIEF是一种二进制描述子,有许多0,1组成,这里的0,1编码了关键点附近俩个像素(比如p和q的大小)关系:如果p比q大,那么取1,反之取0。pp和qq是按照某种概率分布随机选点的比较。如果个我们选择了128个这样的p,qp,q,最 后就得到128维由0,1组成的向量。

计算两个特征点的描述子在向量空间上的汉明距离,距离相近,就可以认为他们是同样的特征点。
 

1.2.特征匹配

顾名思义,即确定当前看到路标和之前看到的路标之间的对应关系,简而言之,就是希望不同图像之间的特征之间的数据关联问题通过图像与图像或图像与地图之间的描述子进行准确匹配,可以为后续的姿态估计减轻负担,但是误匹配广泛存在,是限制SLAM的一大瓶颈。

若:

图像I${_t}提取到的特征点x{_t^m},m=1,2,...,M

图像I${_{t-1}}提取到的特征点x{_{t-1}^n},n=1,2,...,N

匹配方法:

暴力匹配:图像上的所有特征点历遍求与跟描述子的距离(欧式距离),进行比较,求出最小值那个。

但是!!当特征点较多时,暴力匹配的运算量会很大,不符合SLAM的实时性要求。

快速近似最近邻(FLANN)算法更适合匹配数量多的情况。

2.1 2D-2D:对极约束

假如从俩张图片中得到了一对配对好的特征点,如果有若干对这样的匹配点,那么可以通过这些二维图像点的对应关系,恢复俩帧之间摄像机的运动。

步骤:

1 根据匹配好的点的像素位置求出E或者F

2 根据E或者F求出R,t

2.2三角测量

三角测量的用途是获得地图上点的深度Z.

3.1PnP(Perspective-n-Point)

PnP是一种求解3D到2D点对运动的方法。描述了当知道n个3D空间点及其投影位置时,如何估计相机的位姿。PnP有很多种求解方法,但是需要掌握的是Bundle Ajustment方法(非线性优化)。简单来说就是一个最小二乘法问题,误差项就是将3D点的投影位置与观测位置作差,即一个重投影误差。详细推到过程见书本。

4.1结论

至此,我们讨论了ORB特征匹配(FAST关键点和BREIF描述子),通过汉明距离来进行判断匹配,然后讨论了2D-2D(通过匹配像素值求出本质矩阵,进而求出R和t,同时也可通过三角测量来进行深度估计,这个针对单目),3D-2D(通过直接线性变换或者PnP利用相机一坐标系的点求出相机二坐标系的点,然后相机二的点投影到相机然后进行BA优化)。
 

 

发布了16 篇原创文章 · 获赞 1 · 访问量 4010

猜你喜欢

转载自blog.csdn.net/Wu_whiteHyacinth/article/details/103201563