点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
本文转自|计算机视觉工坊
论文信息: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“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~