DAVIS第六课: 基于关键帧的非线性优化的事件相机实时VIO算法
学习论文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测量的误差, 构建一个代价函数:
关键帧边缘化:
保持所有的关键帧在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.实现结果
上一篇: 【从零开始手写 VIO】习题
下一篇: IMU标定及Allan方差分析