论文阅读笔记:PL-VINS: Real-Time Monocular Visual-Inertial SLAM with Point and Line

摘要

利用线要素来提高基于点的视觉惯性SLAM (VINS)的定位精度正在取得进展重要性,因为它们提供了场景结构规则性的附加约束,然而,其实时性能还没有被关注。本文提出了一款基于VINS-Mono的实时点线融合视觉惯性SLAM。使用改进的LSD算法提取线特征。

1 介绍

VINS-Mono被公认为是非线性优化流派的视觉惯性SLAM代表作,然而,在极端情况下也会出现特征点提取不足导致跟踪精度下降甚至跟踪失败,如下图所示。最近,利用线特征提高基于点的VINS的性能收到欢迎,因为线条提供了额外的约束,例如[10],[23]–[25]。然而,这些以前的作品集中在准确性和鲁棒性改进,忽略了实时性能。

在这里插入图片描述
以前的工作使用OpenCV [26]中的线段检测器(LSD)算法来检测线特征,然而,LSD是设计用于无参数的场景结构表示调优,并不是特定的姿态估计问题,因此存在较高计算量,成为实时性能的瓶颈[24]。 如下图所示,我们观察到LSD算法提取到大量(超过500条)的短线,它们对匹配敏感,很难在下一帧中被匹配,这不仅浪费用于检测、描述和匹配的计算资源,也容易产生异常值。根据上述观察,我们认为我们不需要精细地描述场景线条在姿态估计方面的问题,而是检测明显的线段则拒绝短长度的线段。为了这个目标,在这项工作中,我们对LSD算法进行了特定的修改。

在这里插入图片描述
2 相关工作

B 基于非线性优化的VINS

请注意,目前的作品大多采用ShiTomasi 特征提取器,KLT作为特征跟踪器,这种方案在具有挑战性的场景中,可能会由于不好的特征点提取产生较低的准确性。在这种情况下,差的角点和imu信息是不足以满足高精度定位要求的。

Point and line-based methods.

在基于点的VINS中利用几何信息变得越来越重要,如线,面等。本文使用改进的LSD算法提取线特征,使用LBDKnnMatch算法进行线特征的描述和匹配。 基于BA的优化框架,VINS中的相机姿态可以通过联合最小化来自点、线,和imu的约束来估计。

3 系统概述

本文提出了一种基于实时优化的带点单目视觉惯性SLAM方法——PL-VINS,我们可以有效地利用线条特征提高最先进的VINS-Mono的性能。自然,线要素整合的过程是本文的重点

系统分为三个线程:

A 观测处理

PL-VINS系统是从这个线程开始,它的功能是提取和对齐相机和IMU两种测量的原始信息。对于相机捕获的输入帧(RGB图像),在图像中并行地检测、跟踪和优化点和线特征。这里使用Shi-Tomasi来检测点特征,KLT来跟踪,基于RANSAC的几何约束来保留最佳的点和线。对于线特征直接使用OpenCV中的LSD进行检测,并对LSD进行了修改,实现了实时应用,基于LBD算法(descriptor)和KnnMatch(match)跟踪直线特征。

对于IMU测量的原始陀螺仪和加速度计信息,这里遵循VINS Mono的工作,在两个连续帧之间对它们进行预积分。

初始化:利用预处理的测量信息进行初始化系统,初始化后触发下一个线程所需的值和输入。首先,在多个帧中估计一个由高比例相机姿态和点、线地标组成的图结构。接下来,该图与IMU预积分值(包括速度、重力矢量和陀螺仪偏差)进行对齐。请注意,IMU和相机之间的外部参数是预先给定的。

B 局部VIO

初始化完成后,通过最小化所有测量残差,开启基于紧耦合优化的局部视觉惯导里程计(VIO)线程,用于高精度六自由度相机姿态估计。首先,通过对新帧和旧帧之间的点和线特征对应关系进行三角化来构建三维(3D)点和线特征,并分别通过逆深度和Plcker坐标进行参数化。其次,采用固定大小的滑动窗口,通过联合最小化多残差函数,找到最优状态向量,包括姿态、速度、3D特征、加速度和陀螺仪偏差。在输入新的图像帧时,我们将滑动窗口中的最后一帧边缘化以保持窗口大小。

关键帧:遵循VINS Mono的关键帧选择标准:当前帧和最后一个关键帧之间的视差大于某个值或跟踪的特征数小于某个值。

C 回环

这部分工作采用VINS-Mono的方法

4 线特征集成

A 线特征检测

主要改进目的:只检测明显的线段。有趣的是,我们进一步发现可以调整LSD中的一些隐藏参数来加速检测过程。本文基于OpenCV中的源代码对LSD进行了修改,从隐藏参数调整两个方面加快了提取过程。

1 隐藏参数调整。虽然LSD没有参数调整,但仍有一些隐藏参数可以优化以加快检测速度,本文将其显式化。首先,OpenCV使用生成的N层高斯金字塔来表示原始图像,其中图像被下采样N-1次,模糊N次,然后使用LSD提取每层图像中的线段。我们简化了金字塔的尺度和层,实验上,尺度=0.5,N(层)=2效果良好。接下来,如果封闭矩形中的对齐区域点小于阈值,则LSD设置最小密度阈值以排除线段,其中我们将其设置为0.6以加快处理过程。请注意,提取过程也很耗时,但有必要剔除不可靠的线段。为了简化调优过程,所有的值都可以在我们的开源代码中找到。

2 排除长度不符合的线。以前的参数调整有助于简化算法的检测过程,我们使用长度约束来排除其中的一些参数。例如。min(WI;HI)=480,η=0:125,意味着最小长度Lenmin=60。

B 线段跟踪和内点细化

我们采用流行的直线跟踪策略:使用LBD计算每个线段的描述子,然后使用KnnMatch进行匹配。然后建立帧间的初始线特征对应关系。对于可能出现的线异常点,我们采用了基于几何约束的线性细化方法,将异常点过滤掉。

参考:https://cloud.tencent.com/developer/article/1774858

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

触不可及<>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值