3.4. Mappoints management and key frame process
如果在步骤3.3中成功跟踪地图点,则缓存地图点以在下一帧中优先化。当完成当前帧的跟踪时,应该为下一帧更新帧运动速度和地图点。最后,决定当前帧是否应该作为关键帧产生,其标准指的是[11]。 如果框架作为关键帧生成,则会提取并匹配新的ORB要素,同时在此关键帧中保留成功跟踪的要素。ORB功能在关键帧中提取; 因此,当前关键帧姿势和mappoints通过本地映射线程中的描述符匹配和投影错误进一步优化。如果通过直接方法进行跟踪失败,则通过与参考关键帧匹配,在当前帧中提取ORB要素以进行本地化。

4. SVL-VI SLAM system

在第3节的工作基础上,紧密耦合的Visual-
提出了惯性SLAM系统,它可以闭环并覆盖公制尺度。IMU数据通过预积分处理[25]。 与SVL类似,该系统还具有三个并行线程,用于跟踪,本地映射和循环关闭。由于需要融合惯性导航状态,这三个线程和仅视觉SVL系统之间存在差异。该系统的基本流程见[26]。 鉴于未在非关键帧中提取ORB特征,通过最小化类似于(3)中的光度误差来完成特征匹配。

4.1. Tracking

SVL-VI的跟踪线程负责跟踪姿势,速度和IMU偏差。 该线程的基本流程如图2所示(我们并没有专门绘制SVL-VI的流程图。SVL-VI的跟踪线程是类似的,其中初始姿势由IMU而不是SVL中的恒定速度运动模式预测,并且参考帧是最后一个关键帧或最后一帧,这取决于地图是否被更新。)初始姿势由IMU预测,其比恒定速度运动模式更可靠。通过最小化当前帧和参考帧之间的光度误差来进一步优化当前帧,类似于3.2中的帧。在使用(3)中给出的方法完成匹配之后,通过使用IMU状态误差项最小化类似于(4)中的投影误差来优化当前帧j。根据地图是否由另外两个线程更新,优化会有所不同。

SVL-VI SLAM的更多相关文章

  1. 高翔《视觉SLAM十四讲》从理论到实践

    目录 第1讲 前言:本书讲什么:如何使用本书: 第2讲 初始SLAM:引子-小萝卜的例子:经典视觉SLAM框架:SLAM问题的数学表述:实践-编程基础: 第3讲 三维空间刚体运动 旋转矩阵:实践-Ei ...

  2. SLAM、三维重建,语义相关数据集大全

    作者朱尊杰,公众号:计算机视觉life,编辑成员 一 主要针对自动驾驶: 1.KITTI数据集: http://www.cvlibs.net/datasets/kitti/index.php(RGB+ ...

  3. 三维视觉惯性SLAM的有效Schmidt-EKF

    三维视觉惯性SLAM的有效Schmidt-EKF An Efficient Schmidt-EKF for 3D Visual-Inertial SLAM 论文地址: http://openaccess ...

  4. Hector SLAM解读(1)原文翻译

      一种带有3D运动状态估计的slam系统 A Flexible and Scalable SLAM System with Full 3D Motion Estimation 摘要: 在许多应用场景 ...

  5. 在docker容器中vi指令找不到

    在使用docker容器时,有时候里边没有安装vi,敲vi命令时提示说:vi: command not found,这个时候就需要安装vi,可是当你敲apt-get install vi命令时,提示: ...

  6. linux vi 命令大全

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

  7. Cygwin中解决vi编辑器方向键和Backspace键不好使、安装vim的方法

    修改.virc文件(如果没有就创建)vi .virc 添加以下内容set nocpset backspace=start,indent,eol 保存退出:wq 如果是vim就修改.vimrc文件. 由 ...

  8. vi(vim)键盘图及其基本命令

    进入vi vi filename                打开或新建文件,并将光标置于第一行首 vi +n filename           打开文件,并将光标置于第 n行首 vi + fi ...

  9. vi安装Vundle+YouCompleteMe+注释快捷'scrooloose/nerdcommenter'

    Vundle is short for Vim bundle and is a Vim plugin manager. 从git上下载vundle $ git clone https://github ...

随机推荐

  1. 在输出debug日志前加上logger.isDebugEnabled()判断的原因

    场景: String token = md5.substring(0, 10) + base64Two + md5.substring(10); if (logger.isDebugEnabled() ...

  2. OAuth 2.0攻击

    参考文章:https://www.yuque.com/pmiaowu/web_security_1/oauth 作者:PHPoop 关于OAuth2.0协议的授权流程可以参考下面的流程图: 1.Cli ...

  3. nginx配置静态资源:配置绝对路径

    nginx配置静态资源:配置绝对路径 项目都是html格式的文件,我的项目路径:E:\javaservice\nginx-1.15.7\html assets:静态资源 html:站点文件 uploa ...

  4. Backpack V

    Description Given n items with size nums[i] which an integer array and all positive numbers. An inte ...

  5. [CSS] Create a Card Flip Animation with CSS

    Animation can be a powerful way to enhance a user experience. In this lesson, we'll walk through the ...

  6. Java【基础学习】之暴力求素数【用数组返回】

    Java[基础学习]之暴力求素数[用数组返回] */ import java.util.*; public class Main{ public static void main(String[] a ...

  7. Restful API 指南

    作为软件开发人员,我们大多数人在日常生活中使用或构建 REST api.API 是系统之间的默认通信方式.亚马逊是如何有效地使用 api 进行通信的最佳例子. 在这篇文章中,我将讨论如何更好地设计 R ...

  8. Kubernetes 学习19基于canel的网络策略

    一.概述 1.我们说过,k8s的可用插件有很多,除了flannel之外,还有一个流行的叫做calico的组件,不过calico在很多项目中都会有这个名字被应用,所以他们把自己称为project cal ...

  9. 猴猴吃香蕉 背包DP

    猴猴吃香蕉 背包DP \(D\)次询问,第\(i\)次询问,每次有\(n_i\)个带权香蕉,问有多少方案使香蕉之积为\(k_i\),对结果取模\(1000000007\) \(n\le 10^3,k\ ...

  10. P1168 中位数(线段树)

    题目描述 给出一个长度为N的非负整数序列A[i],对于所有1 ≤ k ≤ (N + 1) / 2,输出A[1], A[3], …, A[2k - 1]的中位数.即前1,3,5,……个数的中位数. 输入 ...