泡泡图灵智库,带你精读机器人顶级会议文章
标题: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