語義SLAM與深度相機(jī)
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達(dá)
本文轉(zhuǎn)自|新機(jī)器視覺
淺談?wù)Z義在SLAM中的應(yīng)用:
Simultaneous Localization And Mapping(同時建圖與定位)
?可以分為四大部分:
initialization, tracking, local mapping, global optimization
視覺SLAM主要涉及的知識
?多視角幾何:投影幾何,相機(jī)模型
?圖像處理:特征提取,特征點(diǎn)跟蹤
?優(yōu)化算法:非線性優(yōu)化算法(Levenberg-Marquardt法)
?INITIALIZATION
?一般將第一張圖像進(jìn)入系統(tǒng)時的相機(jī)位姿作為V-SLAM系統(tǒng)的參考坐標(biāo)系
?選取之后輸入的某張圖像計算和第一張圖像匹配角點(diǎn)并三角化獲取深度,生成候選的初始化MAP
?重投影計算誤差,如果誤差太大則重新選取圖像
?直到誤差小于閾值,進(jìn)行一次優(yōu)化,得到初始化MAP
?TRACKING
?計算當(dāng)前圖像和之前相近圖像的關(guān)系(特征點(diǎn)匹配,光流法,邊緣跟蹤等等)
?根據(jù)計算出的關(guān)系,通過相應(yīng)算法估計當(dāng)前相機(jī)的大概位置
?其中“直接法”將前面兩部合并為一步來執(zhí)行
?LOCAL MAPPING
?可以采取滑動窗口的方式或者挑選某些關(guān)鍵幀來建立局部地圖
?當(dāng)某一幀圖像根據(jù)策略算法選為關(guān)鍵幀后,添加到局部地圖的關(guān)鍵幀隊列中
?管理局部地圖中存在的點(diǎn)云
?進(jìn)行局部的Bundle Adjustment(BA)
?最后進(jìn)行關(guān)鍵幀的管理
?GLOBAL OPTIMIZATION
?利用BOW挑選出候選回環(huán)幀
?對候選回環(huán)幀進(jìn)行驗證,確保是正確的回環(huán)
?根據(jù)回環(huán)幀計算累積漂移誤差
?最后進(jìn)行全局優(yōu)化

語義SLAM
?為什么要語義?
?對環(huán)境的魯棒性(動態(tài)環(huán)境)
?獲取地圖的先驗信息,得到更高精度(添加語義約束)
?更好地回環(huán)檢測
?人機(jī)交互(如CAD制圖)

傳統(tǒng)回環(huán)檢測
?目前比較主流的回環(huán)檢測方法一般都依賴于BoW(bag of visual words)方法
?開源庫:
DBoW2:
https://github.com/dorian3d/DBoW2(當(dāng)然還有DBoW3,fbow)
?連續(xù)幀匹配DLoopDetector:https://github.com/dorian3d/DLoopDetector
?ORB-SLAM,VINS等都使用了DBoW2
?其他檢索方式:
LSH(Locality-Sensitive Hashing)
LLC(Locality-constrained Linear Coding)
語義能夠給SLAM系統(tǒng)帶來的好處
?支持中長期的tracking
?環(huán)境適應(yīng)性更強(qiáng)(魯棒性)
?潛在的人機(jī)交互特性

語義SLAM系統(tǒng)和傳統(tǒng)SLAM系統(tǒng)對比


由于我們 人類見過大量的圖像,形成了一種天生的直覺,對大部分場景都有一個直觀的距離感 (空間感),它可以幫助我們判斷圖像中物體的遠(yuǎn)近關(guān)系。
1.平移之后才能計算深度
2.無法確定真實尺度
原因是通過單張圖像無法確定深度。
深度相機(jī)(稱RGB-D相機(jī))最大的特點(diǎn)是可以通過紅外結(jié)構(gòu)光或Time-of-Flight(ToF) 原理,像激光傳感器那樣,通過主動向物體發(fā)射光并接收返回的光,測出物體與相機(jī)之間的距離。這部分是通過物理的測量手段來解決的,所以不需要大量的算力。
ToF
基本原理是通過連續(xù)發(fā)射光脈沖(一般為不可見光)到被觀測物體上,然后用傳感器接收從物體返回的光,通過探測光脈沖的飛行(往返)時間來得到目標(biāo)物距離。

結(jié)構(gòu)光
結(jié)構(gòu)光測距是用一個光源(常用是紅外)將一定的圖案投射到物體上,再用攝像頭收集變形后的圖案進(jìn)行深度計算。

這種方法比純雙目匹配好的地方在于,參考圖像不是獲取的,而是經(jīng)過專門設(shè)計的圖案 ,因此特征點(diǎn)是已知的,而且更容易從測試圖像中提取。結(jié)構(gòu)光采用三角視差測距,基線(光源與鏡頭光心的距離)越長精度越高。由于是主動光,無法在室外使用。

不論是一般結(jié)構(gòu)光還是散斑結(jié)構(gòu)光,缺點(diǎn)是它所使用的激光器發(fā)出的編碼光斑容易被太陽光淹沒掉, 工作距離短,室外陽光下不工作。
結(jié)構(gòu)光方案中的激光器壽命較短,難以滿足7x24小時的長時間工作要求,其長時間連續(xù)工作很容易損壞。而因為單目鏡頭和激光器需要進(jìn)行精確的標(biāo)定,一旦損壞,替換激光器時重新進(jìn)行兩者的標(biāo)定是非常困難的,所以往往導(dǎo)致整個模塊都要一起被換掉。
現(xiàn)在多數(shù) RGB-D 相機(jī)還存在測量范圍窄、噪聲大、視野小、易受日光干擾、無法測量透射材質(zhì)等諸多問題,在 SLAM 方面,主要用于室內(nèi),室外則較難應(yīng)用。
立體視覺

VSLAM(Mono)
優(yōu)勢:成本低、搭建簡單
劣勢:
1) 需要專門初始化
2) 尺度問題
在單張圖片里,無法確定一個物體的真實大小。它可能是一個很大但很遠(yuǎn)的物體,也可能是一個很近很小的物體。
3) 深度計算存在缺陷
a. 3D假圖問題
b. 機(jī)器學(xué)習(xí)的樣本問題
VSLAM(Stereo)
優(yōu)勢:
1) 不需要專門初始化
2) 能夠計算深度
3) 能夠用于室內(nèi)和室外
劣勢:
1) 標(biāo)定較為復(fù)雜
2) 視差計算比較耗資源,需要GPU/FPGA 或 專門的ASIC芯片 協(xié)助

下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~

