原文:ORB-SLAM(五)KeyFrame類

KeyFrame類利用Frame類來構造。對於什么樣的Frame可以認為是關鍵幀以及何時需要加入關鍵幀,是實現在tracking模塊中的。 由於KeyFrame中一部分數據會被多個線程訪問修改,因此需要在這些成員中加線程鎖,保證同一時間只有一個線程有訪問權。涉及線程安全的有: 關鍵幀位姿的設置 lock mMutexPose 關鍵幀間連接關系的設置 lock mMutexConnections 關 ...

2017-02-16 17:03 1 4067 推薦指數:

查看詳情

ORB-SLAM(五)KeyFrame-最小生成樹

KeyFrame中維護了一個map,保存了與當前幀共視的KeyFrame*與權重(共視MapPonits數量)。對關鍵幀之間關系是用加權有向圖來完成的,那么理解其spanning tree生成樹的原理就很有必要了。 KeyFrame中比較難理解的是SetBagFlag()函數,真實刪除當前關鍵幀 ...

Sat Feb 18 01:21:00 CST 2017 0 2224
ORB-SLAM(五)KeyFrameDataBase

關鍵幀數據庫通過預先訓練好的詞典,維護一個向量std::vector<list<KeyFrame*> > mvInvertedFile; 該向量中mvInvertedFile[i]表示包含了第i個WordId的所有關鍵幀; 我們需要知道關鍵幀對應的vBowVec向量是一個 ...

Tue Feb 21 04:01:00 CST 2017 1 1506
ORB-SLAM 代碼筆記(五)Frame

Frame的成員變量主要包含從攝像頭獲取的圖像的 1. 特征點信息(關鍵點+描述字) 2. 尺寸不變特征所用金字塔信息,這些都定義在ORBextractor對象中 3. 詞袋模型參數,用於跟蹤失敗情況下重定位 4. 相機參數,深度閾值 5. 當前幀的id,時間戳,相對世界坐標系位姿 ...

Thu Feb 16 00:43:00 CST 2017 1 3230
ORB-SLAM(二)性能

ORB-SLAM程序提供了運行Monocular、Stereo和RGBD數據的程序。編譯成功后,可以通過運行TUM的標准數據來驗證程序是否成功。如果想自己測試一些數據,可以通過OpenCV提供的接口調起電腦的攝像頭。 個人認為,ORB-SLAM是一個完整的單目SLAM實現,集合了當前流行 ...

Fri Mar 04 05:34:00 CST 2016 1 13358
ORB-SLAM(一)簡介

ORB主要借鑒了PTAM的思想,借鑒的工作主要有Rubble的ORB特征點;DBow2的place recognition用於閉環檢測;Strasdat的閉環矯正和covisibility graph思想;以及Kuemmerle和Grisetti的g2o用於優化。 首先需要了解ORB-SLAM ...

Thu Feb 09 00:10:00 CST 2017 0 1444
ORB-SLAM(五)優化

ORB-SLAM作為單目SLAM,其精度很大程度上決定於幀與幀之間的位姿優化的是否准確。因此優化(optimization)在ORB-SLAM里面扮演了很重要的角色。這一小節探討一下ORB-SLAM里用到的優化。 ORB-SLAM選用g2o作為圖優化的方法,關於g2o可以參考http ...

Mon May 30 06:44:00 CST 2016 9 17765
ORB-SLAM(九)LocalMapping

  LocalMapping作用是將Tracking中送來的關鍵幀放在mlNewKeyFrame列表中;處理新關鍵幀,地圖點檢查剔除,生成新地圖點,Local BA,關鍵幀剔除。主要工作在於維護局部地圖,也就是SLAM中的Mapping。 1. 處理新關鍵幀:ProcessNewKeyFrame ...

Fri Feb 24 03:43:00 CST 2017 2 2829
ORB-SLAM(四)追蹤

最近在讀ORB-SLAM的代碼,雖然代碼注釋算比較多了,但各種類和變量互相引用,看起來有點痛苦。索性總結了一下Tracking部分的代碼結構,希望能抓住主要思路,不掉坑里。 作者的程序分為兩種模式:SLAM模式和Localization模式。SLAM模式中,三個線程全部都在工作,即在定位也在建圖 ...

Fri Apr 08 22:18:00 CST 2016 4 20955
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM