近年來,slam技術取得了驚人的發展,領先一步的雷射slam已成熟的應用於各大場景中,視覺slam雖在落地應用上不及雷射slam,但也是目前研究的一大熱點,今天我們就來詳細聊聊視覺slam的那些事兒。
視覺slam是什麼?
視覺slam主要是基於相機來完成環境的感知工作,相對而言,相機成本較低,容易放到商品硬體上,且影象資訊豐富,因此視覺slam也備受關注。
目前,視覺slam可分為單目、雙目(多目)、rgbd這三類,另還有魚眼、全景等特殊相機,但目前在研究和產品中還屬於少數,此外,結合慣性測量器件(inertial measurement unit,imu)的視覺slam也是現在研究熱點之一。從實現難度上來說,大致將這三類方法排序為:單目視覺》雙目視覺》rgbd。
單目相機slam簡稱monoslam,僅用一支攝像頭就能完成slam。最大的優點是感測器簡單且成本低廉,但同時也有個大問題,就是不能確切的得到深度。
一方面是由於絕對深度未知,單目slam不能得到機械人運動軌跡及地圖的真實大小,如果把軌跡和房間同時放大兩倍,單目看到的像是一樣的,因此,單目slam只能估計乙個相對深度。另一方面,單目相機無法依靠一張影象獲得影象中物體離自己的相對距離。為了估計這個相對深度,單目slam要靠運動中的三角測量,來求解相機運動並估計畫素的空間位置。即是說,它的軌跡和地圖,只有在相機運動之後才能收斂,如果相機不進行運動時,就無法得知畫素的位置。同時,相機運動還不能是純粹的旋轉,這就給單目slam的應用帶來了一些麻煩。
而雙目相機與單目不同的是,立體視覺既可以在運動時估計深度,亦可在靜止時估計,消除了單目視覺的許多麻煩。不過,雙目或多目相機配置與標定均較為複雜,其深度量程也隨雙目的基線與解析度限制。通過雙目影象計算畫素距離,是一件非常消耗計算量的事情,現在多用fpga來完成。
rgbd相機是2023年左右開始興起的一種相機,它最大的特點是可以通過紅外結構光或tof原理,直接測出影象中各畫素離相機的距離。因此,它比傳統相機能夠提供更豐富的資訊,也不必像單目或雙目那樣費時費力地計算深度。
視覺slam框架解讀
1.感測器資料
在視覺slam中主要為相機影象資訊的讀取和預處理。如果在機械人中,還可能有碼盤,慣性感測器等資訊的讀取和同步。
2.視覺里程計
視覺里程計的主要任務是估算相鄰影象間相機運動以及區域性地圖的樣子,最簡單的是兩張影象之間的運動關係。計算機是如何通過影象確定相機的運動的。在影象上,我們只能看到乙個個的畫素,知道他們是某些空間點在相機的成像平面投影的結果。所以必須先了解相機跟空間點的幾何關係。
vo(又稱為前端)能夠通過相鄰幀間的影象估計相機運動,並恢復場景的空間結構,稱它為里程計。被稱為里程計是因為它只計算相鄰時刻的運動,而和再往前的過去資訊沒有關聯。相鄰時刻運動串聯起來,就構成了機械人的運動軌跡,從而解決了定位問題。另一方面,根據每一時刻的相機位置,計算出各畫素對應的空間點的位置,就得到了地圖。
3.後端優化
後端優化主要是處理slam過程中雜訊的問題。任何感測器都有雜訊,所以除了要處理「如何從影象中估計出相機運動」,還要關心這個估計帶有多大的雜訊。
前端給後端提供待優化的資料,以及這些資料的初始值,而後端負責整體的優化過程,它往往面對的只有資料,不必關係這些資料來自**。在視覺slam中,前端和計算接視覺研究領域更為相關,比如影象的特徵提取與匹配等,後端則主要是濾波和非線性優化演算法。
4.回環檢測
回環檢測也可以稱為閉環檢測,是指機械人識別曾到達場景的能力。如果檢測成功,可以顯著地減小累積誤差。回環檢測實質上是一種檢測觀測資料相似性的演算法。對於視覺slam,多數系統採用目前較為成熟的詞袋模型(bag-of-words, bow)。詞袋模型把影象中的視覺特徵(sift, surf等)聚類,然後建立詞典,進而尋找每個圖中含有哪些「單詞」(word)。也有研究者使用傳統模式識別的方法,把回環檢測建構成乙個分類問題,訓練分類器進行分類。
5.建圖
建圖主要是根據估計的軌跡建立與任務要求對應的地圖,在機械人學中,地圖的表示主要有柵格地圖、直接表徵法、拓撲地圖以及特徵點地圖這4種。而特徵點地圖是用有關的幾何特徵(如點、直線、面)表示環境,常見於視覺slam技術中。這種地圖一般通過如gps、uwb以及攝像頭配合稀疏方式的vslam演算法產生,優點是相對資料儲存量和運算量比較小,多見於最早的slam演算法中。
視覺slam工作原理
大多數視覺slam系統的工作方式是通過連續的相機幀,跟蹤設定關鍵點,以三角演算法定位其3d位置,同時使用此資訊來逼近推測相機自己的姿態。簡單來說,這些系統的目標是繪製與自身位置相關的環境地圖。這個地圖可以用於機械人系統在該環境中導航作用。與其他形式的slam技術不同,只需乙個3d視覺攝像頭,就可以做到這一點。
視覺slam與雷射slam有什麼區別?
在業內,視覺slam與雷射slam誰更勝一籌,誰將成為未來主流趨勢這一問題,成為大家關注的熱點,不同的人也有不同的看法及見解,以下將從成本、應用場景、地圖精度、易用性幾個方面來進行詳細闡述。
1.成本
從成本上來說,雷射雷達普遍**較高,但目前國內也有低成本的雷射雷達解決方案,而vslam主要是通過攝像頭來採集資料資訊,跟雷射雷達一對比,攝像頭的成本顯然要低很多。但雷射雷達能更高精度的測出障礙點的角度和距離,方便定位導航。
2.應用場景
從應用場景來說,vslam的應用場景要豐富很多。vslam在室內外環境下均能開展工作,但是對光的依賴程度高,在暗處或者一些無紋理區域是無法進行工作的。而雷射slam目前主要被應用在室內,用來進行地圖構建和導航工作。
3.地圖精度
雷射slam在構建地圖的時候,精度較高,思嵐科技的rplidar系列構建的地圖精度可達到2cm左右;vslam,比如常見的,大家也用的非常多的深度攝像機kinect,(測距範圍在3-12m之間),地圖構建精度約3cm;所以雷射slam構建的地圖精度一般來說比vslam高,且能直接用於定位導航。
視覺slam的地圖建立
4.易用性
雷射slam和基於深度相機的視覺slam均是通過直接獲取環境中的點雲資料,根據生成的點雲資料,測算**有障礙物以及障礙物的距離。但是基於單目、雙目、魚眼攝像機的視覺slam方案,則不能直接獲得環境中的點雲,而是形成灰色或彩×××像,需要通過不斷移動自身的位置,通過提取、匹配特徵點,利用三角測距的方法測算出障礙物的距離。
總體來說,雷射slam相對更為成熟,也是目前最為可靠的定位導航方案,而視覺slam仍是今後研究的乙個主流方向,但未來,兩者融合是必然趨勢。
本文轉截於:
全景視覺空間直線檢測 視覺SLAM深度解讀
視覺slam是什麼?視覺slam主要是基於相機來完成環境的感知工作,相對而言,相機成本較低,容易放到商品硬體上,且影象資訊豐富,因此視覺slam也備受關注。目前,視覺slam可分為單目 雙目 多目 rgbd這三類,另還有魚眼 全景等特殊相機,但目前在研究和產品中還屬於少數,此外,結合慣性測量器件 i...
視覺SLAM(一) 視覺SLAM框架
主要參考書目是高翔博士的 視覺slam十四講 中間會記錄一些個人實踐經驗和思考。slam伴隨著機器視覺發展和機械人導航已經相對成熟,形成了合理高效的基本框架。主要包含 感測器資料 前端視覺里程計 後端優化 回環檢測 建圖。採集根據不同應用場景和需求進行選擇,主要有如下幾種感測器 也就是單獨乙個攝像機...
視覺SLAM 視覺SLAM相關開源演算法總結
第乙個實時 單目slam系統,基於ekf優化。單目,只有tracking,進行了有效的特徵點對的匹配。之後有enft slam.適用於各種各樣的相機,除了常見的單目,雙目,rgb d的分類,還適用於透視 魚眼甚至自己設計的相機。通過使用apriltag基準標記實現slam 76 提出了一種基於李代數...