陳宇翔,王 仁,張 健
(中國(guó)航天科工集團(tuán)第二研究院 706所,北京 100854)
裝備維修的傳統(tǒng)方式依賴于紙質(zhì)或電子維修手冊(cè),造成了維修時(shí)的同步性差、可視性效果不強(qiáng)、維修效率低下等問(wèn)題。將增強(qiáng)現(xiàn)實(shí)技術(shù)用于主導(dǎo)式誘導(dǎo)裝備維修建模時(shí),可以提高維修保障的效能,提升裝備保障維修過(guò)程的智能化程度和人機(jī)交互能力。此應(yīng)用的關(guān)鍵技術(shù)之一,便是SLAM(simultaneous localization and mapping),即時(shí)定位與地圖構(gòu)建技術(shù)。在實(shí)際增強(qiáng)現(xiàn)實(shí)維修建模中,常出現(xiàn)兩個(gè)問(wèn)題:一是三維場(chǎng)景建模速度慢;二是當(dāng)維修員將視線再次移回場(chǎng)景時(shí)出現(xiàn)虛擬信息漂移。這是因?yàn)樵诎言鰪?qiáng)現(xiàn)實(shí)技術(shù)用于裝備維修時(shí)所用的頭戴設(shè)備硬件資源受限,計(jì)算能力不足。另一方面,相比于移動(dòng)機(jī)器人領(lǐng)域,在增強(qiáng)現(xiàn)實(shí)技術(shù)領(lǐng)域中,使用的攝像頭運(yùn)動(dòng)更加快速,自由度變得更加多樣,真實(shí)環(huán)境紋理更復(fù)雜,對(duì)光照條件更苛刻。因此需要對(duì)移動(dòng)機(jī)器人領(lǐng)域的視覺(jué)SLAM進(jìn)行優(yōu)化以滿足增強(qiáng)現(xiàn)實(shí)維修建模的實(shí)時(shí)性和回環(huán)檢測(cè)要求。
為解決上述問(wèn)題,本文在相鄰幀特征匹配過(guò)程中,將傳統(tǒng)的SIFT特征描述符結(jié)合主要素提取法,轉(zhuǎn)換成低維的PAC-SIFT特征描述符,在匹配時(shí)采用優(yōu)化后的距離代替復(fù)雜度更高的歐氏距離,從而提高特征匹配的速度。另一方面,利用RGB-D相機(jī)Kinect可同時(shí)獲取彩色與深度信息的優(yōu)勢(shì),設(shè)計(jì)優(yōu)化算法得到場(chǎng)景的輪廓,并利用輪廓匹配進(jìn)行回環(huán)匹配檢測(cè),從而減少用于回環(huán)檢測(cè)詞袋模型中視覺(jué)單詞的總數(shù)量,最終提高回環(huán)檢測(cè)環(huán)節(jié)的實(shí)時(shí)性和魯棒性。
一個(gè)視覺(jué)SLAM系統(tǒng)總體可以分為兩個(gè)環(huán)節(jié):前端和后端。前端用攝像頭獲取到場(chǎng)景信息之后,通過(guò)VO(visual odometry)[1],即視覺(jué)里程計(jì)來(lái)增量式地計(jì)算出攝像頭的位姿與兩個(gè)時(shí)刻間的相對(duì)運(yùn)動(dòng)。后端負(fù)責(zé)兩個(gè)功能:一是不斷地通過(guò)與前幾幀比較,修正上一環(huán)節(jié)中產(chǎn)生的累積誤差。二是判斷是否出現(xiàn)回環(huán),即攝像頭是否已檢測(cè)過(guò)該位置。如果發(fā)現(xiàn)回環(huán),則要修正SLAM過(guò)程中的攝像頭的位姿??偨Y(jié)起來(lái)就是,前端快速探索定位,后端緩慢維護(hù)地圖。
對(duì)于VO部分,求解位姿變換的核心是要得到一個(gè)描述三維空間的變換矩陣。主流方法是基于提取圖像特征,即對(duì)于極短時(shí)刻攝像頭獲取到的兩幀圖像,提取兩幀圖像對(duì)應(yīng)的特征點(diǎn),然后計(jì)算出對(duì)應(yīng)的特征描述符,利用這兩組特征點(diǎn)進(jìn)行特征匹配。之后利用求解PnP問(wèn)題[2]的方法計(jì)算出相機(jī)的變換矩陣,即得到幀間的運(yùn)動(dòng)估計(jì)。
得到局部幀間運(yùn)動(dòng)估計(jì)后,把整個(gè)運(yùn)動(dòng)過(guò)程拼接起來(lái),就得到了攝像頭的運(yùn)動(dòng)軌跡。但是在VO過(guò)程中存在累計(jì)誤差,最初一個(gè)微小的誤差,都會(huì)影響后面的每一步精度。這樣,最終得到的軌跡可能發(fā)生嚴(yán)重的漂移。所以在VO環(huán)節(jié)之后需要進(jìn)行后端優(yōu)化。早期求解SLAM利用了濾波器的特性[3],將SLAM過(guò)程分為了兩個(gè)方程:運(yùn)動(dòng)和觀測(cè)。然后以這兩項(xiàng)的噪聲來(lái)構(gòu)建目標(biāo)方程,使目標(biāo)方程最小化的過(guò)程便優(yōu)化了運(yùn)動(dòng)軌跡。后來(lái),借鑒SFM(structure-from-motion)問(wèn)題,逐漸把BA(bundle adjustment)即集束調(diào)整帶入了SLAM求解過(guò)程[4]。其考慮先前的每一幀圖像的信息,把最終的誤差經(jīng)過(guò)平均分到過(guò)程中的每一次觀測(cè)中進(jìn)行優(yōu)化。為了表示方便,經(jīng)常用圖(即點(diǎn)和邊)的形式來(lái)表示集束調(diào)整,因而亦稱為圖優(yōu)化方法,傳統(tǒng)上可以利用稀疏代數(shù)對(duì)圖優(yōu)化進(jìn)行求解。目前通用的方法是利用g2o(generalized graph optimizer)[5],即圖優(yōu)化通用求解器對(duì)圖優(yōu)化問(wèn)題進(jìn)行求解。
當(dāng)攝像頭識(shí)別出已檢測(cè)過(guò)的場(chǎng)景時(shí),表示進(jìn)行了一次回環(huán)檢測(cè)。如果SLAM算法能夠識(shí)別成功,則可以十分有效地修正位姿與軌跡,從而顯著地減小整個(gè)VO過(guò)程中產(chǎn)生的累積誤差?;丨h(huán)檢測(cè)的本質(zhì)是圖像信息相似性的快速檢測(cè)。當(dāng)前用于檢測(cè)回環(huán)的方法有兩大類(lèi):基于概率和基于圖像匹配。前者通過(guò)遞歸貝葉斯估計(jì)方法[6]檢測(cè)回環(huán),但是在檢測(cè)時(shí)常忽略環(huán)境重要信息,因而魯棒性不強(qiáng),且該算法計(jì)算量高,實(shí)時(shí)性不高。后者則是利用圖像的幀間匹配來(lái)檢測(cè)回環(huán),當(dāng)當(dāng)前幀與已經(jīng)檢測(cè)過(guò)的場(chǎng)景圖像的相似度高于閾值時(shí)即判定為回環(huán)。由于圖像匹配較費(fèi)時(shí)間,因而本文采用了BoW(bag of words)即詞袋模型[7]代替圖像進(jìn)行匹配。
本文利用Kinect對(duì)傳統(tǒng)視覺(jué)SLAM方法中計(jì)算費(fèi)時(shí)的環(huán)節(jié)進(jìn)行了優(yōu)化。通過(guò)將幀間匹配的SIFT算法結(jié)合主要素提取方法,對(duì)特征描述符合理降維,并優(yōu)化特征匹配距離,從而減少幀間匹配運(yùn)算量;同時(shí)利用Kinect獲取到的輪廓減少關(guān)鍵幀的數(shù)目;最后在回環(huán)檢測(cè)中利用輪廓粗匹配以減少詞袋模型中用于聚類(lèi)的特征描述子數(shù)量。通過(guò)以上優(yōu)化,使得視覺(jué)SLAM的實(shí)時(shí)性得以提高,回環(huán)性能更優(yōu)。
本文提出的基于Kinect的視覺(jué)SLAM算法的總體框架如圖1所示。
圖1 本文提出的視覺(jué)SLAM框架
在VO環(huán)節(jié),通過(guò)將幀間匹配的SIFT算法結(jié)合主要素提取方法,對(duì)特征描述符合理降維,并優(yōu)化傳統(tǒng)的特征匹配距離,從而減少幀間匹配的運(yùn)算量。
SIFT(scale invariant feature transform),即尺度不變特征變換算法,是DavidG. Lowe[8]發(fā)表并完善的檢測(cè)圖像局部特征的算法。最終用來(lái)描述每個(gè)特征點(diǎn)的尺度和旋轉(zhuǎn)不變特征描述符向量大小是16×8=128維,因而在匹配時(shí)計(jì)算量大,匹配時(shí)間長(zhǎng)。
結(jié)合PCA(principal component analysis),即主要素提取方法,PCA-SIFT算法實(shí)現(xiàn)步驟為:
(1)對(duì)于兩幅需要匹配圖像的全部SIFT描述符,全部圖像中一共有M個(gè)特征點(diǎn),每個(gè)特征點(diǎn)的特征向量Xi(i=1,2,3,…,128) 的維數(shù)是128。則考慮去構(gòu)造一個(gè)樣本矩陣X,其中矩陣的元素Xij表示第j(0 (2)計(jì)算樣本矩陣X的協(xié)方差矩陣。過(guò)程如下: 對(duì)每一個(gè)Xi,計(jì)算Xi-Xav,這樣得到的矩陣記為C; 得到協(xié)方差矩陣Z=C×CT。 (3)對(duì)得到的協(xié)方差矩陣Z求解特征值和特征向量。并將求得的128個(gè)特征值從大到小進(jìn)行排列,之后將前T個(gè)特征值相對(duì)應(yīng)的特征向量拿出來(lái),把其構(gòu)建成一個(gè)128×T的矩陣,記為S。這個(gè)矩陣S即特征矩陣; (4)把SIFT描述符投影到子空間中,得到PCA-SIFT描述符。用樣本矩陣X乘以上述特征矩陣S,便將原128維SIFT特征降維成T維向量。根據(jù)實(shí)驗(yàn)驗(yàn)證,T取20以內(nèi)較為合適。 SIFT和PCA-SIFT算法的優(yōu)缺點(diǎn)各不相同,其比較結(jié)果見(jiàn)表1。 結(jié)合表格數(shù)據(jù),可以看出PCA-SIFT算法通過(guò)提取主要素的方法將高維特征點(diǎn)投影到較低維數(shù),不僅擁有傳統(tǒng)上SIFT算法穩(wěn)定性較高以及對(duì)光照、尺度和旋轉(zhuǎn)具有不變性等優(yōu)點(diǎn),同時(shí)還能夠大大地降低特征點(diǎn)對(duì)應(yīng)的特征描述子的維數(shù),從而減少匹配時(shí)所用的時(shí)間。 表1 SIFT和PCA-SIFT比較 假設(shè)兩幅相鄰幀圖像P和Q需要進(jìn)行匹配,圖像P對(duì)應(yīng)的特征點(diǎn)集合為Px={X1,X2,…,Xm},圖像Q對(duì)應(yīng)的特征點(diǎn)集合為Qy={Y1,Y2,…,Yn}。 然后對(duì)集合Px里的每個(gè)元素Xi(0 移動(dòng)機(jī)器人領(lǐng)域中用于SLAM特征匹配為了能夠得到最佳的效果,一般都把上述距離取歐式距離De,見(jiàn)式(1) (1) 原始SIFT算法得到的特征點(diǎn)對(duì)應(yīng)的特征描述符的維度為128,因而根據(jù)式(1)每計(jì)算一次歐氏距離,就需要進(jìn)行乘法運(yùn)算128次與開(kāi)方運(yùn)算1次,就算用改進(jìn)的PCA-SIFT算法,當(dāng)T取20時(shí)也要20次乘法運(yùn)算與1次開(kāi)方運(yùn)算。所以匹配時(shí)如果采用歐式距離造成了計(jì)算的復(fù)雜性高,從而匹配的實(shí)時(shí)性差。不利于用在增強(qiáng)現(xiàn)實(shí)這種需要實(shí)時(shí)性較高的技術(shù)上面。因而本文采用了在高維空間歐式距離的替代算法,即用距離的線性組合來(lái)進(jìn)行匹配對(duì)準(zhǔn),從而能降低匹配的復(fù)雜度。 在數(shù)學(xué)定義里,曼哈頓距離D1和棋盤(pán)距離D∞如式(2)和式(3)所示 (2) (3) 從式中可以看出,相比復(fù)雜度高的歐氏距離,上述兩個(gè)距離定義計(jì)算起來(lái)復(fù)雜度低。并不需要任何乘法與開(kāi)方的運(yùn)算。經(jīng)驗(yàn)證,D∞≤De≤D1,因此可以用上述兩種距離的線性結(jié)合代替歐氏距離,這樣便可以在一定誤差范圍內(nèi)簡(jiǎn)化計(jì)算,從而達(dá)到整個(gè)SLAM匹配過(guò)程效率提高。 有兩種線性組合方式代替歐氏距離,分別是α(D1(x,y)+D∞(x,y)) 和αD1(x,y)+βD∞(x,y)。這樣在計(jì)算距離時(shí)只需要一次乘法和兩次乘法即可。本文采用了一種簡(jiǎn)單的線性組合來(lái)代替歐氏距離,其中:當(dāng)n為偶數(shù)時(shí),α由式(4)計(jì)算出 (4) 當(dāng)n為奇數(shù)時(shí),由式(5)計(jì)算出 (5) 利用Kinect可以同時(shí)獲取場(chǎng)景的彩色圖和深度圖,從而可以迅速提取場(chǎng)景的主要輪廓信息。對(duì)輪廓優(yōu)化處理后,在回環(huán)檢測(cè)環(huán)節(jié)中首先利用場(chǎng)景的輪廓進(jìn)行初步回環(huán),得到一些相似的場(chǎng)景,從而大大減少了做相似性檢測(cè)的圖像數(shù)量,但其中有些匹配是誤匹配,因而需要結(jié)合BoW模型進(jìn)一步進(jìn)行回環(huán)檢測(cè)。 回環(huán)檢測(cè)的本質(zhì)是圖像信息相似性的快速檢測(cè),傳統(tǒng)方法是利用圖像直接進(jìn)行匹配,信息含量多,計(jì)算量大,造成實(shí)時(shí)性差。而利用圖像中最基本的輪廓特征則可以在保留原始圖像中主要形狀信息的同時(shí)大幅度減少參與運(yùn)算的信息量。本文利用Robert算子、Marr算子、Prewitt算子[9]、Canny算子等對(duì)圖像進(jìn)行了快速輪廓提取。效果如圖2所示。 圖2 場(chǎng)景的輪廓提取 通過(guò)比較發(fā)現(xiàn),Robert算子提取的信息相對(duì)較少,并且有些邊緣部分模糊不清;Marr算子對(duì)于場(chǎng)景的提取包含細(xì)節(jié)較為復(fù)雜;Canny算子對(duì)于場(chǎng)景的提取細(xì)節(jié)過(guò)于豐富,因?yàn)檫\(yùn)行速度非常緩慢;而Prewitt算子不僅可以提取出場(chǎng)景的重要輪廓特征,運(yùn)行速度也較為快速。所以本文選用了Prewitt方法對(duì)彩色圖像和深度圖像進(jìn)行輪廓提取。 之后分別對(duì)彩色圖和深度圖進(jìn)行輪廓提取,發(fā)現(xiàn)對(duì)于復(fù)雜場(chǎng)景,不可避免有提取錯(cuò)誤的地方,如圖3(c)中的彩色圖輪廓丟失了桌子拐角的部分。而在深度圖像的輪廓中則丟失局部細(xì)節(jié)部分。經(jīng)過(guò)圖像處理的手段,利用彩色圖與深度圖的互相補(bǔ)充與優(yōu)化,最終得到了混合后的優(yōu)化輪廓,可以較好地得到場(chǎng)景的主要輪廓,如圖3(e)所示。 圖3 場(chǎng)景的輪廓提取與優(yōu)化 獲得場(chǎng)景的輪廓特征之后即可利用輪廓匹配來(lái)代替圖像匹配。輪廓特性中,矩是最實(shí)用的特征,故本文采用輪廓的矩進(jìn)行匹配,定義如式(6)所示 mij=?xiyjf(x,y)dxdy (6) 式中:i是x維度上的矩,j是y維度上的矩。在裝備維修應(yīng)用中,視角存在旋轉(zhuǎn)、平移等情況,直接用傳統(tǒng)的矩定義匹配效果較差,匹配效果不佳。故而需要改進(jìn): (1)中心矩 為了實(shí)現(xiàn)平移不變性,故需要利用圖像的質(zhì)心進(jìn)行改造,中心矩如式(7)所示 (7) (2)歸一化中心矩 為了實(shí)現(xiàn)尺度不變性,則需要對(duì)中心距進(jìn)行歸一化。如式(8)所示,式中,B00代表的是物體的面積 (8) (3)Hu矩[10] Hu矩通過(guò)歸一化中心矩計(jì)算得到,式(9)所示的7個(gè)由歸一化中心矩組成的矩即為Hu矩 H1=(β20+β02) (9) 式(9)中的7個(gè)不變矩構(gòu)成了一組特征量,并具有旋轉(zhuǎn)不變形、縮放不變形和平移不變性。用Hu矩組成的這組特征量對(duì)圖片進(jìn)行相似性對(duì)比,每?jī)蓚€(gè)輪廓匹配時(shí)得到一個(gè)匹配系數(shù),值越大,代表兩個(gè)輪廓越不相似,反之則越相似。這樣利用輪廓匹配便提高了后端運(yùn)行的速度,提升了回環(huán)檢測(cè)的實(shí)時(shí)性。 BoW(bag of words)模型是在分類(lèi)文本中的一種方法,以特征矢量表示文檔。針對(duì)每個(gè)文本,不考慮詞的順序、語(yǔ)言規(guī)則、句式規(guī)則等,而是認(rèn)為其是一些詞語(yǔ)的匯總。其中的詞語(yǔ)完全孤立存在,與其它詞語(yǔ)無(wú)關(guān)。最后根據(jù)文本中的詞語(yǔ)將其進(jìn)行分類(lèi)。 結(jié)合BoW模型與回環(huán)檢測(cè),本文提出的基于BoW模型進(jìn)行回環(huán)檢測(cè)的步驟如下: (1)根據(jù)圖像輪廓的Hu矩進(jìn)行初步快速匹配,找到部分與當(dāng)前關(guān)鍵幀粗匹配的圖像,但是其中有很多是誤匹配,需要在BoW模型中建立視覺(jué)單詞來(lái)更加精細(xì)地匹配; (2)利用PCA-SIFT算法從包括原圖像以及利用輪廓匹配得到的圖像中提取視覺(jué)詞匯向量,這些向量代表的是圖像中局部不變的特征點(diǎn); (3)利用K-Means算法將上述所有的特征點(diǎn)向量進(jìn)行合并,從而構(gòu)造出僅包含K個(gè)特殊視覺(jué)單詞的表格; (4)利用特征點(diǎn)向量在上述表中出現(xiàn)的頻率,可以將每一幅圖像轉(zhuǎn)換成一個(gè)K維的向量; (5)利用這個(gè)K維數(shù)值的向量去求當(dāng)前圖像與其它圖像的相關(guān)性,得到相關(guān)性系數(shù),如果這個(gè)系數(shù)超過(guò)設(shè)定的閾值,那么認(rèn)為發(fā)生了回環(huán),從而去優(yōu)化運(yùn)動(dòng)估計(jì)。 為驗(yàn)證本文提出算法的實(shí)時(shí)性和魯棒性,本文利用TUM標(biāo)準(zhǔn)數(shù)據(jù)集進(jìn)行測(cè)試,同時(shí)用Kinect實(shí)時(shí)采集實(shí)驗(yàn)室的場(chǎng)景,并與傳統(tǒng)的基于SIFT特征的rgbdslamv2算法進(jìn)行對(duì)比驗(yàn)證。本文實(shí)驗(yàn)處理數(shù)據(jù)為一臺(tái)Intel四核2.8GHz主頻的筆記本電腦,運(yùn)行Ubuntu16.04系統(tǒng)。 在本文中利用Hu矩來(lái)進(jìn)行場(chǎng)景的輪廓匹配。首先釆集場(chǎng)景信息,在實(shí)驗(yàn)室這種室內(nèi)復(fù)雜環(huán)境中進(jìn)行場(chǎng)景采集,用Prewitt算子提取輪廓,然后利用opencv庫(kù)計(jì)算Hu矩,并調(diào)用matchShapes函數(shù)進(jìn)行輪廓匹配,計(jì)算出匹配系數(shù),系數(shù)越小,表示匹配性越高。這里選出實(shí)驗(yàn)室的6個(gè)場(chǎng)景圖。如圖4所示,可以發(fā)現(xiàn)圖4(a)和圖4(b)、圖4(d)和圖4(e)為相似場(chǎng)景,表2為下列6幅圖像用Hu矩進(jìn)行輪廓匹配得到的匹配系數(shù)的結(jié)果。 圖4 實(shí)驗(yàn)室環(huán)境下的6幀場(chǎng)景 表2 用Hu矩進(jìn)行輪廓匹配后的匹配系數(shù)結(jié)果 通過(guò)表2可以看出,相似輪廓間匹配得到的匹配系數(shù)值較小,場(chǎng)景a和場(chǎng)景b匹配值為0.002 53,d和e的匹配值為0.001 57。而其它不匹配的情況下匹配系數(shù)值較大。但發(fā)現(xiàn)了場(chǎng)景d,e在和場(chǎng)景f匹配時(shí),匹配值也比較小,因?yàn)榍岸藚^(qū)域的有效信息都有椅子的輪廓。所以當(dāng)設(shè)定一個(gè)閾值時(shí),提取出匹配系數(shù)小于這個(gè)閾值的場(chǎng)景時(shí),提取的相似場(chǎng)景會(huì)存在一些并不是整個(gè)場(chǎng)景都相似的場(chǎng)景。因此需要結(jié)合BoW模型的方法將提取的場(chǎng)景進(jìn)行進(jìn)一步匹配,以消除誤匹配。 為了評(píng)估本文提出的基于Kinect實(shí)現(xiàn)視覺(jué)SLAM的綜合性能,本文首先進(jìn)行了離線測(cè)試,利用TUM提供的RGB-D標(biāo)準(zhǔn)測(cè)試集進(jìn)行離線測(cè)試。測(cè)試的數(shù)據(jù)包為fr1_360、fr1_desk2、frl_floor等,這些數(shù)據(jù)集中提供出機(jī)器人移動(dòng)過(guò)程中的真實(shí)的路徑,為了檢驗(yàn)本文提出算法的健壯性,用一個(gè)均方根函數(shù)來(lái)考查絕對(duì)路徑誤差,具體公式如式(10)所示 (10) 圖5 預(yù)測(cè)路徑與實(shí)際路徑對(duì)比 從圖5中可以看到,本文提出的SLAM算法進(jìn)行的路徑移動(dòng)預(yù)估與機(jī)器人真實(shí)的路徑移動(dòng)基本一致,并且整體數(shù)據(jù)集的絕對(duì)路徑誤差值平均為0.031 m,絕對(duì)路徑誤差均方差平均為0.049 m,因而算法具有較強(qiáng)的魯棒性。 另一方面,本文提出的改進(jìn)算法和rgbdslamv2算法所運(yùn)算的時(shí)間見(jiàn)表3。 從表3中可以看出本文改進(jìn)的算法相對(duì)比原有的rgbdslamv2算法在實(shí)時(shí)性方面有了較大提升,關(guān)鍵幀的個(gè)數(shù)大幅度降低。做到了每幀的處理時(shí)間為32 ms左右,而Kinect的fps為30 Hz,因此可以滿足實(shí)時(shí)性的要求。 之后本文又選取了實(shí)驗(yàn)室作為實(shí)驗(yàn)場(chǎng)景。如圖6所示,是在用增強(qiáng)現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)裝備維修項(xiàng)目的真實(shí)場(chǎng)景,提取在進(jìn)行視覺(jué)SLAM過(guò)程中的幾個(gè)關(guān)鍵幀。 基于以上實(shí)驗(yàn)環(huán)境,用原rgbslamv2程序進(jìn)行視覺(jué)SLAM過(guò)程后,當(dāng)回環(huán)檢測(cè)中所檢測(cè)的關(guān)鍵幀數(shù)目數(shù)量大時(shí),效果如圖7(a)所示,當(dāng)回環(huán)檢測(cè)中所檢測(cè)的關(guān)鍵幀數(shù)目數(shù)量小時(shí),效果如圖7(b)所示。而經(jīng)過(guò)改進(jìn)后,本文提出的視覺(jué)SLAM過(guò)程演示效果見(jiàn)圖8可以看出,在相同時(shí)間內(nèi),源程序已經(jīng)提取了420個(gè)關(guān)鍵幀,而用本文的算法僅僅提取了217個(gè)關(guān)鍵幀。并且從效果圖的右下角的特征提取與匹配圖可以看出,原程序所用的SIFT算法提取到的特征點(diǎn)更多,而本文改進(jìn)的PCA-SIFT算法能夠在保持主要素特征的情況下減少特征點(diǎn)的提取。此外從運(yùn)行時(shí)的實(shí)時(shí)性來(lái)看,本文改進(jìn)的SLAM算法能夠快速地進(jìn)行SLAM的整個(gè)過(guò)程,不會(huì)出現(xiàn)卡頓的情況,并且在較快地移動(dòng)攝像頭的情況下保持軌跡不跟丟。反之,在用原程序進(jìn)行視覺(jué)SLAM的過(guò)程中時(shí)常出現(xiàn)卡頓,并且攝像頭移動(dòng)速度不能很快,動(dòng)作幅度需要保持較小。另一方面,在回環(huán)檢測(cè)的對(duì)比上,當(dāng)源程序回環(huán)檢測(cè)中所檢測(cè)的關(guān)鍵幀數(shù)目數(shù)量大時(shí),效果如圖7(a)所示,此時(shí)回環(huán)檢測(cè)能力尚可,但是所需等待時(shí)間較長(zhǎng);當(dāng)回環(huán)檢測(cè)中所檢測(cè)的關(guān)鍵幀數(shù)目數(shù)量小時(shí),效果如圖7(b)所示,此時(shí)回環(huán)檢測(cè)能力較差,點(diǎn)云圖中裝備出現(xiàn)略微重疊效果。 表3 rgbdslamv2與本文方法比較 圖6 實(shí)驗(yàn)場(chǎng)地環(huán)境 圖7 源程序效果演示 圖8 本文改進(jìn)程序演示效果 SLAM(simultaneous localization and mapping),即時(shí)定位與地圖構(gòu)建技術(shù),是增強(qiáng)現(xiàn)實(shí)技術(shù)中用于三維場(chǎng)景建模的核心技術(shù)。在利用增強(qiáng)現(xiàn)實(shí)進(jìn)行裝備維修的操作中,會(huì)出現(xiàn)三維場(chǎng)景建模速度慢和虛擬信息漂移的問(wèn)題。這主要是由于頭戴設(shè)備中硬件資源受限,計(jì)算能力不足。為滿足在增強(qiáng)現(xiàn)實(shí)技術(shù)領(lǐng)域的實(shí)時(shí)性和回環(huán)檢測(cè)要求,可利用Kinect對(duì)傳統(tǒng)視覺(jué)SLAM方法中計(jì)算費(fèi)時(shí)的環(huán)節(jié)進(jìn)行優(yōu)化。通過(guò)將幀間匹配的SIFT算法結(jié)合主要素分析方法,對(duì)其特征描述符合理降維,并將特征匹配距離優(yōu)化,從而減少幀間匹配運(yùn)算量;同時(shí)利用Kinect獲取到的輪廓減少關(guān)鍵幀的數(shù)目;最后在回環(huán)檢測(cè)中利用輪廓粗匹配以減少詞袋模型中用于聚類(lèi)的特征描述子數(shù)量。設(shè)計(jì)實(shí)驗(yàn)結(jié)果表明:本文提出的基于Kinect的視覺(jué)SLAM算法實(shí)時(shí)性更高,回環(huán)檢測(cè)的魯棒性更高。從而解決了利用增強(qiáng)現(xiàn)實(shí)技術(shù)進(jìn)行裝備維修過(guò)程中出現(xiàn)的三維建模速度慢和虛擬信息漂移的問(wèn)題。2.2 用組合距離進(jìn)行相似性匹配
3 輪廓匹配及回環(huán)優(yōu)化
3.1 輪廓優(yōu)化
3.2 輪廓匹配
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)3.3 BoW模型
4 實(shí)驗(yàn)結(jié)果與分析
4.1 輪廓的匹配
4.2 仿真測(cè)試
5 結(jié)束語(yǔ)