張 楊,程正東,朱 斌
(國防科技大學脈沖功率激光技術國家重點實驗室,安徽 合肥 230037)
目標檢測識別是計算機視覺領域重要的研究內容,在民用、醫(yī)學和軍事等領域有著廣泛的應用,例如智能監(jiān)控[1]、醫(yī)學影像輔助診斷[2]和遙感目標檢測[3]等。隨著經濟和科技的發(fā)展,在日常生活中也廣泛使用到低空無人機,例如航拍和植保等。但是這也給低空領域的安全帶來了威脅,無人機的非合作入侵事件在國內外時有發(fā)生[4],不僅對公民的隱私和生命財產安全造成了損害,也對公共安全和國家安全造成了巨大威脅[5]。作為對低空無人機反制的關鍵,無人機目標的預警探測技術在不斷發(fā)展,出現了低空雷達探測[6]、無線電探測[7]和光電探測[8]等多種手段。但是由于低空無人機具有機動性強和體積小的特點,對其進行預警探測存在發(fā)現難和處置時間短的難題,而研究針對低空無人機的快速高效檢測算法是解決這些問題的必備條件。
經過近些年的發(fā)展,基于傳統手工特征和基于深度學習的目標檢測識別技術已取得較大進步。2012年,Hinton研究組將卷積神經網絡AlexNet網絡[9]應用于圖像分類任務中,并在ImageNet[10]大規(guī)模視覺識別挑戰(zhàn)賽(ILSVRC)上獲得了第一名,使Top-5錯誤率降低到了15.3%,比獲得第二名的使用傳統目標識別算法DMP模型的錯誤率低了大約11%。此后,基于深度學習的目標檢測識別算法蓬勃發(fā)展,如利用深度學習對手寫簽名進行識別[11]。然而,由于在可見光條件下的小目標具有尺寸小、分辨率低、邊緣信息模糊等特點,傳統方法對小目標檢測識別領域的研究還鮮見報道[12]。
按照思路的不同,可將基于深度學習的目標檢測算法分為單階段算法和兩階段算法。單階段典型檢測網絡主要是SSD[13]和YOLO[14-16]系列。Fu等[17]將Resnet-101分類器[18]與SSD檢測框架結合起來提出DSSD檢測算法,此算法在目標檢測中引入額外的上下文信息,提高了對小目標的檢測精度,但是檢測速度較SSD慢了很多。典型的兩階段檢測算法包括R-CNN[19]、Faster R-CNN[20]等。Lin等[21]在Faster R-CNN網絡的基礎上提出具有橫向連接的特征金字塔網絡(FPN),克服了只用語義信息比較豐富而細節(jié)特征信息缺失較多的網絡頂層進行目標檢測識別時對小目標檢測效果不佳的問題。
當前的目標檢測算法通常需要在準確率和速度間進行權衡。文獻[22]通過增加YOLOv3的特征提取網絡深度與多尺度預測網絡結構,提高了算法對小目標的檢測識別精度,但同時也降低了算法的推理速度。兩階段目標檢測算法與單階段檢測算法相比具有檢測準確率高的優(yōu)點,但其檢測速度較慢。針對這個問題,本文對兩階段檢測算法Faster R-CNN進行改進,一方面通過使用輕量化的特征提取網絡減少模型參數,提高檢測速度;另一方面,通過改進FPN特征融合和感興趣區(qū)域池化的方式,提高算法針對小目標的檢測識別準確率。
無人機目標和數據采集設備如圖1所示。圖1(a)為數據采集設備,設備配置有紅外熱像儀與可見光攝像機,在制作此工作所使用數據集時只用到可見光攝像機。圖1(b)~(d)分別為所研究的三款大疆無人機DJI Mavic Air、DJI Mavic Pro和DJI Phantom 3 Standard,其中DJI Mavic Air尺寸最小,其折疊時尺寸為168 mm×83 mm×49 mm,對角軸距為213 mm;DJI Mavic Pro對角軸距和折疊尺寸分別為335 mm和83 mm×83 mm×198 mm;DJI Phantom 3 Standard尺寸最大,其最大軸距為350 mm。
圖1 (a)數據采集設備;(b)大疆Mavic Air無人機;(c)大疆Mavic Pro無人機;(d)大疆精靈3標準版無人機Fig.1 (a)Data acquisition equipment;(b)DJI Mavic Air;(c)DJI Mavic Pro;(d)DJI Phantom 3 Standard
為了驗證距離對算法識別效果的影響,構建了三個可見光圖像數據集U1、U2和U3,其主要區(qū)別在于無人機目標與探測器距離的不同??梢姽鈭D像的大小均為1920 pixel×1080 pixel,無人機目標與探測器的距離分別約為15、70、100 m,每個數據集中的可見光圖像數量大約為1500張。圖2為三種不同距離下采集的無人機可見光圖像數據集樣本,其中a、b、c分別代表三款不同機型。由圖2(a1)、(b1)、(c1)可見,當無人機目標距離探測器距離較近時,很容易分辨出無人機的類型;由圖2(a2)、(b2)、(c2)可見,隨著無人機與探測器之間距離的增加,DJI Mavic Air和DJI Mavic Pro兩種無人機變得難以區(qū)分;由圖2(a3)、(b3)、(c3)可見,當無人機距離探測器更遠時,無人機在圖像中的尺寸變得更小,對其進行檢測識別的難度更大。
圖2 三種不同距離下不同機型的無人機可見光圖像數據集樣本。(a1),(b1),(c1)距離為15 m的數據集U1;(a2),(b2),(c2)距離為70 m的數據集U2;(a3),(b3),(c3)距離為100 m的數據集U3Fig.2 Three examples of visible image datasets for three different types of drones at different distances.(a1),(b1),(c1)The data set of U1 at a distance of 15 m;(a2),(b2),(c2)The data set of U2 at a distance of 70 m;(a3),(b3),(c3)The data set of U3 at a distance of 100 m
Faster R-CNN算法結構框架如圖3所示,其輸入圖像大小為1333 pixel×800 pixel;使用深度殘差網絡ResNet-18作為算法的特征提取骨干網絡;將特征提取網絡的特征輸出分成四個階段,使用top-down的特征金字塔網絡連接方式將深層特征與淺層特征進行融合;區(qū)域建議網絡(RPN)在不同層次的特征圖上生成區(qū)域建議框,最后經過感興趣區(qū)域池化(ROI pooling)和Faster R-CNN的檢測層,得到最終檢測結果。
圖3 改進的Faster R-CNN算法結構框圖Fig.3 Structure framework of improved Faster R-CNN algorithm
與ResNet-50網絡相比,ResNet-18網絡包含更少的卷積層,網絡參數也大幅減少。所提出的改進型Faster R-CNN算法使用的特征提取網絡為ResNet-18的前17個權值層,即去掉最后的平均池化層、全連接層和Softmax層。
表1為改進Faster R-CNN算法使用的ResNet-18特征提取網絡結構。該特征提取網絡分成5層,其中第一層Conv1卷積核大小為7×7×64,步長為2,為網絡的輸入層,同時也是算法的輸入層;其余4層分別命名為Conv2-x、Conv3-x、Conv4-x和Conv5-x,且同時對應輸出特征的4個階段stage-1、stage-2、stage-3和stage-4。輸入圖像大小為1333 pixel×800 pixel,則經過Conv1后輸出的特征矩陣大小為667×400×64。第二層Conv2x包含一個3×3的最大池化層,步長為2,兩個殘差單元,每個殘差單元中包含2個3×3×64的卷積核,由于最大池化層的步長為2并且殘差單元中的卷積核深度為64,因此Conv2-x的輸出特征矩陣大小為334×200×64。Conv3-x、Conv4-x和Conv5-x三層使用的殘差單元除了卷積核深度不同,其余設置均相同,即每層包含兩個殘差單元,且每個殘差單元第一個卷積核的步長均為2。因此經過步長為2的卷積核的下采樣操作后,最后三層的輸出特征矩陣大小分別為167×100×128、84×50×256和42×25×512。
表1 ResNet-18特征提取網絡Table 1 Feature extraction network of ResNet-18
根據低空無人機目標尺寸小的特點,對特征金字塔網絡中深層特征與淺層特征融合的方式進行了改進。圖4為改進的特征金字塔網絡結構,左側自底向上的結構為卷積神經網絡的卷積過程,隨著網絡的變深,特征層的尺寸逐漸變小,特征更抽象且所表達的語義信息更強;在右側建立橫向連接,自上而下地對右側特征層進行上采樣并與左側的特征進行融合。在傳統的FPN算法中采用特征相加的方式對相應的特征層進行融合處理,通過對上層特征進行雙線性插值的方法上采樣,然后與左側經過1×1卷積操作后的特征層直接相加。雖然特征層相加的融合方式能夠讓目標特征信息更豐富,但同時也增加了背景的特征信息,使得目標特征與背景特征的差異性不明顯。
圖4 改進的特征金字塔網絡結構Fig.4 The improved feature pyramid network(FPN)structure
為了凸顯無人機目標特征、提高算法的檢測識別率,改變了傳統FPN中特征層通過相加進行特征融合的方式,而采用特征層相乘的方式進行特征融合,如圖4虛線框中所示。改進后FPN輸出的特征圖可表示為
式中:φi表示FPN輸出的第i個特征圖,C1×1為卷積核為1×1的卷積層,φn為特征提取網絡的第n層特征圖,f是雙線性插值函數,f(φi-1)表示對FPN第i-1個特征圖進行雙線性插值。
特征相乘的融合方式能夠讓高特征值的像素點具有更高的特征值,分化不同像素點的特征,使得不同區(qū)域的特征差異更大。圖5(c)、(d)分別為在FPN中使用特征相加與特征相乘兩種融合方式得到的特征圖。兩種融合方式得到的特征圖與淺層特征圖5(a)相比,目標相對背景均更加突出;與深層特征圖5(b)相比,特征圖中的細節(jié)信息均得到了加強。而相乘融合方式得到的特征圖5(d)與相加融合方式得到的特征圖5(c)相比,目標與背景的對比度更高,目標的特征信息更加明顯。
感興趣區(qū)域是目標檢測算法中識別出的候選識別區(qū)域,Faster RCNN算法中的感興趣區(qū)域是由RPN所生成的候選識別框映射到特征圖上對應的區(qū)域所得到的。感興趣區(qū)域池化的目的是將大小和形狀各不相同的錨點框所對應的感興趣區(qū)域歸一化為固定尺寸大小的目標待識別區(qū)域,以便輸入后續(xù)的檢測層網絡。圖6為感興趣區(qū)域池化示意圖,RPN生成的兩個候選識別框對應的各自感興趣區(qū)域大小不同,感興趣區(qū)域池化算法將兩個感興趣區(qū)域平均分成7×7個小區(qū)域,然后通過分塊池化得到固定7×7大小的尺寸輸出。
圖5 (a)淺層特征圖;(b)深層特征圖;(c)相加融合特征圖;(d)相乘融合特征圖Fig.5 (a)Shallow feature map;(b)Deep feature map;(c)Additive fusion feature map;(d)Multiplying fusion feature map
圖6 感興趣區(qū)域池化示意圖Fig.6 Schematic diagram of region of interest pooling
為了減少感興趣區(qū)域池化對小目標檢測算法準確率的影響,所提出的改進Faster R-CNN算法使用雙線性插值方法得到候選預測框內每個小網格的像素值。圖7為感興趣區(qū)域雙線性插值示意圖,網絡所回歸的候選預測框為浮點型,黑色圓形區(qū)域代表特征圖的像素,感興趣區(qū)域為淺灰色矩形區(qū)域。
為了減少算法的計算量,將雙線性插值的方法用于感興趣區(qū)域池化時在所劃分的小網格區(qū)域僅采樣一次,如圖7所示的兩個灰點即為兩個小網格經過雙線性插值得到的池化結果。以采樣點1為例,使用雙線性插值計算其像素值的過程為:1)如圖7所示,特征圖的大小為4 pixel×5 pixel,檢測層的固定輸入尺寸大小為4 pixel×4 pixel,因此淺藍色區(qū)域被平均劃分成4×4個小網格;2)以f(0,0)、f(0,1)、f(1,0)和f(1,1)代表四個位置處像素值的大小;3)采樣點1的坐標為(0.8,0.4),則根據雙線性插值的計算公式可得采樣點1處的像素值f(0.8,0.4)=0.12f(0,0)+0.48f(1,0)+0.08f(0,1)+0.32f(1,1)。
圖7 感興趣區(qū)域雙線性插值示意圖Fig.7 Schematic diagram of bilinear interpolation for the region of interest
為了驗證本節(jié)所提出的基于輕量化網絡的Faster R-CNN目標檢測算法的性能,以及優(yōu)化后算法與原始Faster R-CNN算法性能的比較,設置了若干組對比實驗,實驗數據集均按照9:1的比例劃分為訓練集和驗證集。其中所提出的改進Faster R-CNN算法與原始Faster R-CNN算法的超參數設置相同,圖像輸入尺寸均設置為1333 pixel×800 pixel,使用Adam優(yōu)化器,初始學習率設置為0.0003,訓練設置了24個迭代周期,學習率衰減策略是在第8、11、16和22周期時按0.1的比例衰減,原始Faster R-CNN算法使用ResNet-50的預訓練模型,改進Faster R-CNN算法使用ResNet-18預訓練模型。檢測算法輸出的檢測框與真實框的交并比(IOU)閾值均設置為0.5,訓練與測試的深度學習框架為PyTorch,實驗均在顯卡為GTX2080Ti、操作系統為Ubuntu18.04的服務器上進行。
在驗證無人機與探測器的距離對目標檢測算法的影響時,使用所提出改進的Faster R-CNN算法在構建的三個無人機數據集U1、U2和U3上分別進行訓練,三組實驗的訓練參數設置相同。圖8為分別在數據集U1、U2和U3上訓練時mAP與訓練迭代周期的曲線圖。圖8(a)為所提出的改進Faster R-CNN算法在U1訓練集上的mAP曲線圖,從第2個迭代周期開始mAP值就已經達到了100%,即對U1驗證集上的所有目標均能進行準確檢測識別;圖8(b)為改進算法在U2訓練集上的實驗結果,算法的mAP值穩(wěn)定在96.4%左右,較U1數據集下降約3.6%;圖8(c)是在U3數據集上的實驗結果,mAP值約為92.8%,在三個數據集中檢測識別準確率最低。對比三組實驗可以發(fā)現算法的檢測識別精度隨著目標與探測器距離的變遠而變低,即在三種距離的數據集上,算法在距離為15 m的數據集上識別效果最好,當無人機目標距離增加到70 m和100 m時,算法的檢測識別精度由100%降到了96.4%和92.8%。
圖8 (a)U1數據集、(b)U2數據集、(c)U3數據集mAP曲線圖Fig.8 mAP curves of(a)U1,(b)U2,(c)U3
為了對比改進Faster R-CNN算法與原始使用ResNet-50特征提取網絡的Faster R-CNN算法對小目標的檢測識別效果,用原始Faster R-CNN算法在U3數據集上進行了訓練和測試,訓練過程中的mAP曲線如圖9(a)所示,訓練過程中預測框與類別損失的曲線如圖9(b)所示。由損失曲線圖可以得出模型在訓練到第20個迭代周期時,分類損失和預測框位置的損失曲線已收斂;從mAP曲線圖可以得出用ResNet-50作為特征提取網絡的Faster R-CNN算法在U3數據集上的mAP值為92.1%,比改進Faster R-CNN算法的mAP值低了約0.7%。
圖9 (a)原始Faster R-CNN在U3數據集上的mAP;(b)訓練時邊界框和類別的損失值Fig.9 (a)mAP of origin Faster R-CNN training in U3 dataset;(b)Training loss of bounding boxes and classes
為比較不同算法在目標尺寸較小的U3數據集上的性能,選擇了兩種典型的單階段目標檢測識別算法SSD和YOLOv3在U3數據集上進行訓練與測試。由于數據集中的原始圖像尺寸較大,為避免小目標因輸入圖像大比例縮放而導致信息嚴重丟失,此處選擇了大輸入尺寸的SSD512和YOLOv3-608算法進行實驗。為比較不同算法在性能上的優(yōu)劣,使用每類預測目標的平均準確率(AP)、mAP、虛警率和檢測速度作為衡量指標,在相同訓練迭代次數條件下,對比實驗的最終結果如表2所示。
表2 算法在三個數據集上的訓練結果Table 2 Result of algorithm in three datasets
由改進Faster R-CNN算法在三種距離不同數據集上的實驗結果可知,隨著目標與可見光相機的距離越來越遠,目標檢測算法的檢測速度基本不變,但是檢測的mAP值不斷降低;除DJ3無人機外,每類目標的預測AP值均在下降,從三型無人機的辨識度可以看出DJ3無人機與其他兩型無人機差異明顯,即使在較遠距離,根據其形狀也容易辨認,因此在三個數據集上DJ3無人機的預測mAP均為最高。與原始Faster R-CNN相比,改進后的算法在速度上達到了34.5 FPS,較原始算法的15.8 FPS提高了約一倍,且mAP值提高了0.7%。單階段目標檢測算法SSD 512和YOLOv 3-608在U3數據集上的mAP值分別為66.7%和78.3%,檢測速度分別為33.8 FPS和39.1 FPS。
在U3數據集上4種算法的檢測時間與檢測虛警率如表3所示。目標檢測虛警率是指錯誤檢測到的目標在所有檢測到的目標中所占的比例,由表3可見所提出改進Faster R-CNN算法對DJ-Pro和DJ3無人機的檢測虛警率在四種算法中均是最低,分別為13.0%和8.3%,對DJ-Air無人機的檢測虛警率僅高于以ResNet-50為骨干網絡的Faster R-CNN算法。而單階段目標檢測算法SSD和YOLOv3的虛警率普遍偏高,體現了使用RPN區(qū)域建議網絡的Faste R-CNN算法性能的優(yōu)越性。
表3 檢測時間和虛警率Table 3 Detection time and false alarm rate
分析了傳統Faster R-CNN算法目標檢測識別速度慢的缺陷,為提高對低空無人機的檢測識別速度和效果,使用更輕量的ResNet-18替代ResNet-50作為Faster R-CNN算法的特征提取網絡,減少算法的參數量;通過改進FPN中特征金字塔的融合方式,提高目標與背景的特征差異;使用雙線性插值的方法改善因感興趣區(qū)域池化造成的預測框偏離的問題。通過在構建的低空無人機數據集上進行訓練和測試,驗證了改進算法的有效性。通過與原始Faster R-CNN、SSD和YOLOv3在構建數據集上的檢測識別效果的對比,顯示出改進算法具有更優(yōu)的性能,證明了改進的有效性,為目標檢測識別方向的研究提供了一種改善小目標檢測識別效果的思路。