張錫聯(lián),段海濱
隨著無人機(jī)技術(shù)的發(fā)展,其應(yīng)用門檻也逐漸變低,這無疑提升了濫用無人機(jī)的可能性,同時對社會安全的帶來了極大威脅[1-2].因此需要對無人機(jī)目標(biāo)進(jìn)行檢測,以促進(jìn)后續(xù)飛行器防護(hù)壓制技術(shù)的發(fā)展.
近年來,基于深度學(xué)習(xí)的目標(biāo)檢測技術(shù)飛速發(fā)展,可分為兩階段目標(biāo)檢測方法和單階段目標(biāo)檢測方法.兩階段目標(biāo)檢測的方法主要有區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(R-CNN)、空間金字塔池化網(wǎng)絡(luò)(SPP-Net)、基于快速區(qū)域的卷積網(wǎng)絡(luò)(Fast R-CNN)、更快速區(qū)域的卷積網(wǎng)絡(luò)(Faster-RCNN)、特征金字塔網(wǎng)絡(luò)(FPN)、基于區(qū)域的完全卷積網(wǎng)絡(luò)(R-FCN)等方法.文獻(xiàn)[3]中介紹了R-CNN方法,先是利用選擇性搜索的方法產(chǎn)生感興趣的區(qū)域并規(guī)整化圖像區(qū)域,然后將相同尺度的圖片放到深度卷積網(wǎng)絡(luò)里面進(jìn)行提取特征,并利用支持向量機(jī)將該特征分類,同時將特征傳進(jìn)回歸器得到邊界框的位置.為了解決R-CNN中對每一個目標(biāo)候選都要單獨提取特征的問題,又進(jìn)一步提出了SPP-Net方法[4].在SPP-Net基礎(chǔ)上,文獻(xiàn)[5]中提出了Fast R-CNN方法,它主要是將支持向量機(jī)加回歸器的過程變成多任務(wù)分類損失在整個網(wǎng)絡(luò)里進(jìn)行優(yōu)化的過程.為了進(jìn)一步克服Fast R-CNN中因產(chǎn)生候選區(qū)域而導(dǎo)致速度變慢的問題,文獻(xiàn)[6]中提出Faster R-CNN方法.它主要使用區(qū)域網(wǎng)絡(luò)產(chǎn)生候選區(qū)域從而使得檢測速度進(jìn)一步提高.為了進(jìn)一步達(dá)到實時檢測的效果,文獻(xiàn)[7]提出了FPN的方法.首先從下往上提取特征,然后把特征從上往下進(jìn)行融合,在融合過程中將分辨率擴(kuò)大,進(jìn)一步加上前面對應(yīng)層的特征從而輸出新的特征.為了解決圖片分類的平移不變性與物體檢測的平移變換性之間的矛盾,文獻(xiàn)[8]中進(jìn)一步提出R-FCN方法,其中主要考慮了位置敏感的區(qū)域信息,使得目標(biāo)檢測的效果更佳.
針對單階段目標(biāo)檢測,文獻(xiàn)[9]提出了單階段一次檢測(YOLO)的方法,文獻(xiàn)[10]和文獻(xiàn)[11]分別提出了單階段多框預(yù)測 (SDD)和單階段目標(biāo)檢測網(wǎng)絡(luò)(RetinaNet)的方法.YOLO方法主要是將輸入的圖片直接生成目標(biāo)的位置,它將輸入的圖片用神經(jīng)網(wǎng)絡(luò)劃分成若干的格子,對每個格子去預(yù)測邊界框,同時給出邊界框和物體的重疊率、條件概率,最后結(jié)合預(yù)測框和種類獲得輸出.SSD[10]是在YOLO基礎(chǔ)上增加了默認(rèn)框和多尺度特征,它可以對不同尺度特征圖中的目標(biāo)進(jìn)行預(yù)測,提高檢測精度.RetinaNet[11]采取降低背景樣本在訓(xùn)練中的權(quán)重的思路形成更加實用的檢測方法.
常見的兩階段目標(biāo)檢測和單階段目標(biāo)檢測方法都有不足之處.前者首先要生成目標(biāo)候選區(qū)域,因此存在著無法達(dá)到實時性的缺點.后者雖然速度較快,但是由于傳統(tǒng)卷積網(wǎng)絡(luò)在所學(xué)特征對方向和尺度變化魯棒性上表現(xiàn)一般,因此對于小物體和重疊物體檢測效果不佳,導(dǎo)致精度下降.
為了在保證實時性的前提下,改進(jìn)傳統(tǒng)深層卷積網(wǎng)絡(luò)在所學(xué)特征對方向和尺度變化魯棒性較差的問題,文獻(xiàn)[12]中使用Gabor濾波器生成相應(yīng)的特征,并將該特征作為神經(jīng)網(wǎng)絡(luò)的輸入.文獻(xiàn)[13]提出了新的Gabor卷積層,并使用該網(wǎng)絡(luò)層提高深度網(wǎng)絡(luò)特征提取的能力.這些方法都能在一定程度上改進(jìn)整體網(wǎng)絡(luò)的缺陷,但是都沒有在提出新網(wǎng)絡(luò)結(jié)構(gòu)的前提下,對所有的卷積層逐層提高性能.
本文的方法與傳統(tǒng)Gabor濾波器改進(jìn)神經(jīng)網(wǎng)絡(luò)[18-20]的方法不同.首先,直接使用Gabor濾波器改進(jìn)深度神經(jīng)網(wǎng)絡(luò)的基本元素卷積核,進(jìn)一步使用改進(jìn)后的卷積核構(gòu)建卷積層(GACN),然后,用GACN卷積層搭建新的深層卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取.最后,根據(jù)提取的特征進(jìn)行信息預(yù)測和算法驗證.
本文的結(jié)構(gòu)如下:第1部介紹了Gabor濾波器的原理和基于Gabor濾波器的網(wǎng)絡(luò)結(jié)構(gòu),并進(jìn)行特征提?。坏?部分介紹了基于提取的物體特征進(jìn)行信息預(yù)測的原理;第3部分為實驗和算法驗證;第4部分是結(jié)論.
Gabor函數(shù)是一個用于邊緣提取的線性濾波器,在空間域中,一個二維Gabor濾波器[14-15]是一個由正弦平面波調(diào)制的高斯核函數(shù).Gabor分為實部和虛部,用實部進(jìn)行濾波后圖像會平滑,虛部函數(shù)濾波后用來檢測邊緣,二者相互正交.一組不同頻率不同方向的Gabor函數(shù)數(shù)組更有利于提取文獻(xiàn)[21]圖像的輪廓和細(xì)節(jié)特征.Gabor濾波器的定義[15]如下:
(1)
由于Gabor濾波器具有方向和頻率信息,因此可以將方向信息編碼到普通卷積核中以增強(qiáng)所學(xué)特征對方向上的魯棒性,同時將頻率信息整合到不同的網(wǎng)絡(luò)層里面以增強(qiáng)所學(xué)特征對尺度變化上的魯棒性.
那么當(dāng)把每一層中的卷積核在Gabor濾波器調(diào)節(jié)操作后就會產(chǎn)生新的卷積核.因此,新的濾波器GAF可以由式(2)和(3)定義:
(2)
其中,F(xiàn)i,o是普通卷積核,ζ(u,v)是具有不同方向和尺度的濾波器,°就是按元素乘運(yùn)算.
因此,新的濾波器GAF由下式得到:
(3)
由于前向傳播中涉及到的權(quán)重是新濾波器中的信息,但是保留的權(quán)重僅僅是普通卷積核的權(quán)重,因此在反向傳播中僅僅需要更新普通卷積核Fi,o.在反向傳播中遵循如下的更新公式:
(4)
其中,L是損失函數(shù).
該網(wǎng)絡(luò)受Darknet53網(wǎng)絡(luò)結(jié)構(gòu)[25]的啟發(fā),在其基礎(chǔ)上重新設(shè)計得到.它主要使用大小為4×3×3和4×1×1卷積核進(jìn)行搭建,此處的大小不考慮通道數(shù).基于Gabor濾波器的深度卷積神經(jīng)網(wǎng)絡(luò)(GDCN)結(jié)構(gòu)如圖1所示.
圖1 基于Gabor濾波器的深度卷積神經(jīng)網(wǎng)絡(luò)Fig.1 Deep convolutional neural network based on Gabor filter
圖1中將GACN記作基于Gabor濾波器的卷積層,該濾波器的方向為u=4.由于v和觀測尺度是反比關(guān)系,較小的v可以得到比較大的觀測尺度,用來提取輪廓特征;較大的v可以得到比較小的觀測尺度,用來提取細(xì)節(jié)特征.在設(shè)計的基于Gabor的卷積層中為了平衡觀測尺度,每個卷積層中的參數(shù)v均設(shè)置為3.對于輸入和輸出的維度而言,因為普通卷積核在Gabor濾波器的作用下變?yōu)?維,所以輸入特征圖的維度應(yīng)擴(kuò)充為4維才能進(jìn)行基于Gabor濾波器的卷積計算.
在基于隨機(jī)梯度下降的網(wǎng)絡(luò)訓(xùn)練過程中,隨著深度增加,訓(xùn)練誤差有時候沒有降低而升高[20],誤差信號的多層反向傳播容易引起梯度“彌散”或者“爆炸”,為了解決網(wǎng)絡(luò)深度帶來的訓(xùn)練困難的問題,引入殘差網(wǎng)絡(luò)[19],如下圖2所示.
圖2 殘差網(wǎng)絡(luò)模塊示意圖Fig.2 Residual network module diagram
殘差網(wǎng)絡(luò)的數(shù)學(xué)表達(dá)式如下:
(5)
由于輸入的圖像在神經(jīng)網(wǎng)絡(luò)特征提取后,已經(jīng)變成[D×D×G]的特征,其中G為每個格子的特征數(shù).首先,對每個格子去預(yù)測目標(biāo)的位置,并且給出這個位置邊界框和物體的重疊率.然后,針對每個格子預(yù)測每類物體的條件概率,即它是目標(biāo)的情況下到底是哪一類[23]目標(biāo).最后,將預(yù)測的位置邊界框和物體的種類結(jié)合得到目標(biāo)檢測結(jié)果.下面進(jìn)行具體說明.
每個網(wǎng)格會預(yù)測N個位置的邊界框,每個位置邊界框會預(yù)測出5個值,包括ux,uy,uw,uh,pc,其中ux代表物體的x坐標(biāo);uy代表物體的y坐標(biāo);uw代表物體邊界框的寬度;uh代表物體邊界框的長度.pc指的是置信度,它主要反應(yīng)了包含物體的情況下位置的準(zhǔn)確性.除此之外,每個網(wǎng)格還會預(yù)測V個條件概率pr.
對于預(yù)測[16]邊框而言,首先應(yīng)該確定先驗邊框的信息,在先驗邊框[16]的基礎(chǔ)上進(jìn)一步得到預(yù)測邊框的信息.先驗邊框要通過聚類[25]方法,對無人機(jī)飛行的訓(xùn)練集中的邊框做聚類分析來獲取.由先驗框的寬和高確定出最終邊界框的大小和位置,無人機(jī)真正的位置信息就是由先驗框的平移和縮放得到,如下圖3所示.
圖3 位置信息的處理圖Fig.3 Processing of location information
預(yù)測信息的數(shù)學(xué)表達(dá)式如下:
(6)
(7)
式中,Aw是先驗框的寬度,Ah是先驗框的高度,vx是當(dāng)前網(wǎng)格左上角到物體圖像左上角的橫坐標(biāo)距離,vy是當(dāng)前網(wǎng)格左上角到物體圖像左上角的縱坐標(biāo)距離,nw和nh是預(yù)測框的寬度和高度,其中,(ux,uy,uw,uh)是預(yù)測的參數(shù).激活函數(shù)采取式(7)中的Sigmoid函數(shù).
針對無人機(jī)的位置信息而言,由先驗框逐漸得到最后的預(yù)測框的過程如下圖4所示.
圖4 無人機(jī)預(yù)測框的獲取Fig.4 UAV prediction box acquisition
通過上圖的示意圖可以看出,每個格子對應(yīng)3個先驗框,無人機(jī)真正的預(yù)測框位置信息就是先驗框的平移和縮放.
下面對損失函數(shù)進(jìn)行介紹,損失函數(shù)主要由回歸檢測框位置的損失函數(shù)、置信度(即該網(wǎng)格是不是物體)的損失函數(shù)和物體類別的損失函數(shù)組成.
回歸檢測框位置的損失函數(shù)是在均方損失函數(shù)基礎(chǔ)上改進(jìn)的,表達(dá)式如下:
(8)
置信度的損失函數(shù)采用交叉熵?fù)p失,損失函數(shù)表達(dá)式如下:
(9)
物體類別的損失采用交叉熵?fù)p失函數(shù),損失函數(shù)表達(dá)式如下:
(10)
因此,整體的損失函數(shù)Loss為以上回歸檢測框位置、預(yù)測置信度(即該網(wǎng)格是不是物體)和預(yù)測物體類別的損失函數(shù)之和,表達(dá)式如下:
Loss=loss1+loss2+loss3
(11)
本次實驗數(shù)據(jù)集的來源是空中飛行的兩種無人機(jī)的飛行圖集,其中,類型一記作receiver,類型二記作tanker,記作UAV_RT.本實驗中無人機(jī)在空中以不同距離、不同姿態(tài)、不同高度的狀態(tài)下飛行.該數(shù)據(jù)集基本包括無人機(jī)飛行的各種軌跡姿態(tài)狀態(tài).
當(dāng)數(shù)據(jù)集建立好之后,在 Intel Core i7,顯卡為NVIDIA GTX-1080的設(shè)備上對該數(shù)據(jù)集進(jìn)行訓(xùn)練,然后在與訓(xùn)練集同分布的測試集上進(jìn)行預(yù)測,得到最終的預(yù)測結(jié)果.
本文給出從開始到最后的訓(xùn)練批次過程中不同指標(biāo)的變化曲線,主要包括誤差損失、召回率和準(zhǔn)確率的變化趨勢.訓(xùn)練過程共80輪,每輪包括698次迭代循環(huán),為了描述指標(biāo)趨勢,下圖僅畫出每一輪的首末兩次迭代的數(shù)值.
邊界框的坐標(biāo)位置,寬度、高度、置信度、類別和總體誤差損失在一定迭代次數(shù)后的變化趨勢如圖5中(a)、(b)和(c)所示,召回率和準(zhǔn)確率的變化如下圖中(d)和(e)所示.
如上圖5(c)中所示,總體誤差損失隨迭代次數(shù)呈下降趨勢,且從第7輪開始逐漸趨于穩(wěn)定.召回率刻畫了檢測到的真正目標(biāo)占所有真正目標(biāo)的比例,從上圖5(d)中看出從第7輪開始逐漸趨于1.準(zhǔn)確率表示檢測出來的物體中有多少是正確的,由圖5(e)得到,所示整體呈遞增趨勢并能夠在一定范圍內(nèi)趨于穩(wěn)定.
本文主要對UAV_RT數(shù)據(jù)集上訓(xùn)練出的模型進(jìn)行評價.算法驗證的主要目的是識別空中飛行的無人機(jī).假設(shè)空中飛行的無人機(jī)有且僅有兩種類型,類型一記作receiver,類型二記作tanker.以下算法驗證是采集空中無人機(jī)圖像,在地面進(jìn)行離線網(wǎng)絡(luò)訓(xùn)練并得到目標(biāo)檢測[22]的結(jié)果.
驗證主要分為四種情況:情況一是當(dāng)兩種無人機(jī)作為較大目標(biāo)時進(jìn)行目標(biāo)檢測;情況二是當(dāng)兩種無人機(jī)作為較小目標(biāo)時進(jìn)行目標(biāo)檢測;情況三是無人機(jī)存在在干擾背景的情況下進(jìn)行目標(biāo)檢測[17];情況四是當(dāng)無人機(jī)進(jìn)行姿態(tài)變換后進(jìn)行目標(biāo)檢測[24].
情況一:兩種無人機(jī)作為較大目標(biāo)時進(jìn)行目標(biāo)檢測
當(dāng)空中飛行的無人機(jī)作為較大目標(biāo)時,分別在以下兩種場景中進(jìn)行檢測.
由圖6中的(a)和(b)可知,當(dāng)無人機(jī)距離相機(jī)較近,它作為較大目標(biāo)出現(xiàn)的時候,算法能夠較為準(zhǔn)確地檢測出空中的receiver目標(biāo)和tanker目標(biāo).
情況二:當(dāng)兩種無人機(jī)作為較小目標(biāo)時進(jìn)行目標(biāo)檢測
當(dāng)空中飛行的無人機(jī)作為較小目標(biāo)時,分別在以下兩種場景中進(jìn)行檢測.
由圖7中的(a)和(b)可知,當(dāng)無人機(jī)距離相機(jī)較遠(yuǎn),它作為較小目標(biāo)出現(xiàn)的時候,算法能夠較為準(zhǔn)確地檢測出空中的receiver目標(biāo)和tanker目標(biāo).
情況三:無人機(jī)在干擾背景下進(jìn)行目標(biāo)檢測
當(dāng)空中飛行的無人機(jī)存在干擾背景時,分別在以下兩種場景中進(jìn)行檢測.
圖5 算法的指標(biāo)變化Fig.5 Index changes in the algorithm
圖6 無人機(jī)作為較大目標(biāo)時的檢測結(jié)果Fig.6 Test results when the UAV is a larger target
圖7 無人機(jī)作為較小目標(biāo)時的檢測結(jié)果Fig.7 Test results when the UAV is a smaller target
圖8 在干擾背景下對無人機(jī)進(jìn)行檢測的結(jié)果Fig.8 Results of testing UAV in the context of interference
由圖8中的(a)和(b)可知,當(dāng)receiver無人機(jī)的后方出現(xiàn)綠色樹和草的干擾背景時,算法也能夠較為準(zhǔn)確地檢測出空中的receiver目標(biāo).
情況四:當(dāng)無人機(jī)進(jìn)行姿態(tài)變換后進(jìn)行目標(biāo)檢測
當(dāng)空中飛行的無人機(jī)進(jìn)行姿態(tài)變換時,分別在以下兩種場景中進(jìn)行檢測.
圖9 無人機(jī)進(jìn)行姿態(tài)變換時進(jìn)行目標(biāo)檢測的結(jié)果Fig.9 The result of the target detection when the UAV performs the attitude change
由圖9中的(a)和(b)可知,當(dāng)(a)中的receiver無人機(jī)發(fā)生明顯的俯仰和滾轉(zhuǎn),(b)中的tanker無人機(jī)發(fā)生明顯的滾轉(zhuǎn)姿態(tài)變化,此時算法也能夠較為準(zhǔn)確地檢測出空中的receiver目標(biāo)和tanker目標(biāo).
為了進(jìn)一步驗證本文提出的目標(biāo)檢測算法在識別空中飛行的tanker和receiver兩種無人機(jī)上的有效性,將其和幾種不同的經(jīng)典目標(biāo)檢測方法進(jìn)行效果對比,采用的指標(biāo)為精度(ACC)和平均正確率均值(mAP).比對方法采用SIFT的特征對無人機(jī)圖像進(jìn)行表述,通過局部特征聚合描述符(vector of locally aggregated descriptors,VLAD),詞袋(bag of visual words,BoVW) 和費舍爾向量(Fisher vector,F(xiàn)V)等策略編碼,最終采用支持向量機(jī)分類得到最終的檢測結(jié)果.
由表1可以看出,本文提出的基于GDCN卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測方法的ACC和mAP指標(biāo)值比傳統(tǒng)特征加分類方法的指標(biāo)值更高.由此說明,本文所建立的深度神經(jīng)網(wǎng)絡(luò)模型能取得較高的精度和準(zhǔn)確率.
表1 實驗對比結(jié)果Tab.1 Experimental comparison results
本文針對無人機(jī)目標(biāo)檢測問題,提出了基于Gabor深度學(xué)習(xí)的目標(biāo)檢測算法,設(shè)計了基于Gabor濾波器的深度卷積神經(jīng)網(wǎng)絡(luò),在保證網(wǎng)絡(luò)穩(wěn)定性的前提下對目標(biāo)進(jìn)行特征提取.根據(jù)提取的特征計算目標(biāo)的預(yù)測信息,得到以空中飛行的兩種無人機(jī)為目標(biāo)的檢測結(jié)果.該方法將Gabor濾波器集成到普通卷積核,從而能夠使得所學(xué)特征對方向和尺度變化的魯棒性得到增強(qiáng).使用真實飛行的無人機(jī)數(shù)據(jù)集進(jìn)行實驗驗證了本文提出的方法的可行性,進(jìn)一步通過與傳統(tǒng)特征加分類目標(biāo)檢測方法的對比說明了本文提出方法的精確性.