• 多目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,位姿估计,地图点三角化和相对反向计算都提供了创新。

    其具体细节包括:

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

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

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

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

    MultiCol 模型

    上式表达一点经过从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线程

  • 相关阅读:
    深入解析Rivest Cipher 4:理论与实践
    XC6206P332MR(0.25V低压差线性LDO稳压器,稳压输出3.3V,最大电压输入6V,输出电流250mA)
    基于蝴蝶算法的无人机航迹规划-附代码
    3.计算机网络
    linux opensuse使用mtk烧录工具flashtool
    (附源码)php初中历史专题教学网站 毕业设计 100623
    ArcGIS10.1软件安装教程
    JAVA小游戏 “拼图”
    网页大作业代码自取
    iptables 命令和 iptables.service 服务 有什么关系 ?
  • 原文地址:https://blog.csdn.net/m0_47096428/article/details/127932877