王 正,周孟然
(安徽理工大學 1.計算機科學與工程學院;2.電氣與信息工程學院,安徽 淮南 232001)
隨著無人機技術的快速發(fā)展,無人機的使用成本逐漸降低,使得“無人機+目標檢測”技術在諸多領域如公共安全、生態(tài)保護、智慧交通等發(fā)揮著重要作用。與水平視角自然場景的圖像相比,無人機航拍視角下的圖像由于飛行高度、拍攝角度、機體振動等因素的干擾,使得采集到的圖像存在小尺度物體數(shù)量多、物體密集、目標紋理不清晰、背景復雜等問題[1]。此外,隨著無人機高度的增加,圖像中場景覆蓋范圍不斷增加,目標尺度的變化逐漸明顯,使得目標特征弱化。這些問題會使得航拍圖像目標檢測任務更加困難。因此,為滿足實際應用場景需求設計出一種可用于航拍圖像目標檢測任務的算法是至關重要的。
基于深度學習的目標檢測算法可分為兩種:第一種是以Faster RCNN[2]為代表的基于候選區(qū)域的雙階段檢測算法,檢測精度高但速度過慢;第二種是以YOLO系列[3-6]以及SSD[7]為代表的基于端到端的單階段檢測算法,網(wǎng)絡簡單運行速度快,具有較高的實時性,經(jīng)過適當?shù)母倪M,能具有更好的檢測精度和實時性。曹小喜等[8]改進主干特征提取網(wǎng)絡,并引入空間金字塔網(wǎng)絡,實現(xiàn)對目標的高精度實時檢測。于曉等[9]改進C3模塊以及加入注意力機制,增加了檢測精度。與兩階段算法相比,一階段算法更能滿足航拍圖像目標檢測的需求。在航拍圖像目標檢測算法中,徐堅等[10]在YOLOv5網(wǎng)絡基礎上添加可變形卷積模塊,設計特征平衡金字塔,利用像素重組構(gòu)建底層大尺度特征,并提出交叉自注意力模塊,改善嚴苛條件下錯檢漏檢問題。劉樹東等[11]提出一種基于倒置殘差注意力的無人機航拍圖像小目標檢測算法模型,設計倒置殘差注意力C3模塊、多尺度特征融合模塊以及馬賽克混合數(shù)據(jù)增強方法,提升無人機航拍圖像的檢測精度。李子豪等[12]提出自適應協(xié)同注意力機制模塊嵌入到主干網(wǎng)絡與特征增強網(wǎng)絡,并重新優(yōu)化設計對主干網(wǎng)絡、特征增強網(wǎng)絡和檢測頭尺寸,通過大尺度檢測頭中數(shù)量多且密集的錨框提升定位精度。上述算法應用于航拍圖像目標檢測場景中,仍然存在檢測精度較低、模型參數(shù)計算量較大的問題。為滿足航拍圖像目標檢測算法的要求,準確檢測出目標信息。以YOLOv5s為基礎,從Backbone網(wǎng)絡、Neck網(wǎng)絡和Head輸出層、損失函數(shù)三個方面進行改進,從而提高對小目標的檢測精度。
YOLOv5算法吸取了許多優(yōu)秀網(wǎng)絡的優(yōu)點,是當前具備良好檢測性能的算法之一。相較于其他三個版本,YOLOv5s結(jié)構(gòu)簡潔,運行速度快,計算資源消耗最少,因此選擇YOLOv5s作為基線網(wǎng)絡。
YOLOv5s算法由Input、Backbone、Neck和Head四部分組成,如圖1所示。輸入端會對輸入的圖像數(shù)據(jù)進行預處理,首先對幾張圖像進行隨機的裁剪拼接,用以充分利用數(shù)據(jù)集,提升訓練速度。然后在模型訓練中,會根據(jù)數(shù)據(jù)集自適應的計算出最佳的錨框。最后將圖像數(shù)據(jù)調(diào)整為統(tǒng)一大小輸入至Backbone網(wǎng)絡中。Backbone網(wǎng)絡主要由卷積模塊CBS、特征提取模塊C3和空間金字塔池化SPPF模塊組成,能從輸入的圖像數(shù)據(jù)中提取出特征信息。Neck網(wǎng)絡是由FPN和PAN構(gòu)成的,FPN通過自深向淺的路徑結(jié)構(gòu)增強語義特征,PAN通過自淺向深的路徑結(jié)構(gòu)增強位置特征。兩者將不同階段的特征圖進行特征融合,從而提升網(wǎng)絡對目標的多尺度檢測性能。Head輸出層主要是對Neck層的三個輸出進行卷積操作,然后在不同尺度的特征圖上應用錨框進行結(jié)果的預測。
圖1 YOLOv5s網(wǎng)絡結(jié)構(gòu)
為提升航拍場景下目標的檢測性能,提出了一種基于注意力機制與特征融合的航拍圖像小目標檢測算法,其網(wǎng)絡結(jié)構(gòu)如圖2所示。航拍圖像輸入的信息較多目標小,需要獲取高質(zhì)量的全局信息,在Backbone網(wǎng)絡中嵌入多頭自注意力機制(Multi-Head Self-Attention, MHSA)[13],能夠有效整合全局特征信息,挖掘到更多有效的特征信息;為了避免尺度不一特征信息利用不充分,在Neck網(wǎng)絡添加小目標檢測層與加權(quán)雙向特征金字塔(Bidirectional Feature Pyramid Network, BiFPN)[14]實現(xiàn)深層語義和淺層語義的多尺度融合,再引入自適應空間特征融合(Adaptively Spatial Feature Fusion, ASFF)[15]模塊,提高不同尺度特征圖的識別精度;然后,在特征融合網(wǎng)絡中添加Coordinate attention(CA)[16]注意力機制,降低背景對小目標的干擾,提升對小目標檢測的精度;最后,使用損失函數(shù)MPDIoU(Intersection over Union with Minimum Points Distance)[17],改善模型對小目標檢測的準確性。
圖2 改進后的YOLOv5s網(wǎng)絡結(jié)構(gòu)
在航拍圖像中,存在著背景復雜、目標密集且小目標較多等問題,不利于網(wǎng)絡對航拍圖像特征信息的提取。近年來計算機視覺逐漸成熟,注意力機制模塊通過融合不同卷積核的特征,讓模型集中在需要關注的區(qū)域,能夠大大提高基線模型在目標檢測中的性能。基于此,在YOLOv5s的Backnone網(wǎng)絡中嵌入多頭自注意力模塊(MHSA),集合了CNN和自注意力機制各自的優(yōu)勢,利用卷積進行空間下采樣,將注意力機制集中在低分辨率上,具有捕獲大范圍圖像特征信息的能力,能夠更好地利用全局上下文信息,高效地提取特征信息。
多頭注意力機制如圖3所示。將輸入的特征圖分別進行1×1的逐點卷積,從而得到查詢矩陣q、鍵矩陣k和值矩陣v;同時引入垂直和水平方向上的相對位置編碼Rh和Rw,進行矩陣求和運算,得到位置矩陣r,使用相對位置編碼的注意力操作可以將位置感知與目標之間的信息相關聯(lián);然后,將鍵矩陣k和位置矩陣r逐個與查詢矩陣q進行矩陣乘法運算,得到含有不同注意力信息的矩陣qkT和qrT。再對矩陣qkT和qrT經(jīng)過求和操作后,使用softmax函數(shù)運算處理,將得到的結(jié)果與值矩陣v做乘積,得到輸出。通過使用MHSA模塊,可以讓網(wǎng)絡在密集的場景中檢測效果更好,檢測精度也能得到進一步的提高。
圖3 MHSA多頭自注意力機制
2.2.1 添加小目標檢測層和BiFPN
航拍圖像檢測大部分是小目標,因此目標的類別與位置對于小目標檢測至關重要。在淺層分辨率較高的特征圖中,往往保留著更豐富的小目標位置信息;在深層分辨率較低的特征圖中,往往保留著大目標特征復雜的語義信息。所以在YOLOv5s的原有基礎上添加小目標檢測層,通過增加卷積和上采樣操作,使特征圖進一步擴大,同時也增強不同尺度之間特征圖的關聯(lián),加深更淺層的位置信息與深層的語義信息的結(jié)合,使網(wǎng)絡對特征圖的小目標更加敏感,進而得以提升對小目標特征信息的利用率。
YOLOv5s的Neck網(wǎng)絡部分采用FPN和PAN的組合結(jié)構(gòu),FPN結(jié)構(gòu)通過自深向淺的路徑結(jié)構(gòu)實現(xiàn)深層特征圖到淺層特征圖的語義融合,PAN結(jié)構(gòu)通過自淺向深的路徑結(jié)構(gòu)使得預測特征圖同時包含語義信息和位置信息,大大提高了目標的檢測精度。在特征融合過程中雖然PAN對輸入的不同尺度特征是同等對待的,但是事實上它們對于最終輸出的貢獻是不同的。并且PAN結(jié)構(gòu)的輸入大部分是FPN處理后的特征信息,沒用從Backbone網(wǎng)絡中獲取原始的特征信息,可能會造成模型的優(yōu)化方向出現(xiàn)偏差,影響最終的檢測效果。因此,引入一種新的特征融合方法BiFPN。首先,BiFPN會刪除只有一個輸入特征圖的節(jié)點來簡化結(jié)構(gòu),并將刪減節(jié)點的輸入特征圖作為下一級特征圖的輸入;然后,在相同尺度的兩個節(jié)點之間通過添加更淺層的特征圖,以融合不同尺度的特征。BiFPN結(jié)構(gòu)如圖4所示。
圖4 BiFPN結(jié)構(gòu)
BiFPN通過對權(quán)重的控制來把控不同輸入特征信息的學習程度,考慮到訓練性能的差異,采用快速歸一化法,將權(quán)值歸一化到0~1之間,訓練速度快、效率高,如式(1)所示。
(1)
式(1)中,wi、wj表示經(jīng)過網(wǎng)絡訓練的權(quán)重,ε用于保持整體結(jié)果的穩(wěn)定性,為一個常數(shù),Ii為圖像輸入的特征,Out為融合結(jié)果,從而實現(xiàn)對不同尺度特征圖進行加權(quán)特征融合。
在添加小目標檢測層后,相應的檢測層輸出也會增加一個,大小分別為160×160、80×80、40×40和20×20,從而可以獲取更大的特征圖用于小目標檢測。
2.2.2 自適應空間特征融合
自適應空間特征融合(ASFF)是一種采用數(shù)據(jù)驅(qū)動的金字塔特征融合方式,學習了空間過濾沖突信息用以抑制梯度反傳時不一致,從而增強了特征的尺度不變性,且不會過大的增加計算開銷。不同尺度特征的不一致性會降低特征金字塔的有效性,干擾訓練過程中的梯度計算。航拍圖像背景復雜且不斷變化,會帶來較大的背景噪聲。因此,模型網(wǎng)絡需要一個功能強大的特征融合模塊。在特征金字塔網(wǎng)絡輸出端后引入ASFF模塊,對輸出的多尺度特征圖進一步融合,能改善不同尺度下目標的檢測效果。ASFF結(jié)構(gòu)在改進的YOLOv5s模型中的融合示意圖,如圖5所示。
圖5 ASFF結(jié)構(gòu)在改進網(wǎng)絡結(jié)構(gòu)的應用
X1、X2、X3、X4分別為從YOLOv5s的Backnone網(wǎng)絡中提取到的特征圖,Level1、Level2、Level3、Level4分別為從BiFPN結(jié)構(gòu)中獲得特征圖。以ASFF-2計算融合為例,通過利用ASFF算法融合得到ASFF-2。首先,對特征圖Level1進行卷積得到與特征圖Level2相同的通道數(shù);然后對與特征圖Level2相同通道數(shù)的特征圖進行上采樣,得到X1→2。對特征圖Level3、Level4通過卷積和下采樣操作調(diào)整通道數(shù)和尺度大小與Level2相同,得到X3→2、X4→2。對于特征圖Level2根據(jù)通道數(shù)調(diào)整,得到X2→2。再利用softmax函數(shù)對4個特征圖進行處理后,分別得到X1→2、X2→2、X3→2、X4→2的空間重要性權(quán)重α、β、γ、δ,最后進行ASFF融合計算,如式(2)所示。
(2)
2.2.3 CA注意力機制
坐標注意力機制(CA)是一種即插即用的靈活高效的注意力機制,該機制將位置信息嵌入到通道注意力中,讓模型集中在需要關注的區(qū)域,從而避免過多的計算開銷,CA注意力機制結(jié)構(gòu)如圖6所示。
圖6 CA結(jié)構(gòu)
為了改善2D全局池化導致的位置信息丟失,CA將2D全局池化操作替換為兩個并行的1D特征編碼過程。具體而言,對于輸入特征圖分別使用兩個池化核,在水平和豎直方向進行全局平均池化,進而得到在寬度和高度兩個維度的特征。然后將寬高維度的兩個特征圖進行拼接融合操作后再進行卷積運算,生成過渡的特征圖。對過渡的特征圖進行歸一化和非線性激活函數(shù)處理后,再次分為兩個單獨的特征圖;再使用卷積核大小為1×1的卷積調(diào)整通道數(shù)后,進行sigmoid函數(shù)處理,得到寬高維度上的注意力情況,最后與輸入特征圖相乘輸出,從而幫助網(wǎng)絡更準確地定位和識別目標區(qū)域信息。
針對航拍圖像特點,在特征融合網(wǎng)絡中C3的Bottleneck結(jié)構(gòu)后,添加CA注意力機制形成C3_CA模塊,結(jié)構(gòu)如圖7所示。該模塊可以有效抑制不必要的特征,保證淺層特征圖的特征信息并加強網(wǎng)絡對特征的提取能力,從而提高對小目標的檢測精度。
圖7 C3_CA結(jié)構(gòu)
通過上述改進措施,提高了航拍圖像目標檢測精度和整體識別效率。但是如果航拍圖像中目標出現(xiàn)密集現(xiàn)象,則整體檢測精度會降低。因為密集目標檢測的錨框相互重疊、遮擋,在進行非極大值抑制處理時部分重疊會被去除,從而導致漏檢情況。在以往的研究中,YOLOv5s采用CIoU loss[18]作為衡量邊界框的損失來解決這一問題。CIoU損失計算考慮到了邊界框的重疊面積、中心點距離和長寬比,但是對于長寬比仍然是一個模糊值。因此,本文選用MPDIoU作為邊界框回歸的損失函數(shù)。
MPDIoU采用邊界框幾何特性思想,利用邊界框的左上點和右下點確定預測框。MPDIoU計算過程如式(3)-式(5)所示。
(3)
(4)
(5)
(6)
使用MPDIoU作為邊界框回歸的損失函數(shù),邊界框回歸的所有因素都可以由預測框與真實框的左上點和右下點這四個點坐標確定,簡化了計算過程,從而改善邊界框回歸的訓練效果,提高收斂速度和回歸精度。
實驗使用Windows10操作系統(tǒng),GPU為NVIDIA GeForce RTX 3060,CPU為12th Gen Intel(R) Core(TM) i7-12700H,學習框架為torch 1.8.0+cu111。
實驗選取精確率(Precision)、網(wǎng)絡的參數(shù)量(Params)、FPS和整體平均精度均值(mAP)作為評價指標,通過數(shù)據(jù)對比和分析評估算法的有效性。AP為單個類別的平均精度,NC為類別總數(shù),mAP體現(xiàn)算法對所有目標類別的綜合檢測能力,以下實驗中mAP值是以IoU為0.5進行的。AP的計算與精確率、召回率相關,精確率和召回率由式(7)和式(8)計算得到,AP值相加再除以類別數(shù)得到mAP,AP和mAP計算過程由式(9)和式(10)得到。
(7)
(8)
(9)
(10)
式(7)-(10)中,TP是被預測為正樣本的正樣本,FP是被預測為正樣本的負樣本,FN是被預測為負樣本的正樣本,NC為類別個數(shù)。
實驗采用公開數(shù)據(jù)集VisDrone2019-DET用于改進算法模型的訓練和測試。該數(shù)據(jù)集是由天津大學AISKYEYE團隊利用無人機在國內(nèi)14個城市進行拍攝。其中訓練集6471張圖像,驗證集548張圖像,測試集1610張圖像,主要標注了人和常用交通工具等10個類別,分別為雨棚三輪車、面包車、人、卡車、自行車、汽車、三輪車、行人、公交車和摩托車,部分數(shù)據(jù)集示例如圖8所示。
圖8 部分數(shù)據(jù)集示例
相較于其他數(shù)據(jù)集,VisDrone2019-DET數(shù)據(jù)集由于無人機遠距離拍攝使得每張圖像中物體數(shù)量多、存在遮擋且小目標數(shù)量占比高,更適合用于反映無人機在實際應用場景的一般情況。
為驗證提出的在YOLOv5s算法中嵌入MHSA模塊,添加小目標檢測層和BiFPN,使用ASFF結(jié)構(gòu),添加CA以及將損失函數(shù)替換為MPDIoU改進算法模型的性能有效性,通過消融實驗在同等實驗條件下,驗證不同模塊對目標檢測算法的影響。實驗選用YOLOv5s作為基線算法。使用輸入圖像的分辨率為640×640,在訓練300個epoch后,結(jié)果如表1所示。
表1 消融實驗結(jié)果
航拍圖像中檢測目標大多較小,在YOLOv5s主干網(wǎng)絡中嵌入MHSA模塊后,能夠更好地利用全局上下文信息,提高小目標特征提取能力,精確率提升了2%,mAP提升了1%;在網(wǎng)絡結(jié)構(gòu)中添加小目標檢測層和BiFPN,并使用ASFF結(jié)構(gòu)優(yōu)化網(wǎng)絡結(jié)構(gòu),航拍圖像的檢測精度提升較為顯著,精確率提升了3.5%,mAP提升了5.9%;在算法網(wǎng)絡結(jié)構(gòu)更改后的特征融合網(wǎng)絡處的C3中添加CA注意力模塊,抑制不必要的特征保證淺層信息融合到特征圖中從而提升小目標特征圖融合能力,精確率提高了5.9%,mAP提高了6.7%;損失函數(shù)的改進在保證模型參數(shù)量不變的情況下,精確率提高了0.7%,mAP提高了1.3%。綜上所述,改進后的算法絕大多數(shù)指標都有優(yōu)勢,其中精確率提高了6.5%,mAP提高了7.8%,能夠證明改進后的算法在YOLOv5s的基礎上大幅提高了檢測精度。
為了驗證改進YOLOv5s算法所具有的優(yōu)勢,選擇與多種主流算法在VisDrone2019-DET數(shù)據(jù)集上進行對比,主要測試算法的檢測精度,結(jié)果如表2所示為各種算法對VisDrone2019-DET測試集10類目標的mAP值。改進后的算法的整體平均精度均值mAP40.5%,相較于原YOLOv5s算法mAP值提高了7.8%,檢測精度得到了較大的提高;相較于單階段的目標算法MixedYOLOv3-LITE[19],雙階段的Faster R-CNN[20]以及anchor-free的CornerNet[21]、CenterNet[22],檢測精度都有所提高;根據(jù)對比實驗可知,改進的算法能夠有效提高對航拍圖像小目標的檢測精度,使得算法在處理無人機航拍場景下目標檢測任務時具有更大的優(yōu)勢。
表2 對比實驗結(jié)果
為了驗證改進算法在實際應用場景中的檢測效果,選用VisDrone2019-DET測試集中背景復雜、目標密集、小尺度目標較多的具有挑戰(zhàn)性和代表性的圖像進行測試,并進行可視化對比,檢測效果如圖9所示。
(a)原始YOLOv5s(b)改進YOLOv5s圖9 檢測效果對比
通過圖9(a)組和(b)組第1行對比,能夠看出改進后的算法對航拍圖像中不同類別目標的檢測精度都有所提升;通過對比圖9(a)組和(b)組第2行能夠發(fā)現(xiàn),在夜晚和目標密集的場景下,相比于原始YOLOv5s算法,改進后的算法對圖像中小目標漏檢和誤檢更少。通過對比圖9(a)與(b)組的第3行圖像,可以看出改進后的算法對背景復雜場景下小尺度物體檢測效果更好。通過以上檢測效果分析,改進后的算法相比于原始YOLOv5s算法具有明顯的優(yōu)勢,檢測效果更好,展現(xiàn)出了良好的適應性和性能。
針對航拍圖像背景復雜、目標密集且小尺度目標較多等問題,在原算法基礎上通過在Backbone網(wǎng)絡中嵌入MHSA模塊,更好地利用全局上下文信息,提高網(wǎng)絡的檢測精度;然后更改網(wǎng)絡結(jié)構(gòu),添加小目標檢測層與BiFPN結(jié)構(gòu)減少語義信息和位置信息的丟失,再使用ASFF模塊,對輸出的特征圖進行再融合,提高特征的融合效率;在特征融合網(wǎng)絡中加入CA注意力機制形成C3_CA模塊,用以替換原C3模塊,增強網(wǎng)絡對特征的提取能力;引入MPDIoU函數(shù),改善邊界框回歸的訓練效果,提高回歸框的準確性。實驗證明,改進后的算法在VisDrone2019-DET數(shù)據(jù)集上相較于其他算法具有一定的優(yōu)勢,但由于網(wǎng)絡結(jié)構(gòu)的更改,增加了訓練后模型推理的時間開銷。因此下一步工作將會放在更高效和輕量化地實現(xiàn)對小目標的檢測,在保證速度的前提下更好地應用在不同環(huán)境中。