视觉SLAM入门十四讲
視覺SLAM入門十四講
- 寫在前面的話
- 什么是視覺SLAM
- 視覺SLAM中所使用的攝像頭傳感器
- 單目攝像頭
- 雙目攝像頭
- 深度攝像頭
- 經(jīng)典視覺SLAM框架
寫在前面的話
考研期間迷上了SLAM,買來了高翔、張濤等著的《視覺SLAM十四講——從理論到實踐》,感悟頗深,作文記之。愿心之所向,夢亦同趨。
什么是視覺SLAM
SLAM是Simulataneous Location and Mapping的縮寫,中文譯為“同時定位與地圖構建”。通俗來講就是兩個部分,“定位”與“建圖”。同時此處所用的傳感器主要為攝像頭,故稱為視覺SLAM。
視覺SLAM中所使用的攝像頭傳感器
如上所講,視覺SLAM需要實現(xiàn)的兩個部分——“定位”與“建圖”,即帶有哲學性質的兩個提問,“我在哪里?”,“我周圍是怎么樣?”。通過眼睛觀察,人類可以輕而易舉地回答這兩個問題,而機器人要實現(xiàn)這個目標,也需要有眼睛,傳感器,就是機器人的眼睛。而安裝于環(huán)境中的傳感器,對環(huán)境的要求比較高,實際應用中,機器人的使用環(huán)境往往是多種多樣的,這就意味著,使用攜帶式的傳感器是我們重點關心的一個問題。而視覺SLAM中所需要的攝像頭,需要以一定速率拍攝周圍的環(huán)境,形成一個連續(xù)的視頻流。按照工作方式不同,攝像頭可以分為單目攝像頭(Monocular)、雙目攝像頭(Stereo)以及深度攝像頭(RGB-D)。下面對著三種攝像頭以及它們的工作方式分別進行介紹。
單目攝像頭
顧名思義,單目攝像頭只有一個鏡頭。而攝像頭所拍攝的圖像是三維圖像在二維世界的投影,要想恢復三維結構,必須移動攝像頭。通過一個很簡單的生活常識:近處的物體移動得快,看起來大,遠處的物體移動地慢,看起來小。 我們可以通過攝像頭在移動時產(chǎn)生的視差來對物體遠近進行相對的定量的判斷。需要注意此處得到的物體遠近是相對的,可以通過特攝劇來理解,我們無法判斷是怪獸摧毀了高樓大廈,還是穿著怪獸皮套的演員摧毀了高樓模型。進一步理解,我們可以認為,單目攝像機得到的圖像,是將真實的三維世界的投影乘以一個因子進行了縮放,這個因子可稱為尺度,由于這個尺度是不確定的,故單目攝像頭具有尺度不確定性。但要注意,單目攝像機可以確定深度,但需要平移之后才能計算深度,加上無法確定尺度,這給"SLAM“帶來了很大的麻煩。
雙目攝像頭
雙目攝像頭,雙目攝像頭是由兩個單目攝像頭組成,該兩個單目攝像頭的距離是已知的,我們稱他為基線,據(jù)此通過復雜的計算可以得到深度,但此處的計算是通過軟件算法實現(xiàn)的,比較占用系統(tǒng)資源,需要使用GPU、FPGA等設備來進行加速。計算量是雙目攝像頭目前最主要的問題。
深度攝像頭
深度攝像頭即RGB-D攝像頭,它最大的特點是通過紅外結構或Time-of-Flight(ToF)原理,筆者參加全國大學生智能汽車競賽時曾使用過ToF模塊進行距離測量,效果比較好。深度攝像頭通過主動發(fā)出紅外光并接收返回的光,來得到物體與攝像頭之間的距離。通過物理的方式進行深度的獲取,在對比雙目攝像頭來說有較大的優(yōu)勢,可以很好地節(jié)省計算資源。
經(jīng)典視覺SLAM框架
經(jīng)典視覺SLAM的結構框架由以下步驟組成:
經(jīng)典視覺
總結
以上是生活随笔為你收集整理的视觉SLAM入门十四讲的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java防止SQL注入
- 下一篇: dex2jar官网和jdgui官网链接