SVO學習日記 14 2021 2 23

2021-10-19 22:04:15 字數 1320 閱讀 4998

做了兩件事:

1.通過影象對齊,計算乙個粗糙的位姿

2.建立乙個當前幀的區域性地圖,根據地圖對比位姿進一步優化

二.影象對齊

1.目的:迭代計算幀間位姿

解釋:用於影象對齊的地圖點是上一幀能看到的地圖點,我們知道影象幀間變換比較小,

有理由相信上一幀所看到的場景大部分相同

過程:

(1)找到前一幀看到的地圖點p1,p2,p3

(2)投影至後一幀的二維影象上

(3)最小化灰度誤差函式(影象對齊),得到粗略的位姿

三.通過區域性地圖對當前幀位姿優化利用svo前端提供的位姿進行三維重建,屬於漸進式三維重建,利用了一系列的前後幀,完成對指定幀上畫素深度的提取

原因:用一系列幀來求取指定幀上每個畫素深度的原因是在計算畫素深度時,單次匹配恢復的深度有誤差,需要依靠多次深度測量值的融合,來恢復誤差較小的深度值.

兩個屬性:深度值服從高斯分布,局外點服從beta分布

過程:關鍵幀上選取畫素點,作為種子(seed->深度未收斂的畫素點),每來一幀就融合更新之前提取的種子,直至收斂.若新的一幀是關鍵幀,再次提取新的畫素作為種子

步驟:

1.計算極線(條件)

(1)已知種子所在幀與當前幀的相對位姿->vo提供

(2)已知種子的初始深度->縮小找匹配的搜尋量,當種子新提取時,沒有深度,取場景平均深度

2.計算仿射矩陣

(1)為什麼計算:同一張影象經過旋轉平移後,同一場景在影象上的位置發生了變化

(2)計算思路:利用三點法計算兩時刻的仿射矩陣,然後將上一時刻視窗裡的畫素座標投影到這一視窗中

3.搜尋匹配

跟蹤部分的匹配,是靠特徵對齊來完成的,不需要極線搜尋,這是因為在深度和位姿都比較準確的情況下,用特徵對齊可以匹配完成.

但是深度估計不行,它需要極線搜尋,因為深度未知或者深度不確定性太大,當極線小於兩個畫素時,直接採用影象對齊,因為此時的不確定性較小,否則沿著極線以乙個畫素布長搜尋匹配

4.三角測量恢復深度以及匹配不確定性

經過匹配搜尋後,能夠得到種子點以及種子點在當前幀匹配的畫素點,通過三角測量恢復深度值.多次三角測量的深度是為了融合得到種子較為準確的深度,因此融合的時候,不同的測量值就有著不同的權重,不確定性就是用來計算權重的深度的不確定性->在匹配時,誤匹配乙個畫素所帶來的最大深度誤差

5.深度融合

SVO學習日記 2 2021 1 16

include include include include include include include include include include include include namespace svo 析構函式,主要作用是刪除幀上的特徵點 frame frame 初始化幀 void...

SVO學習日記 8 2021 2 1

ifndef svo pose optimizer h define svo pose optimizer h include namespace svo endif include include include include include include include namespace ...

SVO學習日記 13 2021 2 22

include include include include include include include include include include include include include include include include include include includ...