吳明杰,云利軍,陳載清,鐘天澤
1.云南師范大學(xué) 信息學(xué)院,昆明 650500
2.云南省教育廳計算機(jī)視覺與智能控制技術(shù)工程研究中心,昆明 650500
隨著基于深度學(xué)習(xí)的目標(biāo)檢測技術(shù)快速發(fā)展,結(jié)合無人機(jī)航拍進(jìn)行目標(biāo)檢測的方法越來越普遍。如森林防火、樓道巡檢、農(nóng)業(yè)監(jiān)測等。無人機(jī)在檢測任務(wù)中提供了高空視角,但是高空視角的圖像會帶來目標(biāo)尺度變化大、目標(biāo)之間相互遮擋的問題,這將導(dǎo)致使用常規(guī)的目標(biāo)檢測算法在進(jìn)行檢測任務(wù)時出現(xiàn)誤檢漏檢問題。因此研究出一個針對無人機(jī)視角下的小目標(biāo)檢測算法模型成為關(guān)鍵的研究內(nèi)容之一。
近幾年以來,伴隨深度學(xué)習(xí)技術(shù)的快速發(fā)展,國內(nèi)外的研究學(xué)者逐漸將深度學(xué)習(xí)技術(shù)應(yīng)用于目標(biāo)檢測。韓玉潔等人[1]在YOLO上進(jìn)行數(shù)據(jù)增強(qiáng),修改激活函數(shù),添加CIoU,修改后模型精度有所提升,但模型內(nèi)存占用過大;丁田等人[2]加入注意力以及CIoU,加快了模型收斂的速度,增加檢測準(zhǔn)確率,但也增加了計算成本;冒國韜等人[3]對YOLOv5s算法引入多尺度分割注意力,以應(yīng)對小目標(biāo)背景復(fù)雜及特征提取困難等問題,雖然檢測精度有一定提升,但是犧牲了參數(shù)量;Zhu等人[4]在YOLOv5模型中引入CBAM注意力機(jī)制以解決航拍圖像目標(biāo)模糊的問題,但是改進(jìn)后的模型對硬件性能要求較高,不易實現(xiàn);Yang等人[5]在YOLOv5網(wǎng)絡(luò)的頸部增加上采樣,形成用于收集小目標(biāo)特征的特征圖,增強(qiáng)了算法的小目標(biāo)檢測能力,但改進(jìn)后的算法提取到的小目標(biāo)特征信息較少,且檢測速度較慢,實時性不足以滿足實際需求。
為了增強(qiáng)YOLOv5s模型對小目標(biāo)特征捕獲的靈活度、緩解特征圖經(jīng)過多次降采樣后信息的丟失、提高模型檢測頭的表示能力、解決回歸計算時誤差太大的問題,本文提出了一種基于YOLOv5s的無人機(jī)航拍小目標(biāo)改進(jìn)算法BD-YOLO。主要貢獻(xiàn)如下:
(1)在模型的11層與12層之間加入雙向路由注意力(bi-level routing attention,BRA)[6],在不增加過多參數(shù)量的同時,提升模型在特征提取時對小目標(biāo)區(qū)域的關(guān)注度和精確度。
(2)將原模型的目標(biāo)檢測頭部替換成帶自注意力機(jī)制的檢測頭部(dynamic head,DyHead)[7],提高模型檢測層的表示能力,以應(yīng)對特征圖進(jìn)行多次下采樣后特征信息嚴(yán)重丟失的問題。
(3)使用Focal-EIoU[8]優(yōu)化CIoU在進(jìn)行預(yù)測框回歸計算時誤差較大的問題,提高模型在背景復(fù)雜的圖像中對小目標(biāo)檢測的魯棒性。
目前針對“小目標(biāo)”的定義主要有兩種:一種是絕對尺寸,尺寸小于32×32的目標(biāo)被認(rèn)為是小目標(biāo);另一種是相對尺寸,根據(jù)國際光電工程學(xué)會定義,小目標(biāo)為256×256像素的圖像中成像面積小于80像素的目標(biāo),即目標(biāo)的尺寸小于原圖的0.12%則可被認(rèn)為是小目標(biāo)[9]。小目標(biāo)的檢測一直是目標(biāo)檢測中一個具有挑戰(zhàn)性的難題,對于圖像特征的深刻理解是提升小目標(biāo)檢測效果的前提。近年來產(chǎn)生了許多有用的方法來提高小目標(biāo)檢測的性能。
針對小目標(biāo)檢測的難點,Chen等人[10]提出了Stitcher方法,采用損失函數(shù)作為反饋,當(dāng)小目標(biāo)貢獻(xiàn)過小時,則在下一次迭代中通過圖片拼貼的方式提高小目標(biāo)占比以提高小目標(biāo)訓(xùn)練效果。Kisantal等人[11]通過復(fù)制粘貼小目標(biāo)來提高在數(shù)據(jù)集中所占比例,從而提高小目標(biāo)對網(wǎng)絡(luò)的貢獻(xiàn),提升模型對小目標(biāo)的檢測效果。由于小目標(biāo)在圖像中的占比較小,而數(shù)據(jù)增強(qiáng)中簡單的拼貼可以幫助小目標(biāo)增加其在圖像中占比,可以在一定程度上提高模型對小目標(biāo)的檢測效果,但是數(shù)據(jù)增強(qiáng)只是簡單增加目標(biāo)的比例,并不會提高對深層語義信息的利用。
由于小目標(biāo)的尺寸較小且利用信息少,因此可以利用上下文信息的方式來增強(qiáng)模型的檢測能力。李青援等人[12]在SSD模型中引入一條自深向淺的遞歸反向路徑,通過特征增強(qiáng)模塊將深層包含上下文信息的語義特征增強(qiáng)到淺層。但是,并不是所有的上下文信息都是有效的,當(dāng)圖像中缺少與目標(biāo)關(guān)聯(lián)較高的信息時,會產(chǎn)生冗余的信息噪聲。
目標(biāo)檢測從早期的傳統(tǒng)方法到目前基于深度學(xué)習(xí)的方法,發(fā)展已經(jīng)有21年。當(dāng)前基于深度學(xué)習(xí)的目標(biāo)檢測算法有兩種:第一種是以Faster RCNN[13]為代表的二階段檢測算法等,該類模型首先利用算法生成預(yù)選框,再使用深度卷積網(wǎng)絡(luò)對預(yù)選框進(jìn)行檢測類別的分類,二階段檢測算法獲得的精度更高,但速度較慢,不能滿足實時性要求較高的場合;第二種是以YOLO[14]、YOLOv3[15]、YOLOv4[16]、YOLOv5以及SSD[17]為代表的單階段檢測算法,通過將檢測框的定位和分類任務(wù)結(jié)合到一起,以達(dá)到快速檢測出目標(biāo)位置的效果,通過適當(dāng)?shù)母倪M(jìn)可同時具有更好的實時性與檢測精度。
YOLOv5屬于一種單階段的目標(biāo)檢測算法,可以實現(xiàn)端到端目標(biāo)檢測,運行速度快,但是在檢測精度上相較于二階段的RCNN算法略低。YOLOv5一共有4個版本:YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,四個版本的區(qū)別在于網(wǎng)絡(luò)的深度和寬度,YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)是YOLOv5系列中深度最小且特征圖的寬度最小的。另外三種都是在YOLOv5s基礎(chǔ)上不斷加深、不斷加寬。YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)較簡潔,運行速度也最快,對于小目標(biāo)應(yīng)用場景的考慮,本研究選擇使用YOLOv5s模型。其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv5s結(jié)構(gòu)Fig.1 YOLOv5s structure
YOLOv5s模型的網(wǎng)絡(luò)結(jié)構(gòu)中,可分為輸入端、Backbone網(wǎng)絡(luò)、Neck網(wǎng)絡(luò)、Head輸出層4個部分。
(1)輸入端:輸入端對輸入進(jìn)來的圖像進(jìn)行一個Mosaic數(shù)據(jù)增強(qiáng)處理,首先對幾張圖像進(jìn)行隨機(jī)縮放、剪裁、排布,然后將圖像進(jìn)行隨機(jī)拼接,如圖2所示。通過Mosaic處理后不僅可以豐富數(shù)據(jù)集,還可以提升模型訓(xùn)練的速度。YOLOv5s算法會針對不同類型的數(shù)據(jù)集自適應(yīng)計算出最佳的錨點框。
圖2 Mosaic數(shù)據(jù)增強(qiáng)Fig.2 Mosaic data enhancement
(2)Backbone網(wǎng)絡(luò):YOLOv5s的Backbone網(wǎng)絡(luò)中由CSP[18]、CBS和SPPF模塊組成,分別為特征提取模塊、卷積模塊和空間金字塔池化模塊。CSP結(jié)構(gòu)分為兩類:CSP1_X、CSP2_1,其中,Resx模塊中有兩種模式,一種是卷積之后使用shortcut與初始輸入相加后輸出,另一種是卷積之后直接輸出,如圖3所示。CBS由Conv、BN歸一層和Leaky relu激活函數(shù)組成,如圖3所示。該版本的SPPF模塊進(jìn)行多個5×5的MaxPool2d操作,不再使用原先的1×1,5×5,9×9,13×13的最大池化,這樣可以提高模型的推理速度。
圖3 CSP和CBS結(jié)構(gòu)Fig.3 Structure of CSP and CBS
(3)Neck網(wǎng)絡(luò):Neck由特征金字塔網(wǎng)絡(luò)(feature pyramid network,F(xiàn)PN)[19]和路徑聚合網(wǎng)絡(luò)(path aggregation network,PAN)[20]組成。FPN自頂向下傳達(dá)強(qiáng)化語義特征,PAN自底向上傳達(dá)強(qiáng)化位置特征,F(xiàn)PN+PAN的結(jié)構(gòu)將不同階段的特征圖進(jìn)行特征融合,提高了模型對小目標(biāo)檢測的精度。
(4)Head輸出層:Head的主體為三個Detect檢測器。當(dāng)輸入的圖像尺寸為640×640時,Head層先對Neck層的三個輸出進(jìn)行卷積操作,再在三個尺度分別為20×20、40×40、80×80的特征圖上生成對應(yīng)的預(yù)測框。
目前YOLOv5s模型仍然在大多數(shù)目標(biāo)檢測任務(wù)中發(fā)揮巨大的優(yōu)勢,但是由于YOLOv5s使用過多的超參數(shù)來優(yōu)化模型訓(xùn)練,因此模型訓(xùn)練的時間相對較慢。在檢測小目標(biāo)時,由于YOLOv5s特征提取網(wǎng)絡(luò)使用了較大的感受野,可能導(dǎo)致小目標(biāo)信息的丟失。在應(yīng)用場景中,YOLOv5s模型相對復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)需要更高的計算資源,在結(jié)合硬件環(huán)境部署模型時,將對硬件提出更高的要求。
計算復(fù)雜度是指模型進(jìn)行一次前向傳播所需要的浮點運算次數(shù),可以通過計算模型每層的計算量,然后求和得到整個模型的計算復(fù)雜度。對于YOLOv5s算法的復(fù)雜度,需要結(jié)合參數(shù)量、計算量、內(nèi)存需求和推理速度這幾個方面進(jìn)行考量。YOLOv5算法中4個不同版本的參數(shù)如表1所示。通常來說,一個模型的參數(shù)量越多模型越復(fù)雜。從表1可以看出,YOLOv5s相較于其他版本是最輕量級的模型。
表1 YOLOv5算法不同版本的參數(shù)Table 1 YOLOv5 algorithm different versions of parameters
根據(jù)小目標(biāo)檢測任務(wù)的特點,提出了針對小目標(biāo)檢測的BD-YOLO模型。引入動態(tài)稀疏注意力機(jī)制BRA來提高小目標(biāo)檢測精度,使用帶有注意力機(jī)制的檢測頭DyHead來提高模型的表達(dá)能力,以及采用更適合小目標(biāo)檢測的損失函數(shù)Focal-EIoU Loss來提高模型的預(yù)測精度。BD-YOLO算法結(jié)構(gòu)如圖4所示。
圖4 BD-YOLO結(jié)構(gòu)Fig.4 BD-YOLO structure
目前常用的注意力機(jī)制SE[21]、CA[22]、ECA[23]、CBAM[24]等,都是在一個全局范圍獲取重點關(guān)注的目標(biāo),將會導(dǎo)致計算復(fù)雜度較高以及消耗大量的內(nèi)存。為了提高模型特征提取能力,同時在不增加過多網(wǎng)絡(luò)計算復(fù)雜度的情況下,在模型的11層與12層之間添加一種動態(tài)稀疏注意力機(jī)制(bi-level routing attention,BRA),以實現(xiàn)更強(qiáng)大的特征提取能力,更靈活地計算分配和內(nèi)容感知。BRA注意力機(jī)制的原理如圖5所示。BRA先將輸入進(jìn)來的一張?zhí)卣鲌DX∈RH×W×C,劃分為S×S個不同的區(qū)域,每個區(qū)域包含個特征向量,即可將X變?yōu)?。通過線性映射獲得Q,K,Q,K,V的具體表達(dá)式如公式(1)~(3)所示:
圖5 BRA注意力原理Fig.5 BRA attention principle
其中,Wq,Wk,Wv∈RC×C,分別屬于query、key、value的投影權(quán)重。然后通過構(gòu)造一個有向圖找到不同鍵值對對應(yīng)的參與關(guān)系,最后應(yīng)用細(xì)粒度的token-to-token注意力操作,計算公式(4)如下:
其中,Kg和Vg是聚合后key和value的tensor,函數(shù)LCE(?)使用深度卷積參數(shù)化,在BD-YOLO模型的設(shè)計中所使用的參數(shù)值為5。BRA通過稀疏性操作直接省略最不相關(guān)區(qū)域的計算,以實現(xiàn)計算有效分配的目的。全局注意力與BRA注意力實現(xiàn)效果對比如圖6所示。
YOLOv5s模型只有三個檢測頭,當(dāng)該模型對小目標(biāo)進(jìn)行檢測時,對較小的目標(biāo)可能存在漏檢的現(xiàn)象。目前,許多研究學(xué)者會通過在原模型三層檢測層的基礎(chǔ)上增加到四層。俞軍等人[25]在YOLO模型中增加了一層專門針對于小目標(biāo)的檢測層,使得由更淺層的特征圖融合而來的特征圖具有更強(qiáng)大的語義信息和精確的位置信息。
在YOLOv5s模型中,主干網(wǎng)絡(luò)的輸出是一個三維張量,其維度為水平×空間×通道。因此,將YOLOv5s模型的檢測頭部替換為一種可同時實現(xiàn)尺度感知注意力、空間感知注意力和任務(wù)感知注意力統(tǒng)一的動態(tài)檢測頭DyHead(dynamic head),即在特征張量的每個特定維度上添加注意力機(jī)制。在檢測層上給定三維特征張量F∈RL×S×C,該注意力函數(shù)計算公式(5)如下所示:
其中,πL(?)、πS(?)、πC(?)分別是應(yīng)用在維度L、S、C上的三個不同的注意力函數(shù),這三種注意力順序應(yīng)用于檢測頭部,可以多次疊加使用。在BD-YOLO模型的設(shè)計中,使用了四組πL(?)、πS(?)和πC(?)模塊依次疊加,讓檢測頭具備更強(qiáng)的表示能力,從而提升算法對小目標(biāo)的檢測效果。DyHead結(jié)構(gòu)如圖7所示。
圖7 DyHead結(jié)構(gòu)Fig.7 DyHead structure
YOLOv5s模型使用CIoU Loss計算矩形框損失,其主要由三部分組成:預(yù)測矩形框位置的損失(Lbbox)、置信度的損失(Lobj)、分類損失(Lcls),CIoU Loss具體的計算公式如公式(6)所示:
CIoU Loss將重疊的面積、中心距離和矩形框的寬高比同時加入計算,提高了模型訓(xùn)練的穩(wěn)定性和收斂速度。但是,CIoU Loss并未真正表示出矩形框的高寬與其置信度的真實差異,這將會導(dǎo)致回歸預(yù)測的結(jié)果不夠精準(zhǔn)。
針對CIoU Loss的問題,將預(yù)測框的寬高分別考慮,使用了Focal-EIoU Loss,該損失函數(shù)由Focal Loss和EIoU Loss組合而成。Focal Loss將預(yù)測框的寬高拆分,分別與最小外界框的寬高作差值運算。EIoU Loss通過減小預(yù)測框和真實框?qū)捀呱系牟町?,使得收斂速度更快且有更好的定位結(jié)果,其具體的計算公式如公式(7)所示:
其中,LIoU、Ldis、Lasp分別為IoU損失、距離損失、高寬損失。在一張樣本圖片中,回歸誤差小的錨框數(shù)量遠(yuǎn)遠(yuǎn)少于誤差大的錨框數(shù)量,質(zhì)量較差的錨框會產(chǎn)生較大的梯度,這將會直接影響模型的訓(xùn)練效果。因此,在EIoU Loss基礎(chǔ)上添加Focal Loss,把高質(zhì)量的錨框與低質(zhì)量的錨框分開,計算公式如公式(8)所示:
其中,γ是用于控制曲線弧度的超參數(shù)。
損失函數(shù)Focal-EIoU Loss弱化了易回歸樣本的權(quán)重,使模型更專注于預(yù)測框與真實框重疊低的樣本,從而實現(xiàn)提高回歸精度的效果。
本文所使用的是公開數(shù)據(jù)集VisDrone2019[26],該數(shù)據(jù)集一共包含8 599張由無人機(jī)位于高空拍攝的靜態(tài)圖像,其中6 471張用于訓(xùn)練,548張用于驗證,1 580張用于測試。圖像類別包括行人、人、自行車、汽車、面包車、卡車、三輪車、遮陽篷-三輪車、公共汽車和摩托車,一共260萬個標(biāo)注信息。其中訓(xùn)練集實例數(shù)量分布如圖8所示。
圖8 訓(xùn)練集實例數(shù)量分布Fig.8 Instance distribution of train dataset
VisDrone2019數(shù)據(jù)集中的圖片尺寸有960×540和1 360×765兩種,各個實例的尺寸大小分布如圖9所示。從圖9中可以看出大部分目標(biāo)的尺寸的長寬比例小于整張圖像的0.1倍,滿足小目標(biāo)的相對尺寸定義。
圖9 目標(biāo)尺寸大小分布圖Fig.9 Object size distribution diagram
實驗所使用的預(yù)訓(xùn)練權(quán)重是由COCO數(shù)據(jù)集上進(jìn)行訓(xùn)練得到。訓(xùn)練模型過程中常用的優(yōu)化器有SGD、Adam、RMSProp等,優(yōu)化器的性能會影響訓(xùn)練的收斂速度和穩(wěn)定性。實驗中使用了SGD優(yōu)化器,并使用了表3中的訓(xùn)練參數(shù),以加快模型的收斂速度。為了實驗的公平性,每次實驗輪數(shù)設(shè)置為300 epoch。實驗軟硬件環(huán)境如表2所示,訓(xùn)練參數(shù)如表3所示。
表2 實驗配置Table 2 Experimental configuration
表3 訓(xùn)練參數(shù)Table 3 Training parameters
在模型檢測小目標(biāo)時,通常出現(xiàn)誤檢漏檢問題,因此評價一個模型的檢測效果是否精準(zhǔn),通常使用mAP@0.5、mAP@0.5:0.95,mAP指標(biāo)綜合了不同類別的精準(zhǔn)率(Precision,P)和召回率(Recall,R),是一個更加全面的評價指標(biāo)。在考慮模型檢測效果好壞的同時也需要考慮模型的大小。在評估模型大小時,通常使用模型的參數(shù)量和GFLOPs指標(biāo)。
(1)平均精度均值(mean of average precision,mAP),mAP@0.5是所有類別的IoU閾值在0.5時的平均檢測精度;mAP@0.5:0.95是以步長為0.05,計算IoU閾值在0.5~0.95之間的所有IoU閾值下的平均檢測精度。在目標(biāo)檢測中,mAP值越高,說明模型檢測效果越好。公式為:
其中,AveragePrecision(?)為某個類的平均精度,Num(?)為數(shù)據(jù)集所有類別的數(shù)量。
(2)精確率,指在所有檢測到的目標(biāo)中,真實的目標(biāo)數(shù)量與總檢測目標(biāo)數(shù)量之比。精確率公式為:
其中,TP表示真正例,即在檢測的結(jié)果中正確檢測出的目標(biāo)數(shù)量;FP表示假正例,即在檢測的結(jié)果中被錯誤檢測的目標(biāo)數(shù)量。
(3)召回率,指在所有真實的目標(biāo)中,被檢測到的目標(biāo)數(shù)量與總真實目標(biāo)數(shù)量之比。召回率公式為:
其中,F(xiàn)N表示假反例,即在正確的目標(biāo)中未被檢測出的目標(biāo)數(shù)量。
(4)參數(shù)量,可以用來評價模型大小和復(fù)雜度,是對每一層的權(quán)重參數(shù)數(shù)量進(jìn)行求和得到。當(dāng)參數(shù)量較小時,表示模型屬于輕量模型;當(dāng)模型參數(shù)量較大時,意味著能更好地捕獲特征,但是也消耗更多的存儲空間和計算資源。
(5)GFLOPs(floating point operations per second),代表模型在推理過程中一秒鐘內(nèi)執(zhí)行的浮點運算次數(shù),可以用來評估模型的計算復(fù)雜度和性能。
3.4.1 注意力機(jī)制對比實驗
在BRA注意力機(jī)制中使用了局部上下文增強(qiáng)項(local context enhancement,LCE)[27],函數(shù)LCE(?)使用了深度卷積進(jìn)行參數(shù)化。本文設(shè)計了實驗以探究不同參數(shù)值對模型檢測性能的影響。實驗數(shù)據(jù)為VisDrone2019數(shù)據(jù)集,基線模型為YOLOv5s。實驗結(jié)果如表4所示。
表4 LCE函數(shù)參數(shù)值對BD-YOLO性能的影響Table 4 Effect of LCE function parameter values on BD-YOLO performance
由表4可知,當(dāng)參數(shù)值設(shè)置為5時,模型的檢測性能可達(dá)到最優(yōu)的效果。當(dāng)參數(shù)值取1和3時,模型性能沒有提升的趨勢;當(dāng)參數(shù)值取5時,較基礎(chǔ)參數(shù)1的mAP@0.5和mAP@0.5:0.95指標(biāo)分別提升了0.011和0.006。當(dāng)參數(shù)值大于5時,精度值呈現(xiàn)出下降的趨勢。綜上實驗所得的結(jié)果,本文將函數(shù)LCE(?)的參數(shù)值設(shè)置為5。
為了驗證BRA注意力機(jī)制對小目標(biāo)檢測效果的有效性,將設(shè)計實驗使用參數(shù)值為5時的BRA與不同注意力進(jìn)行對比。基線模型為YOLOv5s,數(shù)據(jù)集為VisDrone2019,訓(xùn)練次數(shù)為300輪。實驗結(jié)果如表5所示。
表5 注意力機(jī)制對比試驗Table 5 Comparative experiment of attention mechanism
由表5可知,BRA注意力機(jī)制憑借其靈活的特征感知能力,使YOLOv5s模型的mAP@0.5指標(biāo)提升了0.007,對模型精度的影響明顯優(yōu)于其他注意力機(jī)制。CA、SE和CBAM注意力高度依賴通道內(nèi)的特征信息,由于小目標(biāo)在通道內(nèi)的信息相對較少,導(dǎo)致這類注意力很難準(zhǔn)確捕獲小目標(biāo)的特征。EMA注意力[28]通過平滑模型的注意力來減少噪聲,但是因為這種平滑性使得模型很難定位小目標(biāo)的位置。
3.4.2 DyHead檢測頭性能對比實驗
通過控制不同數(shù)量的DyHead塊進(jìn)行疊加,探究其對模型性能和計算成本的影響。實驗基線模型使用YOLOv5s,對基線模型分別疊加1、2、4、6、8、10個DyHead塊。其中,疊加個數(shù)為0的是基線模型。實驗結(jié)果如表6所示。
表6 DyHead疊加個數(shù)對模型性能的影響Table 6 Effect of number of DyHead superposition on model performance
從表6可看出,動態(tài)檢測頭DyHead隨著疊加個數(shù)的增加,精度也隨之增加,但是計算成本和參數(shù)量也有小幅度增加。本文將算法精度、復(fù)雜度和推理速度進(jìn)行綜合考慮,選擇將4個DyHead塊疊加集成入算法中,此時模型的平均精度達(dá)到0.292,參數(shù)量增加了0.56 MB,F(xiàn)PS僅降低了26.3%。
3.4.3 損失函數(shù)對比實驗
在BD-YOLO模型中所使用的損失函數(shù)是Focal-EIoU,為了驗證該損失函數(shù)對模型檢測小目標(biāo)的精度具有更好的提升效果,將對使用不同損失函數(shù)后的相同模型進(jìn)行對比。以YOLOv5s添加注意力機(jī)制BRA及修改了帶注意力的檢測頭為基礎(chǔ)的模型進(jìn)行對比實驗,訓(xùn)練300輪。實驗結(jié)果如表7所示。
表7 損失函數(shù)對比實驗Table 7 Loss function comparison experiments
由表7可知,在與其他損失函數(shù)相比,F(xiàn)ocal-EIoU雖然在GFLOPs和權(quán)重文件的大小上都有小幅度增加,但是對模型的檢測效果提升最大,說明損失函數(shù)Focal-EIoU更適合小目標(biāo)的檢測。
3.4.4 綜合對比實驗
為了體現(xiàn)BD-YOLO模型的優(yōu)越性,使用了目前較為流行的目標(biāo)檢測模型進(jìn)行對比,在相同的實驗環(huán)境配置與參數(shù)的情況下對VisDrone2019數(shù)據(jù)集進(jìn)行檢測,模型對比實驗結(jié)果如表8所示。
表8 模型對比實驗Table 8 Model comparison experiments
在檢測精度上,BD-YOLO模型在mAP@0.5、mAP@0.5:0.95和R上都具有較大的優(yōu)勢。mAP@0.5、mAP@0.5:0.95和R指標(biāo)分別為0.326、0.179、0.53。與近年來最新的檢測模型相比,BD-YOLO的檢測精度優(yōu)于YOLOv5n、TPH-YOLOv5、VA-YOLO和YOLOv8n,但不如YOLOv3和YOLOv8s這類相對較大的模型。
在算法復(fù)雜度上,YOLOv3的GFLOPs是BD-YOLO的5.6倍,參數(shù)量多了53.68 MB。YOLOv8s的精度雖然比BD-YOLO高,但是GFLOPs、參數(shù)量、權(quán)重文件大小分別比BD-YOLO大了0.9 GFLOPs、3.27 MB、6.4 MB。因此,BD-YOLO模型相對較低的計算復(fù)雜度和參數(shù)量,更有利于存儲和部署在邊緣設(shè)備上。
從表9可以看出,與其他模型相比,BD-YOLO在行人和人的目標(biāo)上的檢測精度是最高的,分別達(dá)到了42.6%和34.9%。在自行車、汽車、面包車、三輪車和摩托車類別上的檢測精度僅次于YOLOv3和YOLOv8s。
表9 類別對比實驗結(jié)果Table 9 Category comparison experiment results
綜上,BD-YOLO模型對比基線模型YOLOv5s有了明顯提升。與其他模型相比,在精度和復(fù)雜度上具有較大的優(yōu)勢。因此,說明本文的改進(jìn)是有效的。
3.4.5 消融實驗
為了證明本文提出的每個改進(jìn)模塊對于模型檢測能力的提升,將對不同模塊對模型檢測的效果做消融實驗進(jìn)行評估。以YOLOv5s為基線模型,在該模型上逐個添加改進(jìn)的模塊,首先添加注意力機(jī)制BRA,然后添加帶注意力的檢測頭DyHead,最后改用Focal-EIoU損失函數(shù)。數(shù)據(jù)集選用VisDrone2019,圖片大小設(shè)置為640×640,使用預(yù)訓(xùn)練權(quán)重加速訓(xùn)練,共訓(xùn)練300 epoch。
由表10可知,所改進(jìn)的模塊對模型檢測小目標(biāo)的準(zhǔn)確度均有提升。Baseline模型為無改進(jìn)的基線模型YOLOv5s,在Baseline上添加注意力機(jī)制BRA后,雖然參數(shù)量和GFLOPs分別增加了0.27 MB、10.6 GFLOPs,但是mAP@0.5提升了0.007,說明BRA過濾掉最不相關(guān)的區(qū)域并提高對有價值區(qū)域的關(guān)注,增強(qiáng)了模型定位小目標(biāo)的效果;將Baseline上的檢測頭改為DyHead,在mAP@0.5和mAP@0.5:0.95指標(biāo)上的提升最大,分別提高了0.028、0.016,說明檢測層帶有注意力機(jī)制將會大幅提升模型檢測小目標(biāo)的效果;使用Focal-EIoU Loss損失函數(shù),將高質(zhì)量的錨框和低質(zhì)量的錨框分開,會使得模型的檢測精度得到提升;最后,將BRA、DyHead和Focal-EIoU Loss同時作用于基線模型,在mAP@0.5和mAP@0.5:0.95指標(biāo)上較基線模型提升了0.062和0.037,雖然參數(shù)量和GFLOPs有所增加,但是屬于合理范圍。
表10 消融實驗Table 10 Ablation experiment
YOLOv5s算法和BD-YOLO算法的檢測結(jié)果如圖10所示,圖(a)和(c)為改進(jìn)前YOLOv5s算法檢測結(jié)果,圖(b)和(d)為改進(jìn)后的BD-YOLO算法的檢測結(jié)果。
圖10 檢測效果對比Fig.10 Comparison of detection effects
針對YOLOv5s模型對無人機(jī)高空航拍圖像的小目標(biāo)進(jìn)行檢測出現(xiàn)漏檢誤檢的問題,本文基于YOLOv5s模型提出了改進(jìn)的小目標(biāo)檢測模型BD-YOLO。首先,在網(wǎng)絡(luò)結(jié)構(gòu)中加入注意力機(jī)制BRA,提高對小目標(biāo)檢測區(qū)域的關(guān)注度;其次,將YOLOv5s中普通的檢測層改為使用帶有自注意力的檢測層DyHead,以改進(jìn)模型對小目標(biāo)的表示能力;最后將YOLOv5s中的損失函數(shù)CIoU Loss替換成Focal-EIoU Loss,從而進(jìn)一步提升模型的檢測效果。在數(shù)據(jù)集VisDrone2019的實驗結(jié)果表明,BD-YOLO模型對于小目標(biāo)的檢測效果都優(yōu)于其他的主流模型,在沒有添加過多參數(shù)量的情況下檢測精度達(dá)到了32.6%,可以說明本文改進(jìn)后的模型在無人機(jī)視角下的小目標(biāo)檢測效果具有優(yōu)勢。