前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于关键帧的RGB-D视觉惯性里程计

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

作者头像
计算机视觉
发布2020-12-11 14:45:36
6530
发布2020-12-11 14:45:36
举报
文章被收录于专栏:计算机视觉工坊

论文信息: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测量的方程。

本文仅做学术分享,如有侵权,请联系删文。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 计算机视觉工坊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档