一般的边缘化是将联合几率分布分解为边缘几率分布和条件几率分布的过程,这样能够将Sliding Window中较旧的状态边缘化出Sliding Window,同时保留其信息。而且保证了对应H海塞矩阵的稀疏,从而实现计算资源和计算精度的平衡。VINS中也能够将最旧的状态边缘化,可是在一些退化的运动下(例如悬停或者匀速运动),会形成当前运动状态的scale不可观,所以须要有选择地边缘化当前Sliding Window中的状态。具体来讲,至少两个轴的加速度份量不为0时,尺度才是可观的。VINS中实现的是保留视差较大的状态及其观测,而优先边缘化视差较小的状态。算法
以下图所示,app
(a)表明当前状态$X_{5}$与$X_{4}$之间的视差较小,所以优先边缘化掉$X_{5}$;这也说明VINS中没有经过视觉来选择关键帧(一般纯视觉SLAM都会经过特征点匹配比例或者时间上的判断来插入关键帧),这是为了防止在视觉模块没有插入关键帧的状况下(例如悬停),IMU一直在积分,形成预积分偏差很大。同时注意不只与$X_{5}$相关的视觉观测会被边缘化到prior中,$f_{2}$也被边缘化掉,同时因为假设第一次观测是没有偏差的,所以$X_{4}$和$f_{2}$之间的观测也从Sliding Window中去掉了。3d
(b)表明快速运动,加速度充分积分,所以选择边缘化最旧的状态(以及相应的观测)。blog
增量方程求解中的prior将会更新为:资源
该Two-Way Marginalization过程目的是解决运动较小状况下,近临的状态一直被边缘化掉,保证只维护较久的,视差比较大的,能够恢复出scale信息的状态。具体的算法流程在另一篇Initialization- free monocular visual-inertial state estimation with application to autonomous MAVs文章中。it