国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于RGB-D相機的SLAM算法優(yōu)化

2020-05-22 12:33:32陳宇翔
計算機工程與設計 2020年5期
關鍵詞:回環(huán)實時性輪廓

陳宇翔,王 仁,張 健

(中國航天科工集團第二研究院 706所,北京 100854)

0 引 言

裝備維修的傳統(tǒng)方式依賴于紙質或電子維修手冊,造成了維修時的同步性差、可視性效果不強、維修效率低下等問題。將增強現實技術用于主導式誘導裝備維修建模時,可以提高維修保障的效能,提升裝備保障維修過程的智能化程度和人機交互能力。此應用的關鍵技術之一,便是SLAM(simultaneous localization and mapping),即時定位與地圖構建技術。在實際增強現實維修建模中,常出現兩個問題:一是三維場景建模速度慢;二是當維修員將視線再次移回場景時出現虛擬信息漂移。這是因為在把增強現實技術用于裝備維修時所用的頭戴設備硬件資源受限,計算能力不足。另一方面,相比于移動機器人領域,在增強現實技術領域中,使用的攝像頭運動更加快速,自由度變得更加多樣,真實環(huán)境紋理更復雜,對光照條件更苛刻。因此需要對移動機器人領域的視覺SLAM進行優(yōu)化以滿足增強現實維修建模的實時性和回環(huán)檢測要求。

為解決上述問題,本文在相鄰幀特征匹配過程中,將傳統(tǒng)的SIFT特征描述符結合主要素提取法,轉換成低維的PAC-SIFT特征描述符,在匹配時采用優(yōu)化后的距離代替復雜度更高的歐氏距離,從而提高特征匹配的速度。另一方面,利用RGB-D相機Kinect可同時獲取彩色與深度信息的優(yōu)勢,設計優(yōu)化算法得到場景的輪廓,并利用輪廓匹配進行回環(huán)匹配檢測,從而減少用于回環(huán)檢測詞袋模型中視覺單詞的總數量,最終提高回環(huán)檢測環(huán)節(jié)的實時性和魯棒性。

1 算法原理與系統(tǒng)框架

一個視覺SLAM系統(tǒng)總體可以分為兩個環(huán)節(jié):前端和后端。前端用攝像頭獲取到場景信息之后,通過VO(visual odometry)[1],即視覺里程計來增量式地計算出攝像頭的位姿與兩個時刻間的相對運動。后端負責兩個功能:一是不斷地通過與前幾幀比較,修正上一環(huán)節(jié)中產生的累積誤差。二是判斷是否出現回環(huán),即攝像頭是否已檢測過該位置。如果發(fā)現回環(huán),則要修正SLAM過程中的攝像頭的位姿??偨Y起來就是,前端快速探索定位,后端緩慢維護地圖。

對于VO部分,求解位姿變換的核心是要得到一個描述三維空間的變換矩陣。主流方法是基于提取圖像特征,即對于極短時刻攝像頭獲取到的兩幀圖像,提取兩幀圖像對應的特征點,然后計算出對應的特征描述符,利用這兩組特征點進行特征匹配。之后利用求解PnP問題[2]的方法計算出相機的變換矩陣,即得到幀間的運動估計。

得到局部幀間運動估計后,把整個運動過程拼接起來,就得到了攝像頭的運動軌跡。但是在VO過程中存在累計誤差,最初一個微小的誤差,都會影響后面的每一步精度。這樣,最終得到的軌跡可能發(fā)生嚴重的漂移。所以在VO環(huán)節(jié)之后需要進行后端優(yōu)化。早期求解SLAM利用了濾波器的特性[3],將SLAM過程分為了兩個方程:運動和觀測。然后以這兩項的噪聲來構建目標方程,使目標方程最小化的過程便優(yōu)化了運動軌跡。后來,借鑒SFM(structure-from-motion)問題,逐漸把BA(bundle adjustment)即集束調整帶入了SLAM求解過程[4]。其考慮先前的每一幀圖像的信息,把最終的誤差經過平均分到過程中的每一次觀測中進行優(yōu)化。為了表示方便,經常用圖(即點和邊)的形式來表示集束調整,因而亦稱為圖優(yōu)化方法,傳統(tǒng)上可以利用稀疏代數對圖優(yōu)化進行求解。目前通用的方法是利用g2o(generalized graph optimizer)[5],即圖優(yōu)化通用求解器對圖優(yōu)化問題進行求解。

當攝像頭識別出已檢測過的場景時,表示進行了一次回環(huán)檢測。如果SLAM算法能夠識別成功,則可以十分有效地修正位姿與軌跡,從而顯著地減小整個VO過程中產生的累積誤差?;丨h(huán)檢測的本質是圖像信息相似性的快速檢測。當前用于檢測回環(huán)的方法有兩大類:基于概率和基于圖像匹配。前者通過遞歸貝葉斯估計方法[6]檢測回環(huán),但是在檢測時常忽略環(huán)境重要信息,因而魯棒性不強,且該算法計算量高,實時性不高。后者則是利用圖像的幀間匹配來檢測回環(huán),當當前幀與已經檢測過的場景圖像的相似度高于閾值時即判定為回環(huán)。由于圖像匹配較費時間,因而本文采用了BoW(bag of words)即詞袋模型[7]代替圖像進行匹配。

本文利用Kinect對傳統(tǒng)視覺SLAM方法中計算費時的環(huán)節(jié)進行了優(yōu)化。通過將幀間匹配的SIFT算法結合主要素提取方法,對特征描述符合理降維,并優(yōu)化特征匹配距離,從而減少幀間匹配運算量;同時利用Kinect獲取到的輪廓減少關鍵幀的數目;最后在回環(huán)檢測中利用輪廓粗匹配以減少詞袋模型中用于聚類的特征描述子數量。通過以上優(yōu)化,使得視覺SLAM的實時性得以提高,回環(huán)性能更優(yōu)。

本文提出的基于Kinect的視覺SLAM算法的總體框架如圖1所示。

圖1 本文提出的視覺SLAM框架

2 特征提取與匹配優(yōu)化

在VO環(huán)節(jié),通過將幀間匹配的SIFT算法結合主要素提取方法,對特征描述符合理降維,并優(yōu)化傳統(tǒng)的特征匹配距離,從而減少幀間匹配的運算量。

2.1 PCA-SIFT算法

SIFT(scale invariant feature transform),即尺度不變特征變換算法,是DavidG. Lowe[8]發(fā)表并完善的檢測圖像局部特征的算法。最終用來描述每個特征點的尺度和旋轉不變特征描述符向量大小是16×8=128維,因而在匹配時計算量大,匹配時間長。

結合PCA(principal component analysis),即主要素提取方法,PCA-SIFT算法實現步驟為:

(1)對于兩幅需要匹配圖像的全部SIFT描述符,全部圖像中一共有M個特征點,每個特征點的特征向量Xi(i=1,2,3,…,128) 的維數是128。則考慮去構造一個樣本矩陣X,其中矩陣的元素Xij表示第j(0

(2)計算樣本矩陣X的協(xié)方差矩陣。過程如下:

對每一個Xi,計算Xi-Xav,這樣得到的矩陣記為C;

得到協(xié)方差矩陣Z=C×CT。

(3)對得到的協(xié)方差矩陣Z求解特征值和特征向量。并將求得的128個特征值從大到小進行排列,之后將前T個特征值相對應的特征向量拿出來,把其構建成一個128×T的矩陣,記為S。這個矩陣S即特征矩陣;

(4)把SIFT描述符投影到子空間中,得到PCA-SIFT描述符。用樣本矩陣X乘以上述特征矩陣S,便將原128維SIFT特征降維成T維向量。根據實驗驗證,T取20以內較為合適。

SIFT和PCA-SIFT算法的優(yōu)缺點各不相同,其比較結果見表1。

結合表格數據,可以看出PCA-SIFT算法通過提取主要素的方法將高維特征點投影到較低維數,不僅擁有傳統(tǒng)上SIFT算法穩(wěn)定性較高以及對光照、尺度和旋轉具有不變性等優(yōu)點,同時還能夠大大地降低特征點對應的特征描述子的維數,從而減少匹配時所用的時間。

表1 SIFT和PCA-SIFT比較

2.2 用組合距離進行相似性匹配

假設兩幅相鄰幀圖像P和Q需要進行匹配,圖像P對應的特征點集合為Px={X1,X2,…,Xm},圖像Q對應的特征點集合為Qy={Y1,Y2,…,Yn}。 然后對集合Px里的每個元素Xi(0

移動機器人領域中用于SLAM特征匹配為了能夠得到最佳的效果,一般都把上述距離取歐式距離De,見式(1)

(1)

原始SIFT算法得到的特征點對應的特征描述符的維度為128,因而根據式(1)每計算一次歐氏距離,就需要進行乘法運算128次與開方運算1次,就算用改進的PCA-SIFT算法,當T取20時也要20次乘法運算與1次開方運算。所以匹配時如果采用歐式距離造成了計算的復雜性高,從而匹配的實時性差。不利于用在增強現實這種需要實時性較高的技術上面。因而本文采用了在高維空間歐式距離的替代算法,即用距離的線性組合來進行匹配對準,從而能降低匹配的復雜度。

在數學定義里,曼哈頓距離D1和棋盤距離D∞如式(2)和式(3)所示

(2)

(3)

從式中可以看出,相比復雜度高的歐氏距離,上述兩個距離定義計算起來復雜度低。并不需要任何乘法與開方的運算。經驗證,D∞≤De≤D1,因此可以用上述兩種距離的線性結合代替歐氏距離,這樣便可以在一定誤差范圍內簡化計算,從而達到整個SLAM匹配過程效率提高。

有兩種線性組合方式代替歐氏距離,分別是α(D1(x,y)+D∞(x,y)) 和αD1(x,y)+βD∞(x,y)。這樣在計算距離時只需要一次乘法和兩次乘法即可。本文采用了一種簡單的線性組合來代替歐氏距離,其中:當n為偶數時,α由式(4)計算出

(4)

當n為奇數時,由式(5)計算出

(5)

3 輪廓匹配及回環(huán)優(yōu)化

利用Kinect可以同時獲取場景的彩色圖和深度圖,從而可以迅速提取場景的主要輪廓信息。對輪廓優(yōu)化處理后,在回環(huán)檢測環(huán)節(jié)中首先利用場景的輪廓進行初步回環(huán),得到一些相似的場景,從而大大減少了做相似性檢測的圖像數量,但其中有些匹配是誤匹配,因而需要結合BoW模型進一步進行回環(huán)檢測。

3.1 輪廓優(yōu)化

回環(huán)檢測的本質是圖像信息相似性的快速檢測,傳統(tǒng)方法是利用圖像直接進行匹配,信息含量多,計算量大,造成實時性差。而利用圖像中最基本的輪廓特征則可以在保留原始圖像中主要形狀信息的同時大幅度減少參與運算的信息量。本文利用Robert算子、Marr算子、Prewitt算子[9]、Canny算子等對圖像進行了快速輪廓提取。效果如圖2所示。

圖2 場景的輪廓提取

通過比較發(fā)現,Robert算子提取的信息相對較少,并且有些邊緣部分模糊不清;Marr算子對于場景的提取包含細節(jié)較為復雜;Canny算子對于場景的提取細節(jié)過于豐富,因為運行速度非常緩慢;而Prewitt算子不僅可以提取出場景的重要輪廓特征,運行速度也較為快速。所以本文選用了Prewitt方法對彩色圖像和深度圖像進行輪廓提取。

之后分別對彩色圖和深度圖進行輪廓提取,發(fā)現對于復雜場景,不可避免有提取錯誤的地方,如圖3(c)中的彩色圖輪廓丟失了桌子拐角的部分。而在深度圖像的輪廓中則丟失局部細節(jié)部分。經過圖像處理的手段,利用彩色圖與深度圖的互相補充與優(yōu)化,最終得到了混合后的優(yōu)化輪廓,可以較好地得到場景的主要輪廓,如圖3(e)所示。

圖3 場景的輪廓提取與優(yōu)化

3.2 輪廓匹配

獲得場景的輪廓特征之后即可利用輪廓匹配來代替圖像匹配。輪廓特性中,矩是最實用的特征,故本文采用輪廓的矩進行匹配,定義如式(6)所示

mij=?xiyjf(x,y)dxdy

(6)

式中:i是x維度上的矩,j是y維度上的矩。在裝備維修應用中,視角存在旋轉、平移等情況,直接用傳統(tǒng)的矩定義匹配效果較差,匹配效果不佳。故而需要改進:

(1)中心矩

為了實現平移不變性,故需要利用圖像的質心進行改造,中心矩如式(7)所示

(7)

(2)歸一化中心矩

為了實現尺度不變性,則需要對中心距進行歸一化。如式(8)所示,式中,B00代表的是物體的面積

(8)

(3)Hu矩[10]

Hu矩通過歸一化中心矩計算得到,式(9)所示的7個由歸一化中心矩組成的矩即為Hu矩

H1=(β20+β02)
H2=(β20-β02)2+4β112
H3=(β30-3β12)2+(3β21-β03)2
H4=(β30+β12)2+(β21+β03)2
H5=(β30-3β12)(β30+β12)(β30+β122-3β21+β032)+
(3β21-β03)(β21+β03)(3β30+β122-β21+β032)
H6=(β20-β02)(β30+β122-β21+β032)+
4β11(β30+β12)(β21+β03)
H7=(3β21-β03)(β21+β03)(3β30+β122-β21+β032)-
(β30-3β12)(β21+β03)(3β30+β122-β21+β032)

(9)

式(9)中的7個不變矩構成了一組特征量,并具有旋轉不變形、縮放不變形和平移不變性。用Hu矩組成的這組特征量對圖片進行相似性對比,每兩個輪廓匹配時得到一個匹配系數,值越大,代表兩個輪廓越不相似,反之則越相似。這樣利用輪廓匹配便提高了后端運行的速度,提升了回環(huán)檢測的實時性。

3.3 BoW模型

BoW(bag of words)模型是在分類文本中的一種方法,以特征矢量表示文檔。針對每個文本,不考慮詞的順序、語言規(guī)則、句式規(guī)則等,而是認為其是一些詞語的匯總。其中的詞語完全孤立存在,與其它詞語無關。最后根據文本中的詞語將其進行分類。

結合BoW模型與回環(huán)檢測,本文提出的基于BoW模型進行回環(huán)檢測的步驟如下:

(1)根據圖像輪廓的Hu矩進行初步快速匹配,找到部分與當前關鍵幀粗匹配的圖像,但是其中有很多是誤匹配,需要在BoW模型中建立視覺單詞來更加精細地匹配;

(2)利用PCA-SIFT算法從包括原圖像以及利用輪廓匹配得到的圖像中提取視覺詞匯向量,這些向量代表的是圖像中局部不變的特征點;

(3)利用K-Means算法將上述所有的特征點向量進行合并,從而構造出僅包含K個特殊視覺單詞的表格;

(4)利用特征點向量在上述表中出現的頻率,可以將每一幅圖像轉換成一個K維的向量;

(5)利用這個K維數值的向量去求當前圖像與其它圖像的相關性,得到相關性系數,如果這個系數超過設定的閾值,那么認為發(fā)生了回環(huán),從而去優(yōu)化運動估計。

4 實驗結果與分析

為驗證本文提出算法的實時性和魯棒性,本文利用TUM標準數據集進行測試,同時用Kinect實時采集實驗室的場景,并與傳統(tǒng)的基于SIFT特征的rgbdslamv2算法進行對比驗證。本文實驗處理數據為一臺Intel四核2.8GHz主頻的筆記本電腦,運行Ubuntu16.04系統(tǒng)。

4.1 輪廓的匹配

在本文中利用Hu矩來進行場景的輪廓匹配。首先釆集場景信息,在實驗室這種室內復雜環(huán)境中進行場景采集,用Prewitt算子提取輪廓,然后利用opencv庫計算Hu矩,并調用matchShapes函數進行輪廓匹配,計算出匹配系數,系數越小,表示匹配性越高。這里選出實驗室的6個場景圖。如圖4所示,可以發(fā)現圖4(a)和圖4(b)、圖4(d)和圖4(e)為相似場景,表2為下列6幅圖像用Hu矩進行輪廓匹配得到的匹配系數的結果。

圖4 實驗室環(huán)境下的6幀場景

表2 用Hu矩進行輪廓匹配后的匹配系數結果

通過表2可以看出,相似輪廓間匹配得到的匹配系數值較小,場景a和場景b匹配值為0.002 53,d和e的匹配值為0.001 57。而其它不匹配的情況下匹配系數值較大。但發(fā)現了場景d,e在和場景f匹配時,匹配值也比較小,因為前端區(qū)域的有效信息都有椅子的輪廓。所以當設定一個閾值時,提取出匹配系數小于這個閾值的場景時,提取的相似場景會存在一些并不是整個場景都相似的場景。因此需要結合BoW模型的方法將提取的場景進行進一步匹配,以消除誤匹配。

4.2 仿真測試

為了評估本文提出的基于Kinect實現視覺SLAM的綜合性能,本文首先進行了離線測試,利用TUM提供的RGB-D標準測試集進行離線測試。測試的數據包為fr1_360、fr1_desk2、frl_floor等,這些數據集中提供出機器人移動過程中的真實的路徑,為了檢驗本文提出算法的健壯性,用一個均方根函數來考查絕對路徑誤差,具體公式如式(10)所示

(10)

圖5 預測路徑與實際路徑對比

從圖5中可以看到,本文提出的SLAM算法進行的路徑移動預估與機器人真實的路徑移動基本一致,并且整體數據集的絕對路徑誤差值平均為0.031 m,絕對路徑誤差均方差平均為0.049 m,因而算法具有較強的魯棒性。

另一方面,本文提出的改進算法和rgbdslamv2算法所運算的時間見表3。

從表3中可以看出本文改進的算法相對比原有的rgbdslamv2算法在實時性方面有了較大提升,關鍵幀的個數大幅度降低。做到了每幀的處理時間為32 ms左右,而Kinect的fps為30 Hz,因此可以滿足實時性的要求。

之后本文又選取了實驗室作為實驗場景。如圖6所示,是在用增強現實技術實現裝備維修項目的真實場景,提取在進行視覺SLAM過程中的幾個關鍵幀。

基于以上實驗環(huán)境,用原rgbslamv2程序進行視覺SLAM過程后,當回環(huán)檢測中所檢測的關鍵幀數目數量大時,效果如圖7(a)所示,當回環(huán)檢測中所檢測的關鍵幀數目數量小時,效果如圖7(b)所示。而經過改進后,本文提出的視覺SLAM過程演示效果見圖8可以看出,在相同時間內,源程序已經提取了420個關鍵幀,而用本文的算法僅僅提取了217個關鍵幀。并且從效果圖的右下角的特征提取與匹配圖可以看出,原程序所用的SIFT算法提取到的特征點更多,而本文改進的PCA-SIFT算法能夠在保持主要素特征的情況下減少特征點的提取。此外從運行時的實時性來看,本文改進的SLAM算法能夠快速地進行SLAM的整個過程,不會出現卡頓的情況,并且在較快地移動攝像頭的情況下保持軌跡不跟丟。反之,在用原程序進行視覺SLAM的過程中時常出現卡頓,并且攝像頭移動速度不能很快,動作幅度需要保持較小。另一方面,在回環(huán)檢測的對比上,當源程序回環(huán)檢測中所檢測的關鍵幀數目數量大時,效果如圖7(a)所示,此時回環(huán)檢測能力尚可,但是所需等待時間較長;當回環(huán)檢測中所檢測的關鍵幀數目數量小時,效果如圖7(b)所示,此時回環(huán)檢測能力較差,點云圖中裝備出現略微重疊效果。

表3 rgbdslamv2與本文方法比較

圖6 實驗場地環(huán)境

圖7 源程序效果演示

圖8 本文改進程序演示效果

5 結束語

SLAM(simultaneous localization and mapping),即時定位與地圖構建技術,是增強現實技術中用于三維場景建模的核心技術。在利用增強現實進行裝備維修的操作中,會出現三維場景建模速度慢和虛擬信息漂移的問題。這主要是由于頭戴設備中硬件資源受限,計算能力不足。為滿足在增強現實技術領域的實時性和回環(huán)檢測要求,可利用Kinect對傳統(tǒng)視覺SLAM方法中計算費時的環(huán)節(jié)進行優(yōu)化。通過將幀間匹配的SIFT算法結合主要素分析方法,對其特征描述符合理降維,并將特征匹配距離優(yōu)化,從而減少幀間匹配運算量;同時利用Kinect獲取到的輪廓減少關鍵幀的數目;最后在回環(huán)檢測中利用輪廓粗匹配以減少詞袋模型中用于聚類的特征描述子數量。設計實驗結果表明:本文提出的基于Kinect的視覺SLAM算法實時性更高,回環(huán)檢測的魯棒性更高。從而解決了利用增強現實技術進行裝備維修過程中出現的三維建模速度慢和虛擬信息漂移的問題。

猜你喜歡
回環(huán)實時性輪廓
基于規(guī)則實時性的端云動態(tài)分配方法研究
高技術通訊(2021年3期)2021-06-09 06:57:24
OPENCV輪廓識別研究與實踐
嘟嘟闖關記
基于實時輪廓誤差估算的數控系統(tǒng)輪廓控制
透 月
寶藏(2018年3期)2018-06-29 03:43:10
基于虛擬局域網的智能變電站通信網絡實時性仿真
航空電子AFDX與AVB傳輸實時性抗干擾對比
在線學習機制下的Snake輪廓跟蹤
計算機工程(2015年4期)2015-07-05 08:27:39
學習“騎撐前回環(huán)”動作的常見心理問題分析及對策
一種車載Profibus總線系統(tǒng)的實時性分析
楚雄市| 元氏县| 乌兰县| 象山县| 双鸭山市| 宿州市| 高淳县| 遂宁市| 肥东县| 佳木斯市| 汽车| 仁怀市| 兴安盟| 息烽县| 任丘市| 新郑市| 兴文县| 板桥市| 武强县| 依兰县| 昌乐县| 涟源市| 临颍县| 平乐县| 纳雍县| 恭城| 改则县| 桑日县| 黄梅县| 白山市| 邢台市| 古浪县| 乐业县| 高邑县| 娄底市| 兴和县| 全州县| 甘德县| 吕梁市| 三河市| 成安县|