摘要
总体框架:基于关键帧的图优化。约束因子:事件相机的电线特征残差、传统相机的点特征残差、IMU预积分。
介绍
事件相机只敏感动态变化,记录像素变化信息;类似于青蛙视觉。具有微秒级低时延、高对比度、无运动模糊。
线特征能充分利用人造环境、建筑物的特征,与点特征一起能提升VSLAM、VIO等的鲁棒性。
事件相机与传统相机优势互补,前者善于从高速机动过程提取特征,而在准静态观测能力降低。
相关技术
- 基于事件相机的表达、特征提取
事件相机数据是异步的,作者总结了一些方法以实现与传统图像结合。
- 直接处理事件流。
- 结合图像或者用深度学习生成图像。
- 运动补偿事件图像,或者边缘图像。
- Time Surface or Surface of Active Event。像素坐标x,时刻t,最近事件的时刻 t l a s t ( x ) t_{last(x)} tlast(x)。
T ( x , t ) = exp ( − t − t l a s t ( x ) η ) T(x,t)=\exp (-\frac{t-t_{last(x)}}{\eta}) T(x,t)=exp(−ηt−tlast(x))
- 基于事件相机的运动估计。
第一个基于事件相机的VO、SLAM系统:平面运动、构建天花板地图,仍依靠了传统相机。SLAM for event cameras in real time, Event-based visual odomery。
第一个完全基于事件相机的VO。
EVIO
作者经常提及参考方法不能实时处理更高的分辨率事件相机,一方面是当时的设计与客观条件决定的,另一方面是工程优化问题。
核心方法
- 前端:用归一化的TS表达,以额外的事件特征(event-corner)提取BRIEF描述子基于Hamming距离匹配实现闭环检测。用极化的TS表达完成点线特征追踪。
TS的表达式的两种类型:
- 极化的, T x , t = p ⋅ e x p ( − t − t l a s t ( x ) η ) T_{x,t}=p\cdot exp(-\frac{t-t_{last_{(x)}}}{\eta}) Tx,t=p⋅exp(−ηt−tlast(x))
- 归一化的, $T_{np(x,t)}=255\cdot\frac{T-T_{min}}{T_{max}-T_{min}} $
- 后端:紧耦合前端特征与IMU预积分估计位姿、闭环。
- 实时递推,通过IMU递推高速率输出。
- 关键帧的确定。1. 事件特征的平均视差>10;2. 事件特征个数<20。
- 初始化,采用VINS方式,SfM与惯性松耦合;若有图像输入,则使用图像特征初始化。
- 运动补偿,只用IMU实现。如何应用公式(3)?
- 使用LK光流追踪已存在的事件特征,从上一帧特征 F e F_e Fe追踪到当前帧的特征 F e ′ F^\prime_e Fe′,从当前帧反追踪到上一帧$F^{\prime\prime}_e $,判断上一帧的两个特征的距离,小于1pixel则追踪成功;删除未成功跟踪的点;当跟踪的特征低于阈值100-250,增加新事件特征,基于Arc*算法。
- 线特征的提取与匹配。修改OpenCV中的LSD算法,剔除较短的线特征,阈值 L m i n = 0.125 ⋅ m i n ( W , H ) L_{min}=0.125\cdot min(W,H) Lmin=0.125⋅min(W,H),使用LBD做匹配,匹配结果的提纯:距离、端点、夹角。
- 滑窗优化,类似VINS的后端,增加了线特征的状态,相应地,线特征观测残差。
感兴趣的参考:
An efficient and robust line segment matching approach based on LBD descriptor and pairwise geometric consistency