張靈靈,王 鵬,李曉艷,呂志剛,邸若海
1.西安工業大學 兵器科學與技術學院,西安 710021
2.西安工業大學 發展規劃處,西安 710021
3.西安工業大學 電子信息工程學院,西安 710021
隨著無人機技術的發展和低空領域的逐步開放,無人機已在農林植保、海岸管理以及軍事戰爭等領域取得了較為突出的成績。由于缺少有效手段實施監測,導致對無人機的監管力度明顯滯后,并由此對國家安全和社會安全產生負面影響[1-3]。特別在我國的國家保密部門和軍隊涉密場所,長期有被無人機非法入侵和偵查盜取重要軍事信息的風險存在[4]。因此,作為無人機反制與管控的重要環節,對低空無人機的有效探測成為亟待解決的問題[5]。
目前,常用的無人機探測技術包括聲波探測[6]、無線電探測[7-8]和雷達探測[9-10],但是這些技術往往需要昂貴的設備和特定的環境。基于機器視覺的方法[11-12]能夠攝像取證,成本低并且使用方便,隨著深度學習技術的發展,已逐步應用于無人機檢測任務中[13]。基于卷積神經網絡的檢測算法可以分為兩類:雙階段目標檢測算法和單階段目標檢測算法。雙階段目標檢測算法將檢測問題劃分為產生包含目標大致位置信息的候選區域和對候選區域進行分類、位置精修這兩個階段,典型代表有R-CNN(region-based convolutional neural networks)[14]、Faster R-CNN[15]等。單階段目標檢測算法不用產生候選區域,可以直接從圖片中獲得目標的檢測結果,比較典型的算法有YOLO(you only look once)系列[16-17]和SSD(single shot multibox detector)[18]。對于無人機的檢測,往往需要在提高檢測精度的同時兼顧檢測速度,因此很多學者選擇SSD 算法及其改進來完成低空無人機目標的檢測任務。Chen 等人[19]利用SSD 算法融合雷達、RGB相機等多源信息對入侵的無人機進行檢測,但只能識別常規大小的無人機目標。Liu等人[20]提出基于SSD算法的無人機識別方法,將無人機目標的檢測和分類分開實現,但存在識別準確率低、定位不準確等問題。Zhou 等人[21]將SSD 算法主干網絡替換為MobileNetv2,并引入特征金字塔網絡來提高無人機目標的檢測精度,但對復雜場景下的無人機目標檢測效果不佳,魯棒性較差。Wang等人[22]通過削剪骨干網絡的卷積通道數目提高SSD算法的檢測速度,并引入特征增強模塊提高檢測性能,檢測速度有較大提升,但檢測精度較低。
綜上,針對現有算法對復雜背景下的無人機目標檢測效果不佳、小目標定位不準確等問題,現基于SSD 算法進行改進,引入一種多尺度特征融合模塊,豐富特征圖多尺度語義信息,并在網絡特征圖輸出處引入輕量級的高效通道注意力機制,在不增加計算量的同時使網絡優先將注意力放在有用信息上,并抑制復雜背景等無用信息,最后優化默認框參數,進一步提升小目標檢測精度。
SSD是典型的一階段檢測算法,整體結構包含了基礎網絡、輔助卷積層和預測卷積層。SSD 算法結合了YOLO 模型的回歸思想和Faster R-CNN 的錨框機制思想,確保檢測精度和推斷速度。同時,也采用了特征金字塔網絡“分而治之”的思想,即分別在不同尺度的特征圖上進行預測,利用較高分辨率的淺層特征圖來檢測小物體,而利用較低分辨率的深層特征圖檢測大物體,其算法框架如圖1所示。

圖1 SSD算法框架Fig.1 SSD algorithm framework
SSD 采用VGG16 作為骨干網絡,并將其FC6 和FC7轉化為卷積層,去掉所有的Dropout層和FC8層,同時 增 加Conv8、Conv9、Conv10 和Conv11 這4 個 卷 積層。使用改進后的模型對輸入圖片進行特征提取,并生成多個特征圖,分別為Conv4_3、FC7、Conv8_2、Conv9_2、Conv10_2 和Conv11_2,大小分別為38×38、19×19、10×10、5×5、3×3 和1×1。網絡在這些特征圖上的每個點生成長寬比例不同的錨框,適應多尺度檢測,每層特征圖上產生n×n個中心點,每個中心點產生k個默認框,六層特征圖中每層的每個中心點產生的k值分別為4、6、6、6、4、4。其中Conv4_3 層的默認框大小為30,其他先驗框的尺度遵守一個線性遞增規則:

其中,m為特征圖個數,smin和smax通常取值0.2與0.9,分別代表最底層特征圖以及最高層特征圖占原始圖像比例,候選框的長寬比ar∈{1,2,3,1/2,1/3},則先驗框的長和寬可由下式表達:

默認框中心點的位置可由式(4)計算:

其中,|fk|表示k個特征的尺寸。
為改善SSD 算法對復雜背景下小目標檢測困難等問題,在原始網絡中融入多尺度特征融合模塊和注意力機制模塊,為使先驗框和感受野有效匹配,對先驗框的大小和數量進行了優化。首先,將深層特征和淺層特征相融合,使每層特征圖之間具有上下文信息。其次,將融合后的特征圖輸入到注意力機制模塊中,增強特征圖對關鍵信息的提取能力。最后,針對無人機數據集尺度偏小問題,對默認框的尺度和數量進行優化,網絡結構如圖2 所示,其中MSFFM(multi-scale feature fusion module)為提出的一種多尺度特征融合模塊,ECA(efficient channel attention)為高效通道注意力模塊。
SSD 模型中Conv4_3 層至Conv7 層這些較淺層的特征圖分辨率高,包含豐富的細節紋理信息,適合檢測小目標;Conv8_2 層至Conv11_2 層這些深層的特征圖分辨率低,但是具備充足的語義信息,適合檢測大目標,但是網絡深層特征的語義信息與底層特征的細節紋理信息之間并未得到充分利用。特征金字塔網絡就是為了增強淺層特征和深層特征之間的聯系,它從頂層的每一層都進行上采樣,獲取更準確的像素位置信息。借鑒特征金字塔網絡、FSSD[23]、FA-SSD[24]和受文獻[25]的啟發,提出一種多尺度特征融合模塊(MSFFM),可以表述為式(5):

式中,Xi為將要融合的源特征圖,Ti表示融合前的轉換函數,Φf表示特征融合函數。本算法獲取三個特征圖之間的互補信息進行深層次融合,從而來緩解不同尺度特征圖的信息差異帶來的融合負面影響。具體的融合過程為:選取X2作為優化層時,X1、X2和X3特征圖先經過1×1 卷積進行通道降維,X2特征圖的通道降維至原通道數目的1/2,X1和X3的通道數目降維至X2原通道數目的1/4,再分別對X1和X3進行擴張卷積和雙線性插值,使X1和X3的特征圖尺寸變為和X2一樣。其次,對修改后的X1、X2和X3進行Φf融合操作,采用concat 融合方式,直接對原始特征進行串聯,讓網絡去學習融合特征,不會造成信息的損失。改進的特征圖經過BN 層和ReLU 激活函數,激活函數有利于神經網絡學習到更多非線性關系,融合之后還會再經過3×3的卷積,目的是消除上采樣的混疊效應。最后將其經過非局部通道注意力模塊來挖掘網絡通道有用的上下文信息,抑制噪音等無效信息,并送入非極大抑制網絡進行檢測輸出。
在原SSD 模型特征層的基礎上加入Conv3_3 層和Conv4_3 層這兩個淺層特征,其特征圖尺寸大,小目標特征提取更充分。Conv10_2 和Conv11_2 層特征圖所包含信息少,融合之后對目標定位與分類精度并沒有什么提升,反而使模型的訓練與檢測速度變慢。Conv4_3層負責檢測小目標,考慮到小目標需要更多的表觀特征信息,融合具有更大特征圖Conv3_3層和具有一定語義信息的Conv7 層。考慮融合應盡量減少不同尺度特征圖信息差異帶來的負面影響和融合后的特征圖盡可能包含高層信息和低層信息,當Conv7 層作為優化層時,融合包含較多紋理信息的Conv4_3 層和它的相鄰層Conv8_2 層;當Conv8_2 層作為優化層時,融合包含較多紋理信息的Conv5_3 層和它的相鄰層Conv9_2 層。結合圖2、圖3 所示,當選取Conv8_2 作為優化層時,對于10×10×512 的特征圖Conv8_2 使用1×1 卷積降維成256 通道,對5×5×256 的特征圖Conv9_2 采用雙線性插值上采樣將特征圖變為10×10大小,并使用1×1卷積將通道數目降維為128,對19×19×512 的特征圖Conv5_3進行擴張卷積,并將通道數目變為128,然后將三層特征圖分別經過BN 層和ReLU 激活函數再進行concat 融合操作。其他兩個融合模塊同理。

圖2 本文算法整體框架Fig.2 Overall framework of proposed algorithm

圖3 多尺度特征融合模塊Fig.3 Multi-scale feature fusion module
圖4為原SSD算法與改進SSD算法在Conv4_3層、Conv7層和Conv8_2層輸出的特征對比圖。圖4(b)(c)(d)為原算法輸出的特征熱力圖,圖4(e)(f)(g)為改進算法經過多尺度特征融合模塊輸出的特征熱力圖。顯然圖4(e)相對于圖4(b)更加清晰,關注了更多的細節信息,適合檢測小目標。圖4(f)相比于圖4(c)能更加匹配無人機目標,較小的目標仍高亮顯示。圖4(g)相比于圖4(d)具有更強的語義信息,無人機的特征信息更為豐富,經過多次下采樣之后網絡仍可以注意到小目標。結果表明本文提出的多尺度特征融合模塊更加適合低空無人機目標的檢測。

圖4 多尺度特征融合前后特征圖對比Fig.4 Comparison of feature images before and after multi-scale feature fusion
在進行多尺度特征融合時只是將特征圖在通道維度上進行拼接,不能反映不同通道間特征的重要性和相關性[26]。為了能使網絡自動學習特征圖通道之間的重要性和相關性,引入了一種輕量級高效注意力機制(ECA-Net)[27],在不增加網絡計算量的同時使網絡增強有用信息,去除冗余特征。該網絡是對裁剪-權重分配網絡(squeeze-and-excitation networks,SE-Net)[28]提出的改進網絡。SE-Net涉及降維,降維會對通道注意預測帶來副作用。因此ECA-Net 提出了一種不降維的局部跨信道交互策略和核大小自適應選擇方法,同時以極其輕量級的方式獲取跨通道的交互信息。該網絡首先對輸入特征圖的每個通道進行池化操作,獲得全局感受野,然后直接進行局部跨通道連接,即通過考慮由池化操作得到的每個通道及其k個鄰近通道來進行一維卷積操作,k的取值通過通道數C自適應確定:

其中,|· |odd表示取離結果近的奇數,γ和b 表示常量,分別取值為2和1。ECA-Net網絡模型的結構圖如圖5所示。

圖5 ECA-Net注意力模塊Fig.5 ECA-Net attention module
使用Grad-CAM[29]技術來直觀地展示模型中引入輕量化注意力模塊的有效性。熱力圖顏色區域越深說明該區域對類別識別的影響越大。圖6(a)為原始圖片,圖6(b)為普通卷積熱力圖輸出,圖6(c)為ECA-Net 熱力圖。觀察第一列可以看出注意力機制使模型也關注到無人機的旋翼信息,第二列可以看出模型關注無人機的整體信息,有利于模型對無人機目標的檢測,第三列可以看出,模型注意到了小目標。從這些結果可以看出引入ECA-Net 使模型更加注意到了對檢測有用的細節信息,而抑制忽略背景等這些無用的信息。

圖6 熱圖可視化Fig.6 Visualization of heat maps
SSD 模型利用每一層特征圖上不同尺寸和數量的先驗框對目標進行檢測。每層特征圖上的先驗框和數量如表1所示。錨框的尺寸和長寬比是固定的,因此檢測器在處理形變較大的候選對象時比較困難,尤其是對于小目標。原SSD 模型設定的默認框對于低空無人機檢測任務的感受野區域明顯偏大且帶來復雜背景的干擾信息,導致檢測精度降低。圖7(a)為無人機數據集真實框的寬高比,可以看到大部分集中在0.7左右,但也有部分在0~0.5之間,少部分在1.0~1.5之間。圖7(b)為目標真實框在原圖的大小比例,可以看到大部分框只占到了原圖的0.001~0.075,甚至更小,因此基本都是很小的目標。針對數據集的特點,將原始SSD網絡的smin設置為0.15,此時最低層先驗框的大小為22.5×22.5,基本上可以覆蓋輸入圖像中的各種形狀和大小的目標。為了保證改進網絡Step 和原網絡一樣,將smax設置為0.87,并將用于檢測小目標的Conv4_3 層的特征映射中添加至6個默認框,提高檢測精度的同時避免小占比的目標被漏檢。通過重新設置默認框的數量和大小,可以有效改善漏檢和避免低空無人機因尺度小而無法與默認框匹配的問題。

表1 每層特征圖上的先驗框和數量Table 1 Prior boxes and numbers on layer of feature maps

圖7 數據集分布可視化Fig.7 Visualization of data set distribution
為驗證改進SSD 模型在低空無人機檢測任務中的有效性,在相同運行環境及無人機數據集的前提下,將原SSD 模型和改進SSD 模型進行對比實驗。本實驗基于Windows10 操作系統,CPU 為AMD Ryzen 5 5600X 6-Core Processor,內存為16 GB;GPU為NVIDIA GeForce RTX 2060。優化算法采用SGD,動量因子參數為0.9,批處理大小為8,初始學習率為0.000 1,衰減系數為0.1,最大迭代次數為120 000次。
為了評估改進后的算法檢測性能,自行在網上搜集不同場景下無人機圖片共4 688張,如圖8所示,按照7∶1∶2的比例劃分成訓練集、驗證集和測試集。無人機數據集按照Pascal VOC2012的格式建立,大多數都是小目標。

圖8 數據集部分圖片及標注Fig.8 Partial images and annotations of data set
檢測速度的評價指標為FPS(frame per second),定義為網絡每秒處理圖像的幀數。可以根據準確率(Precision)和召回率(Recall)制成一條曲線,在0到1范圍內繪制的曲線與坐標間的面積即為精度(AP),AP=,準確率和召回率的定義如下[30]:

式中,TP為正樣本中的正例,FP為負樣本中的正例,FN為負樣本中的負例。
3.3.1 與其他算法對比
為了評估改進SSD算法性能,選取幾種典型目標檢測算法進行對比。為保證結果的公平性,所有模型均在本實驗平臺進行訓練,所有結果記錄在表2中。從檢測精度上看,改進SSD 算法的檢測精度均優于其他模型。另外將輸入圖像放大能夠顯著提高小目標的檢測效果,Faster R-CNN、YOLOv3、CenterNet 和DSSD 輸入圖像尺寸遠大于SSD,但是改進SSD算法相對于這些大尺寸輸入圖像模型的檢測效果更好,AP 分別提高了3.40 個百分點、7.85 個百分點、4.64 個百分點和2.61 個百分點。其次,CenterNet和DSSD的骨干網絡采用更深層次的ResNet,相比于VGG16具有更強的特征表達能力,但CenterNet 和DSSD 模型并沒有改進SSD 算法更適合無人機數據集。與采用輕量級的特征融合模塊FSSD 相比,AP 提升了2.15 個百分點。從推斷速度上看,改進SSD算法推斷速度略有降低,但也基本符合實時測試的要求。實驗結果表明,改進后算法能夠在實時測試的基礎上有效地提高復雜背景下無人機目標檢測的準確率,特別是對小目標物體的檢測更具優勢。

表2 各算法在無人機數據集的檢測精度Table 2 Detection accuracy of each algorithm in UAV data set
圖9為IOU=0.5(intersection over union)時各目標檢測算法的PR 曲線。從圖中的PR 曲線可以直觀看出,本文所提算法的Precision和Recall兩個性能指標均優于其他檢測模型,即改進SSD算法對低空無人機目標位置的回歸能力優于其他模型。

圖9 各算法的PR曲線(IOU=0.5)Fig.9 PR curve of each algorithm(IOU=0.5)
3.3.2 消融實驗
為了進一步驗證本文模型設計策略的有效性,在無人機數據集上運行具有不同設置的模型,進行了消融實驗,此時最大迭代次數為120 000 次。實驗內容包括MSFFM 多尺度特征融合模塊的使用與否,ECA-Net 注意力機制的使用與否,SE-Net 注意力機制的使用與否,anchor 是否優化,Fusion method 特征融合方法的選擇,有concat和add兩種融合方式,以及ECA-Net注意力機制鄰近通道k的大小選擇,所有的實驗數據記錄在表3中。

表3 各獨立模塊對無人機目標檢測的影響Table 3 Influence of each independent module on UAV target detection
表格中第一行為原SSD模型的檢測精度為76.26%,對比表格中第一行和第二行、第三行和第五行、第四行和第六行、第七行和第九行的數據可以發現,在SSD 算法的基礎上引入多尺度特征融合模塊確實帶來了精度的提升,分別提升了3.35 個百分點、3.63 個百分點、2.21個百分點和2.61個百分點,證明了該多尺度特征融合模塊使融合后新的特征圖具備小目標的上下文信息。其中同時添加多尺度特征融合模塊和注意力模塊提升效果最為明顯,因為融合只是通道維度上的拼接并不能反映特征通道的重要性,添加注意力模塊可以學習不同特征通道間的權重分配,使模型更加關注有用信息。對比第一行和第四行、第二行和第六行、第五行和第九行、第三行和第七行可以發現,改進anchor可以顯著提升模型的精度,分別提升了4.58 個百分點、3.44 個百分點、3.62個百分點和4.64個百分點,原因在于本實驗所用數據集都是很小的目標,改進anchor可以改變感受野的大小使其與目標大小更匹配并且抑制背景信息的干擾。對比第一行和第三行、第二行和第五行、第四行和第七行、第六行和第九行,模型中加入ECA-Net 注意力機制后,分別提升了0.56 個百分點、0.84 個百分點、0.62 個百分點和1.02個百分點,說明ECA-Net注意力機制能幫助模型增強有用特征,去除冗余特征,使網絡更加關注有利于檢測的有用信息。其中模型添加多尺度特征融合模塊和改進anchor 時,注意力機制效果最好,這是因為多尺度特征融合模塊將淺層信息和語義信息得到了充分的融合,再加上優化anchor使得有效感受野匹配利于信息的提取。由第九、第十和第十一行可以看出,隨著鄰近通道數目的增加,模型的精度有所降低,說明過多的通道之間的交互確實是低效且不必要的,本模型選取k值為3 可以取得最優結果。對比第八行和第九行可以發現,多尺度特征融合模塊選取concat融合方式的精度高于add融合方式,這是因為concat融合方式是特征圖信息的串聯,不會造成信息的損失。對比第九行和第十二行可以發現,相同實驗環境下模型使用ECA-Net的檢測精度比使用SE-Net 的檢測精度高,說明ECA-Net 的性能更優,更適合本文所提算法。
訓練過程中的原模型損失和改進模型損失如圖10(a)所示,橫軸表示迭代次數,縱軸表示損失值的大小。在無人機數據集上經過120 000 次訓練,損失值和精度值達到穩定狀態。圖中Loss 值為置信損失和定位損失兩部分的帶權加和。從圖10(a)可以看出,改進模型損失比原模型損失低1~2 個百分點,模型收斂在損失值1左右。原模型在迭代90 000 次之后損失函數值基本趨于平穩,而改進網絡在迭代80 000次之后損失函數值趨于平穩,明顯比原模型收斂更快。在訓練過程中,原模型精度、改進模型精度和迭代次數之間的趨勢變化對比如圖10(b)所示,可以看到隨著迭代步數的更新,整體識別正確率最終達到80%以上。改進模型在保持一定計算效率的情況下,檢測精度大幅提升,收斂速度最快,收斂值最優。

圖10 訓練過程模型變化Fig.10 Model changes during training
圖11為IOU=0.5 時目標檢測算法的PR 曲線,從圖中可以直觀看出,改進SSD 算法在Precision和Recall兩個性能指標上均優于原SSD算法,即改進算法對目標位置的回歸能力優于原模型,證明了該模型的有效性。

圖11 模型PR曲線(IOU=0.5)Fig.11 Model PR curve(IOU=0.5)
3.4.1 不同場景下檢測結果
圖12給出了8種場景下的檢測實例,通過直觀地對比可以看出,改進后的算法對各種場景下無人機目標檢測結果和置信度都優于原模型。其中圖12(a)是在云背景下,無人機特別小且待檢測目標和背景相近。圖12(b)是在建筑背景下,有貨架和樓宇等干擾物,背景較為復雜。圖12(c)為無人機飛行在山間,背景噪聲很大。圖12(d)為無人機飛在海平面上,背景較為干凈但光線弱。圖12(e)為傍晚情況下,待檢測目標不明顯。圖12(f)為無人機飛行在路燈旁,存在部分遮擋情況。圖12(g)為強光背景下,檢測目標極不明顯。圖12(h)為亮度不均情況下,無人機飛行在亮度暗且目標和背景相近區域。這些復雜場景下無人機均能被檢測出來,且不存在漏檢誤檢情況,證明了該算法的有效性。

圖12 不同場景下的目標檢測結果Fig.12 Target detection results in different scenarios
3.4.2 與改進算法測試結果對比
為了更直觀地顯示本文算法的有效性,選取測試數據集中的圖片對原算法和改進后算法的檢測效果進行對比,結果如圖13所示。圖(a)為原始SSD算法檢測結果,圖(b)為改進的SSD 算法檢測結果。通過圖中第一列的對比可以看出,當目標與背景顏色很接近的時候,改進的算法可以精準檢測到目標,并且置信度很高。圖中第二列中紅色橢圓為錯誤檢測目標示例,原算法將樹林中的飛鳥識別為無人機,而改進的算法能準確識別出來。通過圖中第三列、第四列的對比可以看出,原算法存在漏檢情況,由于改進的算法在Conv4_3層設置了更多的先驗框,有效避免了漏檢情況的發生。綜上,改進后的算法對小目標的檢測效果更為顯著。

圖13 檢測結果對比Fig.13 Comparison of detection results
為解決不同角度下無人機所處背景復雜多變、尺度偏小等問題,通過引入多尺度特征融合模塊,添加注意力機制和優化先驗框等措施,提出了一種改進的低空無人機SSD 檢測算法。改進后的SSD 算法在自制無人機數據集上進行訓練和驗證,實驗結果表明,算法平均精度由原來的76.26%提升到84.07%,且對不同場景下的無人機目標均有比較好的檢測結果,充分證明了方法的有效性。對比其他幾種經典的目標檢測算法,改進后模型在無人機目標檢測任務中具有更高的綜合性能。在下一步的研究中,將對數據集進行擴增獲取更多類別的無人機,減少網絡的計算量提高模型的檢測速度。