ORB_SLAM 论文阅读PART5

TRACKING

A. ORB Extraction

我们在八个尺度上提取FAST角点(尺度因子为1.2)。图像的分辨率从512x384到752x480个像素,我们发现提取1000个角点都是适合的,对于更高的分辨率,像在KITTI上分辨率为1241x376,我们提取2000个角点。为了确保均匀分布,我们将每个比例级别划分为网格,尝试每个单元格提取至少5个角点。然后我们在每个单元格中检测角点。如果没有足够的角点被发现,我们调整检测的阈值。如果有的单元格没有角点(无纹理和对比度的),则每个单元格保留的角点数也会调整。然后在保留的FAST角点上计算方向和ORB描述符。 与PTAM中的补丁相关搜索相反,ORB描述符用于所有特征匹配。

B. Initial Pose Estimation from Previous Frame

如果最后一帧tracking成功,我们使用恒速模型预测相机位姿,执行对最后一帧中观察到的地图点的引导搜索。如果没有找到足够的匹配(即明显违反运动模型),我们使用更广泛的搜索它们在最后一帧中的位置周围的地图点。 然后使用找到的对应关系优化姿势。

C. Initial Pose Estimation via Global Relocalization

如果tracking丢失了,我们将该帧转换为词袋,并在识别数据库中查询全局重定位的关键帧候选。我们计算与每个关键帧中地图点相关联的ORB的对应关系。然后,我们对每个关键帧执行RANSAC迭代,并尝试使用PnP算法找到相机位姿。如果我们发现一个相机位姿有足够的内点,我们优化这个位姿并且使用候选关键帧的地图点执行更多匹配的引导式搜索。最后,相机位姿再次被优化,并且如果有足够的内点,则tracking过程继续。

D. Track Local Map

一旦我们估计了相机位姿并有了一组初始特征匹配,我们就可以将地图投影到帧中并搜索更多的地图点对应关系。为了限制大型地图的复杂性,我们只投影局部地图。该局部地图包含与当前帧共享地图点的一组关键帧K_1,以及与共视图中的关键帧K1相邻的一组K_2。局部地图还具有参考关键帧K_{ref}K_1,其与当前帧共享大多数地图点。现在,在当前帧中搜索K_1K_2中看到的每个地图点,如下所示:

  • 计算地图点在当前帧的投影X,如果放置在图像之外则丢弃。
  • 计算当前观察视角v与地图点平均观察方向n之间的角度。 如果v·n <cos(60°)则丢弃。
  • 计算地图点到相机中心的距离d,如果超出地图点的尺度不变性区域d /∈ [dmin, dmax],则丢弃。
  • 通过比率d / dmin计算帧中的比例。
  • 将地图点的代表性描述符D与帧中仍然未匹配的ORB特征在尺度比例和x附近进行比较,并将地图点与最佳匹配相关联。

E. New Keyframe Decision

最后一步是确定当前帧是否作为新的关键帧生成。 由于局部建图中存在一种剔除冗余关键帧的机制,我们将尽可能快地插入关键帧,因为这样可以使tracking对于挑战性的相机运动(通常是旋转)更加鲁棒。要插入新的关键帧,必须满足以下所有条件:

  • 对于上一次全局重定位必须已经超过20帧。
  • 局部建图应处于空闲状态,或者从上一个关键帧插入开始已超过20帧。
  • 当前帧至少跟踪了50个点。
  • 当前帧跟踪的点数比K_{ref}少90%

我们不是像PTAM将距离标准用于其他关键帧,而是施加最小的视觉变化(条件4)。我们不是像PTAM将距离标准用于其他关键帧,而是施加最小的视觉变化(条件4)。 条件1确保良好的重定位和条件3良好的跟踪。 如果在局部建图繁忙时插入关键帧(条件2的第二部分),则发送信号以停止Bundle Adjustment,以便它可以尽快处理新的关键帧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值