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算法。效果對比