張琪安 ,張波濤,2? ,呂 強(qiáng) ,王亞東
(1.杭州電子科技大學(xué)自動化學(xué)院,浙江杭州 310018;2.浙江大學(xué)智能系統(tǒng)與控制研究所,浙江杭州 310058)
環(huán)境識別與建模是非結(jié)構(gòu)環(huán)境下移動機(jī)器人導(dǎo)航與規(guī)劃的先決條件,其中,可行區(qū)域識別是其關(guān)鍵技術(shù)之一.截止到目前,可行區(qū)域識別相關(guān)研究主要集中于從任務(wù)空間中檢測無障礙可行區(qū)域,通常采用激光、視覺或聲吶等傳感器對環(huán)境進(jìn)行數(shù)據(jù)采集與建模,從而區(qū)分可行區(qū)域與不可行區(qū)域[1–3].
然而人類或其他靈長類動物不僅可以辨別可行區(qū)域,還能區(qū)分不同可行區(qū)域?qū)π羞M(jìn)效果的影響,例如:硬質(zhì)與平坦的地貌更能提高行進(jìn)效率,松軟的草地、沙地會增加能耗,并可能影響行進(jìn)速度[4].不同可行區(qū)域在非幾何特征如:黏度、硬度、密度等方面有極大差距,從而導(dǎo)致移動機(jī)器人在不同可行區(qū)域下的行進(jìn)速度、意外風(fēng)險概率迥異[5–7].因此,可行區(qū)域的地貌識別有利于室外移動機(jī)器人實現(xiàn)更精細(xì)化的運動規(guī)劃與導(dǎo)航,進(jìn)而提高目標(biāo)任務(wù)的執(zhí)行效率.
近年來,國內(nèi)外一些機(jī)器人領(lǐng)域的研究者開始關(guān)注該問題,并進(jìn)行了一些探索性研究,例如:文獻(xiàn)[8]通過驅(qū)動移動機(jī)器人在沙地、碎石、草地、土地、瀝青路面上以6種速度行駛,分別提取車輪與地面接觸后相互作用的加速度與聲壓信號,其后,采用支持向量機(jī)(support vector machine,SVM)分類;文獻(xiàn)[9]中提出了一種基于靜電信號測量的地貌識別方法,通過采集機(jī)器人足部與地面接觸、分離時的感應(yīng)電荷及泄放情況,再用k近鄰算法對靜電信號識別分類.
振動信號與靜電信號皆為接觸性信號,需通過機(jī)器人與地面接觸獲得,無法預(yù)先對地貌進(jìn)行分類[10].然而,對于非結(jié)構(gòu)環(huán)境下的移動機(jī)器人導(dǎo)航而言,實時預(yù)判地貌具有非常關(guān)鍵的意義.鑒于視覺傳感器具有非接觸性、蘊(yùn)含信息豐富的特點[11],文獻(xiàn)[12]使用車載攝像機(jī)從道路上拍攝數(shù)字圖像,并提取出圖像中的顏色特征,利用多層感知機(jī)(multilayer perceptron,MLP)對顏色特征進(jìn)行分類從而達(dá)到可行地貌分類的目的;國內(nèi)研究者也在本領(lǐng)域進(jìn)行了探索,例如:文獻(xiàn)[13]在獲取地貌圖像后,提取出大量包含顏色、紋理和幾何特征在內(nèi)的候選地貌特征,再利用基于隨機(jī)森林的在線特征選擇算法,提取出與地貌類型高度相關(guān)的一小部分特征用于分類,獲得了較高識別率.
受限于傳感器技術(shù)與圖像處理領(lǐng)域的研究進(jìn)展,地形地貌識別的準(zhǔn)確率雖不斷提高,但仍然面臨許多問題.因目前絕多數(shù)方法需手動提取地貌特征,其分類效果受人工地貌特征提取效果影響較大[14].近年來,圖像處理領(lǐng)域進(jìn)展日新月異,其中深度學(xué)習(xí)方法表現(xiàn)極為出色.自AlexNet模型的提出以來,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)呈爆炸式發(fā)展,現(xiàn)已被廣泛應(yīng)用于文字識別、人臉識別、目標(biāo)檢測等領(lǐng)域,相比傳統(tǒng)的圖像分類方法,CNN能夠避免繁瑣的特征提取,以CNN為代表的圖像分類技術(shù),打破了傳統(tǒng)的“先提取特征,后分類”的圖像識別模式[15–16].深度學(xué)習(xí)領(lǐng)域的技術(shù)為地形地貌識別提供了極好的工具.
然而,使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行地貌識別存在以下問題:1)移動機(jī)器人導(dǎo)航對地貌識別有較高的準(zhǔn)確率要求,為滿足該要求設(shè)計的復(fù)雜神經(jīng)網(wǎng)絡(luò),會帶來訓(xùn)練困難、過擬合等問題.而較低的不可行地貌識別率則會帶來嚴(yán)重的風(fēng)險,導(dǎo)致任務(wù)失敗,甚至?xí)p壞機(jī)器人,如圖1所示.2)網(wǎng)絡(luò)訓(xùn)練需要大批量帶標(biāo)簽的地貌數(shù)據(jù),目前尚無用于移動機(jī)器人地貌識別的公開地貌數(shù)據(jù)集.
圖1 落水的K5巡邏機(jī)器人(Knightscope)Fig.1 A drowning K5 patrol robot(Knightscope)
針對風(fēng)險地貌誤判率高的問題,本文提出了以犧牲非風(fēng)險地貌的識別率為代價,提高感興趣地貌識別準(zhǔn)確率的低風(fēng)險地貌識別策略.該策略采用雙重驗證方式,通過多分類與二分類的分類結(jié)果共同判別地貌類型.在此基礎(chǔ)上,為避免手動地貌特征提取的局限性,將卷積神經(jīng)網(wǎng)絡(luò)作為理論基礎(chǔ),根據(jù)任務(wù)需求分別設(shè)計了2個CNN用于多分類與二分類,并采用Adam算法優(yōu)化網(wǎng)絡(luò)參數(shù).最終構(gòu)建了2級卷積神經(jīng)網(wǎng)絡(luò)的風(fēng)險地貌識別算法.此外,本研究收集了大量6類常見地貌的圖像,經(jīng)數(shù)據(jù)增強(qiáng)后形成數(shù)據(jù)集用于網(wǎng)絡(luò)訓(xùn)練與測試.所提出的基于卷積神經(jīng)網(wǎng)絡(luò)與二分類的地貌識別與風(fēng)險優(yōu)化算法,通過多重CNN的分類決策,顯著降低了風(fēng)險地貌的誤判率,可為減少室外移動機(jī)器人導(dǎo)航風(fēng)險提供關(guān)鍵的感知數(shù)據(jù)支持.
本文的研究目標(biāo)是以較高的精度實現(xiàn)地貌識別,并顯著減少由“危險地貌”誤判帶來的經(jīng)濟(jì)損失.所謂“危險地貌”誤判是指將會給移動機(jī)器人帶來危險的不可行地貌誤判為可行地貌,例如將水面誤判為沙地,可能導(dǎo)致移動機(jī)器人落水短路.而將沙地誤判為柏油路并不構(gòu)成嚴(yán)重風(fēng)險,僅會降低移動機(jī)器人行進(jìn)效率.為實現(xiàn)該目標(biāo),提出了具有“雙重驗證”決策思想的最小風(fēng)險地貌識別方法,該方法描述為:使用多個分類器對可能的“危險地貌”進(jìn)行多次識別,只要有一類分類器識別出“危險地貌”,則結(jié)果直接判定為“危險地貌”.盡管在多次識別的過程中存在將“安全地貌”識別為“危險地貌”的可能性,但這種誤判并不能帶來災(zāi)難性的后果,僅僅是迫使移動機(jī)器人繞走其他路線,比較“危險地貌”誤判所帶來的損失,這種誤判導(dǎo)致的危害極小.
基于以上規(guī)則,設(shè)計了基于CNN的低風(fēng)險地貌決策算法,算法的識別流程如圖2所示.其中,Terrain–CNNⅠ為用于多分類的卷積神經(jīng)網(wǎng)絡(luò),而Terrain–CNNⅡ為用于二分類的卷積神經(jīng)網(wǎng)絡(luò).該算法首先將采集到的地貌圖像放入Terrain–CNNⅠ中判斷所屬地貌類別,若為危險地貌則直接判定為危險地貌;若為非危險地貌,則放入Terrain–CNNⅡ中再次甄別地貌類型,若為危險地貌,則判定為危險地貌,否則,返回Terrain-CNNⅠ的識別結(jié)果.
圖2 基于CNN的低風(fēng)險地貌決策算法流程圖Fig.2 Flow chart of low-risk terrain decision algorithm based on CNN
選用室外機(jī)器人工作空間中常見的幾種地貌進(jìn)行測試,示例地貌分別為:水面、草地、泥地、柏油路、沙地、碎石路.其中,水面屬于典型危險地貌,許多游泳池、景觀池、人工河的邊沿與地面平齊,不易被平掃的激光雷達(dá)發(fā)現(xiàn).其余5種地貌作為非危險地貌,具體如圖3所示.因數(shù)據(jù)集構(gòu)建所需采樣工作量較大,故僅以6種地貌測試所提算法,但本算法的適用范圍并不局限于以上幾種地貌樣本.
圖3 6種示例測試地貌Fig.3 Six sample terrains for test
卷積神經(jīng)網(wǎng)絡(luò)是一類包含“卷積”結(jié)構(gòu)的特殊神經(jīng)網(wǎng)絡(luò),主要由輸入層、卷積層、激活層、池化層、全連接層、輸出層組成.該類網(wǎng)絡(luò)通過卷積、池化的反復(fù)迭代使用能夠自動地將提取到的低層特征逐漸變成高層特征再用于分類.低層次的圖像特征包括形狀、紋理、邊緣等底層的特征,而高層次的圖像特征是建立在低層次的特征之上,更能體現(xiàn)圖像語義信息的特征[17].池化層的引入使得網(wǎng)絡(luò)對圖像的位移、放大、縮小、變形具有良好的魯棒性.因此卷積神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于圖像識別領(lǐng)域.
參照近年在圖像識別有出色表現(xiàn)的AlexNet模型[18],分別設(shè)計了Terrain–CNNⅠ與Terrain–CNNⅡ網(wǎng)絡(luò),其中,Terrain–CNNⅠ為本文所設(shè)計的多分類網(wǎng)絡(luò),其結(jié)構(gòu)如圖4所示,由1個輸入層、3個卷積層、3個池化層、1個全連接層和1個Softmax層組成,Terrain–CNNⅠ的輸入為所有待識別的地貌樣本,而輸出則為對輸入地貌的判別.Terrain–CNNⅡ包含1個輸入層、4個卷積層、4 個池化層、1個全連接層以及1個Softmax層.這樣做的目的是讓兩個網(wǎng)絡(luò)能夠提取到不同的圖像特征,使得其分類結(jié)果不同,進(jìn)而可用于雙重驗證地貌類型.
圖4 Terrain–CNNⅠ網(wǎng)絡(luò)架構(gòu)圖Fig.4 The structure of Terrain–CNNⅠnetwork
Terrain–CNNⅠ與Terrain–CNNⅡ具體的網(wǎng)絡(luò)層數(shù)、類型、卷積核尺寸或池化大小、步長、輸出尺寸如表1–2所示.
除輸出層采用Softmax函數(shù)以外,其余采用ReLU函數(shù)f(u)=max(u,0)(u∈(0,∞))作為激活函數(shù),ReLU函數(shù)相較于其他激活函數(shù)(例如Sigmoid,Tanh)能夠有效解決在反向傳播時梯度彌散的問題.
為了提高網(wǎng)絡(luò)的泛化能力,將Dropout引入到網(wǎng)絡(luò)中.在網(wǎng)絡(luò)的每一次訓(xùn)練時,Dropout能夠?qū)⒕W(wǎng)絡(luò)中任意一個神經(jīng)元以概率p將其暫時從網(wǎng)絡(luò)中丟棄[19].在網(wǎng)絡(luò)訓(xùn)練完成后再將p設(shè)置為1,讓所有神經(jīng)元工作.此外,為衡量模型的性能指標(biāo),采用交叉熵函數(shù)作為代價函數(shù).
表1 Terrain–CNNⅠ結(jié)構(gòu)參數(shù)Table 1 Parameters of Terrain–CNNⅠnetwork
表2 Terrain–CNNⅡ結(jié)構(gòu)參數(shù)Table 2 Parameters of Terrain–CNNⅡnetwork
采用Adam(adaptive moment estimation)梯度下降優(yōu)化算法來優(yōu)化所構(gòu)建的Terrain–CNNⅠ與Terrain–CNNⅡ.普通的梯度下降算法保持單一的學(xué)習(xí)率更新權(quán)重,且學(xué)習(xí)率選定困難,而Adam算法[20]利用梯度的一階矩估計和二階矩估計,能夠動態(tài)調(diào)整每個參數(shù)的學(xué)習(xí)率,使網(wǎng)絡(luò)快速收斂.一階矩估計如式(1)與式(2)所示,二階矩估計如式(3)與式(4)所示:
其中:dw,db分別為代價函數(shù)對權(quán)值w、偏置值b的梯度;Vdw,Vdb分別為對dw,db的一階矩估計;Sdw,Sdb則是對dw,db的二階矩估計;β1,β2為矩估計的指數(shù)衰減速率,β1,β2的推薦值分別為0.9,0.999[21–22].初始化時,Vdw=0,Sdw=0,Vdb=0,Sdb=0.由于初始值0的設(shè)定,前幾次矩估計并沒有對實際梯度進(jìn)行合適的估計,因此需要進(jìn)行偏差修正,修正方式如式(5)–(8)所示:
其中:ε為數(shù)值不變的小常數(shù),其目的是避免分母為0;α為學(xué)習(xí)率.本算法取ε=10?8, α=10?4.
為說明本文所提算法的效果,以下將低風(fēng)險算法與Terrain–CNNⅠ,Terrain–CNNⅠ+SVM的分類方法對比,用于評估所提低風(fēng)險地貌識別算法對提升分類算法的避險能力以及整體識別率情況.
數(shù)據(jù)集的數(shù)量及質(zhì)量都對實驗結(jié)果有直接影響,因目前尚無公開的地貌數(shù)據(jù)集,故采用網(wǎng)絡(luò)爬蟲從搜索引擎中獲取各類地貌圖片,再手動篩選刪除不相關(guān)的圖片.在獲取水面圖片時,除了湖面、河面等常見的水面,也考慮了積水、水坑等機(jī)器人可能會遇到的水面情況,最終獲取到每類圖片300–500張,各類地貌樣圖如圖5所示.
圖5 6種典型地貌示例圖Fig.5 Examples of six typical terrains
對于圖像分類任務(wù),常采用不影響圖像標(biāo)簽的圖像增強(qiáng)技術(shù)來擴(kuò)充數(shù)據(jù)集的大小.在地貌數(shù)據(jù)集的制作過程中,將獲取到大小不同的原始地貌圖統(tǒng)一調(diào)整成300×300像素大小,然后將圖片分別沿橫、縱方向,以30像素為步長,裁剪成200×200像素大小的圖片,再將裁剪后的圖片分別進(jìn)行鏡像處理,因此每1張原始圖片可以擴(kuò)展出3×3×2=18張圖片,效果如圖6所示.
圖6 數(shù)據(jù)增強(qiáng)效果圖Fig.6 Data enhancement renderings
最終,從增強(qiáng)后的數(shù)據(jù)集中給每類隨機(jī)挑選各5000張訓(xùn)練集及500張測試集組成6類地貌的數(shù)據(jù)集,數(shù)據(jù)集分布如表3所示.
表3 6類地貌數(shù)據(jù)集分布Table 3 Distribution of six types of terrain data sets
因Terrain–CNNⅡ用于處理二分類任務(wù),需要建立包含正負(fù)樣本的新數(shù)據(jù)集,實驗將水面圖片標(biāo)記為正樣本,非水面圖片標(biāo)記為負(fù)樣本.采用隨機(jī)算法從每類非水面的訓(xùn)練集、測試集中隨機(jī)挑選20%的圖片作為訓(xùn)練集、測試集,水面的訓(xùn)練集測試集不變,最終,由正負(fù)樣本組成的新數(shù)據(jù)集的分布情況如表4所示.
表4 正負(fù)樣本數(shù)據(jù)集分布Table 4 Distribution of positive and negative sample data sets
采用的實驗平臺為基于Python的深度學(xué)習(xí)框架Tensorflow,操作系統(tǒng)為Windows 10 64位;硬件環(huán)境為:CPU為6核2.80 GHz Intel(R) Core(TM) i5–8400,內(nèi)存8 GB,GPU為GTX1060.綜合考慮網(wǎng)絡(luò)的訓(xùn)練效率以及實驗設(shè)備性能,采用mini-batch方法,批量使用訓(xùn)練集對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,batch-size設(shè)為25.
兩個模型在訓(xùn)練集上的準(zhǔn)確率變化如圖7–8所示,從變化曲線中看出,兩個網(wǎng)絡(luò)在訓(xùn)練時準(zhǔn)確率都有一定幅度的振蕩,但振蕩幅度隨著訓(xùn)練次數(shù)的增加在降低,整體的訓(xùn)練精度也呈現(xiàn)上升趨勢.振蕩的原因是采用了batch-size訓(xùn)練方法,訓(xùn)練初期每次用于訓(xùn)練的batch-size大小的數(shù)據(jù)集均為新數(shù)據(jù),故每次訓(xùn)練精度會發(fā)生波動,隨著訓(xùn)練次數(shù)增加,網(wǎng)絡(luò)最終趨向穩(wěn)定.經(jīng)24000次訓(xùn)練后,Terrain–CNNⅠ的識別精度在95%附近波動,而Terrain–CNNⅡ僅需5000次訓(xùn)練,識別精度即可超過95%,由此可見Terrain–CNNⅡ網(wǎng)絡(luò)的功能簡單,訓(xùn)練的難度比Terrain–CNNⅠ略低.
圖7 Terrain–CNNⅠ訓(xùn)練時的準(zhǔn)確率變化Fig.7 Changes in accuracy during training Terrain–CNNⅠ
圖8 Terrain–CNNⅡ訓(xùn)練時的準(zhǔn)確率變化Fig.8 Changes in accuracy during training Terrain–CNNⅡ
使用各自的測試集測試訓(xùn)練好的模型的泛化能力,Terrain–CNNⅠ和Terrain–CNNⅡ的測試結(jié)果分別如表5–6所示.
由表5可見Terrain-CNNⅠ在草地、沙地的識別方面有非常高的識別率,幾乎接近100%,而在水面、泥地的識別率都低于90%.最終模型在測試集上整體正確率為92.6%.可能的原因是相較于其他地貌,草地、沙地有明顯不同的顏色、紋理特征,較容易識別;而水面地貌中,因積水有一大部分存在于泥地、柏油路面中,會影響相互間地貌的識別率.
表5 獨立使用Terrain–CNNⅠ的地貌識別Table 5 Use Terrain–CNNⅠfor terrain recognition
表6 獨立使用Terrain–CNNⅡ的地貌識別Table 6 Use Terrain–CNNⅡfor terrain recognition
對于地貌的二分類問題,常使用真陽性率(true positive rate)、假陽性率(false positive rate)、真陰性率(true negative rate)、假陰性率(false negative rate)表示二分類的分類效果,分別以TPR,FPR,TNR,TNR表示.由表6可見TPR(將水面正確識別為水面)與TNR(將非水面正確識別為非水面)分別為93.0%,93.8%.
以下實驗旨在驗證低風(fēng)險地貌識別策略對提升分類算法避險能力的作用,同時分析不同技術(shù)細(xì)節(jié)對地貌識別效果的影響.使用下述3種方法進(jìn)行地貌分類:
A) 獨立使用Terrain–CNNⅠ;
B) Terrain–CNNⅠ+SVM;
C) Terrain–CNNⅠ+Terrain–CNNⅡ(低風(fēng)險地貌識別方法).
測試集均選用表3 中的6 類地貌測試集.其中,SVM用于二分類,由于不同地貌間存在較為明顯的粗糙度、平滑度等紋理上的特征差異,因此將局部二值模式(local binary patterns,LBP)算子提取的圖像紋理特征作為SVM 輸入.LBP算子通過比較中心像素與周圍像素的大小后輸出一串二進(jìn)制編碼,進(jìn)而實現(xiàn)圖像的LBP特征提取.此外將高斯核做SVM的核函數(shù).SVM(LBP)單獨用于地貌二分類時水面的分類準(zhǔn)確率為90.6%,如表7所示.
表7 獨立使用SVM(LBP)的地貌識別Table 7 Use SVM(LBP)for terrain recognition
A,B和C三種方法下地貌識別的風(fēng)險性以及平均識別率如表8所示.由實驗結(jié)果可知,與方法A相比,方法B、方法C均可顯著提高水面這種危險地貌的識別準(zhǔn)確率.其中,方法C的提升幅值可達(dá)9.8%,最終識別率接近100%.然而,伴隨危險地貌識別率提升的同時,單個安全地貌的識別率有了不同程度的降低.其中,方法B的下降幅度比方法C大.在包含水面的整體平均識別率方面,方法B的平均識別率降低了5.1%,而方法C的平均識別率有小幅提升,提升幅值為0.5%.導(dǎo)致以上現(xiàn)象原因為:二分類輸入為非水面圖像,包括:a)真實的非水面地貌;b)虛假的非水面地貌,其實為水面,但被誤判成了非水面.以此為輸入,二分類結(jié)果包括:1)真實非水面輸入,被判斷為非水面;2)真實非水面輸入,被判斷為水面;3)虛假非水面輸入,被判斷為水面;4)虛假非水面輸入,被判斷為非水面.以上4種結(jié)果1)與4)對原多分類無影響,但2)會降低單個非水面的識別率,使得整體識別率降低.3)能提高水面識別率,進(jìn)而對整體識別率提升產(chǎn)生積極的作用.結(jié)果2)和3)共同決定整體識別率變化.相比于SVM,Terrain–CNNⅡ?qū)Y(jié)果3)的提升更大,出現(xiàn)2)的可能性更小,這是造成了兩種方法識別率差異的原因.
表8 風(fēng)險性及平均識別率對比Table 8 Comparison of risk and average recognition rate
此實驗結(jié)果表明帶有“雙重驗證”的識別策略可顯著提高感興趣地貌的識別率,然而該優(yōu)勢在一定程度上會伴隨其他地貌識別率稍有降低.但與“危險地貌”誤判給移動機(jī)器人所帶來的損失相比,這種犧牲所導(dǎo)致的危害極小,所付出代價回報豐厚.總之,本文提出的Terrain–CNNⅠ+Terrain–CNNⅡ的卷積神經(jīng)網(wǎng)絡(luò)模型能夠降低危險地貌的誤判率,同時能夠保證其他地貌的識別率降幅較低,使得整體識別率變化不大.
本文提出了基于CNN的低風(fēng)險地貌識別算法,實驗表明該方法對危險地貌的識別率可達(dá)99.2%,能顯著降低移動機(jī)器人因地貌誤判帶來的風(fēng)險.室外地貌遠(yuǎn)不止文中所述幾種,因構(gòu)建數(shù)據(jù)樣本庫需收集大量樣本,故文中只測試了其中6類,但本方法所適用的對象不限于示例地貌.本算法所采用的低風(fēng)險地貌識別策略是以微小的犧牲非危險地貌的識別率為代價,顯著提高某些危險地貌的識別率.該地貌識別方法適用于復(fù)雜地貌下的室外移動機(jī)器人自主導(dǎo)航與任務(wù)規(guī)劃等.