【泡泡图灵智库】PL-VIO:使用点和线特征的紧耦合单目视觉惯性里程计

2019 年 7 月 9 日 泡泡机器人SLAM

泡泡图灵智库,带你精读机器人顶级会议文章

标题:PL-VIO: Tightly-Coupled Monocular Visual–Inertial Odometry Using Point and Line Features

作者:Yijia He, Ji Zhao, Yue Guo, Wenhao He, and Kui Yuan

来源:Sensors 2018 Apr

编译:李鑫

审核:夏友杰

论文链接提取码:0f2n

欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权


摘要

        大家好,今天为大家带来的文章是——PL-VIO: Tightly-Coupled Monocular Visual–Inertial Odometry Using Point and Line Features,该文章发表于Sensors。


        为了解决估计相机轨迹和建立一个基于惯性测量单元和视觉观测的三维结构化地图的问题。本文提出了一种利用点和线特征的紧耦合单目视觉惯性里程计(PL-VIO)。和点特征相比,线特征提供了更多的环境几何结构信息。为了同时获得3D空间直线的计算简洁性和表示紧密性,采用了Plücker坐标和正交表示两种形式。为了紧密有效地融合来自惯性测量单元(IMU)和视觉传感器的信息,作者在一个滑动窗口优化框架中将IMU预积分误差以及点和线重投影误差组合在一起,通过最小化误差函数的方式来优化状态变量。在公共数据集上进行的实验表明,结合点和线特征的PL-VIO优于仅使用点特征的几种最先进的VIO系统。

主要贡献

        1. 本文是第一个提出使用点和线作为路标的基于优化的单目VIO;

        2. 本文引入了一个带有IMU预积分约束以及点和线特征的滑动窗口模型。使用了直线的正交表示来适应线特征的优化问题,最后推导了所有误差项关于IMU体状态的雅克比矩阵

      3. 在EuRoC数据集和PennCOSYVIOlet数据集上将本文提出的PL-VIO和ROVIO、OKVIS以及VINS-Mono进行了对比

算法流程

图1 本文PL-VIO系统框图。A是从原始测量提取信息的前端;B是估计和优化状态变量的后端

        由于篇幅的原因,这里省去IMU的预积分公式、线的Plücker坐标和正交表示两种形式、IMU测量模型、以及点和线的投影误差雅克比等模型,感兴趣的读者可以细看论文。

        正如图1所示,作者提出的PL-VIO有两个主要的部分:前端和后端。前端是用来对IMU和相机的测量数据进行预处理的部分。后端则是估计和优化状态变量的部分。下面将会详细介绍这两部分。

1. 前端

        前端从IMU和相机的原始测量数据中提取出有用的信息。体状态变量在每次IMU测量的时候被更新,而且最新的体状态变量被用来作为滑动窗口优化中的初始变量。除此之,IMU测量在优化的时候从IMU预积分来约束连续的IMU状态。

        对于图像的处理,点特征和线特征在两个独立的线程中被检测。当新的图像帧出现的时候,利用KLT光流对前一帧到当前帧的点特征进行跟踪。然后,使用RANSAC框架和Essential矩阵来去除异常值。如果在外点剔除之后,被跟踪的点小于阈值则使用FAST检测新的角点进行添加。对于线特征,此处用LSD检测器来检测新的图像帧的线段,并使用基于外观描述符LBD与之前图像帧的线段进行匹配。作者同时使用几何约束来去除线段匹配的外点。比如,两个匹配线段的中点的距离不应该超过一定的像素距离,角度的差别不应该超过一定的度数。特征检测和匹配之后,将线段的端点和点特征被投影到归一化像素平面上。除此之外,如果跟踪点特征的平均视差大于一定的阈值,则将当前帧选为新的关键帧。

 2.  后端

        在后端线程中,首先对点和线进行三角化,用来构建重投影误差。为了得到较好的路标估计,利用所有观测对点特征的逆深度进行估计。对于线的三角化,只选择滑动窗口中空间距离最远的两帧来初始化Plücker坐标。

        在得到地图点和线的初始估计和IMU测量值估计的IMU状态之后,使用滑动窗口方法去优化得到最优的状态。为了限制状态变量的大小,从滑动窗口中使用双向边缘化策略删除状态变量。当次最新的帧是关键帧的时候,将最早的一帧中的所有测量值都边缘化。否则,如果次最新帧不是关键帧,将丢弃该帧中的视觉测量并保留IMU中的预积分值。在边缘化测量的基础上获得新的先验信息,保留了被移除状态量的约束信息。

        最后,剔除掉无效的地图点和线。如果一个点的逆深度值是负的,将会把这个点从地图上剔除。如果一个线特征的重投影误差超过一个阈值,它也会从地图中被剔除。

主要结果

        作者使用两个公开基准数据集来评测PL-VIO:EuRoc MAV数据集和PennCOSYVIO数据集。通过和目前最先进的三种单目VIO(ROVIO、OKVIS、VINS)进行比较,验证了PL-VIO的优点。ROVIO是基于扩展卡尔曼滤波器(EKF)的紧耦合的VIO系统,它直接利用图像的亮度误差来寻找更新过程中的最优状态。OKVIS是一种具有点特征的滑动窗口优化算法,适用于单目或双目模式。VINS-Mono是一个完整的VIO-SLAM系统,它利用点特征来优化IMU在滑动窗口中的状态,并可以进行回环检测。所有实验均在Intel Core i7-6700HQ CPU 2.60 GHz, 16gb RAM, ROS dynamics的计算机上进行。

表1 在EuRoc MAV数据集上的RMSE结果

位移误差(米),旋转误差(度)

表2 在EuRoc数据集上的平均运行时间(单位:毫秒)

图2 四种不同方法的RMSE .(a)位移 (b)旋转

表3 不同算法在PennCOSYVIO数据集上的位姿误差(APE)的RMSE

Abstract 

    To address the problem of estimating camera trajectory and to build a structural three-dimensional (3D) map based on inertial measurements and visual observations, this paper proposes point–line visual–inertial odometry (PL-VIO), a tightly-coupled monocular visual–inertial odometry system exploiting both point and line features. Compared with point features, lines provide significantly more geometrical structure information on the environment. To obtain both computation simplicity and representational compactness of a 3D spatial line, Plücker coordinates and orthonormal representation for the line are employed. To tightly and efficiently fuse the information from inertial measurement units (IMUs) and visual sensors, we optimize the states by minimizing a cost function which combines the pre-integrated IMU error term together with the point and line re-projection error terms in a sliding window optimization framework. The experiments evaluated on public datasets demonstrate that the PL-VIO method that combines point and line features outperforms several state-of-the-art VIO systems which use point features only.


如果你对本文感兴趣,想要下载完整文章进行阅读,可以关注【泡泡机器人SLAM】公众号


点击阅读原文,即可获取本文下载链接,提取码为:ybgz。

欢迎来到泡泡论坛,这里有大牛为你解答关于SLAM的任何疑惑。

有想问的问题,或者想刷帖回答问题,泡泡论坛欢迎你!

泡泡网站:www.paopaorobot.org

泡泡论坛:http://paopaorobot.org/bbs/


泡泡机器人SLAM的原创内容均由泡泡机器人的成员花费大量心血制作而成,希望大家珍惜我们的劳动成果,转载请务必注明出自【泡泡机器人SLAM】微信公众号,否则侵权必究!同时,我们也欢迎各位转载到自己的朋友圈,让更多的人能进入到SLAM这个领域中,让我们共同为推进中国的SLAM事业而努力!

商业合作及转载请联系liufuqiang_robot@hotmail.com

登录查看更多
51

相关内容

滑动窗口概念不仅存在于数据链路层,也存在于传输层,两者有不同的协议,但基本原理是相近的。其中一个重要区别是,一个是针对于帧的传送,另一个是字节数据的传送。
【开放书】SLAM 中的几何与学习方法,62页pdf
专知会员服务
107+阅读 · 2020年6月5日
专知会员服务
84+阅读 · 2019年12月13日
【泡泡图灵智库】协同视觉-惯性SLAM
泡泡机器人SLAM
28+阅读 · 2019年9月6日
【泡泡图灵智库】LIMO: LiDAR-单目相机视觉里程计(arXiv)
泡泡机器人SLAM
47+阅读 · 2019年5月14日
【泡泡图灵智库】基于点线的直接单目视觉里程计(ICRA)
Efficient and Effective $L_0$ Feature Selection
Arxiv
5+阅读 · 2018年8月7日
Arxiv
9+阅读 · 2018年5月22日
Arxiv
8+阅读 · 2018年1月25日
Arxiv
3+阅读 · 2015年5月16日
VIP会员
Top
微信扫码咨询专知VIP会员