目錄
視覺 SLAM 里的 Bundle Adjustment 問題
最小二乘基礎概念
迭代下降法求解:下降法
最速下降法和牛頓法
阻尼法
非線性最小二乘
Gauss-Newton 和 LM
魯棒核函數的實現
VIO 殘差函數的構建
視覺重投影誤差
IMU 測量值積分
狀態誤差線性遞推公式的推導
基于誤差隨時間變化的遞推方程
視覺 SLAM 里的 Bundle Adjustment 問題
? 狀態量初始值:特征點的三維坐標,
相機的位姿。
? 系統測量值:特征點在不同圖像上的
圖像坐標。
問題:如何估計狀態量的最優值?
解決方式
構建誤差函數,利用最小二乘得到狀態量
的最優估計
最小二乘基礎概念
找到一個 n 維的變量 x ? ∈ R n ,使得損失函數 F ( x ) 取局部最小值:
F ( x ) = 1 2 ∑ i =1 m ( f i ( x )) 2
其中 f i 是殘差函數,比如測量值和預測值之間的差,且有 m ≥ n 。局
部最小值指對任意 ∥ x ? x ? ∥ < δ 有 F ( x ? ) ≤ F ( x )
損失函數泰勒展開
假設損失函數 F ( x ) 是可導并且平滑的,因此,二階泰勒展開:
F ( x + ? x ) = F ( x ) + J ? x + 1 2 ? x ? H ? x + O ( ∥ ? x ∥ 3 ) (2)
其中 J 和 H 分別為損失函數 F 對變量 x 的一階導和二階導矩陣
損失函數泰勒展開性質
忽略泰勒展開的高階項,損失函數變成了二次函數,可以輕易得到如
下性質:
? 如果在點 x s 處有導數為 0 ,則稱這個點為穩定點。
? 在點 x s 處對應的 Hessian 為 H :
? 如果是正定矩陣,即它的特征值都大于 0 ,則在 x s 處有 F ( x ) 為
局部最小值 ;
? 如果是負定矩陣,即它的特征值都小于 0 ,則在 x s 處有 F ( x ) 為
局部最大值 ;
? 如果是不定矩陣,即它的特征值大于 0 也有小于 0 的,則 x s 處
為鞍點。
迭代下降法求解:下降法
迭代法初衷
找一個下降方向使損失函數隨 x 的迭代逐漸減小,直到 x 收斂到 x ? :
F ( x k +1 ) < F ( x k )
分兩步:第一,找下降方向 單位 向量 d ,第二,確定下降步長 α .
假設 α 足夠小,我們可以對損失函數 F ( x ) 進行一階泰勒展開:
F ( x + α d ) ≈ F ( x ) + α Jd
只需尋找下降方向,滿足:
Jd < 0
通過 line search 方法找到下降的步長: α ? = argmin α> 0 { F ( x + α d ) }
最速下降法和牛頓法
最速下降法 : 適用于迭代的開始階段
從下降方向的條件可知: Jd = ∥ J ∥ cos θ , θ 表示下降方向和梯度方向
的夾角。當 θ = π ,有
d = ? J ? ∥ J ∥
即 梯度的負方向 為最速下降方向。缺點:最優值附近震蕩,收斂慢
牛頓法:適用于最優值附近
在局部最優點 x ? 附近,如果 x + ? x 是最優解,則損失函數對