譚 亮, 趙良軍, 鄭莉萍, 肖 波
(四川輕化工大學計算機科學與工程學院,四川 宜賓 644000)
隨著無人機(UAV)被廣泛應用于城市管理和民生領域,其“濫飛”即“黑飛”已嚴重威脅公共安全[1],在復雜背景下對不同尺度的無人機進行實時檢測是亟待解決的問題。傳統技術(如雷達、音頻、無線電等)[2-3]難以實時檢測無人機特征,而基于深度學習的方法雖可提供多尺度特征提取,但飛行狀態下的尺度變化和復雜場景仍造成小尺度無人機檢測困難。
王凱等[4]通過改進特征提取網絡,融合注意力機制和RFB-S,并使用Focal Loss增強算法的小目標檢測能力;張寧等[5]將有效因子與YOLOv4算法的PANet結構融合,用融合因子L-α控制信息傳遞,改善了特征融合過程中相鄰層間不平衡的問題;蔣心璐等[6]提出的Pest-YOLOv5算法提高了農業害蟲的小目標檢測精度,但在復雜的田間環境下仍有誤檢和漏檢情況發生;張上等[7]提出的LUSS-YOLO算法可通過網絡重構和使用VariFocal Loss提高小目標的檢測精度,但漏檢率仍然較高;董亞盼等[8]提出的注意力機制和張浩然等[9]提出的數據增強方法雖在特定場景提高了檢測精度和速度,但對其他場景適用性不強。
因此,為解決復雜飛行場景中無人機尺度變化引起的小目標檢測難題,本文選用了先進的目標檢測算法YOLOv5s,并進行3項改進:引入結合深度超參數卷積的Slim-Neck[10]范式,以平衡模型檢測準確性和推理速度;引入SPD-Conv[11]模塊,增強模型在低分辨率圖像中小物體的檢測性能;優化損失函數,使用Alpha-CIoU Loss[12]替換CIoU Loss,提升模型在小目標數據集上的泛用性。
為了在檢測侵入式無人機時平衡檢測模型的準確性和速度,本文在YOLOv5s算法的頸部網絡引入文獻[10]提出的Slim-Neck新范式,并將部分普通卷積替換為超參數化深度卷積DO-Conv模塊,這種結合更好地平衡了模型的準確性和推理速度,同時降低了模型的復雜度,實現了更高的計算效益。傳統的CNN為提高檢測速度,需要逐步傳遞空間信息到通道,但壓縮空間和通道數的擴展會導致部分語義丟失;而Slim-Neck范式中的輕量級卷積GSConv以較低的時間復雜度保留了每個通道之間的隱藏連接,時間復雜度表示為
(1)
式中:O為時間復雜度;W、H分別為輸出特征圖的寬度和高度;U1·U2為卷積核的大小;C1為每個卷積核和輸入特征圖的通道數;C2為輸出特征圖的通道數。
GSConv模塊結構如圖1所示。

圖1 GSConv 模塊結構示意圖Fig.1 GSConv module structure
由圖1可知,先將C1通道的輸入經過普通卷積Conv轉化為C2通道,并進行深度卷積DWConv后用Concat和Shuffle操作將2個卷積結果對應通道拼接起來。GSConv通過統一交換通道的策略,無需額外信息便降低了計算復雜度。基于GSConv模塊,通過一次性聚合的方法設計了跨階段部分網絡模塊VoVGSCSP,簡化了結構并提升了推理速度。
YOLOv5s-AntiUAV網絡模型結構如圖2所示,組合GSConv、VoVGSCSP和DO-Conv模塊,形成了適用于本文改進算法的頸部網絡范式。

圖2 YOLOv5s-AntiUAV網絡模型結構Fig.2 Architecture of YOLOv5s-AntiUAV network
圖2中:L1~L30 代表YOLOv5s-AntiUAV算法結構的層數;Conv表示卷積;k為卷積核的尺寸大小;s為卷積核在輸入特征圖上滑動的步長大小;p是在輸入特征圖的邊緣周圍添加額外的像素值大小;C3*3表示卷積核的大小為3×3,C3*3 False表示在卷積操作中沒有使用填充,C3結構見圖1;n×Bottleneck 代表有n個Bottleneck模塊;Conv2d是一個二維卷積操作;SPD-Conv表示文獻[11,13]提出的用于低分辨率圖像和小物體新CNN構建塊;Detect表示檢測端;MaxPool2d指池化操作,減小特征圖的尺寸;if true表示條件為真,則通過 ShortCut操作,將輸入特征和輸出特征之間通過跳躍連接直接相加。
為了提升YOLOv5s-AntiUAV網絡性能和表達能力,本文在范式中將普通卷積替換為超參數化的深度卷積DO-Conv模塊,以增強特征提取能力。DO-Conv模塊通過使用額外的可學習參數擴展了卷積運算的表達能力,與傳統卷積不同,它使輸出特征的某個通道僅受限于輸入特征的一個通道和相應的權重,而不受其他輸入通道影響。深度卷積則獨立應用于單個輸入通道,保持較低的計算成本,同時捕獲通道的空間信息,生成中間特征圖,其運算過程見圖3。

圖3 深度超參數卷積運算過程Fig.3 Deep hyperparameter convolution operation process
圖3中,深度卷積算子°首先被應用于深度卷積內核D和輸入特征P,生成轉換后的特征P~=D°P。接下來,常規卷積運算符*被應用于常規卷積內核W和中間變量P~,生成轉換后的特征Ο=W*P~。因此,深度超參數化卷積的輸出可以表示為Ο=W*(D°P)。M和N為輸入向量的空間維度,Cin為輸入向量的通道數,Cout為輸出的通道數,Dmul=M*N,表示深度卷積的感受視野。然而,使用傳統卷積作用于輸入特征P的M*N區域,卷積核的數量Cout*(M*N)*Cin。在DO-Conv中,分別使用了2個權重D∈R(M*N)*Dmul*Cin和W∈RCout*Dmul*Cin,且Dmul≥M*N,所以DO-Conv中的權重參數比傳統卷積參數多(M*N)*Dmul*Cin,故其能夠更好地實現特征提取,同時保持計算效率。
高分辨率圖像因含有豐富細節,能夠在CNN中跳過一些操作而仍學到有效特征。然而,對于檢測小目標或模糊圖像等復雜任務,現有CNN構建塊面臨著丟失細節和無法學到有效特征的挑戰??绮骄矸e和池化卷積在處理這些復雜任務時可能會丟失重要細節信息,影響模型性能。對于小物體或模糊圖像,直接跳過操作會導致關鍵細節丟失,使模型難以準確學習到關鍵特征,影響任務表現。
為解決上述問題,本文借鑒了文獻[11,13]提出的新CNN構建塊SPD-Conv,用于低分辨率圖像和小物體,替代了原有的YOLOv5s算法的跨步卷積層和池化層。為了優化YOLOv5算法的CBS卷積層,本文在普通卷積Conv(k=3,s=1)和深度超參數卷積DO-Conv(k=3,s=1)后結合了SPD-Conv模塊,結構如圖4所示。

圖4 SPD-Conv模塊結構Fig.4 SPD-Conv module structure
文獻[11]將SPD-Conv中Space-to-Depth模塊的步長設置為1,有效避免了跨步卷積和池化造成的信息丟失,增強了模型在低分辨率圖像中小物體的檢測性能,因此更適用于侵入式無人機的檢測。再使用步長為1的Convolution卷積加強模型在細粒度特征上的保留能力,避免因卷積步數的大小而導致的特征信息丟失。

如圖4所示,輸入原始特征圖W,每個特征圖按比例因子l對W進行下采樣,再將這些特征子圖根據通道維度進行連接,得到特征圖W~,W~與W相比,前者比后者在空間維度上少了一個比例因子,而在通道維度上增加了2個比例因子,然后在Space-to-Depth模塊之后增加一個步長為1結合了C2濾波器的卷積層,對特征圖W~進行進一步變換。
在對飛行中的無人機進行檢測時,常常受到樹木、建筑物和飛鳥等物體的遮擋,同時,無人機尺度的變化也會影響精確檢測。YOLOv5s算法采用CIoU Loss作為損失函數,是在DIoU Loss的基礎上增加了回歸框長寬的損失,使預測框更加接近真實框。然而,針對小目標,CIoU Loss在目標框上計算的重疊區域相對較小,導致CIoU Loss值較小,進而影響模型對小目標的學習能力。其次,因CIoU Loss考慮了目標框中心點距離,所以,中心點回歸誤差可能較大,影響對目標的定位。同時,對于小目標,規范化項相對較大,造成損失值偏大,進而影響模型學習和收斂速度。
針對上述問題,本文引入Alpha-CIoU Loss來替換YOLOv5s中的CIoU Loss。Alpha-CIoU Loss在CIoU Loss的基礎上引入了超參數α,以平衡目標框重疊部分和非重疊部分。通過調整α值,增強了小目標的重要性,提高了對小目標的學習能力,從而改善了小目標的檢測性能。Alpha-CIoU Loss的引入使得模型更加穩健和靈活,可調整目標框重疊和非重疊部分的重要性。此外,該損失函數考慮了目標框中心點距離和寬高差異,通過調整參數,能夠更精確地定位目標,特別對小目標定位更為重要,提高了模型的定位準確性。Alpha-CIoU Loss在實驗中證明不會增加訓練推理時間,反而能夠提高模型在目標數據集上的魯棒性,優于其他損失函數,其算式為
(2)
式中,β和ν分別表示為
(3)
(4)
式中:RIoU表示真實邊界框和預測邊界框之間的交叉比例;b為預測邊界框的中心點;bgt為真實邊界框的中心點;歐氏距離ρ(·)表示了兩個邊界框中心點之間的最小閉合盒子的對角線長度;π為圓周率;wgt、hgt分別為真實邊界框的寬度和高度;w、h分別為預測邊界框的寬度和高度。
本文的實驗數據集Anti-UAV由自建數據集Our-Anti-UAV的1732幅圖像和公開數據集DUT-Anti-UAV[14]的6000幅圖像組成。
其中,Our-Anti-UAV數據集融合步驟如圖5所示。

圖5 Our-Anti-UAV數據集融合步驟示意圖Fig.5 Schematic diagram of fusion steps of Our-Anti-UAV dataset
首先,從公開的無人機“黑飛”視頻中人工截取無人機影像的原始數據,統一裁剪成大小為64像素×64像素的圖像,然后用PyTorch框架進行數據預處理生成HDF5文件。隨后,100維噪聲輸入到生成式對抗網絡[15]的生成網絡中,并將HDF5文件讀取到判別網絡中進行判別。若判別網絡認為數據是偽造的,則進行反向傳播,動態調整生成網絡和判別網絡參數,直到生成網絡生成的圖像被判定為真實,判別網絡能準確識別生成器生成的圖像為偽造。訓練好的模型參數保存后,用其生成無人機圖像,結果如圖6(a)所示。最后,使用泊松融合算法將生成的無人機圖像與不同背景圖像隨機融合。融合后的數據使用Labelimg軟件標注,并與部分DUT-Anti-UAV數據集合并,部分圖像示例見圖6(b)。最終形成的Anti-UAV數據集圖像共7732幅,以7∶3的比例隨機分為訓練集和驗證集。

圖6 Anti-UAV數據集部分圖像示例Fig.6 Image examples from the Anti-UAV dataset
由COCO數據集劃分目標檢測的大中小目標定義可得:小于32像素×32像素為小目標,介于32像素×32像素和96像素×96像素之間為中等目標,大于96像素×96像素為大目標。同時,本文設置高、低分辨率圖像閾值為720像素×640像素。大于720像素×640像素為高分辨圖像,反之則為低分辨率圖像。分析Anti-Drone數據集的目標尺寸分類和高、低分辨率圖像分類情況如圖7所示。

圖7 Anti-UAV數據集分析Fig.7 Analysis of the Anti-UAV dataset
從圖7可以看出,本文實驗數據集,低分辨率下的小目標無人機占比最大,符合低分辨率小目標實驗要求。
本文的實驗環境平臺為自主配置服務器,使用64位Windows10操作系統,處理器為Intel?CoreTMi7-8700K CPU@3.70 GHz,32 GiB運行內存,NVIDIA GeForce RTX 2080Ti GPU,12 GiB顯存。在Pycharm里用Python編寫代碼,并調用OpenCV-Python、Torch、Pandas等第三方所需庫,進行模型的訓練和檢測,所構建的網絡模型均基于PyTorch深度學習框架,開發環境為PyTorch 1.12.1、CUDA 11.3、Python3.8。
實驗以檢測速度(FPS)、精確率(P)、召回率(R)、平均精確率(AP)、平均精確率均值(mAP)作為模型定量評價指標來衡量模型檢測的準確性,其定義本文不再贅述。
為了評估本文提出算法的性能,通過增減優化模塊驗證各模塊對算法性能的影響。表1為消融實驗結果,其中,將基線算法YOLOv5s標記為O,引入SPD-Conv模塊記為Ⅰ,優化損失函數記為Ⅱ,結合深度超參數化的Slim-Neck范式記為Ⅲ。A~G分別代表引入Ⅰ、Ⅱ、Ⅲ后形成的新算法。

表1 消融實驗結果
由表1可知,盡管組合后的算法在檢測速度上略低于基線算法,但在mAP上均高于YOLOv5s。因此,每個優化模塊都對檢測無人機產生了積極影響。
為驗證本文的YOLOv5s-AntiUAV算法在侵入式無人機檢測方面的先進性,與其他經典目標檢測算法進行了對比實驗。使用參數量、FPS和mAP@0.5這3項性能指標進行對比,結果見表2。

表2 對比實驗
由表2可知,在Anti-UAV數據集上,改進后的算法相對于SSD和Faster R-CNN算法,在參數量上分別減少了15.19×106和32.56×106;FPS達到了33.4 幀/s。與YOLOv5s算法相比,改進后的算法參數量增加了1.86×106,FPS降低了16.6 幀/s。綜合對比發現,改進算法的 mAP@0.5相較于原YOLOv5s算法、SSD和Faster R-CNN分別增長了1.1、12.1和4.9個百分點,因此,本文提出的改進算法在mAP@0.5評價指標上具有最高精度,并滿足實時性需求。圖8展示了4種算法在低分辨率場景下對小目標的檢測結果。

圖8 不同算法的檢測結果Fig.8 Detection results of different algorithms
由圖8可知,在干擾背景下,本文改進算法對目標的置信度高于其他算法,再次驗證了本文算法的有效性。
為驗證損失函數Alpha_CIoU模塊對網絡的有效性,將其替換為SIoU[16]、WIoU[17]和Focal_EIoU進行效果對比,對比結果見表3。

表3 損失函數分析
從表3中可以看出,損失函數SIoU、WIoU、Focal_EIoU的P值均低于損失函數CIoU,并且這3種損失函數的mAP效果不如損失函數CIoU。然而,Alpha_CIoU損失函數在所有評價指標上都優于上述4種損失函數,表明在無人機檢測中其性能更出色。
本文使用VisDrone2019[18]數據集來驗證算法的廣泛性和可遷移性。在經過300輪訓練后,本文改進算法和YOLOv5s算法在VisDrone2019數據集上的mAP@0.5對比結果如表4所示。

表4 遷移實驗
由表4可以看出,改進算法相較于YOLOv5s算法,mAP@0.5值提升了4.5個百分點,且改進后的算法對于數據集的每一個類別的AP值均高于基線算法,驗證了本文改進算法在小目標檢測領域的泛用性,兩種算法的檢測結果示例見圖9。

圖9 遷移實驗圖像檢測對比Fig.9 Comparison of image detection in ransfer learning experiments
通過分析傳統的反無人機檢測方法的特點,并為解決侵入式無人機小目標錯檢和漏檢問題,基于YOLOv5s算法進行改進。通過引入Slim-Neck范式增強特征提取能力并保持計算效率;在網絡的骨干和頸部部分引入SPD-Conv模塊,減少特征信息丟失,提升在低分辨率圖像中小目標的檢測性能;另外,優化損失函數以增強算法的魯棒性。本文提出的YOLOv5s-AntiUAV算法在自建數據集上mAP@0.5達到了92.3%,滿足實時檢測需求,表明其有效性。在VisDrone2019數據集上的遷移實驗結果顯示,本文算法對于復雜背景下的小目標檢測效果更佳,具有廣泛適用性。