SLAM++ 增量式BA優化庫

incSLAM++是3DV 2017最佳論文,源文件網址 https://sourceforge.net/p/slam-plus-plus/wiki/Home/ 

incSLAM++有兩個創新點:

一是增量式Schur補更新。

如果delta更新是稀疏的,則採用增量式Schur補來求解非線性最小二乘問題,即增量式BA問題,會縮短計算時間。

求解不同關鍵幀之間的位姿和每幀上的點即求解增量式BA(解不是全局的),就是求解如下非線性最小二乘問題

在每次迭代時,在初始點附近利用泰勒展開進行線性化,得到如下最小二乘問題

 

在使用最小二乘求解過程中將相機位姿和路標點分離,則LS求解的系統矩陣和右邊爲

因爲在線性化點附近小的改變可以忽略 所以系統矩陣用增量表達更新


增量式Schur補變爲



如果所有的變量都更新的話,P和deltaP-1就有同樣的秩,這時問題就退化到批處理了,但是如果沒有更新所有變量,當前的方法就有加速作用。

文章分析了爲甚麼增量式Schur補有稀疏計算的優越性。

二是一種高效的協方差恢復技術。

可以使邊緣協方差(marginal covariance)計算和NLS的計算時間在一個數量級上。

系統矩陣的逆就是協方差。這裏採用Woodbury formula 求得了協方差,將Schur補的求逆改爲Schur補的迭代。

文章強調了所提方法的優越性在於更新的稀疏性,當變量更新小於50%時候,計算代價更小。文章還採用了損失函數來削弱外點的影響。在與g2o slam++ ceres作對比的時候,g2o與slam++均採用LM solver,incSlam++與ceres均採用dogleg算法。效果對比

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章