看了一下港科的基于vins拓展的论文<relocalization, global optimization and merging for vins>,在回环的实现部分总体没有什么变化,DBoW2 + PnPRANSAC + 4DOF pose graph,唯一的改动是在pnp前面加了个fundamental matrix RANSAC,应该是有效果调优的,但是根据之前VINS和LDSO的写法,DBoW2 + PnPRANSAC也是够用的.别的一些不同的操作就是在用回环帧更新当前pose的位姿的时候不是直接修正,而是把回环帧作为一个固定帧加入到当期那滑窗.其他的工作更偏向纯实现吧,包括地图的保存和读取.

Abstract

VINS会漂移并且不能提供绝对的位姿估计.

衡量历史信息来进行重定位然后修正漂移是一个热点话题.

通过高效的存储和加载地图来重复使用地图.

现在的地图和以往的可以被融合,通过全局pose graph.

代码已经被融合近VINS-Mono了.

Introduction

里程计会产生drift,及时IMU可以修正在roll和pitch角的drift,其他4个维度还是会漂的.

另一个问题是里程计是一个基于第一帧计算相对变化的系统而不是计算一个绝对的位姿.每一次我们启动系统的时候,起始点都会变成第一帧然后输出一个不是固定坐标系下的里程.

Related Work

[7, 8]松耦合IMU和相机,然后用KF.

一个比较有名的基于EKF的VIO方案是MSCKF.几个相机的位姿会被保持在状态向量里.所以连续帧看到的同样的特征会形成multi-constraint update.

重定位算法可以基于地图的类别分为两类.

  • offline-built地图

[17]-[19]

[18],[19] build an offline map in geometric configuration

[17] build the offline map by learning method.

  • online-built地图

[20]和[22]用BRISK特征,[21]用ORB.这些方法都缺少加载和复用之前地图的能力.

System Overview

基本pipeline就这样.

Algorithm

A. Visual-Inertial Odometry

就是个VINS简介.

B. Loop Detection

我们用了DBoW2,每一个关键帧,我们用了500个FAST特征,然后用BRIEF描述子.

比之前的VINS里回环操作多了一个2D-2D,可能是有好处的,不知道出于什么考量.因为只是PnPRANSAC工作的也很好,包括LDSO也是这么操作的.

我们用了两步,

  • 先是2D-2D的Fundamental Matrix RANSAC.
  • 然后是3D-2D的PnP RANSAC

C. Tightly-Coupled Relocalization

我们没有只是计算了两个匹配帧的相对位子,我们通过在局部滑窗联合优化loop closure frame来解决.

这个回环帧被看做一个局部滑窗中的固定的额外帧.

在cost function中也只是加了个回环帧的重投影误差.

这种联合优化的方式会生成更高精度的结果.

D. Global Pose Graph Optimization

当我们固定过去的状态的时候,local window会立刻飞到一个"没有漂移"的地方. 这样的话,轨迹就会有一个跳跃.为了使得整个轨迹持续而平滑,我们用了一个轻量级的4DOF的pose graph.

4DOF的优化是比一般的pose graph不一样一些,因为重力可观以后,角度中只有yaw角不可观.

1) Four Accumulated Drift Direction

pitch和roll是可观的.

2) Adding Keyframes into the Pose Graph

每一帧在它被边缘化呢以后就会被加入pose graph. (?)为啥

然后会有两种变,顺序边和回环边.

3) 4-DOF Pose Graph Optimization

4) Map Merging

E. Map Reuse

1) Pose Graph Saving

我们只需要保存每一个节点和边,和每一个关键帧描述子(节点).

原图被扔了(这个和VINS中的操作一致.)

特征的描述子消耗的内存最多,就是500*32一个关键帧.

2) Pose Graph Loading

没啥.

Experiment Result

..

Conclusion

..

论文阅读 <Relocalization, Global Optimization and Map Merging for Monocular Visual-Inertial SLAM>的更多相关文章

  1. 《Deep Learning of Graph Matching》论文阅读

    1. 论文概述 论文首次将深度学习同图匹配(Graph matching)结合,设计了end-to-end网络去学习图匹配过程. 1.1 网络学习的目标(输出) 是两个图(Graph)之间的相似度矩阵 ...

  2. Deep Learning of Graph Matching 阅读笔记

    Deep Learning of Graph Matching 阅读笔记 CVPR2018的一篇文章,主要提出了一种利用深度神经网络实现端到端图匹配(Graph Matching)的方法. 该篇文章理 ...

  3. Deep Reinforcement Learning for Dialogue Generation 论文阅读

    本文来自李纪为博士的论文 Deep Reinforcement Learning for Dialogue Generation. 1,概述 当前在闲聊机器人中的主要技术框架都是seq2seq模型.但 ...

  4. Deep Learning 33:读论文“Densely Connected Convolutional Networks”-------DenseNet 简单理解

    一.读前说明 1.论文"Densely Connected Convolutional Networks"是现在为止效果最好的CNN架构,比Resnet还好,有必要学习一下它为什么 ...

  5. Deep Learning 26:读论文“Maxout Networks”——ICML 2013

    论文Maxout Networks实际上非常简单,只是发现一种新的激活函数(叫maxout)而已,跟relu有点类似,relu使用的max(x,0)是对每个通道的特征图的每一个单元执行的与0比较最大化 ...

  6. Discriminative Learning of Deep Convolutional Feature Point Descriptors 论文阅读笔记

    介绍 该文提出一种基于深度学习的特征描述方法,并且对尺度变化.图像旋转.透射变换.非刚性变形.光照变化等具有很好的鲁棒性.该算法的整体思想并不复杂,使用孪生网络从图块中提取特征信息(得到一个128维的 ...

  7. Sequence to Sequence Learning with Neural Networks论文阅读

    论文下载 作者(三位Google大佬)一开始提出DNN的缺点,DNN不能用于将序列映射到序列.此论文以机器翻译为例,核心模型是长短期记忆神经网络(LSTM),首先通过一个多层的LSTM将输入的语言序列 ...

  8. Deep Learning 24:读论文“Batch-normalized Maxout Network in Network”——mnist错误率为0.24%

    读本篇论文“Batch-normalized Maxout Network in Network”的原因在它的mnist错误率为0.24%,世界排名第4.并且代码是用matlab写的,本人还没装caf ...

  9. Deep Learning 25:读论文“Network in Network”——ICLR 2014

    论文Network in network (ICLR 2014)是对传统CNN的改进,传统的CNN就交替的卷积层和池化层的叠加,其中卷积层就是把上一层的输出与卷积核(即滤波器)卷积,是线性变换,然后再 ...

  10. Deep Learning 28:读论文“Multi Column Deep Neural Network for Traffic Sign Classification”-------MCDNN 简单理解

    读这篇论文“ Multi Column Deep Neural Network for Traffic Sign Classification”是为了更加理解,论文“Multi-column Deep ...

随机推荐

  1. xml 封装类

    public static class XmlHelper { public static T FromXmlFile<T>(this string filePath) where T : ...

  2. wpf-MVVM界面自适应:界面自适应及字体自适应

    原文:wpf-MVVM界面自适应:界面自适应及字体自适应 1,界面自适应 界面先划分Region,每个填充Region的View不设置Width属性,即可按照Region划分的比例,自适应屏幕分辨率 ...

  3. phpexcel导出超过26列解决方案

    原文:phpexcel导出超过26列解决方案 将列的数字序号转成字母使用,代码如下:  PHPExcel_Cell::stringFromColumnIndex($i); // 从o,1,2,3,.. ...

  4. WIFI Manager

    Vistumbler - wifi managerhttps://www.vistumbler.net/downloads.htmlhttps://github.com/RIEI

  5. MFC中的模态对话框与非模态对话框,模态对话框测试

    http://blog.csdn.net/u010839382/article/details/52972427 http://blog.csdn.net/u010839382/article/det ...

  6. android 写文件到sd卡问题小记

    android 写文件到sd卡问题小记 事情是这样子的.... 这天我开始编写项目调试工具,高大上不?-----其实就是记录实时网络请求和崩溃日志相关等的小工具(此处一个会心的微笑). 然后我是这样写 ...

  7. Alwayson架构下 服务器 各虚拟IP漂移监控告警的功能实现

    1.需求概括 我们知道,在SQL Server Alwayson 架构中,有多种虚拟IP,例如 WindowsCluster IP,ListenIP,角色高可用性IP(类似于侦听IP).在某些条件下, ...

  8. Varnish动静分离配置示例

    动静分离 [root@varnish ~]# vim /etc/varnish/default.vclvcl 4.0;backend web { .host = "192.168.30.15 ...

  9. MySQL 事务嵌套

    MySQL默认自动提交(autocommit=1),如果要开启事务,先关闭自动提交(autocommit=0): InnoDB支持事务,MyISAM不支持: MySQL不支持事务嵌套:已经开启事务后, ...

  10. Loadrunner做性能测试的主要步骤

    Loadrunner做性能测试的主要步骤: Loadrunner将性能测试过程分为计划测试.测试设计.创建VU脚本.创建测试场景.运行测试场景和分析结果6个步骤. 1) 计划测试:主要进行测试需求的收 ...