orb-slam2是slam界中乙個非常優秀且著名的專案,關於該項目的解讀網上資料較少,大都是對演算法的整體構架和演算法思路進行解讀,本系列部落格將會帶你一點一滴地解讀orb-slam2的源**,在兼顧演算法講解的同時,更著重與**的結構與實現細節。
這次就先從frame類講起。
公有成員變數:
orb特徵點詞庫
orb特徵點提取子(左、右)、
時間戳:每一幀的時間
相機內參資料
特徵點總數量
關鍵點vector容器:儲存關鍵點
特徵點立體座標vector容器
dbow詞向量
dbow特徵向量
描述子矩陣(左、右)
是否是outlier的flag vector:用於表示關鍵點是否是outlier
網格化引數(網格化是為了特徵點匹配時能更高效)、
相機位姿矩陣
id 下一幀的id
參考的關鍵幀
尺度金字塔資訊
無失真影象的x、y邊界(僅僅計算一次)
邊界是否計算完的flag
私有成員變數:
旋轉、平移矩陣、相機中心
公有成員函式:
建構函式
提取orb特徵函式
詞袋計算
位姿設定
位姿更新
獲取光心
獲取旋轉矩陣的逆
地圖點是否在視野光錐中、
是否在某柵格中
匹配左右兩圖特徵點
糾正rgbd的錯誤座標點
關鍵點重投影
私有成員函式:
關鍵點去失真函式(針對rgbd)、
計算影象邊界(只計算一次,建立frame的例項時)
關鍵點分配至柵格(加速特徵點匹配)
ORBSLAM2原始碼閱讀(1) 概論
最近一直在沉迷明日方舟好久沒更新部落格了,好在這遊戲理智少,而且想著自己不能再頹廢下去,痛定思痛,決定開始開這個坑。orbslam2應該會是目前能開的最大的坑了吧,我盡量做完 咕咕 如果看到有什麼錯誤的地方或者感覺需要改進的地方請務必和我說,大家一起努力嘛 關於整個orbslam的流程,請參考這個部...
ORB SLAM2原始碼閱讀記錄(1) 單目初始化
最近開始學習下orb slam2原始碼,邊閱讀邊記錄下自己的理解,首先來乙個大致初始化流程圖,閱讀從mono euroc.cc開始。第一幀剛來 未構造初始化器 則構造 如果是單目初始器 mpinitializer為空,即第一次進行初始化 並且特徵點數 100 得到用於初始化的第一幀 2.第二幀 當前...
CYYMysql 原始碼解讀 2
執行緒同步類 lock.h檔案和lock.cpp檔案實現比較簡單,使用的是臨界區,臨界區是使用者態的執行緒間切換消耗不是很大,而事件核心物件 訊號量 互斥量都是核心態的,呼叫的時候會切換到核心態,所以盡量使用臨界區來同步執行緒間操作。詳細資訊可以檢視windows核心程式設計,上面講解的很詳細。pr...