计算机视觉方向简介 | 视觉惯性里程计(VIO)
VIO-SLAM
Visual-Inertial Odometry(VIO)即视觉惯性里程计,有时也叫视觉惯性系统(VINS,visual-inertial system),是融合相机和IMU数据实现SLAM的算法,根据融合框架的不同又分为松耦合和紧耦合。
其中VO(visual odometry)指仅视觉的里程计,T表示位置和姿态。松耦合中视觉运动估计和惯导运动估计系统是两个独立的模块,将每个模块的输出结果进行融合。
紧耦合则是使用两个传感器的原始数据共同估计一组变量,传感器噪声也是相互影响的。紧耦合算法比较复杂,但充分利用了传感器数据,可以实现更好的效果,是目前研究的重点。
相机和IMU的缺点及互补性
相机和IMU融合有很好的互补性。首先通过将IMU 估计的位姿序列和相机估计的位姿序列对齐可以估计出相机轨迹的真实尺度,而且IMU 可以很好地预测出图像帧的位姿以及上一时刻特征点在下帧图像的位置,提高特征跟踪算法匹配速度和应对快速旋转的算法鲁棒性,最后IMU 中加速度计提供的重力向量可以将估计的位置转为实际导航需要的世界坐标系中。
随着MEMS器件的快速发展,智能手机等移动终端可以便捷地获取IMU数据和摄像头拍摄数据,融合IMU 和视觉信息的VINS 算法可以很大程度地提高单目SLAM 算法性能,是一种低成本高性能的导航方案,在机器人、AR/VR 领域得到了很大的关注。
算法流程
整个流程图可以分解为五部分:数据预处理、初始化、局部非线性优化、回环检测和全局优化。
各个模块的主要作用是:
图像和IMU数据预处理:对于图像,提取特征点,利用KLT金字塔进行光流跟踪,为后面仅视觉初始化求解相机位姿做准备。对于IMU,将IMU数据进行预积分,得到当前时刻的位姿、速度、旋转角,同时计算在后端优化中将要用到的相邻帧间的预积分增量,及预积分的协方差矩阵和雅可比矩阵。
初始化:初始化中,首先进行仅视觉的初始化,解算出相机的相对位姿;然后再与IMU预积分进行对齐求解初始化参数。
局部非线性优化:对应流程图中滑动窗口的视觉惯导非线性优化,即将视觉约束、IMU约束放在一个大目标函数中进行优化,这里的局部优化也就是只优化当前帧及之前的n帧的窗口中的变量,局部非线性优化输出较为精确的位姿。
回环检测:回环检测是将前面检测的图像关键帧保存起来,当再回到原来经过的同一个地方,通过特征点的匹配关系,判断是否已经来过这里。前面提到的关键帧就是筛选出来的能够记下但又避免冗余的相机帧(关键帧的选择标准是当前帧和上一帧之间的位移超过一定阈值或匹配的特征点数小于一定阈值)。
全局优化:全局优化是在发生回环检测时,利用相机约束和IMU约束,再加上回环检测的约束,进行非线性优化。全局优化在局部优化的基础上进行,输出更为精确的位姿。
算法核心
局部优化会用到边缘化,仅用局部优化精度低,全局一致性差,但是速度快,IMU利用率高;仅用全局优化精度高,全局一致性好,但是速度慢,IMU利用率低;两者侧重点不同,所以将两者结合,可以优势互补。
因此小编设计实验采用局部优化和全局优化融合的方法。
局部优化是滑动窗口内相机帧的优化,全局优化是所有关键帧的优化,两者结合会产生边缘帧冲突的问题,因为局部优化会固定滑动窗口边缘帧,而全局优化发生回环检测的时候则会固定回环起点的帧。这里的改进就是采用相对的位姿边缘化,即边缘化以后的点是相对于它上一时刻关键帧的位姿而不是全局的位姿,这样局部优化边缘化相对位姿(关键帧),扔给全局优化整体优化。局部边缘化和全局边缘化的结合部分是关键帧。
相对边缘化可以具体解释为,相对边缘化的参考坐标系不再是世界坐标系,而是与当前帧共视且距离最近的一个关键帧的相机系(设为第k0帧)。视觉约束可以表示为:
区别于绝对边缘化的视觉约束
实验结果与总结
实验一:无人机数据集上的实验
数据集采用了欧盟机器人挑战数据集(EuRoC)。EuRoC 数据集使用 Asctec Firefly 六旋翼飞行器在仓库和房间采集数据,数据集中包括以20Hz采集的相机图像和200Hz的IMU数据,以及运动真值。
实验结果如下:
实验结果可见,融合优化的轨迹和真实轨迹很接近,而仅使用局部优化的定位结果误差不断累积。
实验二:车载数据上的实验
该车载数据是在北京市朝阳区某小区采集的,在数据采集阶段,车辆以5km/h 到 30km/h 的速度行驶,一共行驶2271m。
实验结果如下:
实验结果可见,融合优化后的定位结果明显优于仅使用局部优化的定位结果,融合优化中误差得到及时修正。
参考文献
J. Delmerico. A Benchmark Comparison of Monocular Visual-Inertial OdometryAlgorithms for Flying Robots. 2018. ICRA
T. Qin. VINS-Mono: A robust and versatile monocular visual-inertial state estimator. arXivpreprint arXiv: 1708.03852, 2017.
N. Trawny. Indirect KalmanFilter for 3D Attitude Estimation. 2005.
Sola. Quaternion kinematics for error-state kalmanfilter. 2017.
K. Eckenhoff. Decoupled, Consistent Node Removal and Edge sparsificationfor graph-based SLAM. 2016.
G. Sibley. Sliding window filter with application to planetary landing. 2010.
S. Leutenegger. Keyframe-Based Visual-Inertial SLAM Using Nonlinear Optimization. 2015.
H. Liu. ICE-BA: Incremental, consistenand efficient bundle adjustment for visual-inertial slam. 2018. CVPR.
H. Liu. Robust keyframe-based dense SLAM with an RGB-D camera. 2017.
http://www.taodudu.cc/news/show-155078.html
相关文章:
- Lifting Transformer: 基于跨步卷积Transformer的高效三维人体姿态估计
- “95后”曹原又双叒叕发Nature了!1个月2篇,已经第6篇了……
- IDA-3D:基于立体视觉的深度感知3D目标检测网络(CVPR2020)
- CVPR 2021 Oral | 室内动态场景中的相机重定位
- 大盘点|无人驾驶领域的综述汇总
- DeepFusion:基于单视图深度和梯度预测的单目SLAM实时稠密三维重建
- 双一流高校竟有超30所都筹建了医学院!这释放了什么信号?
- CVPR2021|基于双边扩充和自适应融合方法的点云语义分割网络
- 利用合成图像对热图像进行鲁棒行人检测
- Visual与IMU多传感器融合的定位方案
- OpenCV 4.5.2 发布
- 端到端基于图像的伪激光雷达3D目标检测
- PatchMatchStereo中的深度/视差传播策略
- PluckerNet:一种基于3D线匹配的配准网络(CVPR2021)
- 重磅直播 | PointDSC:基于特征匹配的点云配准方法(CVPR2021)
- 视频+课件|单目6D姿态估计算法详解
- 多激光雷达外参⾃动化标定算法及代码实例
- CVPR 2021 | 国防科大:基于几何稳定性分析的物体位姿估计方法
- Goolge新AI算法实时生成3D场景 | 可下载
- 快速完整的基于点云闭环检测的激光SLAM系统
- Kaggle竞赛中使用YoloV5将物体检测的性能翻倍的心路历程
- 一文详解点云库PCL
- 视频+课件| PointDSC:基于特征匹配的点云配准方法(CVPR2021)
- 谷歌、亚马逊的顶级GPU被质疑太贵了!这种CPU算法竟然快15倍
- Karto的前端实现与解读
- 突破置换模块计算瓶颈,MSRA开源轻量版HRNet,超越主流轻量化网络!|CVPR2021...
- CVPR 2021 | 基于稠密场景匹配的相机定位学习
- 探究位置误差对单目3D目标检测影响
- 如何更高效、系统地学习三维点云原理与方法?
- 重磅直播 | 室内动态变化场景中的相机重定位(CVPR2021)
计算机视觉方向简介 | 视觉惯性里程计(VIO)相关推荐
- 视觉惯性里程计 VIO
视觉惯性里程计 VIO - Visual Inertial Odometry 视觉−惯性导航融合SLAM方案 视觉惯性SLAM专栏 VINS技术路线与代码详解 VINS理论与代码详解0--理论基础白话 ...
- 视觉惯性里程计 综述 VIO Visual Inertial Odometry msckf ROVIO ssf msf okvis ORB-VINS VINS-Mono gtsam
视觉惯性里程计 VIO - Visual Inertial Odometry 视觉−惯性导航融合SLAM方案 博文末尾支持二维码赞赏哦 _ 视觉惯性SLAM专栏 VINS技术路线与代码详解 VINS理 ...
- <论文阅读>用于 3D 点线和平面的视觉惯性里程计框架 A Visual Inertial Odometry Framework for 3D Points, Lines and Planes
被疫情包围了!在家多看看论文吧- 论文地址:A Visual Inertial Odometry Framework for 3D Points, Lines and Planes [摘要]:恢复连续 ...
- 视觉惯性里程计(VIO)
视觉惯性里程计(VIO) 本文是 Forster et al. 的阅读笔记,自己补充了一点基于鱼眼相机的噪声传递内容. 概述 使用视觉和惯性部件可以分别定位目标.双目相机通过在像素平面捕捉目标.确定相 ...
- 基于关键帧的RGB-D视觉惯性里程计
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|计算机视觉工坊 论文信息:Chu C , Yang S ...
- 距离-视觉-惯性里程计:无激励的尺度可观测性(ICRA2021)
Range-Visual-Inertial Odometry: Scale Observability Without Excitation 作者:Jeff Delaune,David S. Baya ...
- HybVIO: 突破实时视觉惯性里程计的极限
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨paopaoslam 来源丨泡泡机器人SLAM 标题:HybVIO: Pushing the L ...
- 基于视觉惯性里程计的无监督深度补全方法
标题:Unsupervised Depth Completion From Visual Inertial Odometry 作者:Alex Wong , Xiaohan Fei , Stephani ...
- 用于机器人导航辅助的6自由度姿态估计的平面辅助视觉惯性里程计
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 Plane-Aided Visual-Inertial Odometry for 6-DOF Pose ...
最新文章
- 链表问题9——复制含有随机指针节点的链表(进阶)
- 软件测试2019:第四次作业—— 性能测试(含JMeter实验)
- xmind工具软件(相关)
- 用WebCollector爬取新浪微博数据
- Centos下MySql用户管理
- 电脑没有声音一键修复_电脑上有没有好用点的办公提醒小软件?有带声音提醒的桌面便签软件吗...
- #ifdef __cplusplus extern “C”的作用详解
- 在linux上实现DllMain + 共享库创建方法
- Django之templates模板
- 实验吧-密码学-杯酒人生(特殊凯撒--维吉尼亚密码)(凯撒加解密脚本、维吉尼亚密码加解密脚本)...
- 关于Spring Cloud Config服务器介绍
- 自动驾驶中车辆的如何使用点云定位?
- UE编辑器修改背景theme
- VSCode如何搭建Vue项目?详细步骤
- 在树莓派上创建区块链节点
- 专升本英语——语法知识——基础语法——第一节 名词和代词【学习笔记】
- 安装软件出现提示:无法将数值写入键
- SimulinkSTM32开发(一)开发环境搭建
- 无法打开csproj,因为此版本的应用程序不支持其项目类型 csproj
- Vue+Vant制作单选全选全不选以及删除按钮van-checkbox