一起研究ORB-SLAM(二)---Tracking线程

转载自 一起研究ORB-SLAM(二)


上一篇文章我讲述就ORB-SLAM的基本流程,还记得ORB-SLAM分为哪三个主要的线程吗?在脑子里头大声的所出来吧,Tracking、LOCAL MAPPING 和 LOOP CLOSING,今天就要讲述第一个线程的所带个大家的故事。 

一起研究ORB-SLAM(一)--结构和入口  
小莱姆:师兄,我也想知道我是怎么样工作的,能否将的通俗一点,少点公式,多点初学者能明白的语言吧!! 


今天详细的写一下关于 Tracking  线程的内容,该线程共分为五个部分,分别是对帧的初始化,相机位姿跟踪、地图局部跟踪、是否生成关键帧和生成关键帧五个部分,主要流程如下图所示的几个过程。
 

初始化:  
初始化的过程主要含有两个方法,分别是对双目或 RGBD 和单目初始化的过程,其中第一个方法 SteroInitialzation 主要是对双目和 RGBD ,而 MonocularIntialzation 是对单目进行初始化的。  
相机位姿跟踪(主要是针对两个关键帧之间的优化):  
该部分的代码量占了将近源代码的二分之一,所示是很重的部分 !!! 
该部分主要的两个方法是对用户界面操作的时候时使用,默认是采用第一种方法,第二种方法是进行跟踪与定位。不进行地图的构建。第一种方法主要是开启建图和跟踪的工作,其中位姿跟踪的方法共分为两种,分别是分别是匀速模型跟踪和关键帧模型跟踪,分别对应的方法是 TrackWithMotionModel TrackReferenceKeyFram ,下图的第一附 = 张图片是匀速模型,该模型主要默认第 K 帧的几机帧是匀速的,所以Δ R k-1  约等于   Δ R 然后使用 g2o 进行投影优化得到一个比较稳定的值。   关键帧使用的情况是当匀速模型失败的时候,如下图第二幅所示,当参考帧是 KF 的时候, F k 默认自己的位姿和参考帧的位姿相同,从而进行优化。
                

若是图片的跟踪失败,触发重定位函数,进行帧的重定位,重定位主要使用 EPNP 方法继续求解。  
步骤如下:  
1.         首先通过 BOW 继续搜索,搜索到一个比较可靠关键帧,然后继续 EPNP 求解。  
2.         EPNP 过程:假设在世界坐标系下有 N 3D Pi   从其中选择 4 个控制点,选择的规则是   质心     使用 PCA 算法在三个主方向上个选一个。  
3.         使用之前的每个 3D 点找到 4 个选取值对应的 a j   点,使得
上面计算的是在世界坐标系下,但是在相机坐标系下依然要满足于上述的等式: 
 

只要求出相机坐标系下的 p i c j 即可。  
根据投影模型,就可以的到下面的式子,其中λ为尺度 P 为相机的内参矩阵。
 
通过等式的分解,尺度λ可以约掉,就可以得得到下面的两组等式。

可以把上面的两个式子写成 MX = 0

然后进行特征值分解 M 矩阵!!!   其种 N 值可以选择 4 种,分别是 1 2 3 4 ORB-SLAM  中采用的是 3.

在求解的过程中,可以认为四个控制点的距离是不变的,故而可以通过四个参考点进行两两组合,求出 6 个对应的距离,所以根据尺度的不变性,可以的出如下的约束。然后使用高斯牛顿法进行错误率的优化,之后得出正确的点值。

局部地图跟踪(附近跟自己有关的关键帧优化):  
优化的是局部的,跟自己有关系的关键帧,优化  
方法 1 UpdateLocalMap()   
该方法主要是找到自己有关的关键帧,形成一个集合并找到对应的关键点  
方法 2 SearchLoalPoints() 
获取局部地图与当前帧的匹配  
方法 3 PoseOptimization() 
优化当前的位姿  
三个方法主要是为了弥补位姿跟踪过程中产生的不足。  
  
是否生成对应的关键帧  
三个关键条件:   很长时间没有插入关键帧   局部地图空闲    跟踪快要失败的时候  
  
最后生成关键帧  
主要方法是 KeyFrame( 当前关键帧,地图管理器,关键帧数据库 ); 



小莱姆:师兄,我终于看明白了,一些公式还是很简单的,但是还要回去补习数学知识
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值