視覺里程計就是通過對圖像進行特征提取與匹配得到兩幀之間的位姿,并進行估計相機運動。
經典SLAM中以相機位姿-路標來描述SLAM過程
特征提取與匹配
- 路標是三維空間中固定不變的點,可以在特定位姿下觀測到
- 在視覺SLAM中,可利用圖像特征點作為SLAM中的路標
特征點
特征點是圖像中最具代表性的部分,如輪廓、邊緣、最暗或最亮的部分
特征點具有以下性質
特征點的信息:
- 關鍵點:位置、大小、方向、評分等
- 描述子:特征點周圍的圖像信息
ORB特征
ORB特征的關鍵點是:Oriented FAST(一種改進的FAST角點)
描述子:改進BRIEF
FAST關鍵點:
FAST:主要檢測局部像素灰度變化明顯的地方,(如果一個像素與鄰域的像素差別較大,則更可能是角點),檢測過程如下:
在FAST12中,提出一個高效的測試,來快速排除一大部分非特征點的點,該測試僅僅檢查位置1、5、9、13四個位置的像素,如果不滿足至少三個角點亮度大于I+T或小于I-T,那么p不可能是一個角點。
FAST缺點:
- 原始FAST角點經常出現扎堆的現象。所以在第一遍檢測之后,還需要用非極大抑制,在一定區域內僅保留響應極大值的角點,避免角點集中問題。
- 由于FAST角點不具有方向信息且存在尺度問題,ORB添加了尺度和旋轉的描述:尺度不變性通過構建圖像金字塔來實現,旋轉是由灰度質心法來實現的。
Oriented FAST:
👉尺度不變性
很好的避免了尺度不變性
👉旋轉是由灰度質心實現的
質心是指以圖像塊灰度值作為權重的中心。
描述子:
一種二進制描述子,其描述向量由許多01組成
- 1:關鍵點附近兩個像素p>q
- 0: 關鍵點附近兩個像素p<q
example:
那么怎么旋轉的呢?
BRIEF描述子總結
- 優點:使用了隨機選點的比較,速度標記快,由于使用二進制表達,存儲起來十分方便
- 缺點:原始的BRIEF描述子具有旋轉不變性,在圖像發生旋轉時容易丟失,而ORB在FAST特征提取階段計算了關鍵點的方向,計算了旋轉之后的BRIEF特征使ORB的描述子具有較好的旋轉不變性。
- BRIEF是一種二進制描述,需要用漢明距離度量(即其中01個數的差異)
特征匹配
特征匹配解決了SLAM中的數據關聯問題,即確定當前看到的路標與之前看到的路標之間的對應關系。
通過對圖像或者圖像與地圖之間的描述子進行準確匹配,可以為后續的姿態估計、優化等操作減輕大量負擔,然而,由于圖像特征的局部特征、誤匹配的情況存在。
對于兩個時刻的圖像:
- 在圖像It中提取到特征點xm(m=1,2…M)在圖像It+1時刻提取到特征點xn(n=1,2…N)
- 暴力匹配:對于每一個特征點xm與所有xn測量描述子的距離,然后排序,取最近的一個作為匹配點
- 當特征點數量很大時,匹配的運算量會變得很大,選用一些改進算法:快速近似最近鄰算法
計算相機運動
2D-2D對極集合
)
需要用到相機坐標系->像素坐標系相關知識
👉 對極幾何
本質矩陣僅依賴于外部參數R,t
👉八點法求E
將E看作3*3的矩陣,去掉尺度因子后剩下8個自由度,考慮一對匹配點,其歸一化坐標為:
把上述方程記為
Ae=0