徐文堂,樊寬剛
(1.江西理工大學(xué) 機電工程學(xué)院,贛州 341000;2.江西理工大學(xué) 電氣工程和自動化學(xué)院,贛州 341000;3.江西理工大學(xué) 永磁磁浮技術(shù)與軌道交通研究院,贛州 341000)
隨著一些無人機關(guān)鍵技術(shù)的突破,無人機得到廣泛的應(yīng)用。無人機的使用給人們生活帶來便利的同時,也帶來新的安全問題,如無人機窺視隱私、無人機運送貨物掉落、無人機邊境走私毒品等問題,因此實時、有效地識別多旋翼無人機是非常重要的。
最近幾年,深度學(xué)習(xí)的發(fā)展,深度卷積神經(jīng)網(wǎng)絡(luò)[1]被廣泛應(yīng)用到圖像識別和物體檢測中。在物體檢測方面許多基于卷積神經(jīng)網(wǎng)絡(luò)的算法被提出,它們都表現(xiàn)出較好的檢測能力。Faster R-CNN[2]通過卷積神經(jīng)網(wǎng)絡(luò)提取特征,并使用最后一層卷積特征進(jìn)行物體檢測,它表現(xiàn)出良好檢測能力和識別精度。但是在檢測物體時,僅僅使用深層卷積特征,并沒有較好利用淺層特征信息。在卷積神經(jīng)網(wǎng)絡(luò)中,淺層特征具有低級語義信息對小目標(biāo)檢測效果好,而深層特征具有高級語義信息對大目標(biāo)物體檢測效果較好。SSD[3]在不同比例的特征圖上進(jìn)行物體檢測,它在卷積神經(jīng)網(wǎng)絡(luò)的頂部添加幾個額外的新的卷積層,并使用新的卷積層檢測物體。SSD網(wǎng)絡(luò)較好地利用深層特征,以及重復(fù)使用來自不同層的多比例特征。FPN[4]和DSSD[5]利用橫向連接的方式有效地結(jié)合深層特征圖和淺層特征圖,雖然提升了物體檢測的精度,同時也造成計算成本的增加。
針對視頻中多旋翼無人機難以實時檢測,以及小目標(biāo)無人機檢測不準(zhǔn)確的問題,本文提出一種多層級特征識別無人機的方法,它能有效的融合深層和淺層的特征信息,提升檢測精度。該方法主要通過前向跨階段連接和反向特征構(gòu)建兩部分產(chǎn)生具有豐富語義信息的特征圖。網(wǎng)絡(luò)中具有相同大小的特征圖稱為一個階段。前向跨階段連接將神經(jīng)網(wǎng)絡(luò)每一階段的輸出層輸入到其余階段的輸入層,該連接方式可以有效的保證網(wǎng)絡(luò)中的信息流。反向特征構(gòu)建部分是將上采樣得到特征圖與前向傳播得到的特征圖進(jìn)行相加進(jìn)而得到新的不同比例的特征圖,該融合方法可以產(chǎn)生具有豐富語義的特征圖,如圖1所示。
本文的創(chuàng)新點:
1)本文針對小目標(biāo)無人機檢測不準(zhǔn)確的問題,提出多層級特征融合的方法,使包含小目標(biāo)信息的淺層特征圖,能夠有效的傳播到深層特征圖中,同時采用多層特征檢測無人機,進(jìn)而提升無人機檢測精度。
2)針對實時監(jiān)測無人機的問題,本文使用光流法在相鄰幀之間傳播特征圖,以及在網(wǎng)絡(luò)階段連接中,設(shè)計了窄通道的網(wǎng)絡(luò)特征,既減少網(wǎng)絡(luò)的參數(shù)量,降低網(wǎng)絡(luò)運行成本,保證網(wǎng)絡(luò)運行速度,也防止信息冗余的出現(xiàn)。
圖1 多層級特征識別無人機
目前,無人機檢測主要采用深度神經(jīng)網(wǎng)絡(luò)的方法提取特征進(jìn)行檢測。在網(wǎng)絡(luò)中主要有四種方式進(jìn)行物體檢測:方法一是使用神經(jīng)網(wǎng)絡(luò)最后一層的特征圖進(jìn)行檢測物體,方法二是把多層特征疊加在一起形成新的特征圖,在新的特征圖上進(jìn)行物體檢測,方法三是使用多層特征進(jìn)行檢測,方法四是組合方法二和方法三。
對于第一種方法,如RCNN[6]、SPPnet[7]、Faster R-CNN[2]、Fast R-CNN[8]、RFCN[9]和YOLO[10]等僅僅使用卷積神經(jīng)網(wǎng)絡(luò)的最后一層特征檢測物體。神經(jīng)網(wǎng)絡(luò)中的每一層特征關(guān)注點都是不同的,這類方法忽視了淺層特征的信息。
對于第二種方法,如ION[11]融合多層特征進(jìn)行物體檢測,HyperNet[12]通過融合淺層、中層、深層的特征來獲取包含豐富語義信息的特征圖。這類方法通過組合淺層和深層的特征來獲取高質(zhì)量的特征圖,增加網(wǎng)絡(luò)計算成本。
對于第三種方法,如MS-CNN[13]和SSD[14]在卷積神經(jīng)網(wǎng)絡(luò)頂部增加幾個額外卷積層,并在新的卷積層上進(jìn)行物體檢測。這類方法沒有較好的使用淺層的信息,導(dǎo)致不能較好的檢測小目標(biāo)物體。
對于第四種方法,使用多層特征來預(yù)測物體,并且每一層特征包含不同深度的信息。如FPN[15]使用橫向鏈接的方式來產(chǎn)生具有豐富語義的特征圖,DSSD[5]通過反卷積的方法產(chǎn)生新的特征圖,然后將新的特征圖與淺層特征融合產(chǎn)生最終的特征圖,最后在產(chǎn)生的特征圖上檢測物體。這類方法提升了特征圖語義信息的同時,也帶來計算成本的增加。
本文提出的方法提高了檢測精度和網(wǎng)絡(luò)運行的速度,該方法主要包含兩個部分:前向跨階段連接和反向特征構(gòu)建。前向跨階段連接將神經(jīng)網(wǎng)絡(luò)每一階段的輸出層輸入到其余階段的輸入層,反向特征構(gòu)建部分是把上采樣得到特征圖與前向傳播得到的特征圖進(jìn)行相加進(jìn)而得到新的不同比例的特征圖。在前向跨階段連接和反向特征構(gòu)建兩部分,本文進(jìn)行了權(quán)衡特征通道數(shù)量的實驗,選取最優(yōu)通道數(shù)量,保證網(wǎng)絡(luò)檢測精度和運行速度。
本文定義G(.)和Z(.)是在神經(jīng)網(wǎng)絡(luò)中的非線性變換操作。它包含激活、卷積和上采樣等操作。
1)卷積網(wǎng)絡(luò)
本文在ResNets[16]網(wǎng)絡(luò)上構(gòu)建多層級特征,同時認(rèn)為網(wǎng)絡(luò)中具有相同大小的特征圖為一個階段。在網(wǎng)絡(luò)每個階段中,采用跳躍式連接的方法,使梯度流可以直接從輸入層到輸出層,同時使信息流也被限制在每個階段中;反向構(gòu)建多層級特征時,將深層特征與淺層特征融合,產(chǎn)生具有豐富語義信息的特征圖。
2)跨階段連接
為了使網(wǎng)絡(luò)中的信息流跨階段傳輸,本文提出一種新的特征連接方式:前向跨階段連接。它可以把某個階段的輸出層直接輸入到后續(xù)階段的輸入層。如圖1所示,l階段的第一層接受以前所有階段輸出層。
l代表卷積神經(jīng)網(wǎng)絡(luò)中第l個階段,xl代表第l階段的輸出特征,xl0代表第l階段的輸入特征,H(x)是代表進(jìn)行卷積(如式(2)所示),H(H(xl0)+F(x))代表網(wǎng)絡(luò)中某一階段的卷積操作,F(xiàn)(x)表示對l階段之前所有階段輸出先進(jìn)行相加操作進(jìn)而做卷積操作。前向跨階段連接使網(wǎng)絡(luò)中淺層的信息直接傳遞到網(wǎng)絡(luò)深層,使本文提出的網(wǎng)絡(luò)更容易聚合以及防止網(wǎng)絡(luò)過擬合,如圖1上半部分所示。
w是權(quán)重矩陣,x為特征參數(shù),b是偏置參數(shù)。
3)反向特征構(gòu)建
為了使網(wǎng)絡(luò)更好地檢測小目標(biāo)物體,本文提出反向特征構(gòu)建的方法,它能更好地從淺層特征中獲取信息。一個反向特征構(gòu)建塊如圖2所示,首先對反向融合圖(n+1層)做反卷積操作,得到一個與前一層(n層)相同大小的特征圖,然后把新的特征圖與第n層特征圖相加得到反向融合圖。其中每個反向特征構(gòu)建塊以相同方式產(chǎn)生,如圖1所示。
F(n+1)代表第n+1層的反向融合圖,fn代表前向傳播中第n層的特征圖,Z(.)代表反卷積[24]操作。
圖2 反向特征構(gòu)建塊
4)組合函數(shù)
神經(jīng)網(wǎng)絡(luò)中每個階段的特征圖大小是不同的,為保證不同階段的特征圖有效連接,在跨階段連接中本文定義了復(fù)合函數(shù)G(.),如圖3所示,它包含1×1卷積層、激活層(ReLU)(式(4))和2×2pooling層(Avg)。在反向特征構(gòu)建中,為有效結(jié)合淺層特征和深層特征的信息,本文定義的反卷積操作Z(.),它包含3×3卷積層和激活層(ReLU)。
圖3 不同階段特征圖相加示意圖
wTx+b是神經(jīng)元的線性變換。
本文提出的方法有效的提升了在視頻中無人機檢測的精度,網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示,主要包含基礎(chǔ)網(wǎng)絡(luò)、光流網(wǎng)絡(luò)和檢測網(wǎng)絡(luò)三部分。
圖4 網(wǎng)絡(luò)結(jié)構(gòu)
1)基礎(chǔ)網(wǎng)絡(luò)
文章采用多層級特征網(wǎng)絡(luò)提取無人機特征。這個網(wǎng)絡(luò)預(yù)訓(xùn)練在ImageNet數(shù)據(jù)集上,在收集的無人機數(shù)據(jù)集上進(jìn)行微調(diào)。
2)光流網(wǎng)絡(luò)
在視頻中相鄰幀的圖像內(nèi)容是非常相似的,這導(dǎo)致相鄰幀的特征也很相似,因此文章中使用光流的方法在相鄰幀之間傳播特征,圖5展示了其傳播過程。本文的網(wǎng)絡(luò)采用FlowNet[17]結(jié)構(gòu)進(jìn)行多層級特征傳遞,它預(yù)訓(xùn)練在Flying chairs[17]數(shù)據(jù)集上。本文給定卷積輸出結(jié)果為y=C(I),所有的視頻幀Ii,i=0,…,∞。
本文的光流網(wǎng)絡(luò)分解成兩個連續(xù)的子網(wǎng)絡(luò)。第一個子網(wǎng)絡(luò)Cfeat,被稱為特征網(wǎng)絡(luò),是完全卷積神經(jīng)網(wǎng)絡(luò),并輸出多個特征圖,f=Cfeat(I)。第二個子網(wǎng)絡(luò)Cfeat,被稱為任務(wù)網(wǎng)絡(luò),是在特征圖上執(zhí)行檢測任務(wù),y=Ctask(f)。具體來說,特征網(wǎng)絡(luò)Cfeat只在關(guān)鍵幀運行,非關(guān)鍵貞Ii的特征圖則由上一個關(guān)鍵貞Ik的特征圖傳播得到。
令Hi→k,為二維流場,由流估計算法F獲得,則Hi→k=F(Ik,Ii),特征圖被雙線性插值算法調(diào)整到相同空間分辨率上進(jìn)行傳播。它將當(dāng)前幀i中的位置p投影到關(guān)鍵幀k中的位置p+δp,δp=Hi→k(p)。
則通過雙線性插值來實現(xiàn)特征形變:
其中c為特征圖f中的通道,q是枚舉了特征圖中所有的空間位置,G(.)表示雙線性插值的內(nèi)核。
由于流估計錯誤等造成空間形變計算不準(zhǔn)確,為更好的近似特征,我們添加一個比例函數(shù)Z,Zi→k=Z(Ik,Ii)。
最后,特征傳播函數(shù)定義為:
其中W是對每層特征圖所有通道使用式(5)。
圖5 光流網(wǎng)絡(luò)示意圖
3)檢測網(wǎng)絡(luò)
本文使用R-FCN[18]網(wǎng)絡(luò)檢測無人機,同時把基礎(chǔ)網(wǎng)絡(luò)提取的特征劃分為兩部分,一部分用來做區(qū)域提取,另一部分做物體檢測。
本文使用PRN[9]網(wǎng)絡(luò)做區(qū)域提議,它包含了n=9種不同比例不同大小的錨。在基礎(chǔ)網(wǎng)絡(luò)提取的特征圖上,通過滑動1×1卷積來獲取無人機識別得分和邊界回歸值,它們的維度分別是2n和4n。每張圖片的閾值為0.7,使用非極大值抑制的方法產(chǎn)生300個區(qū)域提議的框。
在檢測過程中,本文在特征圖上執(zhí)行1×1卷積獲得位置敏感得分圖和邊界回歸圖,它們的維度分別是2k2和4k2。由Fast R-CNN[19]可知,使用ROI Pooling層產(chǎn)生類別得分和回歸結(jié)果。檢測過程中的閾值設(shè)置為0.3,使用非極大值抑制的方法獲得最終結(jié)果。
4)損失函數(shù)
論文采用聯(lián)合損失函數(shù),它包含兩個子網(wǎng)絡(luò),第一個是離散概率分布值p=(p0,p1),p0是無人機背景的概率,p1是無人機前景的概率,如式(7)所示。
第二部分邊界框回歸補償t=(tx,ty,tw,th),t是相對于物體區(qū)域提議的空間變化的值。同時本論文對每一個感興趣區(qū)域(ROI)的分類和邊界回歸進(jìn)行聯(lián)合訓(xùn)練:
u是每個ROI真實標(biāo)簽,v是邊界回歸的目標(biāo),Lcls(p,u)=-log pu是對真實標(biāo)簽u的log損失。對于損失函數(shù)的第二部分Lloc中,v=(vx,vy,vw,vh)是真實的邊界框回歸值,是對無人機坐標(biāo)的預(yù)測值。對于邊界回歸使用的損失函數(shù):
其中函數(shù)smooth L1為:
對于邊界框回歸,將坐標(biāo)參數(shù)化為4個值:
其中x,y,w,h分別是物體的中心坐標(biāo)以及它的寬和高,x,x_a,x^*分別是預(yù)測值,錨值和真實值(y,w,h類似)。
在公式8中的超參數(shù)?控制兩個損失函數(shù)的平衡,論文中將目標(biāo)回歸值v_i進(jìn)行歸一化處理,使其均值和單位方差為零,論文中所有實驗?=0.9。
論文所有實驗在 NVIDIA TITAN V GPU上測試。
論文使用python爬蟲在互聯(lián)網(wǎng)上爬取多旋翼無人機照片,然后進(jìn)行數(shù)據(jù)清洗、標(biāo)注等工作。訓(xùn)練集有6272張圖片,測試集有5060張圖片。
本文網(wǎng)絡(luò)使用SGD的方法在ImageNet數(shù)據(jù)集上首先進(jìn)行預(yù)訓(xùn)練,預(yù)訓(xùn)練時在8個GPU上總共迭代60K次,學(xué)習(xí)率設(shè)置為10-3。預(yù)訓(xùn)練完成后,在搜集的無人機數(shù)據(jù)集上訓(xùn)練15次進(jìn)行網(wǎng)絡(luò)微調(diào)。實驗中使用平均精度作為實驗的檢測結(jié)果。
3.2.1 消融實驗
在消融實驗中,論文采用沒有前向特征鏈接和反向特征構(gòu)建的Resnet網(wǎng)絡(luò)作為原始網(wǎng)絡(luò)(表1(a)、(e)、(i))分別為Resnet-50、Resnet-101、Resnet-152,并對多旋翼無人機進(jìn)行檢測。表1(b)是移除多層級特征前向特征鏈接部分,它使用網(wǎng)絡(luò)多層特征進(jìn)行無人機識別。根據(jù)表1和圖6可知,對多旋翼無人機檢的檢測精度表1(b)是低于多層級網(wǎng)絡(luò)檢測(表1(d)),造成這個原因可能是淺層特征的信息沒有較好的傳播到深層特征中。表1(c)展示了網(wǎng)絡(luò)沒有進(jìn)行反向特征構(gòu)建的實驗結(jié)果,該網(wǎng)絡(luò)僅僅使用最后一層特征進(jìn)行無人機檢測,它對多旋翼無人機檢測的精度也低于多層級特征檢測(表1(b)),造成這種現(xiàn)象的原因可能是在檢測時沒有使用淺層特征。同樣道理,基于Resnet-101網(wǎng)絡(luò)和Resnet-152網(wǎng)絡(luò)的多層級特征識別網(wǎng)絡(luò),在消融實驗中也展現(xiàn)出較好的識別準(zhǔn)確率。
表1 消融實驗
圖6 不同網(wǎng)絡(luò)中無人機識別精度及速度比較
3.2.2 實驗比較
論文對多層級特征網(wǎng)絡(luò)與原始網(wǎng)絡(luò)進(jìn)行了對比,表1總結(jié)了它們的檢測精度和運行速度。在實驗中,本文使用R-FCN網(wǎng)絡(luò)對多旋翼無人機進(jìn)行檢測。根據(jù)表1,可知多層級特征網(wǎng)絡(luò)
檢測的精度高于其原始網(wǎng)絡(luò)。當(dāng)使用Resnet-50作為原始網(wǎng)絡(luò)時,多層級特征網(wǎng)絡(luò)的識別精度和速度分別為85.3%和21.21fps,同樣條件下,原始網(wǎng)路的識別精度和速度分別為76.1%和22.35fps。當(dāng)使用Resnet-101網(wǎng)絡(luò)時,多層級檢測網(wǎng)絡(luò)的精度為93.2%,遠(yuǎn)遠(yuǎn)高于原始網(wǎng)絡(luò),速度卻只慢一點點。同樣條件下,使用Resnet-152網(wǎng)絡(luò)時,多層級特征網(wǎng)絡(luò)識別的精度達(dá)到了97.1%,遠(yuǎn)遠(yuǎn)高于原始網(wǎng)絡(luò)識別精度。實驗結(jié)果表明,本文提出的多層級特征識別無人機的方法,具有較好的識別準(zhǔn)確率與運行速度。
本文將多層級特征識別方法與現(xiàn)有的物體檢測方法做了比較(如表2所示),根據(jù)表2可知,在相同條件下,本文提出的方法在識別無人機時,不論是精度或是速度都遠(yuǎn)遠(yuǎn)超過各類物體檢測的方法,具有明顯優(yōu)勢。
表2 多旋翼無人機運行結(jié)果
3.2.3 通道數(shù)量的權(quán)衡實驗
本論文對多層級特征識別網(wǎng)絡(luò)的前向特征連接階段進(jìn)行了通道數(shù)量的權(quán)衡實驗,結(jié)果總結(jié)在表3中。根據(jù)表3和圖7可知,論文中采取不同數(shù)量的通道數(shù)其結(jié)果是不同的,當(dāng)把特征壓縮為一個通道數(shù)、兩個通道數(shù)、四個通道數(shù)時,它們的識別精度是非常相似的,但是隨著通道數(shù)量的增加,其精度和速度逐漸降低,造成這種現(xiàn)象的原因可能是隨著通道數(shù)的增加,導(dǎo)致了網(wǎng)絡(luò)產(chǎn)生信息冗余和參數(shù)的增長,從而導(dǎo)致其精度降低和速度變慢。
通過權(quán)衡實驗,在保證精度的前提下不犧牲速度,本論文將特征壓縮為一個特征通道。
表3 在不同通道數(shù)上精度和速度的比較
圖7 通道數(shù)量實驗比較
3.2.4 結(jié)果分析
本論文提出的多層級特征識別無人機的方法,可以對文件中無人機視頻和攝像頭拍攝的無人機視頻流進(jìn)行實時監(jiān)測。根據(jù)圖8展示的無人機識別效果圖,我們可知該方法能夠準(zhǔn)確、有效地的識別多旋翼無人機。
在實驗中,我們通過前向跨階段連接、反向特征構(gòu)建、相鄰幀之間光流傳播以及壓縮特征通道的方式,使特征圖包含了豐富的語義信息,提升無人機檢測精度和速度。根據(jù)實驗比較結(jié)果可知,該方法對無人機檢測獲得了一個較好的精度,對多旋翼無人機的識別準(zhǔn)確率達(dá)到了97.1%。本論文在設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)時,壓縮了網(wǎng)絡(luò)的特征通道的數(shù)量,減少了網(wǎng)絡(luò)參數(shù)量,避免了以犧牲速度來換取檢測精度的代價,因此多層級特征識別無人機的方法在所有網(wǎng)絡(luò)中識別多旋翼無人機的精度遠(yuǎn)遠(yuǎn)高于其原始網(wǎng)絡(luò),而檢測的速度卻相差不多。
實驗證明,本文提出的基于神經(jīng)網(wǎng)絡(luò)多層級識別無人機的方法具有較好的性能。它是一個靈活的、端到端的框架,能夠在網(wǎng)絡(luò)的不同階段傳播信息流,產(chǎn)生具有豐富語義的特征圖,相比較于其他方法,該方法具有較好的檢測性能。
圖8 無人機識別效果
針對視頻中目標(biāo)較小的無人機識別能力差、檢測不準(zhǔn)確、無法實時檢測等問題,本文提出一種基于神經(jīng)網(wǎng)絡(luò)多層級特征識別無人機的方法。該方法有效利用淺層特征信息和深層特征信息,以及在不同比例的特征圖上檢測無人機,提升了無人機的檢測精度,同時在相鄰幀特征之間使用光流法,有效的降低計算成本,提升網(wǎng)絡(luò)運行速度。并且在多旋翼無人機數(shù)據(jù)集上識別準(zhǔn)確率達(dá)到了97.1%。