这对于直接方法是特别有益的:众所周知直接图像对准是非凸的,并且只有在足够准确的初始估计可用时才能预期收敛。虽然在实践中像粗到精跟踪这样的技术会增加收敛半径,但是紧密的惯性积分可以更有效地解决这个问题,因为附加的误差项和先前的结果确保即使对于快速运动也能收敛。我们表明它甚至允许在没有视觉信息的情况下通过短间隔进行跟踪,例如 将相机对准白墙造成的。此外,惯性测量可以观察到全局滚转和俯仰,减少了平移3D运动和偏航旋转的全局漂移。

IMU通常以比相机的帧速率高得多的频率操作,并且可以测量重力方向并消除滚动和俯仰角度的漂移。然而,IMU的缺点是它们仅通过旋转速度和线性加速度间接测量相对姿势。它们噪声很大,需要积分并补偿重力,这在很大程度上取决于姿态估计的准确性。测量带有未知的漂移偏差,需要使用外部参考(如视觉)进行估算。虽然IMU信息是递增的,但是任何图像可以彼此对齐并且具有足够的重叠。这允许在不是直接时间序列的图像之间结合相对姿势测量 - 使得能够进行更一致的轨迹估计。

A. Direct Semi-Dense Stereo Odometry

我们基于Stereo LSD-SLAM进行视觉跟踪[5]:

我们跟踪摄像机朝向地图中的参考关键帧的运动。如果相机距离现有关键帧太远,我们会创建新的关键帧。

我们根据静态和时间双目提示估计当前参考关键帧中的半密集深度图。对于静态立体声,我们利用双目配置中的一对相机之间的固定基线。基于跟踪的运动,从参考关键帧中的像素对应关系向后续图像估计时间立体声。

在跟踪和建图框架中,使用时间立体补充静态有几个好处。静态立体声使重建比例可观察。它也独立于相机移动,但受限于恒定基线,这将静态立体声限制在有效的操作范围内。时间立体声需要非简并的相机移动,但不受[4]中所示的特定范围的约束。该方法可以同时重建非常小和非常大的环境。最后,通过静态与时间立体声的组合,可获得多个基线方向:静态立体声通常具有水平基线 - 其不允许沿水平边缘估计深度,时间立体声允许通过提供其他运动方向来完成深度图。

1)直接图像对准:通过最小化光度残差来估计两个图像I 1和I 2之间的姿势

其中ρ是Huber规范。 使用迭代重新加权的Levenberg-Marquardt算法最小化该目标。

2)深度估计:针对具有高图像梯度的关键帧的像素估计场景几何,因为它们提供稳定的视差估计。

B. IMU Integration

我们的IMU误差函数项的基础是以下非线性动力学模型。

IMU测量通常以比相机帧高得多的频率到达。我们不为每个单独的IMU测量添加独立残差,而是将测量结果集成到图像帧之间的压缩IMU测量中。如果姿势或偏差估计在优化期间发生变化,为了避免频繁重新积分,我们遵循[22]和[14]中提出的预积分方法。我们在IMU坐标系中的时间戳i和j之间积分IMU测量值并获得伪测量值Δpi→j,Δvi→j和R i→j。

我们用Δpi→i = 0,Δvi→i = 0,R i→i = I初始化伪测量,假设IMU测量之间的时间是Δt,我们积分原始测量值:

给定初始状态和综合测量,可以预测下一个时间步的状态:

对于先前状态s i-1和IMU测量帧i和i-1之间的i-1,ωi-1,该方法产生预测

C. Optimization

方程中的误差函数(3)可以写成

权重使用迭代重加权最小二乘法对光度残差r I实现Huber范数,或者对应于IMU残差r IMU的逆协方差(等式(16))。我们使用Levenberg-Marquardt方法优化了这个目标。线性化当前状态周围的残差

误差函数E(s)可以用二次函数近似在当前状态s周围

D. Partial Marginalization

为了约束优化问题的大小,我们执行部分边缘化并将优化状态集保持在小的常量大小。为了约束优化问题的大小,我们执行部分边缘化并将优化状态集保持在小的常量大小。具体地,我们仅针对当前帧状态s i,前一帧s i-1的状态以及用于跟踪的参考帧的状态s ref进行优化。如果我们将状态空间s分成sλ和sμ,其中sλ是我们想要保持在优化中的状态变量,并且sμ是我们想要边缘化的状态的部分,我们可以重写更新 步骤如下

我们发现将Schur补集应用于系统的上半部分

它表示E *(sλ)的系统,其中状态sμ被边缘化。 图3显示了在将每个新帧添加到图形之后应用边缘化过程的图形演变。

E. Changing the Linearization Point

部分边际化固定了sλ的线性化点,用于涉及方程中的sμ和sλ的量。(25)。然而,进一步的优化改变了线性化点,从而需要重新线性化。我们使用一阶近似避免了繁琐的显式重新线性化。如果我们用旧的线性化点sλ和增量Δsλ表示新的线性化点s0λ,

我们可以改变当前E *的二次近似的线性化点

只有当Δsλ和δsλ都很小时才进行近似 - 因为两者都代表状态的更新,这是一个有效的假设。然后我们可以近似在s0λ附近线性化的误差函数:

F. Statistical Consistency

VII. C ONCLUSION

我们提出了一种直接,紧密集成的视觉惯性测距法的新方法。它结合了完全直接的结构和运动方法 - 基于每像素深度而不是单独的关键点观察 - 采用紧密的,基于最小化的IMU集成。我们展示了两个传感器源在理想情况下相互补充:立体视觉允许系统补偿长期IMU偏差漂移,而短期IMU约束有助于克服光度跟踪配方中的非凸性,允许跟踪大型 帧间运动或没有视觉信息的间隔。我们的方法可以在跟踪精度方面优于现有的基于特征的方法,同时提供准确的半密集3D环境重建,同时在标准笔记本电脑CPU上实时运行。

Direct Visual-Inertial Odometry with Stereo Cameras的更多相关文章

  1. 视觉惯性里程计Visual–Inertial Odometry(VIO)概述

    周围很多朋友开始做vio了,之前在知乎上也和胖爷讨论过这个问题,本文主要来自于知乎的讨论. 来自https://www.zhihu.com/question/53571648/answer/13772 ...

  2. Trifo-VIO:Roubst and Efficient Stero Visual Inertial Odometry using Points and Lines论文笔记

    这是2018-IROS上的一篇文章,亮点是作者提出了Lines特征的VIO方案,还有就是提出一个新颖的回环检测,不是用传统的基于优化的方法或者BA,另外作者还发布了一个新的用于VIO的数据集.亮点主要 ...

  3. 论文阅读——Visual inertial odometry using coupled nonlinear optimization

    简介:论文提出一种新的视觉里程计算法,其直接利用带噪声的IMU数据和视觉特征位置来优化相机位姿.不同于对IMU和视觉数据运行分离的滤波器,这种算法将它们纳入联合的非线性优化框架中.视觉特征的透视重投影 ...

  4. Omnidirectional DSO: Direct Sparse Odometry with Fisheye Cameras 论文摘要

    1. Abstract 通过一种Unified Omnidirectional Model作为投影方程. 这种方式可以使用图像的所有内容包括有强畸变的区域,而现存的视觉里程计方案只能修正或者切掉来使用 ...

  5. Direct Line Guidance Odometry论文阅读笔记

    摘要: 本文特色:使用线引导关键点的选择.本文提出这个的论点是:线上的点比图像的其他部分的点更好,而且线上存在更好的关键点.选择线上的点可以筛选过滤掉不太明显的点,从而提高效率. 点和线: 系统使用点 ...

  6. Paper Reading: Stereo DSO

    开篇第一篇就写一个paper reading吧,用markdown+vim写东西切换中英文挺麻烦的,有些就偷懒都用英文写了. Stereo DSO: Large-Scale Direct Sparse ...

  7. 三维重建7:Visual SLAM算法笔记

    VSLAM研究了几十年,新的东西不是很多,三维重建的VSLAM方法可以用一篇文章总结一下. 此文是一个好的视觉SLAM综述,对视觉SLAM总结比较全面,是SLAM那本书的很好的补充.介绍了基于滤波器的 ...

  8. Monocular Visual-Inertial Odometry单目视觉惯性里程计

    Monocular Visual-Inertial Odometry:https://www.qualcomm.com/invention/research 单目视觉-惯性里程计 INDOOR POS ...

  9. A Benchmark Comparsion of Monocular Visual-Inertial Odometry Algorithms for Flying Robots论文笔记

    摘要: 本文主要比较单目VIO的算法在飞行机器人上运行的性能,测试使用统一数据集为EuRoC.其中评价指标为:姿态估计精度.每帧处理时间以及CPU和内存负载使用率,同时还有RMSE(运行轨迹与真实轨迹 ...

随机推荐

  1. 阿里云Logtail 快速诊断工具

    当日志采集发生异常时,您可以通过Logtail自助检测工具查看客户端是否存在异常情况,根据工具提示快速定位并解决问题.   说明 本工具目前仅支持Linux系统的服务器. 准备工作 下载检测工具脚本. ...

  2. 【AI】Exponential Stochastic Cellular Automata for Massively Parallel Inference - 大规模并行推理的指数随机元胞自动机

    [论文标题]Exponential Stochastic Cellular Automata for Massively Parallel Inference     (19th-ICAIS,PMLR ...

  3. 20151028整理罗列某种开发所包括对技术(技术栈),“较为全面”地表述各种技术大系的图表:系统开发技术栈图、Web前端技术栈图、数据库技术栈图、.NET技术栈图

    ———————————— 我的软件开发生涯 (10年开发经验总结和爆栈人生) 爆栈人生 现在流行说全栈.每种开发都有其相关的技术.您是否觉得难以罗列某种开发所包括对技术(技术栈)呢?   您是否想过: ...

  4. Attempt to present <TestViewController2: 0x7fd7f8d10f30> on <ViewController: 0x7fd7f8c054c0> whose view is not in the window hierarchy!

    当 storyboard里面的 按钮 即连接了 类文件里面的点击方法  又  连接了   storyboard里 另一个  控制器的  modal 就会出现类似Attempt to present & ...

  5. Charles for Mac(HTTP 监视器和网络抓包工具)破解版安装

    1.软件简介    Charles 是在 Mac.Linux 或 Windows 下常用的 http 协议网络包截取工具,在平常的测试与调式过程中,掌握此工具就基本可以不用其他抓包工具了.Charle ...

  6. ASP.NET MVC 自定义处理JSON ActionResult类

    1.统一JSON格式处理方式,同时指定ContentType类型,解决低版本浏览器获取json时ContentType为application/json提示下载的问题. public abstract ...

  7. x-pack

    x-pack安装>官网安装步骤https://www.elastic.co/downloads/x-pack >x-pack简介X-Pack是一个Elastic Stack的扩展,将安全, ...

  8. dhcp server 移植记录

    这次移植 WIFI ,需要做成 AP 模式,所以,需要移植 dhcp 服务端 busybox 里面自带 udhcpd 选项. 打开buildroot , make busybox-menuconfig ...

  9. Java知多少(102)多媒体基础

    本节介绍 Java程序播放幻灯片和动画,播放声音和视频的方法. 播放幻灯片和动画 用实例说明播放幻灯片和动画的方法. [例 12-7]小应用程序先将幻灯片读入数组在存储,单击鼠标变换幻灯片,逐张显示. ...

  10. Astah 使用 流程图、类图、时序图

    1 流程图         右键 _ create Diagrm _ add Flowchart _ New Flowchart      2 时序图         Create Diagram _ ...