通常的邊緣化是將聯合概率分布分解為邊緣概率分布和條件概率分布的過程,這樣可以將Sliding Window中較舊的狀態邊緣化出Sliding Window,同時保留其信息。並且保證了對應H海塞矩陣的稀疏,從而實現計算資源和計算精度的平衡。VINS中也可以將最舊的狀態邊緣化,但是在一些退化的運動下(例如懸停或者勻速運動),會造成當前運動狀態的scale不可觀,因此需要有選擇地邊緣化當前Sliding Window中的狀態。具體來說,至少兩個軸的加速度分量不為0時,尺度才是可觀的。VINS中實現的是保留視差較大的狀態及其觀測,而優先邊緣化視差較小的狀態。
如下圖所示,
(a)代表當前狀態$X_{5}$與$X_{4}$之間的視差較小,因此優先邊緣化掉$X_{5}$;這也說明VINS中沒有通過視覺來選擇關鍵幀(通常純視覺SLAM都會通過特征點匹配比例或者時間上的判斷來插入關鍵幀),這是為了防止在視覺模塊沒有插入關鍵幀的情況下(例如懸停),IMU一直在積分,造成預積分誤差很大。同時注意不僅與$X_{5}$相關的視覺觀測會被邊緣化到prior中,$f_{2}$也被邊緣化掉,同時由於假設第一次觀測是沒有誤差的,因此$X_{4}$和$f_{2}$之間的觀測也從Sliding Window中去掉了。
(b)代表快速運動,加速度充分積分,因此選擇邊緣化最舊的狀態(以及相應的觀測)。
增量方程求解中的prior將會更新為:
該Two-Way Marginalization過程目的是解決運動較小情況下,近臨的狀態一直被邊緣化掉,保證只維護較久的,視差比較大的,可以恢復出scale信息的狀態。具體的算法流程在另外一篇Initialization- free monocular visual-inertial state estimation with application to autonomous MAVs文章中。