点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

本文转自|计算机视觉工坊

论文信息:Chu C , Yang S . Keyframe-Based RGB-D Visual-Inertial Odometry and Camera Extrinsic Calibration Using Extended Kalman Filter[J]. IEEE Sensors Journal, 2020, PP(99):1-1.

摘要:这篇论文提出了一个新的基于RGB-D相机和IMU的视觉惯性里程计。为融合视觉和惯性传感器测得的数据信息,在论文中运用了EKF(扩展卡尔曼滤波),并提出迭代的方法来减少线性误差。论文中提出的算法不仅可以估计相机的轨迹,还能标定重力和相机外参(即相机和IMU之间的相对位姿)。在视觉里程计部分,采取了关键帧策略,这种方法要比帧间对齐好一些。另外,我们结合了基于特征的视觉里程计和基于ICP的视觉里程计,从而增加系统的精度和姿态估计的鲁棒性。仿真结果和实际数据验证了该方法的有效性。

简介:

这篇论文旨在为使用IMU和RGBD传感器的室内机器人提供一个准确、鲁棒的导航系统。使用深度传感器而不是单纯的单目双目相机的优点在于由于深度相机的使用,我们可以跳过深度估计步骤,从而减少计算量和误差。在图像匹配对齐方面,主流上有两种方法:特征点法和直接法。特征点法通过最小化特征点的重投影误差来估计位姿,而直接发通过最小化光度(深度)误差来估计位姿。基于特征点的算法鲁棒性更好一些,但直接法的准确度更胜一筹。因此在本文提出的算法中,我们结合了两种算法以同时实现鲁棒性和准确度。

本文贡献:

1)在同一个 EKF中结合了基于RGB(特征点法)和基于深度(ICP)的视觉里程计和IMU,这同时保持了鲁棒性和精度。

2)提出了一个将关键帧位姿作为状态向量一部分的EKF模型

3)不仅标定了相机外参,还在线估计了重力向量

系统框图

算法概述:

1、结构介绍

首先,通过IMU的数据估计机器人的运动。当新的一帧图像传入系统时,在RGB图像中检测和提取修改后的ORB特征。进行特征匹配后,首先更新EKF状态,并将其应用于ICP算法的初始化,ICP算法在当前帧和关键帧之间运行。如果结果发生了收敛,EKF再次更新。

2、EKF部分

在本文提出的算法中,IMU状态、相机外参、重力、关键帧的姿态等均包含在状态向量中。状态向量如下:

误差向量:

由于速度等参数是在关键帧坐标系下表示的,因此对速度传播更新的方程进行调整,得到新的连续时间状态估计传播方程:

为了时间上的同步,我们在两个图像帧之间存储IMU测量值。当有新的帧进入系统时,利用存储的我IMU数据进行状态估计和协方差矩阵的传播,同时,使用4阶Runge-Kutta算法在两帧之间的时间段内对向量和矩阵进行积分。

3、特征匹配的量测模型

4、ICP里程计量测模型

为提高效率,我们在EKF中采用ICP测量的松耦合。对于ICP来说,在本文算法中,采用点-面矩阵。关键帧和当前帧之间的相对位姿可表示为:

首先,上式和EKF估计的位姿均被用于ICP初始化。对于每一次迭代,相机坐标系中的每一个点都被投影到关键帧坐标系:

残差表示为:

上式线性化后得到:

实验结果:

在实景实验中,设置了4种场景进行实验验证:

1)不进行相机外参标定的VIO

2)不进行重力标定的VIO

3)包含相机外参和重力标定的VIO(本文算法)

4)不使用ICP算法的VIO

下图展示了四种场景的轨迹估计结果。四种场景的误差分别为2.92%,3.05%,0.57%,2.41%。

总结

此论文中,我们提出了一个实时的基于关键帧的RGB-D视觉惯性里程计,在此系统中,相机外参参数和重力参数均可被在线标定。主要的贡献在于在一个EKF中推导出了结合关键帧、标定以及特征点和ICP测量的方程。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

基于关键帧的RGB-D视觉惯性里程计相关推荐

  1. 基于视觉惯性里程计的无监督深度补全方法

    标题:Unsupervised Depth Completion From Visual Inertial Odometry 作者:Alex Wong , Xiaohan Fei , Stephani ...

  2. 计算机视觉方向简介 | 视觉惯性里程计(VIO)

    VIO-SLAM Visual-Inertial Odometry(VIO)即视觉惯性里程计,有时也叫视觉惯性系统(VINS,visual-inertial system),是融合相机和IMU数据实现 ...

  3. 用于机器人导航辅助的6自由度姿态估计的平面辅助视觉惯性里程计

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 Plane-Aided Visual-Inertial Odometry for 6-DOF Pose ...

  4. 视觉惯性里程计 VIO

    视觉惯性里程计 VIO - Visual Inertial Odometry 视觉−惯性导航融合SLAM方案 视觉惯性SLAM专栏 VINS技术路线与代码详解 VINS理论与代码详解0--理论基础白话 ...

  5. 视觉惯性里程计 综述 VIO Visual Inertial Odometry msckf ROVIO ssf msf okvis ORB-VINS VINS-Mono gtsam

    视觉惯性里程计 VIO - Visual Inertial Odometry 视觉−惯性导航融合SLAM方案 博文末尾支持二维码赞赏哦 _ 视觉惯性SLAM专栏 VINS技术路线与代码详解 VINS理 ...

  6. 视觉惯性里程计(VIO)

    视觉惯性里程计(VIO) 本文是 Forster et al. 的阅读笔记,自己补充了一点基于鱼眼相机的噪声传递内容. 概述 使用视觉和惯性部件可以分别定位目标.双目相机通过在像素平面捕捉目标.确定相 ...

  7. <论文阅读>用于 3D 点线和平面的视觉惯性里程计框架 A Visual Inertial Odometry Framework for 3D Points, Lines and Planes

    被疫情包围了!在家多看看论文吧- 论文地址:A Visual Inertial Odometry Framework for 3D Points, Lines and Planes [摘要]:恢复连续 ...

  8. 距离-视觉-惯性里程计:无激励的尺度可观测性(ICRA2021)

    Range-Visual-Inertial Odometry: Scale Observability Without Excitation 作者:Jeff Delaune,David S. Baya ...

  9. HybVIO: 突破实时视觉惯性里程计的极限

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨paopaoslam 来源丨泡泡机器人SLAM 标题:HybVIO: Pushing the L ...

最新文章

  1. oracle 10.2 64位,Oracle 10.2.0.5 x64升级到11.2.0.3 x64
  2. Design Pattern - Builder(C#)
  3. profile 文件含义
  4. Java中int和short的取值范围_我的处理器上C中的int,short和其他数据类型的范围?...
  5. 题库练习4(提取不重复的数字、字符个数统计、数字颠倒、字符串反转)
  6. boost::mp11::mp_map_replace相关用法的测试程序
  7. roundrobin来历_Linux系统管理
  8. SpringBoot_数据访问-整合MyBatis(二)-配置版MyBatis
  9. Spring Boot开发Web应用
  10. 多位诺贝尔奖获得者推荐的精品力作:《大数据时代的调查师》
  11. CAN笔记(20) 过程数据对象
  12. Zdal分库分表、超详细一步一步实现使用zdal搭建框架
  13. matlab生成数据以二进制数据格式写入txt文件中
  14. 微信小程序实验一 ——— 简单计算器与秒表
  15. ADRC自抗扰控制,有手就行
  16. java 数字转中文_使用Java将阿拉伯数字转换为中文数字(适配小数转换)
  17. 【前端安全】常见安全性问题及解决方案
  18. 计算机无法访问e盘,win10系统E盘拒绝访问的详细方法
  19. 如何处理WordPress上传资源报HTTP错误
  20. Android手机下载的缓存视频如何找到?

热门文章

  1. AI in 美团:吃喝玩乐背后的黑科技
  2. 资源 | 深度学习图像标注工具汇总
  3. 机器学习从Python 2迁移到Python 3,你需要注意的一些事……
  4. Redis 延时任务(高手养成篇)
  5. springBoot启动时让方法自动执行的几种实现方式
  6. 漫画 | 人到中年,一地鸡毛
  7. HttpClient连接池设置引发的一次雪崩
  8. Openresty最佳案例 | 第5篇:http和C_json模块
  9. 数据分析之Pandas缺失数据处理
  10. 腾讯公布 23 年前第一间办公室照片,太有年代感了