zoukankan      html  css  js  c++  java
  • 论文阅读 ORBSLAM3

    这周末ORB-SLAM3出现了.先看了看论文.IMU部分没细看,后面补上.

    Abstract

    • 视觉,视觉惯导,多地图SLAM系统
    • 支持单目/立体/RGBD相机
    • 支持pinhole/鱼眼相机

    基于特征/紧耦合/视觉惯导,基于最大后验估计的SLAM系统,即使是在IMU的初始化阶段。

    我们的系统更准2-5倍。


    多地图系统,基于新的场景识别,提升了recall。

    1. Introduction

    • short-term data association 前段配
    • mid-tem data assocation 后端配
    • long-term data association 回环配(MGI配)

    我们还提出了multi-map data association

    • ORB-SLAM Atlas: Atlas可以代表一组非连续的地图。可以用于,场景识别,相机重定位,回环检测,和地图融合。
    • Abstract camera representation:感觉就是相机模型单独实现一个类/库。

    它承认LK比描述子匹配稍微鲁邦一点。

    我们的ORB-SLAM3比VINS-Mono准2.6倍,在单目VIO配置下。

    3. System Overview

    • Atlas
    • Tracking thread
    • Local Maping thread 在有IMU的时候,IMU参数是初始化,然后用MAP-estimation refine。
    • Loop and map merging thread

    4. Camera Model

    我们的目标是抽象所有的相机模型,提取所有相机模型相关的特性/函数(投影/反投影/雅克比..)。

    A. Relocalization

    ORB2中用ePNP,但是需要pinhole相机模型。我们用了MLPnP【76】,和相机模型解耦了。

    B. Non-recitified Stereo SLAM

    立体图像都转换成pinhole,一样的焦距,共平面,而且在水平极线上。

    现在不了,泛化性更强。

    • 两个相机之间是SE3的关系(相机外参)
    • 可选择:有共视区域

    5. Visual-Inertial SLAM

    A.基础

    状态向量:

    [mathcal{S}_{i} doteqleft{mathbf{T}_{i}, mathbf{v}_{i}, mathbf{b}_{i}^{g}, mathbf{b}_{i}^{a} ight} ]

    整个优化问题:

    [min _{ ilde{mathcal{S}}_{k}, mathcal{X}}left(sum_{i=1}^{k}left|mathbf{r}_{mathcal{I}_{i-1, i}} ight|_{Sigma_{mathcal{I}_{i, i+1}}^{2}}^{2}+sum_{j=0}^{l-1} sum_{i in mathcal{K}^{j}} ho_{ ext {Hub }}left(left|mathbf{r}_{i j} ight|_{Sigma_{i j}} ight) ight) ]

    它认为inertial残差不需要huber norm,因为不存在错配。

    B. IMU初始化

    有一些系统比如VI-DSO[46]尝试从scratch VI BA来解决,sidestepping(回避)一个初始化阶段。

    我们的insights:

    • 纯单目的SLAM可以提供很准的初始地图,但是scale未知,解决视觉-only的问题会提升IMU初始化。
    • 不要使用隐式的BA表达,显式的优化问题可以使得尺度更快收敛。
    • 在IMU初始化阶段忽略传感器不确定性的话会产生很大的不可预测的误差

    1. Vision-only MAP Estimation: 在初始的2秒初始化单目SLAM,以4Hz插KF,这样有10个pose和百余个点。
    2. Inertial-only MAP Estimation:

    inertial变量:

    [mathcal{Y}_{k}=left{s, mathbf{R}_{mathrm{w} g}, mathbf{b}, overline{mathbf{v}}_{0: k} ight} ]

    (s in R^+) 是尺度,(R_{wg}in SO3) 是重力方向,用两个角度表示,重力向量在世界系中是(g=R_{wg}g_I)(g_I = (0, 0, G)^T)(overline{mathbf{v}}_{0: k} in mathbb{R}^{3}) 是up-to-scale的body速度(从第一到最后的关键帧),从(overline{mathbf{T}}_{0: k}) 初始估计。

    。。。

    C. Tracking and Mapping

    在一些特殊的case,比如缓慢的移动没有提供好的关于inertial参数的观测性,初始化可能收敛在好的结果。我们提出了一个变种的inertial-only的优化,它包含了所有插入的关键字,但是只优化尺度重力方向。在这种情况下,biases是常量的假设就没有了,我们会给每个帧估计,然后修正。这个优化很高效,在local mapping线程里每10秒做一次,知道有100多个关键字或者跑了75秒以上。

    D. Robustness to tracking loss

    • 短时的丢失:用IMU来估计当前状态,然后投影匹配。
    • 长时丢失:初始化一个新的visual-inertial map。

    6. Map Merging and Loop Closing

    A. Place Recognition

    为了获得高recall,每个关键字在dbow2 database 查询。为了获得100%的准确,我们走几何验证。

    如果 几个候选,我们检查最优比次优。

    • 在有IMU的时候,再检查一下重力方向。

    B. Visual Map Merging

    当场景识别产生了multi-map的数据关联,KF (K_a) (当前地图(M_a),a表示active)- KF (K_m) (Atlas (M_m)),相对变换是(T_{am})

    1. Welding window assembly
    2. 地图融合
    3. Welding bundle adjustment 弄一个local BA
    4. Pose-graph optimization

    C. Visual-Inertial Map Merging

    大差不差吧。

    D. Loop Closing

    7. Experiment Result

    • 测了 单目/单目-IMU/立体/立体-IMU

    A. single-session SLAM on EuRoC

    单目/立体:ORB3比2更准是因为回环算法 - 更早的回环,更多的mid-term匹配。有趣的是,DSM获得次优的表现因为使用了mid-term的匹配,即使没有回环。

    单目-IMU:ORB3比VI-DSO和VINs-Mono准两倍,说明了mid-term和long-term数据关联的优势。

    双目-IMU:ORB3比OKVIS,VINs-Fusion和Kimera好很多。

    B. Visual-Inertial SLAM on TUM-VI

    在单目提1500个点,双目是一张图1000个点。

    。。。

    C. Multi-session SLAM

    。。。

    8. Conclusions

    描述子感觉可以解决mid/long term的匹配问题,但是tracking没有LK鲁邦。

    一个有趣的线是研发光度技术来解决4种数据关联问题。

    其他没啥。

  • 相关阅读:
    20165328《信息安全系统设计基础》实验二固件程序设计实验报告
    20165328《信息安全系统设计基础》第六周学习总结
    2018-2019-1 20165305 20165319 20165328 实验一 开发环境的熟悉
    2018-2019-1 20165328《信息安全系统设计基础》第四周学习总结
    2018-2019-1 20165328 《信息安全系统设计基础》第三周学习总结及实验报告
    20165328《信息安全系统设计基础》第一周总结
    20165358课程总结
    20165328 实验五《网络安全编程》实验报告
    20165218 2018-2019-1 《信息安全系统》第八章学习总结
    2018-2019-1 20165218 实验三 实时系统
  • 原文地址:https://www.cnblogs.com/tweed/p/13384022.html
Copyright © 2011-2022 走看看