?

基于改進YOLOv7的低空飛行物目標檢測方法

2024-03-05 07:35劉雨涵孟凡華王文林李素康趙昊天
無線電工程 2024年3期
關鍵詞:低空飛行注意力損失

甄 然,劉雨涵,孟凡華,劉 穎,王文林,李素康,趙昊天

(河北科技大學 電氣工程學院,河北 石家莊 050018)

0 引言

隨著我國低空空域的逐步開放和科技發展,無人機數量不斷增多,未來在同一空域內還可能包含無人機、熱氣球和飛鳥等空中障礙物,對無人機的操控和航跡規劃提出了挑戰。從無人機管控的角度來看,降低民用飛行器帶來的社會治安風險,分析當前空域出現的飛行物及種類是十分有必要的。所以,無人機是否能準確地對障礙物進行目標檢測,關乎到無人機的后續避障和路徑規劃。

從空防安全上講,通用航空器飛行高度相對比較低、體積小、飛行速度慢,對于低、慢、小飛行目標的探測、識別以及防御,都比較棘手。如果低空空域管理不當,低空航空器或不明飛行物很難控制,則直接危及重要目標安全和國家主權??罩酗w行目標的圖像來源可分為遙感影像、雷達影像和視覺圖像。從遙感影像和雷達影像中提取目標檢測,存在成本高、檢測流程復雜的問題,且由于空中飛行目標的特性難以實現實時檢測?;诳梢姽庑盘柕囊曈X圖像中目標分辨率高、細節豐富,目標特征更多,視覺圖像對于實時性要求較高的飛行物檢測領域更加契合。近年來,基于視覺圖像的目標檢測技術受到廣泛關注。

近年來,深度學習由于其強大的特征學習能力,被廣泛應用于圖像處理和目標檢測?;谏疃葘W習的目標檢測方法也取得了一定成果, Deepan等[1]借助YOLOv3中可用的多尺度檢測和非最大值抑制(NMS)技術,消除了重疊的邊界框并檢測到了不同尺度的目標。Tan等[2]改進YOLOv4使用超輕量級子空間注意機制(ULSAM)為多尺度特征表示的特征圖的每個子空間導出不同的注意特征圖。引入軟非最大抑制(soft NMS)以最小化由于遮擋而導致的目標丟失的發生。Kumar等[3]改進了YOLOv4的主干網絡,增加了一個SPP網絡、2個額外的檢測層,使用Mish作為激活函數,加快了網絡收斂速度。Wang等[4]在YOLOv5的基礎上引入CBAM注意力機制,采用多尺度訓練來提高網絡的訓練性能。Bie等[5]使用深度可分離卷積和C3Ghost模塊代替多個C3模塊,以減少模型參數,提高檢測速度。采用雙向特征金字塔網絡進行多尺度特征融合,以豐富特征信息,提高算法的特征提取能力。

對空中飛行物的檢測不同于常見的口罩、安全帽和車輛檢測,飛行物圖像背景復雜,干擾信息多,需要檢測的目標具有角度多變、易遮擋和特征少等特點,使得空中飛行物檢測極為困難,極易誤檢和漏檢。在空中飛行物檢測領域,趙玥萌等[6]根據多尺度特征融合的思想對原始YOLOv4網絡結構進行優化,提出了一種基于優化YOLOv4的低空無人機檢測方法,檢測平均精度(Average Precision, AP)達到77.2%。劉閃亮等[7]提出通過注意力特征融合結構融合更多的小目標信息至特征圖,并使用更淺特征層檢測目標,進一步提升原模型針對小目標檢測的性能,在無人機和鳥群數據集上實現93.5%的平均精度均值(mean Average Precision, mAP)。當前算法僅檢測飛鳥與無人機2類目標,而實際應用場景中情況更為復雜,飛行物種類多種多樣,且數據集稀缺,目前僅有較少文獻考慮此類問題,現有算法仍存在檢測精度低、誤檢和漏檢率高、實時性不足等問題。

基于以上問題提出一種基于YOLOv7[8]模型的空中飛行物目標檢測算法,對現有問題進行針對性改進。制作包含多種常見低空飛行物數據集,方便目標檢測模型的訓練和驗證;使用輕量化的注意力機制結合YOLOv7模型;借鑒ConvNeXt網絡思想,構建輕量化模塊,保證檢測精度的同時提高檢測速度;使用更精確的損失函數,降低目標漏檢。運用本文方法可以顯著提高模型檢測精度,針對性改進低空飛行物檢測任務中現有方法檢測精度低、易漏檢誤檢等問題。

1 相關工作

1.1 經典目標檢測算法

目前,基于深度學習的目標檢測方法可以分為兩大類:一種是兩階段方法,通過提取候選區域并進行深度學習來實現檢測和分類,這些方法通常比其他方法具有更高的準確率,包括區域卷積神經網絡(R-CNN)[9]、Fast R-CNN[10]和Faster R-CNN[11]等;另一種是單階段方法,包括單次激發檢測器(SSD)[12]、YOLO、YOLOv3[13]、YOLOv4[14]、YOLOv5、YOLOv7和其他方法,這些方法直接計算物體的坐標和分類概率,提供了單次檢測后的結果,大大提高了檢測速度。

1.2 YOLOv7算法

YOLOv7模型是YOLO系列最新的檢測模型,在5~160幀/秒,相同模型尺寸下,無論是檢測速度還是精度,都超過了已知的所有檢測模型。YOLOv7由三部分構成:輸入端(Input)、主干網絡(Backbone)和預測輸出網絡(Head)。

送入模型的圖片首先進行數據增強等預處理,調整圖片尺寸為640 pixel×640 pixel,之后輸入到主干網絡進行特征提取,然后經過Head網絡預測輸出3個不同尺寸的預測特征圖,最終經過Repconv輸出預測結果。YOLOv7在主干網絡中加入ELAN結構與MP結構。其中,ELAN結構通過控制最短和最長的梯度路徑,使網絡能夠高效聚合更多的特征;MP結構由Maxpool+1×1卷積和1×1+3×3卷積雙通路構成,達到超級下采樣效果。Head網絡部分引入了SPPCSPC模塊和Repconv模塊。其中,SPPCSPC模塊通過最大池化來獲得不同感受野,使算法適應不同尺度目標;Repconv模塊在訓練與推理時采用不同路徑,推理模塊由訓練模塊重參數化轉換而來,通過復雜化訓練來提升推理速度。

目前YOLOv7模型在可見度良好的條件對中、大型目標的檢測效果較好,但對小目標、背景復雜、數據稀缺的低空飛行物目標的檢測效果仍然欠佳,急需在提高檢測精度和應對復雜背景方面進行改進,以完成實際應用中對小目標飛行物的檢測任務。

1.3 注意力機制

神經網絡中的注意力機制是一種資源分配方案,它將計算資源分配給更重要的任務,同時解決計算能力有限時的信息過載問題。在神經網絡學習中,一般來說,模型的參數越多,模型的表達能力就越強,模型存儲的信息量就越大,但這會帶來信息過載的問題。通過引入注意力機制,在眾多輸入信息中關注當前任務的更關鍵信息,減少對其他信息的關注,過濾掉不相關的信息,緩解信息過載的問題,提高任務處理的效率和準確性。

注意力機制是一種類腦機制,模擬人腦關注更感興趣的目標進而弱化非重要目標。首先掃描全局圖像,獲得需要關注的目標區域,然后在該區域投入更多的注意力資源,獲得更多與目標相關的細節,忽略其他無關信息。通過這種機制,有限的注意力資源可以用來從大量信息中快速篩選出高價值的信息在深度學習模型中引入注意力機制可以使網絡在目標區域傾斜更多計算資源,弱化無效目標的干擾,提取更多目標信息的同時節省計算資源。

2 改進的YOLOv7低空飛行物檢測方法

2.1 基于CvNX模塊改進的特征提取主干網絡

ConvNext網絡[15]由18個ConvNeXt Block結構堆疊而成,本文為了進一步輕量化YOLOv7網絡,只使用單個ConvNeXt Block結構替換YOLOv7網絡中的部分ELAN-A模塊,將此結構命名為CvNX模塊,模塊結構如圖1所示。CvNX模塊使用類似倒置瓶子的倒三角結構,先使用7×7大卷積核進行Depthwise卷積[16],增大感受野,強化特征提取的同時平衡計算開銷,之后先用1×1卷積升維提取更多特征,再用1×1卷積降維保留高維信息同時減少參數量,最后正則化處理后與最初輸入拼接輸出。

圖1 CvNX模塊結構Fig.1 CvNX module structure

CvNX模塊利用特殊的倒三角結構在降采樣過程中保留了更多小目標飛行物的特征信息,且CvNX模塊僅由一層Depthwise卷積層和2層1×1卷積層構成,減少了網絡參數與計算量。本文在原始YOLOv7主干網絡中替換部分ELAN-A模塊,進而提出一種更加輕量化的主干網絡,網絡結構如圖2所示,改進后的主干網絡在節省計算資源的同時也提升了模型檢測精度。

圖2 主干網絡結構Fig.2 Backbone network structure

2.2 引入SimAM注意力機制的Head網絡

考慮到高精度模型的部署代價,在提升精度的同時盡可能輕量化模型,引入SimAM注意力機制[17]。SimAM注意力機制不同于現有1D通道注意力和2D空間注意力,同時關注通道維度或空間維度信息,且在算力資源有限的情況下無需額外參數去推導出3D注意力權重,簡單且高效,只需通過一個Energy能量函數來計算注意力權重。圖3為SimAM結構。

圖3 SimAM結構Fig.3 SimAM attention mechanism structure

其3D權重計算為:

(1)

式中:X為輸入的特征。通過sigmoid函數限制E中可能出現的過大值,E為每個通道上的能量函數,其計算過程為:

(2)

式中:t為輸入特征的值,t∈X;λ=1×10-4,μ和σ2分別表示X中每個通道上的均值和方差。計算過程如下:

(3)

(4)

式中:M=H×W,表示每個通道上的值的數量。通過以上計算可獲得每個點的權重,以此來改善網絡的識別效果,同時也不會為網絡增加額外的參數。

2.3 坐標損失函數

YOLOv7算法中的坐標損失函數為LCIoU[18],損失函數如式(6)所示:

(5)

LCIoU=1-CIoU,

(6)

(7)

(8)

式中:b為預測框中心點坐標,bgt為真實框中心點坐標,ρ2為預測框與真實框中心點歐氏距離,c為預測框和真實框最小外接框對角線長度,w和h為框的寬和高,v為形狀損失,用來衡量預測框和真實框的寬和高之間的比例一致性。LCIoU通過v反映縱橫比的差異,而不是寬高分別與真實值的差異,由式(7)可得,當預測框與真實框的寬高比例相同時v=0,此時寬高損失項失效。

現使用LSIoU[19]來代替原模型中的LCIoU,加入角度向量來描述縱橫比相同時預測框的坐標損失。重新定義相關損失函數,LSIoU參數示意如圖4所示。

圖4 SIoU損失函數的計算Fig.4 Calculation of SIoU loss function

2.3.1 角度損失

角度損失定義如式(9)所示:

(9)

式中:ch為真實框和預測框中心點的高度差,σ為真實框和預測框中心點的距離。

2.3.2 距離損失

距離損失定義如式(10)所示:

(10)

式中:

(11)

2.3.3 形狀損失

距離損失定義如式(12)所示:

(12)

式中:

(13)

(w,h)和(wgt,hgt)分別為預測框和真實框的寬和高,θ控制對形狀損失的關注程度,本文設置為2。

2.3.4 重疊損失

距離損失定義如式(14)所示:

(14)

式中:B和Bgt分別為預測框和真實框的面積。

綜上所訴,SIoU損失函數計算如下:

(15)

SIoU通過在損失函數成本中引入方向性,與現有方法CIoU損失相比,在訓練階段實現了更快的收斂,并且在推理方面具有更好的性能。

2.4 非極大值抑制

NMS[20]即非極大值抑制,應用于傳統的特征提取和深度學習的目標檢測算法中。NMS原理是通過篩選出局部極大值得到最優解,同一個目標模型會預測出許多預測框,以及預測方框的預測得分,NMS會去除得分較低的那個預測框。原始NMS計算如下:

(16)

式中:Si為預測框得分,得分M為最高分預測框,Bi為其他預測框,IoU(M,B)為M框與任一其他框的IoU值,ε為IoU閾值。

本文使用的SIoU-NMS計算如下:

(17)

(18)

在原始的NMS中,IoU指標用于抑制多余的檢測框,但由于僅考慮了重疊區域,在小目標檢測任務中,常因為多個目標重疊,導致被遮擋目標的預測框得分較低而被刪除,最終導致漏檢。SIoU完整考慮了真實框與預測框之間的位置關系,有效降低了漏檢率,提升了目標檢測的精度。

在主干網絡中加入CvNX模塊,Head網絡中引入SimAM注意力機制,采用LSIoU作為損失函數,使用SIoU-NMS后,基于改進YOLOv7算法的低空飛行物小目標檢測方法YOLOv7-SC網絡結構如圖5所示。

圖5 YOLOv7-SC網絡結構Fig.5 Structure of YOLOv7-SC network

3 實驗結果與分析

實驗硬件環境為Inter Core i7處理器,主頻2.5 GHz,內存16 GB;顯卡為NVIDIA GeForce GTX 3060,顯存6 GB;操作環境為Windows 11;訓練環境為PyTorch框架。

3.1 數據集

本實驗所用數據集為自有低空飛行物數據集,在我國低空飛行物主要指飛行高度1 000 m以下,飛行速度低于200 km/h的飛行物。本數據集包含7類常見的低空飛行物:飛鳥、飛艇、滑翔機、氣球、三角翼(滑翔傘)、無人機和小型直升機,共3 084張圖像,每張圖像中至少包含一個目標。數據集按照8∶2劃分為訓練集和驗證集,訓練集和驗證集數據相互獨立,驗證集數據由原始數據集隨機抽取得到并保證同時包含7類低空飛行物。低空飛行物數據集的具體信息如表1所示,7種低空飛行物典型圖像如圖6所示。

表1 低空飛行物數據集信息

圖6 7種低空飛行物典型圖像Fig.6 Typical images of 7 kinds of low altitude flying objects

圖7展示了數據集中目標標注框的分布情況。圖7(a)中,橫坐標x為標注框中心橫坐標與整體圖像寬度的比值,縱坐標y為標注框中心縱坐標與整體圖像高度的比值,圖中數據分布反映目標在圖像中整體分布情況。從圖中可以看出,目標分布廣泛,多數集中在圖像中部。圖7(b)中,橫坐標width為標注框寬度與整體圖像寬度的比值,縱坐標height為標注框高度與整體圖像高度的比值,數值越大,目標在圖像中的占比就越大。從圖8中可以看出,本數據集中包含各種尺寸比例的目標,符合實際情況。

圖7 數據分布情況Fig.7 Data distribution

圖8 坐標損失對比Fig.8 Coordinate loss comparison

3.2 評價標準

為了客觀評價模型性能,選取準確率(Precision,P)、召回率(Recall, R)、AP和mAP作為評價指標,mAP為所有分類AP的平均值。計算如下:

(19)

(20)

(21)

式中:TP為正樣本預測為正樣本的數量(預測正確),TP為負樣本預測為正樣本的數量(誤檢),TP為正樣本預測為負樣本的數量(誤檢)。在P-R曲線中,P-R曲線與坐標軸圍成的面積為AP值。

3.3 對比實驗與結果分析

3.3.1 與改進前模型對比

將改進的YOLOv7模型命名為YOLOv7-SC,YOLOv7-SC與YOLOv7模型在低空飛行物數據集上的檢測結果如表2所示。從表2可以看出,相較于YOLOv7模型,YOLOv7-SC模型在各分類AP與mAP上均有提升,YOLOv7-SC模型在IoU閾值為0.5時的mAP達到97.1%,較YOLOv7模型提升1.7%;2個模型在飛艇、三角翼2個分類上檢測結果較好,AP達到98%以上;在YOLOv7檢測結果較差的飛鳥與小型直升機分類上,YOLOv7-SC模型的AP均超過96%,明顯優于YOLOv7模型;YOLOv7-SC模型僅在小型直升機分類上的AP略低于YOLOv7模型,這主要是因為YOLOv7-SC模型在提高對不易檢測目標的特征提取能力的同時,對數據集中其他分類目標和背景雜質的學習能力也相應提高,而在目標較小時,小型直升機的旋翼在形狀特征上與無人機的旋翼類似,所以在檢測時會將少數小型直升機的旋翼部分檢測為無人機或其他背景雜質,且YOLOv7-SC模型與YOLOv7模型在小型直升機分類上的AP僅相差0.006%,不影響實際應用效果??傮w上,YOLOv7-SC模型在對7種常見低空飛行物的檢測mAP(IoU=0.5)上比YOLOv7模型高1.7%,平均準確率與平均召回率也分別高出2%、0.8%。綜上表明,YOLOv7-SC模型在低空飛行物數據集上的檢測效果比YOLOv7模型更優秀且穩定,檢測mAP達到97.1%。

表2 YOLOv7-SC與YOLOv7在低空飛行物數據集上的檢測結果Tab.2 Test results of YOLOv7 and YOLOv7-SC onlow-altitude flying object dataset

為了進一步驗證改進網絡模型YOLOv7-SC的有效性,對YOLOv7-SC與YOLOv7模型的損失函數進行收斂性驗證。

得益于使用LSIoU為坐標損失函數、引入SimAM注意力機制,YOLOv7-SC模型在預測目標位置和區分目標種類上獲得了更優秀的能力。如圖8和圖9所示,其坐標損失函數和分類損失函數收斂速度相較于YOLOv7模型更快,且最終收斂結果優于YOLOv7模型。

圖9 分類損失對比Fig.9 Classification loss comparison

為了更直觀體現引入注意力機制對模型檢測效果的影響,采用GradCAM熱力圖可視化觀察YOLOv7-1模型和YOLOv7-2模型的檢測結果??梢暬Y果如圖10所示,其為對飛鳥的檢測結果,紅色部分表示模型較關注的部分,引入注意力機制后的YOLOv7-2模型更加關注目標所在區域,將計算資源集中在目標附近,并抑制非目標區域占用算力,可驗證注意力機制的有效性。

圖10 引入注意力機制前后對比Fig.10 Comparison before and after introducing attention mechanism

3.3.2 與其他網絡模型對比

為了更加客觀、全面評價YOLOv7-SC模型的綜合性能,在檢測精度、模型占用內存、浮點運算次數和檢測速度等方面,與其他9種目標檢測模型進行對比,統一使用輸入圖片尺寸為3×640 pixel×640 pixel,結果如表3所示。YOLOv7-SC模型占用內存除YOLOv5s外最小;浮點運算次數大幅低于除YOLOv5s外其他模型,相較于改進前的YOLOv7模型尺寸壓縮達23%;YOLOv7-SC模型在GPU上的檢測速度與YOLOv5s持平超過其他所有模型,檢測幀率達到57.5 幀/秒,可以滿足實時檢測要求,YOLOv5s和YOLOv7-SC的GFLOPs不同,但是FPS持平,其可能的原因是:GFLOPs是用來衡量算法復雜度的指標,FPS是反映模型推理速度的指標,但是計算復雜度不等于推理速度。Ma等[21]發現一些操作雖然不會增加GFLOPs,但會增加模型推理時間,例如YOLOv5s模型中大量殘差模塊使用的add操作和CBL層中的ReLU激活函數,雖然不會增加計算復雜度,但會增加內存訪問時間,而YOLOv7-SC模型使用更少的add操作,同時其使用的CvNX模塊不會在每個卷積層之后都添加激活函數,在部分替換ELAN-A模塊后,減少了激活函數的使用,從而提升了推理速度。YOLOv7-SC模型的檢測mAP(IoU=0.5)達到97.1%,超過其他所有模型。

表3 不同網絡模型檢測性能對比

以上模型在測試集部分圖像上的檢測結果對比如圖11所示,圖例為4架無人機編隊,部分目標與背景區分度較低,檢測難度較高。Faster R-CNN模型僅檢測到1個目標,ResNet50-csp、YOLOv3、YOLOv3-spp、YOLOv4和YOLOv5s模型均存在不同程度的漏檢,YOLOv5l、YOLOr-csp和YOLOv7、YOLOv7-SC模型均檢測出全部目標,其中YOLOv7與YOLOv7-SC模型預測框定位較精確,YOLOv7-SC模型檢測到的目標置信度更高。

圖11 不同模型在測試集部分圖像上的檢測結果Fig.11 Detection results of different models on some images in the testset

3.3.3 消融實驗

為了進一步驗證YOLOv7-SC模型中各種改進方法的有效性,通過消融實驗對比各改進模塊對模型的影響(√代表進行此項改進,×代表未進行此項改進)。消融實驗結果如表4所示,加入CvNX模塊的模型命名為YOLOv7-1模型,在此基礎上引入SimAM注意力的模型命名為YOLOv7-2模型,在YOLOv7-2模型中應用SIoU-Loss損失函數的模型為YOLOv7-3模型,同時具備4項改進的為YOLOv7-SC模型。從表中數據可以看出,加入CvNX模塊后的YOLOv7-1模型檢測速度較初始模型提高20.1幀/秒,mAP下降1.3%;在此基礎上引入SimAM注意力的YOLOv7-2模型較YOLOv7-1模型mAP提升2.4%,檢測速度降低1幀/秒;應用SIoU-Loss損失函數的YOLOv7-3模型較YOLOv7-2模型mAP提升0.3%,檢測速度降低1.7幀/秒;同時應用4項改進策略的YOLOv7-SC模型,AP達到了97.1%,檢測速度降低2幀/秒。上述實驗結果表明,CvNX模塊雖然帶來了一定的精度損失,但是大幅提高了模型檢測速度,提升程度為46%,同時壓縮模型尺寸,降低計算復雜度,引入SimAM注意力彌補了提升檢測速度帶來的精度損失且沒有給模型帶來額外的負擔,SIoU-Loss損失函數和SIoU-NMS的應用進一步提升了模型檢測精度??傮w來看,最終在保證模型檢測精度較高的同時,一定程度上實現了模型輕量化。

表4 消融實驗結果

4 結束語

針對空中飛行物檢測困難的問題,本文提出了一種基于改進YOLOv7算法的低空飛行物目標檢測模型YOLOv7-SC,通過引入SimAM注意力機制提高了對重要特征的提取能力;構建CvNX模塊節約算力的同時提高了推理速度;使用SIoU-Loss同時考慮到角度損失、距離損失、形狀損失和IoU損失,加快模型收斂速度;SIoU-NMS降低了由于目標聚集造成遮擋進而導致漏檢的概率。在低空飛行物數據集上實驗結果表明,本文提出的YOLOv7-SC模型,識別準確率為98.5%,檢測mAP為97.1%,檢測速度達到57.5幀/秒。與Faster R-CNN、ResNet50-csp、YOLOv3、YOLOv3-spp、YOLOv4、YOLOv5l、YOLOv5s、YOLOr-csp和YOLOv7模型相比,較好地平衡了檢測精度與檢測速度,兼顧了檢測實時性和檢測精度,降低了模型部署難度,具有更好的檢測性能。

猜你喜歡
低空飛行注意力損失
讓注意力“飛”回來
胖胖損失了多少元
江西通航旅游現狀剖析及對策研究
玉米抽穗前倒伏怎么辦?怎么減少損失?
戰機低空飛行嚇得母雞不下蛋
低空飛行物防護系統(天盾系統)——我國首個固定基站式核設施低空防護驗證示范系統通過驗收
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
我國低空飛行氣象服務需求分析與思考
一般自由碰撞的最大動能損失
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合