1. 程式人生 > >[ORB-SLAM2]關於程式碼優化設計

[ORB-SLAM2]關於程式碼優化設計

參考http://www.cnblogs.com/luyb/p/5447497.html

關於ORB-SLAM2中提高資料關聯準確度的措施整理:



1. 初始化過程中提出模型選擇策略,根據特徵點的共面情況,確定使用基礎矩陣Fundamental matrix還是單應矩陣Homography進行位姿估計。
2. 姿態優化:建立區域性地圖,尋找當前幀與地圖的對應關係。(真正匹配到的地圖點其實很少)
3. 關鍵幀與關鍵幀之間建立聯絡,利用鄰接關鍵幀們更新地圖點
4. 優化:原因為相機標定誤差和追蹤精度不夠
    g2o迭代優化,誤差目標函式
        加入新關鍵幀時進行區域性優化:範圍是當前關鍵幀、與當前關鍵幀直接相連的關鍵幀、二者可以看到的地圖點
        全域性優化:除了第一幀外所有的關鍵幀和地圖點
        閉環Sim3位姿優化(使尺度一致),地圖點在兩關鍵幀上的二維對應點的誤差
5. 閉環檢測匹配時的策略:輸出一系列候選影象,而不是一幅最相似的影象,之後進行反覆嚴格的迴環驗證,進而提高了匹配時的魯棒性
6. 地圖點描述子的計算:通過多個關鍵幀對應特徵點的描述子的中值得到,準確性較高
7. 關於描述子的計算,引入了金字塔層級的概念,保證其對尺度變化的魯棒性

 

關於工程上的考慮,主要在提高實時性:


1、描述子轉化為詞袋向量,使用BoW 加速匹配(BoW一般不太考慮特徵之間的幾何關係
2、附加正反向搜尋指標,反向指標在節點(單詞)上儲存到達這個節點的影象特徵的權重資訊和影象編號,因此可用於快速尋找相似影象。正向指標則儲存每幅影象上的特徵以及其對應的節點在詞典樹上的某一層父節點的位置,因此可用於快速特徵點匹配(只需要匹配該父節點下面的單詞)