orb slam2原始碼解讀(一) Frame類

2021-08-14 18:18:14 字數 962 閱讀 8323

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...