出問題 初始化ucosiii ORB初始化總結

2021-10-14 04:26:50 字數 1474 閱讀 4168

公式梳理

1.在當前幀

2.平行計算如下兩個模型

通過標準化的dlt方法和8-point演算法,加上ransac策略計算出

和 。為兩個模型固定到相同的迭代次數,以及每次迭代用到的點數(f矩陣用8個點,h矩陣用4個點)。每次迭代中,為每個模型m(h或f)計算乙個分數

。其中,和

是對稱的從一幀到另一幀的轉換誤差。

為異常點的重投影閾值,該閾值為在95%的

測試,假設1個畫素的標準測量誤差下,

。 定義為與

相同。這樣,兩個模型的在它們的內點區域,分數相同時,對應的d相同。如果沒有足夠的內點,從步驟1 重新開始。

3.模型選擇

對於平面,或近似平面,以及視差很小的情況,採用h矩陣進行描述。雖然f矩陣也可以找到,但問題約束性不好,不能恢復出正確的位姿。在這種情形下,要選擇h矩陣作為恢復位姿的方法,從平面正確地完成初始化。或者在視差比較小的情況下,拒絕初始化。

對於非平面情形,有足夠視差的情況下,應該選用f矩陣,雖然h矩陣可以從在相同平面(或視差較小的)上的匹配子集中找到,但這種情形選擇基礎矩陣f。

乙個魯棒的策略是計算

當 時,足夠捕捉到平面和視差小的情形,選擇h矩陣。其他情形選擇f矩陣。

4.位姿恢復

在基礎矩陣的情況下,利用內參k轉換成本質矩陣:

,然後通過奇異值分解獲得4組解。三角化這四組解,並像h矩陣一樣選擇重建結果。

5 bundle adjustment

採用full ba,refine the initial reconstruction。

在newcollege robot sequence中乙個初始化的室外挑戰場景,如圖

,ptam和lsd-slam初始化了平面中的所有點,本文的方法等到有足夠的視差以後,採用f矩陣完成了正確的初始化。

參考文獻

[1]mur-artal r, montiel j m m, tardos j d. orb-slam: a versatile and accurate monocular slam system[j]. ieee transactions on robotics, 2015, 31(5): 1147-1163.

遺留問題,orb-slam中含depth的版本,怎麼初始化的?

比較**中和svo初始化的差異點是什麼?

備註:大括號編輯語法

初始化 指定初始化

id alloc 物件的誕生過程,主要是從作業系統獲得一塊足夠大的記憶體,以存放該類的全部例項變數,並將其指定為存放記憶體物件的實力變數的位置。alloc方法同時將這塊記憶體全部設定為0。結果是 bool變數初始化為no,所有的int型別變數為0,float變數為0.0,所有的指標為nil.obje...

初始化 1 預設初始化 列表初始化

初始化的基本概念 事實 初始化和賦值是兩個完全不同的操作。初始化,是建立變數時賦予其乙個初始值。賦值,是把物件的當前值擦除,用乙個新值代替。列表初始化 p39 作為c 11新標準的一部分,用花括號 來初始化變數得到了全面應用。出於某些原因,這種初始化的方式叫做列表初始化。現在,無論是初始化物件還是某...

初始化 MyBatis初始化之載入初始化

在mybatis初始化過程中,大致會有以下幾個步驟 1.建立configuration全域性配置物件,會往typealiasregistry別名註冊中心新增mybatis需要用到的相關類,並設定預設的語言驅動類為xmllanguagedriver 3.構建defaultsqlsessionfacto...