三维视觉惯性SLAM的有效Schmidt-EKF
三维视觉惯性SLAM的有效Schmidt-EKF
An Efficient Schmidt-EKF for 3D Visual-Inertial SLAM
论文地址:
摘要
为移动和可穿戴传感器系统实现厘米级精确定位具有重要的实际应用意义。本文提出了一种新的、高精度、高效的视觉惯性(VI)SLAM算法,称为Schmidt-EKF-VI-SLAM(SEVIS),该算法以紧密耦合的方式将IMU测量和单目图像最佳融合,以提供具有有界误差的三维运动跟踪。采用Schmidt-Kalman滤波公式,在状态向量中选择性地包含信息特征,同时在它们成熟后将它们作为干扰参数(或Schmidt状态)处理。建模的这种变化使得不再需要不断更新施密特状态(或它们的协方差),允许EKF正确地解释它们与活动状态的相互关系,节省了大量的计算量。在地图大小方面获得线性计算复杂度,而不是标准SLAM系统中的二次型。为了充分利用地图信息来约束导航漂移,提倡有效的关键帧辅助的二维到二维特征匹配,以找到当前二维视觉测量和三维地图特征之间的可靠对应。所提出的SEVIS在仿真和实验中都得到了广泛的验证。
本文创新点
该文件的主要贡献包括:
•设计了一种高精度、高效的基于Schmidt-e KF的VI-SLAM(即SEVIS)算法,该算法利用Schmidt-KF公式,允许对用于长期环路闭合的环境地图进行并行估计,以线性计算复杂度将导航漂移绑定。
•提出了一种关键帧辅助的2D-to-2D匹配方案,用于在不执行3D-to-2D匹配(这可能不适用于稀疏3D环境地图)的情况下,将2D视觉测量与3D地图特征匹配的具有挑战性的数据关联问题。这种二维到二维匹配不受估计性能的影响,允许长期的环路闭合和从极端漂移中恢复。
•在蒙特卡罗模拟和实际实验中广泛验证了所提出的SEVIS算法,显示了的系统提供的适用性和性能增益。对计算要求的实验研究进一步表明,所提出的SEVIS在建立和维护基于三维特征的地图时仍然是实时的。
Visual-Inertial SLAM
VI-SLAM过程将摄像机图像和IMU(陀螺仪和加速度计)测量数据进行最佳融合,提供传感器平台的6自由度姿态估计以及环境特征(map)的三维位置重建。将简要介绍EKF框架中的VI-SLAM,是SEVIS算法的基础。VI-SLAM的状态向量包含IMU导航状态xI和克隆的过去IMU(或相机)姿势xC的滑动窗口,如MSCKF[30]中所示,以及在全局帧中表示的地图特征的位置xS:
Schmidt-EKF based VI-SLAM
状态估计和协方差的EKF更新在map特征的数量方面具有二次复杂性[38],这使得VI-SLAM的天真实现太昂贵而无法实时运行。利用SKF[44],提出了一种新的用于VI-SLAM(SEVIS)的Schmidt-EKF算法,降低了这种二次复杂度。关键思想是有选择地将map特征视为状态向量(即Schmidt state xS(1))中的干扰参数,均值和协方差将不再被更新,与激活状态xA的互相关仍被利用和更新。提议的sevi的IMU传播与标准EKF相同。在接下来的内容中,主要关注单目图像的更新,这是SEVIS的核心,但是这种方法很容易扩展到立体系统。当相机IMU传感器对在环境中移动时,使用基于描述符的跟踪来跟踪特征。首先检测到快速特征[41],并为每个特征提取ORB描述符[43]。OpenCV[36]“BruteForceHamming”KNN描述符匹配器用于查找对应关系,在前两个返回之间执行比率测试以确保有效匹配,并使用8点RANSAC来拒绝任何额外的异常值。一旦发现视觉轨迹,将使用三种类型的跟踪特征来有效地更新状态估计和协方差:
(i)具有机会性且只能在短时间内跟踪的VIO特征。
(ii)比上述特征更稳定且可以在当前滑动窗口之外跟踪的SLAM特征。
(iii)地图特征,是成熟和信息量大的SLAM特征,在一段独立的时间内保持在Schmidt状态。
为了执行SLAM和利用地图约束来限制导航错误的同时获得显著的计算节省,采用SKF方法[44]并将map特征视为干扰参数,跟踪它们与活动状态的相互关系,同时在更新期间仍允许它们的概率包含。特别是,计算施密特科夫的增益矩阵如下:
已经充分利用当前相机测量信息来更新SEVIS状态估计和协方差。算法1概述了该算法的主要步骤。
为了验证所提出的SEVIS的后端估计引擎,首先对具有已知测量特征对应关系的视觉惯性SLAM进行Monte Carlo模拟,其中单目视觉惯性传感器平台在圆柱竞技场内的圆形轨道上移动,观察一系列环境特征。传感器和弹道的仿真参数见表1。
特别是,比较了三种VIN算法,以揭示所提出的SEVIS的优点:
(i)基线VIO方法,包括增加6个SLAM特征的MSCKF(见[23])。这些大满贯的特点是明确边缘化时,他们离开视野。
(ii)基线SLAM方法,使用相同的MSCKF窗口,但增加了90个SLAM特征。与上面的VIO不同,在这种情况下SLAM特性从未被边缘化,因此它们可以用于(隐式)循环闭包。
(iii)提出的SEVIS算法,由与基线VIO相同的MSCKF窗口和6个SLAM特征组成,同时增加了一组90个地图特征,这些特征被建模为干扰参数。当SLAM特征离开视场时,它们被移动到Schmidt状态,成为算法1中描述的地图特征。50次蒙特卡罗模拟运行的平均平方根误差(RSSE)性能如图2所示。
正如预期的那样,基线VIO随着时间的推移在方向和位置上累积漂移,而基线SLAM在没有长期漂移的情况下提供有界误差性能。有趣的是指出,位置RSSE根据相对于初始循环闭包的位置略有振荡。这是因为EKF与基于优化的方法不同,它不能重新线性化过去的测量值,因此修正这些误差的能力有限[48]。更重要的是,很明显,所提出的SEVIS算法也不会累积长期漂移,尽管其精度略低于基线SLAM。然而,考虑到SEVIS相对于map特征的数量具有线性计算复杂性,而基线SLAM具有二次复杂性,这种精度的降低是一个很小的代价。
Real-World Experimental Results
使用两种不同的误差度量:绝对轨迹误差(ATE)和相对误差(RE)来评估所提出的方法。将读者引向[54]了解这些错误度量的详细定义。除了的基线和建议的方法之外,还对VINSMono[40,39]进行了额外的评估,以提供与利用循环闭合信息的当前最先进方法的比较。如表2和图4所示,所提出的SEVIS能够高精度定位并在全基线VI-SLAM系统的水平上执行。从RE来看,很明显,包含map特征可以防止长期漂移,并且随着轨迹段长度的增长,RE几乎恒定,从而提供更高的精度。提议的SEVIS提供了一个计算上可行的滤波器,其精度与全基线VI-SLAM相似,具有与VINS Mono类似的竞争性能(尽管VINS Mono利用了批处理优化)。与全协方差SLAM相比,所提出的SEVIS算法的主要优点是降低了计算复杂度。这种方法的实用性在不同算法的运行时间中是显而易见的。如图5所示,评估了这三个系统并收集了实现的时序统计信息。
进一步挑战了在困难的室内夜间多楼层数据集上提出的系统,该数据集具有多个挑战,包括低光环境、长曝光时间和运动模糊的低对比度图像不适合正确的特征提取(见图6)。如果能够提取特征,由于噪声大、梯度小,得到的描述符匹配较差,与Vicon循环数据集相比,更新过程中使用的异常值较多,导致估计量跳变大,校正不正确。由于关键帧辅助的2D-to-2D匹配对估计性能差或漂移和地图特征更新具有不变性,因此所提出的SEVIS可以在这些场景中恢复,并防止错误的漂移。
Realsense ZR300传感器3用于采集20分钟的灰度单目菲舍耶图像,具有惯性读数,1.5公里的轨迹跨越两层楼。执行了摄像头到IMU外部的在线校准,以进一步确定制造商驱动程序提供的转换。最多允许700个地图点,以便充分覆盖地图区域,在4Hz时插入查询数据库以确保所有地图要素的充分覆盖的关键帧,以及一次处于活动状态的两个SLAM要素。由基线VIO和提议的sevi生成的轨迹如图7所示。显然,地图特征的加入防止了基线VIO所经历的长期漂移,这种漂移在偏航和z轴方向上都显示出很大的误差。由于此数据集没有可用的基本事实,作为一种常见的做法,计算了当传感器平台返回到起始位置时理想情况下应等于零的轨迹起点-终点误差。基线VIO的误差为4.67m(弹道距离的0.31%),而建议的SEVIS的误差仅为0.37m(弹道距离的0.02%)。
三维视觉惯性SLAM的有效Schmidt-EKF的更多相关文章
- 三维视觉、SLAM方向全球顶尖实验室汇总
本文作者 任旭倩,公众号:计算机视觉life,编辑成员 欧洲 英国伦敦大学帝国理工学院 Dyson 机器人实验室 http://www.imperial.ac.uk/dyson-robotics-la ...
- 什么是视觉Visual SLAM
什么是视觉Visual SLAM What Is Visual SLAM? What are the origins of visual SLAM? and what are some other a ...
- 基于视觉的 SLAM/Visual Odometry (VO) 开源资料、博客和论文列表
基于视觉的 SLAM/Visual Odometry (VO) 开源资料.博客和论文列表 以下为机器翻译,具体参考原文: https://github.com/tzutalin/awesome-vis ...
- 视觉惯性里程计Visual–Inertial Odometry(VIO)概述
周围很多朋友开始做vio了,之前在知乎上也和胖爷讨论过这个问题,本文主要来自于知乎的讨论. 来自https://www.zhihu.com/question/53571648/answer/13772 ...
- 从零开始一起学习SLAM | 用四元数插值来对齐IMU和图像帧
视觉 Vs. IMU 小白:师兄,好久没见到你了啊,我最近在看IMU(Inertial Measurement Unit,惯性导航单元)相关的东西,正好有问题求助啊 师兄:又遇到啥问题啦? 小白:是这 ...
- 综述 | SLAM回环检测方法
本文作者任旭倩,公众号:计算机视觉life成员,由于格式原因,公式显示可能出问题,建议阅读原文链接:综述 | SLAM回环检测方法 在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一帧位姿 ...
- 代码解读 | VINS 视觉前端
本文作者是计算机视觉life公众号成员蔡量力,由于格式问题部分内容显示可能有问题,更好的阅读体验,请查看原文链接:代码解读 | VINS 视觉前端 vins前端概述 在搞清楚VINS前端之前,首先要搞 ...
- 泡泡一分钟:Fast and Robust Initialization for Visual-Inertial SLAM
张宁 Fast and Robust Initialization for Visual-Inertial SLAM链接:https://pan.baidu.com/s/1cdkuHdkSi9x7l ...
- CCF虚拟现实与可视化技术专委会丨面向增强现实的可视计算技术研究进展概述
https://mp.weixin.qq.com/s/I-rNwgXHEtwgdpkWzKtVXw 摘要 新一代增强现实技术需要依赖可视计算理论与方法解决大尺度复杂环境下的场景建模.内容生成.感知交互 ...
随机推荐
- TP5学习记录(Model篇)
ThinkPHP 数据库操作 数据库连接 #在config/database.php设置数据库连接参数或者利用Db::connect()方法设置数据库连接 /* * public static fun ...
- UC-Android逆向工程师面试第2题分析
博客链接:http://blog.csdn.net/qq1084283172/article/details/52133172 一.简介 这个题目是别人面试UC优视集团Android逆向工程师一职位的 ...
- Xposed学习一:初探
学习Xposed框架,在github:https://github.com/rovo89 下载XposedInstaller安装到手机上来管理Xposed的模块. 本文记录根据官方文档(资料1)在an ...
- POJ3114强连通+spfa
题意: 给你n个点,m条有向边,q询问,每次询问给两个数a,b输出a->b的最短路,但是题目有个限制,就是在一个环上的任意两点距离为0. 思路: 简单题目,直接强连通压缩 ...
- React-组合模式
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...
- Git 无法添加文件夹下的文件
尚未暂存以备提交的变更: (使用 "git add <文件>..." 更新要提交的内容) (使用 "git checkout -- <文件>... ...
- 【实用小技巧】freemarker模板中文乱码问题解决
freemarker简单模板如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content- ...
- chardet模块
import chardet chardet.detect(f.read())检测哪种编码
- CSS3文本样式
目录 文本阴影 text-shadow 文本轮廓 text-outline 文本换行 word-break normal break-all keep-all word-wrap 新文本属性 text ...
- [bug] kibana:prevMsg":"Request Timeout after 3000ms
ES启动问题,内存不足 https://blog.csdn.net/qq_40907977/article/details/104499178 修改ES启动内存 https://blog.csdn.n ...