欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

DAVIS第六课: 基于关键帧的非线性优化的事件相机实时VIO算法

程序员文章站 2022-07-12 10:34:58
...

学习论文Real-time Visual-Inertial Odometry for Event Cameras using Keyframe-based Nonlinear Optimization

1. 摘要

提出一种新颖, 精确的紧密耦合的视觉里程计。充分利用该相机的属性去估计相机的在高挑战场景下的运动。

这个方法追踪一组特征点(在图像平面提取的特征), 我们考虑时空重叠窗口内的事件, 用当前相机的运动和场景结构进行校准, 产生运动补偿帧。

最后结合基于关键帧内追踪到的特征点,基于非线性优化的VO算法去估计相机的6-*度位姿, 速度和IMU偏差。

2.方法

  • Feature Detectiong

对运动消除的之后的事件帧采用Fast角点检测,github项目地址为: https://github.com/uzh-rpg/fast

 Fast Cornel detection[23]:  Machine learning for high-speed corner detection. Edward Rosten
  • Feature Tracking and LandMarks

相邻两事件帧使用金字塔LK光流法去追踪路标点, IMU获取的转换矩阵用于预测特征的位置, 使用金字塔跟踪的位姿进行校准, 对那些没有追踪成功的点立即丢弃。

pyramidal Lukas-Kanade [2] : Lucas-kanade 20 years on: A unifying framework. 

Outlier Filtering

利用2-点RANSAC 进一步删除额外点。

2-Point RANSAC[25] : 2-point-based outlier rejection for camera-imu systems with applications to micro aerial vehicles

关键帧的选取

当追踪的特征点数量小于一个阈值时, 或者当与上一个关键帧的距离小于一个最小阈值时,一个新的关键将会创建;

尺度, 由场景深度的中值来定义

初始化

第一帧不做任何处理, 直接传入后端, 后端将会通过IMU测量数据估计传感器的姿态, 并将其返回。

  • 后端: 基于关键帧的非线性优化

在两个关键帧之间的运动加入IMU测量数据, 去实现非线性后端优化, 类似于OKVIS[15].

OKVIS[15] :  Keyframe-based visual-inertial SLAM using nonlinear optimization. S. Leutenegger, S. Lynen
OKVIS[14] :  Keyframe-based visual-inertial SLAM using nonlinear optimization.S. Leutenegger, P. Furgale

结合相机的重投影误差和IMU测量的误差, 构建一个代价函数:

DAVIS第六课: 基于关键帧的非线性优化的事件相机实时VIO算法

关键帧边缘化: 保持所有的关键帧在GN优化系统中将会影响系统的运行速度, 而简单的丢弃过去的关键帧将会丢失一些有用的信息。为了克服这个问题,我们在相应的观测值上使用 **(Schur complement)**将旧关键帧部分边缘化了,这将会使得旧的测量成为我们的先验估计。

 Schur complemet(Details) [15] :  Keyframe-based visual-inertial SLAM using nonlinear optimization

Schur complement: 舒尔补 , 它的概念介绍可以看Wiki知识社区

它的实质: 就是为了边缘化一个变量, 保留剩下那个变量所做的矩阵变换。

同时这个边缘化的过程也称之为:Sliding widow Filter

slding window的精髓在于不随意舍弃变量。

更多详细的边缘化和Schur complement内容, 参考该链接: https://blog.csdn.net/heyijia0327/article/details/52822104

3.实现结果

DAVIS第六课: 基于关键帧的非线性优化的事件相机实时VIO算法