ORBSLAM2中使用ORB描述子的方法
经典的视觉SLAM系统大体分为两种:其一是基于特征点法的,其二是基于直接法的。那么本文主要就讲特征点法的SLAM。
基于特征点法的视觉SLAM系统典型的有PTAM,ORBSLAM等。本文主要围绕ORBSLAM2的方案来阐述特征点法SLAM,因为ORBSLAM2可以说是特征点法SLAM的巅峰之作。ORBSLAM2采用三个主要线程:跟踪,局部建图和闭环以及一个额外线程:全局BA,该线程只有在闭环时才会触发。值得注意的是,ORBSLAM2中每个模块中都采用ORB描述子,而不像之前的其他系统那样跟踪和回环检测使用不同的特征点,这种做法一方面是节省提取时间,另一方面可以使得整个系统更加简洁。
在跟踪阶段,ORBSLAM2对输入图像提取ORB描述子,与参考帧图像的ORB描述子进行特征匹配,具体的特征匹配方法下一讲中我们再详细讨论。如图1蓝色线所示,Rf表示参考帧(在ORBSLAM2中即是最后一个插入的关键帧Kf),Cf表示当前帧。p1表示参考帧Rf中的像素点,而p2表示当前帧Cf中与参考帧Rf匹配的ORB特征点位置。ORBSLAM2中在地图中查找p1的三维坐标P,如图1绿色线所示,查询完毕后利用外参T=[R,t]将P投影到当前帧Cf中,如图1红色线所示。如图1中黄色线所示,p2为P在当前帧Cf中的真实位置,而p2'为实际投影位置,二者之间存在误差,通过优化外参T=[R,t]来使得所有特征点之间的冲投影误差最小,实现相机的位置跟踪: