視覺slam14講之視覺里程計

    作爲視覺slam中4大步驟的最前端,視覺里程計(VO)是視覺前端,它根據相鄰圖像的信息估計出粗略的相機運動,給後端提供較好的初始值。而其主要實現方法,分爲特徵點法,直接法。其中特徵點法目前是主流,它運動穩定,對光照,動態物體不敏感,是目前比較成熟的解決方案。

1. 特徵點

     圖像本是一個由亮度和色彩組成的矩陣,從矩陣層面考慮運動估計比較困難。我們可以選取有代表性的點,相機視角發生變化,我們根據各個圖像中相同的點,討論相機位姿估計問題,及定位問題。在視覺slam中,這些點指圖像特徵( Feature )
     這些角點事實上不滿足我們的很多需求。例如,從遠處看上去是角點的地方,當相機走近後,可能就無法識別出來。或者相機轉動,角點的外觀會發生變化,相機再次無法識別。目前爲了解決這些問題,研究出了更加穩定的局部圖像特徵,如:SIFT,SURF,ORB等等。
    a. 可重複性:相同的“區域”可以在不同的圖像中找到。
    b. 可區別性:不同的”區域“有不同的表達。
    c. 高效率:同一圖像中,特徵點的數量應遠小於像素的數量。
       SIFT算法: 充分考慮了在圖像變換過程中出現的光照,尺度,旋轉等變化,故計算量極大。目前普通PC的CPU還無法實時地計算SIFT特徵,進行定位與建圖。
       ORB算法: 適當的降低精度和健壯性,以提高計算的速度。採用速度極快的二進制描述子BRIEF,使整個圖像特徵提取的環節大大加速。

2.FAST關鍵點

     a. FAST是一個角點,主要檢測局部像素灰度變化明顯的地方,以速度快著稱。它的思想是:如果一個像素與鄰域的像素差別較大(過明或過暗),那麼它更可能是角點,相比其他角點檢測算法,FAST只需比較像素亮度的大小,十分快捷。
     b. 檢測過程:
          在圖像中選取像素p, 假設它的亮度爲Ip。
         設置一個閾值T(比如,Ip的20%)。
          以像素p爲中心,選取半經爲3的圓上的16個像素點。
         如貴選取的圓上有連續的N個點亮度大於Ip+T或小於Ip-T,那麼像素p可認爲是特徵點(N通常取12,即FSAT-12。其他常用的N取值爲9和11,稱爲FSAT-9,FSAT-11)。
         循環以上四部,對每一個像素執行相同的操作。
   c. 上訴其實也慢了點,故添加一項預測試操作,以快速地排除絕大多數不是角點的像素。具體操作,對於每個像素,直接檢測鄰域圓上的第1,5,9,13個像素的亮度,否則直接排除。原始FATS角點也會出現“扎堆”的現象,所以在第一邊檢測之後,還需要非極大值抑制。
    d. FSAT不具備方向性和尺度,ORB添加了尺度和旋轉的描述。其中尺度不變性由構建圖像金字塔,並在金字塔的每一層上檢測角點來實現。而特徵的旋轉是由灰度質心法實現。

3. BRIEF描述子

     視覺里程計(VO)裏,主要是測量特徵點,描述子。對圖像進行很好的識別。ERIEF是一種二進制描述子,其描述向量由許多0,1組成。這裏的0和1編碼了關鍵點附近兩個像素(比如p和q)的大小關係。如果p比q大,則取1,反之則取0。大體按照某種概率分佈,隨機地挑選p和q的位置。
     優點:BRIEF使用隨機選點的比較,速度比較快,而且使用了二進制表達,存儲起來十分方便,適用於實時的圖像匹配。

4. 特徵匹配

     特徵匹配的關鍵在VO中無需質疑,它解決了slam中的數據關聯問題,即確定當前看到的路標與之前看到的路標之間的對應關係。一般特徵匹配方法就是暴力匹配,即對每一個特徵點Xt與所有的Xt+1測量描述子的距離,然後排序,取最近的一個作爲匹配點。描述子表示了兩個特徵之間的相似程度,不過在實際運用中,還可以取不同的距離度量範數。我們往往使用漢明距離作爲度量-兩個二進制串之間的漢明距離,指的是其不同位數的個數。
     然而,當特徵點數量很大時,暴力匹配顯然不實際,快速近似最近鄰算法更適合於匹配點數量極多的情況。

5. 對極幾何

     使用兩張圖像中得到了一對配對好的特徵值,通過這些二維圖像的對應關係,恢復出在兩幀之間攝像機的運動。使用到基本矩陣,本質矩陣,單應矩陣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章