吳 靖, 韓祿欣, 沈 英, 王 舒, 黃 峰
(福州大學機械工程及自動化學院,福州 350000)
近年來,隨著智能制造技術的不斷提升,在民用方面,越來越多的無人機應用于城市交通監管、電力巡檢、農業保障工作等領域;在軍事上,無人機可用于戰場的偵察、監視及目標的搜索定位,為作戰提供有效信息的同時還能干擾敵方電子設備,從而大大降低傷亡率。然而,無人機由于航拍視場大、背景復雜多樣、目標分布不均、尺度變化大且小目標數量多,導致對目標的檢測難度加大[1]。因此,快速準確地識別航拍圖像是實現無人機融入社會發展的重要研究內容。
伴隨著計算機硬件設備性能的與日俱增,基于深度學習的目標檢測技術發展的蒸蒸日上。目前,實際應用較為廣泛的目標檢測算法可分為兩類,一類是雙階段檢測算法,另一類是單階段檢測算法。其中,雙階段檢測算法先經過候選區域(Region Proposal)提取目標建議框,再進行目標的分類及位置的預測,它的優點是檢測精度高,但是計算資源開銷大,檢測速度較慢,較難達到目標的實時檢測目的,如R-CNN[2],Fast R-CNN[3],Faster R-CNN[4]。而單階段檢測算法直接預測圖像中的目標類別及其位置信息,檢測精度較高,檢測速度快,適用于實時監測的場景,如YOLO[5],YOLO9000[6],YOLOv3[7],YOLOv4[8],SSD[9]。不同于自然場景的檢測,無人機航拍目標檢測難度相對更高。呂曉君等[10]提出強化Faster R-CNN主干網絡底層特征提取能力,并改進網絡特征層的融合規則以提升對小目標的識別精度,但檢測速度達不到實時性的要求;劉英杰等[11]提出在Cascade R-CNN[12]網絡中加入并行的特征金字塔層的雙線性插值上采樣融合,強化其在無人機航拍目標上的檢測能力,但在網絡結構擴展的同時檢測速度也降低了;劉芳等[13]提出一種基于多尺度特征,能夠自適應無人機航拍圖像候選區域生成相應錨框的網絡,并且在實現網絡輕量化的同時提高了檢測精度,然而檢測速度相對于單階段網絡仍然存在較大差距,并且受限于無人機所能搭載的計算資源和硬件功耗,部署龐大的深層網絡是不符合實際的。
為了解決上述問題,本文提出一種基于改進YOLOv4-tiny的無人機航拍目標檢測方法。首先,在YOLOv4-tiny的基礎上擴大了檢測尺度范圍,并將深層特征和淺層特征信息自下而上進行融合,以豐富小尺寸目標的語義信息;其次,引入了注意力模塊,使每個尺度的特征信息經過二次提取,過濾了冗余的信息,保留了重點關注區域的特征信息;最后,與YOLOv4-tiny進行對比實驗,結果表明本文所提算法在保證實時檢測的前提下,提升了對無人機航拍目標的檢測精度。
YOLOv4-tiny是YOLOv4的壓縮版,模型參數量是YOLOv4的1/10,檢測速度更快,其主干部分采用了CSPDarknet53-tiny結構,包含15個卷積層,由2個暗網基礎卷積(DBL)單元和3個ResBlock模塊構成,如圖1(a)所示。其中,DBL單元由卷積層(Conv)、批歸一化處理(BN)和激活函數Leaky ReLU構成,如圖1(b)所示。ResBlock模塊參照ResNet[14]和CSPNet[15]將4個DBL單元進行殘差嵌套組合,再經過最大池化處理,如圖1(c)所示。其目的是為了在增加網絡深度的同時解決網絡退化問題,緩解梯度彌散,使數據傳遞更加通暢。


圖1 YOLOv4-tiny結構Fig.1 Structure of YOLOv4-tiny
輸入的圖片通過CSPDarknet53-tiny分別經過16倍和32倍下采樣輸出為特征層1和特征層2。其中,特征層2經過特征再提取輸出小尺度特征信息,特征層1借鑒特征金字塔算法[16],通過上采樣和DBL單元將特征層2提取的高層語義信息與自身提取的低層語義信息自頂向下地融合,再經過卷積變化輸出大尺度特征信息。將小尺度和大尺度特征信息分別傳遞至檢測頭1和檢測頭2兩個模塊中,并沿用YOLOv3的邊框回歸和分類算法,在2個尺度上進行大目標和小目標的檢測。
原始YOLOv4-tiny模型能實現對大、小目標的檢測,但檢測尺度范圍不廣闊,特征提取不精細,不適合無人機航拍目標小、數量多的檢測。因此,在擴大檢測尺度范圍的同時融入特征金字塔算法保證獲取更豐富的特征信息,并引入注意力機制進行信息過濾以實現對原始模型的改進。
YOLOv4-tiny只依靠神經網絡自發地傳遞特征信息,沒有經過重點信息篩選,對于小目標、部分遮擋目標的信息會產生部分忽略。而引入注意力機制,能夠對感興趣區域的特征數據進行動態權重系數加權,提高網絡對重點區域的關注,解決由小目標、部分遮擋目標引起的識別困難問題。本文引入了卷積區域注意力模塊(Convolutional Block Attention Module,CBAM)[17],數據輸入后依次經過通道注意力模塊和空間注意力模塊的獨立推斷,可描述為
(1)
(2)
I′=FC(I)?I
(3)
I″=FS(I′)?I′
(4)

CBAM結構如圖2所示,其中,通道注意力模塊采用并行的方式分別將最大池化和平均池化提取的通道信息經過卷積層壓縮過濾并融合,最后使用Sigmoid實現數據歸一化從而提高感興趣通道權重,降低非興趣通道權重。空間注意力模塊則是并行過濾空間信息并融合,再通過卷積提取重要空間信息。兩個模塊相輔相成,實現感興趣區域通道和空間信息的提純。
YOLOv4-tiny模型只對輸出的2個尺度的特征圖進行目標檢測,檢測范圍有限,這對于多數量目標容易產生漏檢的問題,并且16倍下采樣后的特征層1包含的空間信息較少,易造成對小目標、部分遮擋目標漏檢、錯檢的發生。因此,為了獲取更大范圍的目標信息及包含更多特征信息的特征圖,降低由目標數量多、尺寸小和部分遮擋導致的漏檢、錯檢的概率,在原網絡基礎上添加8倍下采樣處理后的特征圖進行目標檢測,這樣不僅提升了檢測范圍,還能提供更豐富的淺層特征信息。
改進后的AttYOLOv4-tiny網絡如圖3所示,在保持原始的主干網絡CSPDarknet53-tiny的前提下,為了得到更多的語義信息,將16倍下采樣的深層特征經過2倍上采樣和特征提純后與8倍下采樣的淺層特征融合形成新的尺度進行檢測。同時,由主干網絡輸出的8倍、16倍、32倍下采樣特征均要經過CBAM模塊進行第1次重點信息篩選,并且在每個尺度檢測前要經過由n個卷積核大小為1×1的DBL單元和2n個卷積核大小為3×3的DBL單元交替組成的6個DBL單元對特征信息再提純以及CBAM模塊實現第2次信息過濾,其結構如圖4所示。

圖3 AttYOLOv4-tiny網絡Fig.3 AttYOLOv4-tiny network

圖4 DBL和CBAM組合Fig.4 Combination of DBL and CBAM
YOLOv4-tiny網絡預測時,為每個尺度設置3種符合輸入圖像尺寸的預測錨框,這些錨框是由K-means算法對數據集中訓練集目標的寬高進行聚類得到,對模型的檢測精度有很大影響。由于AttYOLOv4-tiny網絡增加了1個檢測尺度,所以錨框個數由6增加到9,錨框大小隨著設定的標準化尺寸也發生改變,對VisDrone數據集[18]聚類后得到9個錨框,分別為(2,4),(3,9),(5,16),(8,9),(9,23),(15,14),(16,38),(28,25),(45,59),與訓練集中所有目標大小的平均重疊率達到67.83%,相較于原始網絡6個錨框的平均重疊率62.73%有了顯著的提升,使模型預測時能更加接近目標原始尺寸,進而提升模型的檢測精度。
YOLOv4-tiny網絡參數少、結構簡單,是目前能較好地實現無人機實時檢測的標志性算法。因此,將本文提出的AttYOLOv4-tiny網絡與YOLOv4-tiny網絡進行對比實驗。本文實驗在Ubuntu18.04操作系統下,基于Tensorflow深度學習框架,配有Intel Xeon CPU Silver 4216,在搭載64 GiB內存和單張NVIDIA RTX 2080Ti的工作站上運行。
VisDrone數據集包括了14個不同城市的市區和郊區的拍攝圖像,是目前規模最大的無人機航拍目標的視覺分析算法評估和研究的數據集。VisDrone數據集包含6471張訓練集圖像,548張驗證集圖像,1610張測試集圖像。訓練集中平均每張圖像涵蓋53個目標,而測試集中平均每張圖像涵蓋71個目標,每個類別的目標還有不同程度的遮擋狀況。數據集中包含10類對象,即Awn,Bicycle,Bus,Car,Motor,Pedestrian,People,Tricycle,Truck,Van,每個種類在數據集中的數量如表1所示。

表1 VisDrone數據集中各類目標的數量Table 1 The number of various targets in VisDrone dataset
實驗過程中,YOLOv4-tiny和AttYOLOv4-tiny設置相同參數進行訓練,訓練分為2個階段,每個階段的動量(momentum)和權重衰減(decay)分別為0.9和0.000 5、批量大小(batch size)設為16。第1階段,初始學習率(learning rate)為10-3,迭代次數(epoch)設置為100;第2階段,初始學習率為10-4,當驗證損失函數5次迭代沒有下降時,學習率按照0.5的比例進行縮小,迭代次數為200,當迭代10次以內驗證集的損失函數沒有降低則停止網絡的訓練。
為了驗證所提算法相比YOLOv4-tiny在實際場景中的識別效果,選取部分環境進行定性分析。在VisDrone數據集上白晝和黑夜的檢測結果可視化分別如圖5和圖6所示(圖中左列為YOLOv4-tiny,右列為AttYOLOv4-tiny)。圖5(a)是包含沙地、草坪和道路的復雜背景下檢測結果對比,可以發現,YOLOv4-tiny由于卡車部分被周圍物體遮擋沒有檢測到,而AttYOLOv4-tiny則能夠正確識別出目標從而避免漏檢。圖5(b)是在普通道路上的檢測結果對比,可以發現,YOLOv4-tiny對汽車存在深色框的重復檢測以及未能識別到左上方的摩托,而AttYOLOv4-tiny能夠避免對目標的錯檢和漏檢。圖6(a)是包含高樓、樹木和道路的復雜背景下的檢測對比,圖6(b)是在較為黑暗的背景下的檢測對比。通過比較可以發現,YOLOv4-tiny存在將面包車錯檢為小汽車、小汽車識別不完全的問題,而AttYOLOv4-tiny在黑夜依然能夠正確識別目標,減少對目標的漏檢。

圖5 不同網絡在白晝的目標檢測結果Fig.5 Target detection results of different networks in the daytime

圖6 不同網絡在黑夜的目標檢測結果Fig.6 Target detection results of different networks at night
YOLOv4-tiny模型檢測時會對輸入的圖像進行尺寸標準化,形成一個高寬比一致的圖像,將原始圖像進行等比例的縮放,并對圖中未鋪滿的空間進行灰色像素填充。尺寸設置越大,圖像分辨率越接近原始尺寸,平均精度均值(mean Average Precision,mAP)也會更高,但是檢測速度會有所下降。因此對輸入圖像的不同尺寸進行對比實驗,結果如表2所示。綜合檢測精度和速度,當設置輸入尺寸為832像素×832像素時,仍能夠保持實時的檢測性能,因此選定圖像輸入后的設定尺寸為832像素×832像素。

表2 輸入不同尺寸圖像的平均精度均值和檢測速度Table 2 Mean average precision and detection speed of different sizes of input image
實驗使用精準率P和召回率R以定量分析目標檢測網絡的錯檢率和漏檢率,精準率和召回率越高,表示檢測過程錯檢率和漏檢率越低,并采用F1分數作為衡量精準率和召回率平衡度的評價標準,F1分數越接近1,說明模型的綜合性能越好。評價指標可分別描述為
(5)
(6)
(7)
式中:TP為目標預測正確的數量;FP為目標預測錯誤的數量;FN為目標沒被預測到的數量。
YOLOv4-tiny和AttYOLOv4-tiny對測試集中目標預測的精準率P、召回率R和F1分數,如表3所示。

表3 不同網絡目標檢測的精準率、召回率和F1分數Table 3 Precision,recall and F1score of target detection with different networks
相較于YOLOv4-tiny,AttYOLOv4-tiny對目標檢測的精準率由53.96%提升至65.48%,增長了11.52%,說明改進后的網絡對于目標錯檢有很大的改善;召回率由48.59%提升至54.36%,增長了5.77%,說明改進后的網絡有助于減少目標漏檢的發生;F1分數由51.13%提升至59.40%,增長了8.27%,說明改進后的網絡提高了目標檢測的綜合性能。
對比YOLOv4-tiny與AttYOLOv4-tiny在數據集中各類目標的平均精度(Average Precision,AP)如表4所示。可以看出,單類目標的AP提升了2%~7%,各類目標的平均AP比原網絡提高了5.09%,其中,對于行人(Pedestrian)、相對靜止的人(People)、摩托(Motor)這幾類小目標的平均精度均有顯著的提高,表明所提算法在擴大網絡檢測尺度的同時融合深層和淺層的語義信息,并利用注意力機制模塊過濾特征信息,在一定程度上加強了對小目標特征的識別能力,進而提升了對航拍目標的檢測精度。

表4 數據集中各類目標的平均精度對比Table 4 Average precision of various kinds of targets in dataset %
實驗通過與主流的目標檢測算法在VisDrone數據集上的檢測結果進行對比來驗證本文所提算法的綜合性能。實驗采用的評價指標包括參數量、mAP和檢測速度,結果如表5所示。

表5 主流算法檢測結果對比Table 5 Comparison of detection results of mainstream algorithms
其中,參數量是衡量模型復雜程度的有效指標,參數量越大,模型所需的計算資源就越大,也就越難以在無人機上實現部署,而mAP和檢測速度是衡量算法總體性能的重要指標。通過比較其他主流算法可以看出,AttYOLOv4-tiny的參數量較小,更有利于實現算法在無人機硬件上的應用。在檢測精度上,AttYOLOv4-tiny的mAP達到了24.25%,雖然略低于Faster R-CNN,但優于其他主流算法,這表明擴大檢測及融合淺層和深層特征信息能夠豐富航拍目標的特征,再通過注意力機制模塊實現冗余信息的過濾,能夠進一步提升對航拍目標的檢測能力。雖然在模型參數量上略高于YOLOv4-tiny,使得檢測速度有一定下降,但仍能達到61幀/s,滿足實時檢測的要求,遠優于Faster R-CNN,綜合檢測性能更優。
針對無人機航拍圖像檢測中存在目標小、數量多導致檢測困難的問題,基于YOLOv4-tiny網絡,擴大目標檢測尺度以充分利用淺層語義信息,并引入注意力機制對感興趣區域信息進行二次提純,提出了一種適合無人機航拍目標檢測的AttYOLOv4-tiny網絡。在無人機航拍數據集上進行了相同的訓練和測試,結果表明,相比于YOLOv4-tiny,AttYOLOv4-tiny在精準率上提升了11.52%,召回率提升了5.77%,F1分數提升了8.27%,mAP達到了24.25%,檢測速度維持在61幀/s,綜合性能得到提升。但是,在某些種類目標的識別上,由于目標過小或數據不足導致精度還不夠高,離實際應用還有些差距。在保證無人機實時檢測的基礎上提升網絡的綜合識別精度,降低模型復雜度并應用在邊緣設備上是未來的重點研究內容。