多目slam论文阅读系列一:MULTICOL-SLAM论文阅读

论文地址:https://arxiv.org/pdf/1610.07336.pdf

 代码:GitHub - urbste/MultiCol-SLAM: This repository contains a multi-fisheye camera SLAM. The underlying SLAM system is based on ORB-SLAM.参考文档:【算法】跑MultiCol-SLAM遇到的效果展示(环境:Ubuntu18.04+ROS melodic)_BigHandsome2020的博客-CSDN博客

论文贡献

1. 介绍了multi-keyframes(MKFs), multi-camera-system(MCS)

2. A hyper-graph formulation of MultiCol (MultiCol的混合图模型)

3. 多相机回环检测

4. Minimal non-central absolute pose estimation methods forre-localization  重定位使用了最小化去中心点的位姿估计

5. 基于本质图的不同的初始化方法

6. several performance improvements

系统框架

下图红字表示为multicol新增部分。而其中可以看到,我们对于BA,位姿估计,地图点三角化和相对反向计算都提供了创新。

多目slam论文阅读系列一:MULTICOL-SLAM论文阅读_第1张图片

其具体细节包括:

* 每一个图像集合的特征被提取,用于匹配。利用hash map加速特征点到地图的匹配。

* 局部地图点被投影到多相机系统和当前帧的地图点匹配。

* 如果初始位姿估计失败,GP3P和RANSAC会被用于执行重定位。(orb slam2中通过epnp执行此操作)

* 因为一个地图点可以同时被多个相机观测,因此,我们使用hyper graph 而不是 graph去进行优化。

MultiCol 模型

多目slam论文阅读系列一:MULTICOL-SLAM论文阅读_第2张图片

上式表达一点经过从world -> body -> camera的坐标转换

Map entities 地图主体

map points

* 在世界坐标系的三维坐标

* 用d_{max} 和d_{min}来表示点被观察的距离范围

* 视线方向 ni = [n_x, n_y, n_z]

Multi-Keyframes

因为每个关键帧包含多张图片,因此被称为Multi-Keyframe, MCS包含相机外参和内参

  • pose
  • 每一个相机提取的特征点存储它的图像坐标系的位置(用于BA和位置估计),以及3D bearing vector(用于本质矩阵估计以及GP3P)。

Co-Visibility Graph

Map Initialization

地图初始化包括相机位姿和初始地图点的建立,初始化的精确程度关系到整个系统的效果。

The accuracy and robustness of the initial reconstruction has asignificant impact on the overall performance of the system.

在orb slam中,初始化基于足够的视差,所以在纯旋转和只对于一个平面观察时,初始化会失败。

作者尝试了基于多相机多位姿的几种方法,但是效果不理想,而Ventura et al在2015的作品值得进一步关注。

我们提出了一种相对实际的方法,我们通过Ransac估计矩阵E,然后选择有最大inliners和旋转尺度的位姿,然后寻找在多个相机中的共视点。最后,我们针对所有相机位姿使用BA。

Tracking线程

tracking线程最重要的是保证实时性。

所有的优化都采用基于LM的iterative re-weighted least squares(IRPLS)

特征点 

FAST特征在新环境下通常需要训练,因此,我们使用AGAST角点作为取代。我们对于每个AGAST特征提取ORB描述子。

基于上一时刻的跟踪

基于固定的地图点,我们进行跟踪,然后对于位姿进行优化,然后基于优化后的位姿接着寻找匹配点。

重定位

在跟踪失败后,我们会进行重定位,在ORB SLAM2中,初始位姿估计是通过EPnP和RANSAC实现的。而我们替换掉它有两点原因。

1. EPnP在点数较少的时候,估计非常不准确。

2. 我们多相机的场景不适用。

我们使用UPnP,GP3P的方法。

 Mapping线程

你可能感兴趣的:(SLAM,论文阅读)