王啟來,董朝軼,劉曉陽 ,陳曉艷,肖志云,齊詠生,張麗杰
1(內(nèi)蒙古工業(yè)大學(xué) 電力學(xué)院,呼和浩特 010080) 2(內(nèi)蒙古機(jī)電控制重點(diǎn)實(shí)驗(yàn)室,呼和浩特 010051)
近十幾年來,隨著現(xiàn)代物流生產(chǎn)的發(fā)展和自動化程度的不斷提高,自動導(dǎo)引車(AGV)廣泛應(yīng)用于服務(wù)、醫(yī)療、農(nóng)業(yè)、制造等各個行業(yè)領(lǐng)域[1].自動導(dǎo)引車具有自動化集成度高、工作效率高、靈活度高、成本低、安全性高等提點(diǎn).自動導(dǎo)引車的大范圍使用,解決了生產(chǎn)效率低、生產(chǎn)成本高等問題,大大的減少了企業(yè)的勞動成本,提高了生產(chǎn)效率.目前,自動導(dǎo)引車(AGV)按導(dǎo)航方式主要分為磁導(dǎo)航AGV、慣性導(dǎo)航AGV、激光雷達(dá)導(dǎo)航AGV、視覺導(dǎo)航AGV[2].近年來,隨著科學(xué)的不斷發(fā)展,機(jī)器計(jì)算能力的逐漸增強(qiáng).視覺導(dǎo)航成為當(dāng)今研究熱點(diǎn).主要在視覺導(dǎo)航的自主定位與建圖、目標(biāo)識別、導(dǎo)航與制導(dǎo)等研究領(lǐng)域[3].
位置估計(jì)是移動機(jī)器人自主定位的關(guān)鍵技術(shù),本文主要研究深度相機(jī)在視覺SLAM導(dǎo)航中視覺里程計(jì)(VO)的問題.VO在視覺SLAM中主要分為直接法、間接法、半直接法,其中直接法主要是根據(jù)圖像的像素灰度信息同時估計(jì)相機(jī)運(yùn)動和點(diǎn)的投影,文獻(xiàn)[4]中介紹了DVO(直接視覺里程計(jì))增加了一個姿勢圖以減少誤差.間接法是一種經(jīng)典流水線,提取關(guān)鍵點(diǎn)以及描述子,然后根據(jù)圖像幀之間的匹配來估計(jì)運(yùn)動,本文使用RGB-D深度相機(jī)基于深度學(xué)習(xí)的特征提取方法進(jìn)行運(yùn)動估計(jì),主要實(shí)現(xiàn)對視覺導(dǎo)航AGV在室內(nèi)環(huán)境下的控制操作.目前基于深度學(xué)習(xí)的特征點(diǎn)檢測方法正在不斷涌現(xiàn)[5],主要有SuperPoint、GCN等,在文獻(xiàn)[6]中,提出了一種基于CNN的關(guān)鍵點(diǎn)檢測器和稱為SuperPoint的描述子.前期的研究結(jié)果表明,SuperPoint的描述子比SIFT等經(jīng)典方法具有更好的效果.本文參考文獻(xiàn)[7]幾何對應(yīng)網(wǎng)絡(luò)GCN,該網(wǎng)絡(luò)專門用于產(chǎn)生相機(jī)運(yùn)動估計(jì)的關(guān)鍵點(diǎn).相比傳統(tǒng)方法,該方法具有更高的準(zhǔn)確性.但是,由于GCN及多幀匹配設(shè)置,很難在全面的SLAM系統(tǒng)中運(yùn)行.關(guān)鍵點(diǎn)提取和匹配在耗費(fèi)很大的計(jì)算.實(shí)際上,在性能受限的環(huán)境中將深度學(xué)習(xí)集成到SLAM系統(tǒng)內(nèi)運(yùn)行是一直未解決的問題[8].本文提出一種基于GCN深度學(xué)習(xí)算法改進(jìn)的輕量級深度學(xué)習(xí)網(wǎng)絡(luò)GCN-L用于生成與ORB特征相同格式的關(guān)鍵點(diǎn)和描述子,完全可替代ORB特征在ORB-SLAM2[9]中的功能,通過在視覺導(dǎo)航AGV的嵌入式低功耗硬件平臺(Jetson TX2)上實(shí)時運(yùn)行GCN-SLAM進(jìn)行建圖實(shí)驗(yàn).表明了GCN-L的有效性和可靠性、較強(qiáng)的魯棒性.
在文獻(xiàn)[7]中提出的原始GCN網(wǎng)絡(luò)是由ResNet-50[10]和RCNN雙向循環(huán)網(wǎng)絡(luò)組成.ResNet-50用于稠密特征點(diǎn)提取,而RCNN雙向遞歸網(wǎng)絡(luò)用于查找關(guān)鍵點(diǎn)位置.與現(xiàn)有方法相比,GCN具有較好的精度和特征跟蹤性能,但是同時也指出,該網(wǎng)絡(luò)結(jié)構(gòu)本身需要計(jì)算能力強(qiáng)的平臺支持,使其無法在視覺導(dǎo)航AGV實(shí)驗(yàn)的嵌入式低功耗硬件平臺(Jetson TX2)實(shí)時運(yùn)行.
為了使其能夠在嵌入式低功耗硬件平臺(Jetson TX2)實(shí)時運(yùn)行,受文獻(xiàn)[6]SuperPoint的啟發(fā),本文對GCN網(wǎng)絡(luò)進(jìn)行了改進(jìn),改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)GCN-L如圖1所示.該網(wǎng)絡(luò)共6層,其中,第1層該使用4×4的內(nèi)核進(jìn)行卷積,提取32維的特征點(diǎn),第2層該使用4×4的內(nèi)核進(jìn)行卷積,提取64維特的征點(diǎn),第3層分別使用3×3、4×4內(nèi)核進(jìn)行雙重卷積,提取128維的特征點(diǎn),第4層分別使用3×3、4×4內(nèi)核進(jìn)行雙重卷積,提取256維的特征點(diǎn).F層和D層同時以3×3、4×4的內(nèi)核進(jìn)行雙重卷積,分別用于提取256維的特征點(diǎn)和描述子.相比于GCN網(wǎng)絡(luò),改進(jìn)后的GCN-L網(wǎng)絡(luò)結(jié)構(gòu)更加輕量化.將一張?jiān)紙D像中分成大小為16×16像素的低分辨率圖像,然后對每個低分辨率圖像進(jìn)行獨(dú)立的預(yù)測.在低分辨率圖像下預(yù)測概率圖和稠密特征圖,然后將256通道概率圖改組為原始的分辨率.最后對原始辨率的概率圖進(jìn)行非極大值抑制,利用這些位置對低分辨率稠密特征圖中對應(yīng)的特征向量進(jìn)行雙線性采樣.
圖1 GCN-L網(wǎng)絡(luò)結(jié)構(gòu)圖
在本文中將GCN-L訓(xùn)練為輸出二進(jìn)制描述子,以加快描述子匹配過程并與ORB-SLAM結(jié)合.為了對特征進(jìn)行二值化處理,本文在網(wǎng)絡(luò)輸出特征向量之后再添加一個二進(jìn)制激活層.其本質(zhì)上是一個hard sign非線性函數(shù)[10].該二進(jìn)制激活層函數(shù)如式(1)所示:
(1)
其中f表示為低分辨率下的稠密特征圖,b是特征圖f的二值化圖,x給出圖像平面中的2D坐標(biāo)(u,v).1|f|≤1代表取消f的絕對值大于1的單個特征響應(yīng)的梯度.它是hard sign函數(shù)的直通式估計(jì)器,用于反向傳播梯度.該指標(biāo)函數(shù)在反向傳播過程中近似二值化,并通過決策邊界的次數(shù)增加1,避免過度懲罰以使特征響應(yīng).這種方法比讓網(wǎng)絡(luò)直接輸出二進(jìn)制的描述子訓(xùn)練起來更加高效.如果直接輸出二進(jìn)制的值,使得輸出在{+1,-1}兩個值周圍聚類,會與之后的基于損失函數(shù)的優(yōu)化發(fā)生沖突.因?yàn)閾p失函數(shù)優(yōu)化需要用到距離信息來劃分是否相似,這樣導(dǎo)致整個網(wǎng)絡(luò)的訓(xùn)練會不穩(wěn)定.在該網(wǎng)絡(luò)中設(shè)計(jì)的二進(jìn)制特征向量b的大小設(shè)置為256,與ORB特征完全相同,可將GCN-L直接合并到現(xiàn)有的基于ORB的視覺跟蹤系統(tǒng)(例如ORB-SLAM2)中[9].對于相同的特征向量大小和具有64個特征向量大小的GCN,具有二值化特征的匹配速度遠(yuǎn)遠(yuǎn)優(yōu)于SuperPoint.
逐像素度量學(xué)習(xí)用于以最近相鄰的方式訓(xùn)練描述子.二值化特征的triplet loss[11]損失函數(shù)如下:
(2)
(3)
其中Rgt∈3×3是真實(shí)旋轉(zhuǎn)矩陣,tgt∈3×3是真實(shí)平移矢量.Π為給定的2D坐標(biāo)和深度zi將像素從圖像平面投影到3D空間.通過算法1(Mining算法)中所述的窮舉負(fù)樣本挖掘法來檢索不匹配對.具體搜索過程采用文獻(xiàn)[7]中所描述的寬松標(biāo)準(zhǔn)進(jìn)一步懲罰已經(jīng)匹配的特征.放寬標(biāo)準(zhǔn)用于增加對潛在噪聲數(shù)據(jù)的容忍度.算法1流程下所示:
2)設(shè)置n=1,進(jìn)行循環(huán):
forn=1;n end returnNone; 本文把關(guān)鍵點(diǎn)檢測問題看作是一個二分類問題.o為像素變換后的關(guān)鍵點(diǎn)概率圖是由0和1掩碼組成的.這些值指示像素是否為關(guān)鍵點(diǎn).然后將加權(quán)交叉熵用作訓(xùn)練的目標(biāo)函數(shù).在兩個連續(xù)的幀上評估損失,以增強(qiáng)提取的關(guān)鍵點(diǎn)的一致性.檢測的損失為: (4) 其中α1和α2用于處理不平衡類,以防止不是關(guān)鍵點(diǎn)的像素主導(dǎo)損失.本文通過檢測16×16網(wǎng)格中的Shi-Tomasi角來生成實(shí)況,并使用公式(3)將它們warp到下一幀.這將導(dǎo)致更好地均勻分布關(guān)鍵點(diǎn),并且目標(biāo)函數(shù)直接反映了基于紋理跟蹤關(guān)鍵點(diǎn)的能力. 基于關(guān)鍵點(diǎn)方法的視覺SLAM系統(tǒng)最重要的是關(guān)鍵點(diǎn)檢測器的選擇.文獻(xiàn)[12]中基于ORB特征的ORB-SLAM是一種廣泛應(yīng)用的方法,與其他具有同等屬性的關(guān)鍵點(diǎn)檢測器相比,具有計(jì)算成本很低,并且具有用于快速匹配的緊湊描述子.在文獻(xiàn)[7]中所示,在真實(shí)的運(yùn)動估計(jì)中GCN的性能優(yōu)于或與ORB-SLAM2 相當(dāng).因?yàn)镚CN只有前端視覺里程計(jì)的特征及關(guān)鍵點(diǎn)檢測功能沒有SLAM的位姿圖優(yōu)化、回環(huán)檢測等后端優(yōu)化功能,如果將GCN合并到具有后端優(yōu)化的功能的SLAM系統(tǒng)中可能會產(chǎn)生更好的結(jié)果.但是如上述所說,本文想在嵌入式低功耗硬件平臺實(shí)時運(yùn)行視覺導(dǎo)航SLAM系統(tǒng),而GCN的使用的硬件成本過高,本文將GCN-L合并修改到ORB-SLAM2系統(tǒng)中. ORB-SLAM2的運(yùn)動估計(jì)是基于圖像幀之間的關(guān)鍵點(diǎn)跟蹤和基于特征的g2o[13]位姿優(yōu)化求解.本文將簡單的進(jìn)行描述特征點(diǎn)以及描述子的檢測.ORB-SLAM2使用了一個比例金字塔[14],其中輸入圖像被迭代地縮小,從而通過對多個重縮放圖像運(yùn)行單比例算法來支持多尺度特征檢測.對于每個尺度級別,F(xiàn)AST角點(diǎn)檢測器應(yīng)用于30×30網(wǎng)格.如果在單元格中未檢測到特征點(diǎn),F(xiàn)AST[15]降低閾值,將再次運(yùn)行.對尺度金字塔中給定水平上的所有單元采集到所有檢測數(shù)據(jù)后,采用空間分割算法,先根據(jù)關(guān)鍵點(diǎn)的圖像坐標(biāo),再根據(jù)檢測分?jǐn)?shù)剔除關(guān)鍵點(diǎn).最后,一般情況下總共選擇1000個關(guān)鍵點(diǎn),計(jì)算每個關(guān)鍵點(diǎn)的視角,然后使用高斯模糊對每個金字塔尺度層進(jìn)行過濾,并從模糊圖像中計(jì)算每層每個關(guān)鍵點(diǎn)的256位ORB描述子[16]. 本文中使用的方法是在網(wǎng)絡(luò)的單個前向通道中同時計(jì)算關(guān)鍵點(diǎn)位置和描述子,并且設(shè)計(jì)關(guān)鍵點(diǎn)和描述子與ORB特征格式相同,可以完全代替ORB特征檢測器.找到關(guān)鍵點(diǎn)及其各自的描述子后,ORB-SLAM2主要依靠兩種方法來進(jìn)行幀間跟蹤:首先,假設(shè)速度恒定并將前一幀的關(guān)鍵點(diǎn)投影到當(dāng)前幀中,如果失敗,則通過匹配以下關(guān)鍵點(diǎn)使用詞袋相似度將當(dāng)前幀與最后創(chuàng)建的關(guān)鍵幀進(jìn)行比較.本文僅使用了后者基于關(guān)鍵點(diǎn)的參考幀跟蹤.在實(shí)驗(yàn)中,用標(biāo)準(zhǔn)的最近鄰搜索替換了匹配算法.進(jìn)行這些修改來提高的關(guān)鍵點(diǎn)提取的性能.最后,本文通過訓(xùn)練數(shù)據(jù)集實(shí)驗(yàn)計(jì)算重新生成單詞袋詞匯表以適應(yīng)GCN-L特性的描述符子,并且我們保留了ORB-SLAM2的姿態(tài)圖優(yōu)化和回環(huán)檢測的功能.GCN-L與ORB特征提取算法流程對比圖如圖2所示. 圖2 算法流程對比圖 Computer Vision Group TUM Department of Informatics Technical University of Munich公布的RGB-D深度相機(jī)TUM數(shù)據(jù)集提供了室內(nèi)環(huán)境中數(shù)百萬個現(xiàn)實(shí)世界圖像,尺寸均為640×480.本文中使用某一室內(nèi)場景下的2/3數(shù)據(jù)對GCN-L網(wǎng)絡(luò)進(jìn)行訓(xùn)練,另外,采用剩余的1/3數(shù)據(jù)進(jìn)行測試.數(shù)據(jù)的其多樣性可能會產(chǎn)生更廣泛的網(wǎng)絡(luò),提供的地面真實(shí)姿態(tài)通過閉環(huán)視覺跟蹤進(jìn)行估計(jì),在全局意義上保證了相對準(zhǔn)確性.訓(xùn)練的最終損失L是由Lf和Ld加權(quán)組合而成的,其中權(quán)重比為120∶1.m是triplet loss 損失函數(shù)截止的距離邊界設(shè)置為1.算法1中是的放寬標(biāo)準(zhǔn)c設(shè)置為7.[α1,α2]交叉熵權(quán)設(shè)置為[0.1,1.0].自適應(yīng)梯度下降法ADAM[17]的學(xué)習(xí)率設(shè)置為從10-4開始,每40個周期減半,總共200個訓(xùn)練周期.GCN-L的權(quán)重在均勻分布下隨機(jī)初始化.為了ORB-SLAM進(jìn)行比較,選擇ORB-SLAM相同的TUM數(shù)據(jù)集進(jìn)行訓(xùn)練,并使用開環(huán)和閉環(huán)系統(tǒng)評估跟蹤性能.使用絕對軌跡誤差(ATE)[18]作為度量. 本文將上述訓(xùn)練好的GCN-L網(wǎng)絡(luò)同修改的ORB-SLAM2系統(tǒng)(GCN-SLAM系統(tǒng))相融合.對圖像尺寸為640×480的RGB-D深度相機(jī)所采集的TUM數(shù)據(jù)集中剩余1/3數(shù)據(jù),分別使用ORB-SLAM、GCN-SALM進(jìn)行了特征關(guān)鍵點(diǎn)提取和地圖構(gòu)建實(shí)驗(yàn),并對ORB-SLAM、GCN-SALM的測試結(jié)果進(jìn)行了比較.在實(shí)驗(yàn)中表明相比于ORB人工特征提取,基于深度學(xué)習(xí)的GCN-L的特征點(diǎn)提取空間分布更均勻,而且可以處理ORB特征提取失敗的情況.本文使用ATE開環(huán)圖像幀跟蹤結(jié)果如表1所示. 表1 使用ATE開環(huán)圖像幀追蹤結(jié)果 使用閉環(huán)系統(tǒng)對ORB-SLAM、GCN-SLAM、RGBD-TAM進(jìn)行了對比試驗(yàn),試驗(yàn)結(jié)果如表2所示. 表2 使用ATE閉環(huán)圖像幀追蹤結(jié)果 從表中可以看出ORB-SLAM,GCN-SLAM具有相當(dāng)?shù)目刂菩Ч?,但GCN-SALM可以處理ORB-SLAM快速旋轉(zhuǎn)跟蹤丟失的情況.本文分別使用GCN-L和ORB對RGB-D深度相機(jī)所采集的TUM 數(shù)據(jù)集中的fr2場景進(jìn)行特征關(guān)鍵點(diǎn)提取,其實(shí)驗(yàn)結(jié)果如圖3、圖4所示. 圖3 GCN-L關(guān)鍵點(diǎn)分布圖Fig.3 GCN-L key pointdistribution map圖4 ORB關(guān)鍵點(diǎn)分布圖Fig.4 ORB key pointdistribution map 使用GCN-SLAM、ORB-SLAM對TUM 數(shù)據(jù)集中的fr2進(jìn)行地圖構(gòu)建,實(shí)驗(yàn)結(jié)果如圖5、圖6所示. 圖5 GCN-SLAM稠密點(diǎn)云地圖Fig.5 GCN-SLAM dense point cloud map圖6 ORB-SLAM稠密點(diǎn)云地圖Fig.6 ORB-SLAM dense point cloud map 對比實(shí)驗(yàn)圖3、圖4中的結(jié)果,可以看出:相比ORB特征關(guān)鍵點(diǎn)提取,GCN-L提取的特征關(guān)鍵點(diǎn)空間分布更均勻.對比實(shí)驗(yàn)結(jié)果圖5、圖6,可以看出:GCN-SLAM建立的稠密點(diǎn)云地圖效果更加理想. 本文中以某重點(diǎn)實(shí)驗(yàn)室視覺導(dǎo)航AGV為主要研究對象,AGV搭載RGB-D深度相機(jī)和嵌入式低功耗硬件平臺(Jetson TX2)完成視覺導(dǎo)航任務(wù).該視覺導(dǎo)航AGV外觀如圖7所示. 圖7 視覺導(dǎo)航AGV 將上述訓(xùn)練好的網(wǎng)絡(luò)移植到嵌入式低功耗硬件平臺(Jetson TX2)的GCN-SLAM中,啟動RGB-D深度相機(jī)將相機(jī)輸出的640×480圖像輸入到GCN-SLAM中.通過上位機(jī)控制視覺導(dǎo)航AGV在實(shí)驗(yàn)室環(huán)境內(nèi)運(yùn)動,進(jìn)行ORB-SLAM、GCN-SLAM特征點(diǎn)提取和地圖構(gòu)建實(shí)驗(yàn).其中GCN-SLAM、ORB-SLAM進(jìn)行特征關(guān)鍵點(diǎn)提取實(shí)驗(yàn)結(jié)果如圖8、圖9所示. 圖8 GCN-L實(shí)驗(yàn)室場景關(guān)鍵點(diǎn)分布圖Fig.8 Key point distribution map of GCN-L laboratory scene圖9 ORB實(shí)驗(yàn)室場景關(guān)鍵點(diǎn)分布圖Fig.9 Key point distribution map of ORB laboratory scenario GCN-SLAM、ORB-SLAM進(jìn)行實(shí)驗(yàn)室地圖構(gòu)建,實(shí)驗(yàn)結(jié)果如圖10、圖11所示. 圖10GCN-SLAM實(shí)驗(yàn)室場景稠密點(diǎn)云地圖Fig.10GCN-SLAM laboratory scene dense point cloud map圖11ORB-SLAM實(shí)驗(yàn)室場景稠密點(diǎn)云地圖Fig.11ORB-SLAM laboratory scene dense point cloud map 通過數(shù)據(jù)集仿真地圖構(gòu)建和實(shí)驗(yàn)室真實(shí)場景地圖構(gòu)建,實(shí)驗(yàn)結(jié)果表明:同ORB-SLAM相比,GCN-SLAM所提取的特征關(guān)鍵點(diǎn)在圖像中分布較均勻,且GCN-SLAM可有效地避免ORB-SLAM快速旋轉(zhuǎn)圖像丟失的情況. 本文提出了一種基于GCN深度學(xué)習(xí)算法改進(jìn)的輕量級網(wǎng)絡(luò)GCN-L,將該改進(jìn)算法應(yīng)用于生成與ORB特征相同格式的關(guān)鍵點(diǎn)和描述子,可替代ORB特征在ORB-SLAM2中的功能,解決了關(guān)鍵點(diǎn)重疊,快速旋轉(zhuǎn)圖像跟蹤丟失的問題,并將GCN-L融合于ORB-SLAM中,將其應(yīng)用在某重點(diǎn)實(shí)驗(yàn)室的視覺導(dǎo)航AGV上,通過實(shí)驗(yàn)與其他深度學(xué)習(xí)算法和人工特征提取算法對比,驗(yàn)證了該方法的關(guān)鍵點(diǎn)空間分布均勻和較強(qiáng)的魯棒性.2.3 分布式關(guān)鍵點(diǎn)檢測器
3 GCN-SLAM
4 實(shí) 驗(yàn)
4.1 訓(xùn)練實(shí)驗(yàn)
4.2 測試實(shí)驗(yàn)
4.3 AGV實(shí)驗(yàn)
5 結(jié) 論