視覺slam14講之建圖

   建圖(Mapping)是slam的兩大目標之一。上述討論的都是定位,討論了特徵值點的定位,直接法的定位,以及後端優化。在經典的slam模型中,所謂的地圖,即所有路標點的集合。一旦確定了路標點的位置,可以說明完成了建圖。只是如此,那麼視覺里程計,Bundle Adjustment算完成了任務,還額外的進行了優化。
但建圖的需求不同,SLAM作爲一種底層技術,往往是用來爲上層應用提供信息。例如掃地機器人需要完成掃地工作,希望計算一條能夠覆蓋整張地圖的路徑。或者,如果上層是一個增強現實設備,那麼開發者可能將虛擬物體疊加在現實物體之中。在視覺slam看來,“建圖”是服務與“定位”的; 但在應用層看來,“建圖”明顯還帶來許多其他需求:
    定位:定位是基本功能不用多說。視覺里程計討論如何利用局部地圖來實現定位。在迴環檢測部分,只要有全局的描述子信息,就能通過迴環檢測確定機器人的位置。
    導航:在地圖中進行路徑規劃,在任意兩個地圖間尋找路徑,然後控制自己運動到目標點的過程。該過程中至少知道地圖中哪些地方不可通過,而哪些地方是可以通過。這屬於稀疏特徵點地圖的能力範圍,至少得是一種稠密的地圖。
    避障:避障也是機器人經常碰到的一個問題,不過它更注重局部的,動態的導航物的處理。同樣,僅有特徵點,無法判斷某個特徵點是否爲障礙物,所以需要稠密地圖。
    重建:稠密地圖,利用slam獲得周圍環境的重建效果,並把它展示給其他人看。例如:三維的視頻通話或者網上購物等。也可以構建帶紋理的平面,就像電子遊戲中的三維場景那樣。
交互:主要指人與地圖之間的互動。例如:科幻電影裏面是真的,在增強現實中,我們會在房間裏放置虛擬的物體,並與這些虛擬物體之間有一些互動——比如點擊虛擬網頁瀏覽器來觀看視頻,或者向牆面投擲物體。

1. 單目稠密重建

   a. 稠密重建解決方案:
         .使用單目相機,通過移動相機之後進行三角化測量像素的距離。
         .使用雙目相機,利用左右目的視差計算像素的距離(多目原理相同)。
          .使用RGB-D相機直接獲得像素距離。
         但單目和雙目對深度的獲取往往是“費力不討好”——花大量的計算,最後得到一些不怎麼可靠的深度估計。當然,RGB-D也有一些量程,應用範圍和光照的限制。
    b. 深度濾波器技術:深度估計能隨測量的增加從一個非常不確定的量,逐漸收斂到一個穩定值。

2. 極線搜索與塊匹配

這裏寫圖片描述
   上方的圖主要是描述極線搜索。沿着第一幅圖像中的極線的某頭走到另一頭,逐個比較每個像素與p1的相似程度。類似直接法中的迴環檢測,然而單個像素的亮度沒有區分性,那就比較像素塊,在p1周圍取一個大小爲w*w的小塊,然後極線上也取很多同樣大小的小塊進行比較,就可以一定程度上提高區分性。取名塊匹配。
   a. 目前計算小塊與小塊間的差異有
         SAD(Sum of Absolute Difference)。取2個小塊的差的絕對值之和.
         SSD(Sum of Squared Distance)。取2小塊的差的平方和。
         NCC(Normalized Cross Correlation)。歸一化相關,計算的是兩個小塊的相關性。

3. 並行化:效率的問題

     在進行極線搜索時,上一個像素計算與下一個像素沒必然聯繫。那麼就可以用多個線程,分別計算每個像素,然後將結果統一起來。

4. RGB-D稠密建圖

   RGB-D相機完全通過傳感器中硬件測量得到,無須消耗大量的計算資源來估計。而且,RGB-D的結構光或飛時原理,保證了深度數據對紋理的無關性。故RGB-D進行稠密建圖是相對
     a. 建圖方式
稠密建圖主流方式。其中最直觀,最簡單的方法。根據估算的相機位姿,將RGB-D數據轉化爲點雲(Point CLoud),然後進行拼接,最後得到一個由離散的點組成的點雲地圖(Point Cloud Map)。
    b.八叉樹地圖
點雲有幾個明顯的缺陷。一是通常規模很大,但許多時候,它的“大”並非必須,許多不必要的細節都加進來了。二是點雲地圖無法處理運動的物體,點雲中只有“添加點”而沒有“當點消失時把它移除”的做法。實際環境中將變得不夠實用。
     c. *TSDF地圖和Fusion系列
           與slam相似但又有稍許不同的研究方向:實時三維重建。前面地圖模型中,以定位爲主體,地圖的拼接是作爲後續加工步驟放在slam框架中的。
         三維重建把重建準確地圖作爲主要目標,所以基本都需要利用GPU加速,通常需要較重的計算設備。與之相反,SLAM向輕量級,小型化方向發展,有些甚至放棄了建圖和迴環檢測部分,只保留視覺里程計。
         TSDF(截斷符號距離函數),一種網格式地圖,這個存儲在顯存而不是內存中,利用GPU的並行特性,可以並行地對每個體素進行計算和更新。

發佈了63 篇原創文章 · 獲贊 15 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章