陳思銳,劉智,耿振野
(長(zhǎng)春理工大學(xué) 電子信息工程學(xué)院,長(zhǎng)春 130022)
對(duì)于智能移動(dòng)機(jī)器人的核心研究問(wèn)題是定位與避障的研究[1]。而避障功能是衡量移動(dòng)機(jī)器人智能化不可或缺的關(guān)鍵指標(biāo)之一。若要實(shí)現(xiàn)移動(dòng)機(jī)器人行走過(guò)程中完成自主避障,所要解決的問(wèn)題是:一方面需要機(jī)器人所處的外部環(huán)境信息,另一方面要求能夠?qū)⑺@取的環(huán)境信息,通過(guò)適當(dāng)?shù)奶幚磙D(zhuǎn)變?yōu)榭刂菩畔2]。
無(wú)人機(jī)循跡控制系統(tǒng)如圖1所示。無(wú)人機(jī)上的相機(jī)會(huì)采集無(wú)人機(jī)前方的圖像,然后基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識(shí)別模塊會(huì)對(duì)此圖像進(jìn)行識(shí)別并發(fā)出控制指令,進(jìn)而幫助無(wú)人機(jī)保持在正確的路徑上,實(shí)現(xiàn)無(wú)人機(jī)在樓道里的自主循跡飛行。
近幾年,卷積神經(jīng)網(wǎng)絡(luò)在圖像和語(yǔ)音識(shí)別方面取得了很大的突破,它已經(jīng)成為當(dāng)前語(yǔ)音分析和圖像識(shí)別領(lǐng)域的研究熱點(diǎn)。CNN作為一個(gè)深度學(xué)習(xí)架構(gòu)被提出是為了最小化數(shù)據(jù)的預(yù)處理要求。在CNN中,圖像的一小部分(局部感受區(qū)域)作為層級(jí)結(jié)構(gòu)的最低層輸入,再依次傳輸?shù)讲煌膶?,每層通過(guò)一個(gè)數(shù)字濾波器去獲得觀測(cè)數(shù)據(jù)的最顯著的特征。它的局部連接、權(quán)值共享的網(wǎng)絡(luò)結(jié)構(gòu)使之更類(lèi)似于生物神經(jīng)網(wǎng)絡(luò),降低了網(wǎng)絡(luò)模型的復(fù)雜度,減少了權(quán)值的數(shù)量。卷積網(wǎng)絡(luò)是為識(shí)別二維形狀而特殊設(shè)計(jì)的一個(gè)多層感知器,避免了傳統(tǒng)識(shí)別算法中復(fù)雜的特征提取和數(shù)據(jù)重建過(guò)程,這種網(wǎng)絡(luò)結(jié)構(gòu)對(duì)平移、比例縮放、傾斜或者共他形式的變形具有高度不變性[3]。
圖1 系統(tǒng)總體框圖
卷積層與傳統(tǒng)的特征提取作用一樣,每個(gè)卷積層中包含多個(gè)特征圖,每個(gè)特征圖中都包含有多個(gè)神經(jīng)元。同一特征圖中神經(jīng)元的權(quán)值和偏置是共享的,因此同一特征圖是提取前一層中不同位置神經(jīng)元的同一特征得到的。同一卷積層中的不同特征圖是采用不同的權(quán)值和偏置,所以能夠提取不同的特征。每個(gè)特征圖就只有一個(gè)卷積核與之對(duì)應(yīng)并與之進(jìn)行卷積運(yùn)算[4]。前一層特征圖通過(guò)一個(gè)可訓(xùn)練卷積核進(jìn)行卷積,其結(jié)果再通過(guò)一個(gè)激活函數(shù)形成下一層特征圖。其過(guò)程如下式:
其中,f(?)代表激活函數(shù),l代表層數(shù),*表示卷積操作,k是卷積核,Mj代表輸入特征圖的一個(gè)選擇,b是一個(gè)偏置。
下采樣層是對(duì)卷積層進(jìn)行特征選擇,執(zhí)行的是局部平均操作,是緊跟在每個(gè)卷積層之后的。它能夠降低每個(gè)特征圖的空間分辨率,從而為后層網(wǎng)絡(luò)減少輸入?yún)?shù)的數(shù)量來(lái)降低計(jì)算復(fù)雜度,通過(guò)降低分辨率能夠取得一定程度的位移、縮放、旋轉(zhuǎn)和其他形式的扭曲不變性。下采樣層中的每個(gè)特征圖都分別和卷積層中的特征圖一一對(duì)應(yīng),下采樣層通過(guò)感受對(duì)卷積層進(jìn)行抽樣。下采樣區(qū)域是按照采樣區(qū)域的步長(zhǎng)跳躍式掃描的,且輸入層的大小必須能夠整除采樣區(qū)域的大小[5]。下采樣層的抽樣形式如下式:
其中,down(?)表示一個(gè)下采樣函數(shù),一般為矩形區(qū)域的平均值或者最大值。
圖2 CNN的卷積和采樣過(guò)程
基于上述卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別方面的優(yōu)點(diǎn),本文提出一種方法,其將無(wú)人機(jī)前方的攝像頭采集的圖像作為輸入,通過(guò)卷積神經(jīng)網(wǎng)絡(luò)對(duì)此輸入進(jìn)行識(shí)別,并給出避障策略。
考慮到復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)不僅會(huì)增加訓(xùn)練難度,并且對(duì)機(jī)載硬件設(shè)備的要求極高,這會(huì)直接影響到系統(tǒng)的實(shí)時(shí)性,因此本文的卷積神經(jīng)網(wǎng)絡(luò)是在LeNet-5的基礎(chǔ)上修改而來(lái),改進(jìn)后的LeNet-5結(jié)構(gòu)如圖3所示。其中包括一個(gè)輸入層、兩個(gè)卷積層、兩個(gè)下采樣層、一個(gè)全連接層、一個(gè)輸出層。輸入數(shù)據(jù)為160×120分辨率的灰度圖像,第一個(gè)卷積層(C1)包含6個(gè)特征圖,采用的卷積窗口的大小為5×5,輸出的特征圖的大小為156×116。第二個(gè)下采樣層(S2)是用來(lái)對(duì)(C1)層進(jìn)行下采樣,同樣得到6個(gè)特征圖,特征圖的大小為78×58。第三個(gè)卷積層(C3)包括12個(gè)特征圖,卷積核的大小為5×5,特征圖的大小為74×54;第四個(gè)下采樣層(S4)包括12個(gè),特征圖的大小為37×27;第五層共有11988個(gè)單元,分別與第四層的對(duì)應(yīng)單元相連;輸出層是一個(gè)全連接層,共有三個(gè)單元。其中第一層到第五層使用的激活函數(shù)為雙曲正切函數(shù)。
圖3 改進(jìn)的LeNet-5模型
另外,本文在卷積神經(jīng)網(wǎng)絡(luò)最后的輸出層采用的分類(lèi)器是Softmax回歸模型,在Softmax回歸模型中,對(duì)于給定的測(cè)試輸入x,假設(shè)函數(shù)p(y=j|x)是x屬于類(lèi)別j的概率值。
為了對(duì)上述卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,需要采集無(wú)人機(jī)飛行路徑周?chē)膱D像,并對(duì)圖像進(jìn)行預(yù)處理和標(biāo)定。設(shè)d→為無(wú)人機(jī)應(yīng)該行進(jìn)的正確方向,向此方向飛行可以使無(wú)人機(jī)保持在正確的路徑上,v→為無(wú)人機(jī)當(dāng)前的飛行方向,也就是攝像機(jī)的指向,并認(rèn)為v→平行于水平面。設(shè)α為向量d→和向量v→之間的夾角,如圖4所示。
圖4 圖像標(biāo)記示意圖
當(dāng)15°<α<90°,也就是相機(jī)的視軸方向位于圖中右側(cè)陰影部分時(shí),無(wú)人機(jī)應(yīng)該左轉(zhuǎn)才能保持在正確的路徑上,這時(shí)相機(jī)采集的圖像標(biāo)記為T(mén)L,如圖5所示。
圖5 標(biāo)記為T(mén)L的圖像
當(dāng)-15°≤α≤15°,也就是相機(jī)的視軸方向位于圖中兩個(gè)陰影中間時(shí),無(wú)人機(jī)可以前進(jìn),這時(shí)相機(jī)采集的圖像標(biāo)記為GS,如圖6所示。
圖6 標(biāo)記為GS的圖像
當(dāng)-90°<α<-15°,也就是相機(jī)的視軸方向位于圖中左側(cè)陰影部分時(shí),無(wú)人機(jī)應(yīng)該右轉(zhuǎn)才能保持在正確的路徑上,這時(shí)相機(jī)采集的圖像標(biāo)記為T(mén)R,如圖7所示。
圖7 標(biāo)記為T(mén)R的圖像
為了獲得訓(xùn)練數(shù)據(jù)集,需要由操作人員通過(guò)遙控器控制無(wú)人機(jī)在樓道走廊里飛行,飛行的過(guò)程中,每向前飛行0.2米取一次圖像,共取得500張標(biāo)記為T(mén)L的圖像、500張標(biāo)記為GS的圖像、500張標(biāo)記為T(mén)R的圖像。另外為了擴(kuò)大訓(xùn)練數(shù)據(jù)集,通過(guò)對(duì)上述圖像進(jìn)行鏡像翻轉(zhuǎn)的方式,使訓(xùn)練集擴(kuò)大到3000幅圖像。鏡像翻轉(zhuǎn)后,原來(lái)標(biāo)記為GS的圖像,現(xiàn)在還標(biāo)記為GS,原來(lái)標(biāo)記為T(mén)L、TR的圖像現(xiàn)在標(biāo)記為T(mén)R、TL。
CNN在本質(zhì)上是一種輸入到輸出的映射,它能夠?qū)W習(xí)大量的輸入與輸出之間的映射關(guān)系,而不需要任何輸入和輸出之間的精確的數(shù)學(xué)表達(dá)式,只要用已知的模式對(duì)卷積網(wǎng)絡(luò)加以訓(xùn)練,網(wǎng)絡(luò)就具有輸入輸出對(duì)之間的映射能力。卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練流程如圖8所示。
圖8 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程
由于卷積神經(jīng)網(wǎng)絡(luò)比較復(fù)雜,訓(xùn)練過(guò)程需要很大的計(jì)算量,所以建立的用于圖像識(shí)別的卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練是在工作站上進(jìn)行的,訓(xùn)練完成之后再移植到機(jī)載設(shè)備上。訓(xùn)練過(guò)程中的誤差曲線如圖9所示。
圖9 訓(xùn)練時(shí)的誤差曲線
神經(jīng)網(wǎng)絡(luò)最后的輸出層的三個(gè)神經(jīng)元所使用的激活函數(shù)為Softmax,其輸出值可以認(rèn)為就是當(dāng)前輸入圖像屬于每一類(lèi)(TL、TR、GS)的概率,因此需要將輸出值轉(zhuǎn)換為控制無(wú)人機(jī)飛行的控制信號(hào),其中無(wú)人機(jī)的航向角與p(TL)-p(TR)成比例關(guān)系[6],其值為正時(shí)無(wú)人機(jī)向左轉(zhuǎn)向,其值為負(fù)時(shí)無(wú)人機(jī)向右轉(zhuǎn)向,無(wú)人機(jī)向前飛行的距離D和P(GS)成比例關(guān)系,D/P(GS)=0.2,也就是當(dāng)P(GS)為1時(shí)無(wú)人機(jī)向前飛行0.2米。
圖10 三種不同圖像的識(shí)別結(jié)果
為了解決無(wú)人機(jī)自主循跡飛行的問(wèn)題,提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的無(wú)人機(jī)循跡飛行方法,從一個(gè)全新的角度實(shí)現(xiàn)了無(wú)人機(jī)的循跡飛行。首先通過(guò)機(jī)載相機(jī)采集無(wú)人機(jī)前方的圖像,然后將采集到的圖像送入到改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行分類(lèi),并給出飛行指令,進(jìn)而使無(wú)人機(jī)實(shí)現(xiàn)循跡的功能。經(jīng)過(guò)現(xiàn)場(chǎng)試驗(yàn)證明此方法具有良好的性能。
[1]邴麗媛,劉智,蔣余成.基于模糊神經(jīng)網(wǎng)絡(luò)的電力巡線無(wú)人機(jī)避障技術(shù)研究[J].長(zhǎng)春理工大學(xué)學(xué)報(bào):自然科學(xué)版,2017,40(3):98-102.
[2]鄧星宇.基于單目視覺(jué)的輪式小車(chē)避障方法研究[D].揚(yáng)州:揚(yáng)州大學(xué),2014.
[3]Krizhevsky A,Sutskever I,Hinton G E.ImageNet classification with deep convolutional neural networks[C].International Conference on Neural Information Processing Systems.Curran Associates Inc.2012:1097-1105.
[4]丁新立.基于卷積神經(jīng)網(wǎng)絡(luò)的車(chē)輛前方障礙物識(shí)別[D].大連:大連理工大學(xué),2015.
[5]吳正文.卷積神經(jīng)網(wǎng)絡(luò)在圖像分類(lèi)中的應(yīng)用研究[D].成都:電子科技大學(xué),2015.
[6]Giusti A,Guzzi J,Dan C C,et al.A machine learning approach to visual perception of forest trails for mobile robots[J].IEEE Robotics&Automation Letters,2017,1(2):661-667.
長(zhǎng)春理工大學(xué)學(xué)報(bào)(自然科學(xué)版)2018年1期