王悅煒,焦良葆,2,高 陽
(1.南京工程學(xué)院 人工智能產(chǎn)業(yè)技術(shù)研究院,南京 211167;2.江蘇省智能感知技術(shù)與裝備工程研究中心,南京 211167)
軍事民生方面的遙感目標(biāo)檢測具有越來越重要的意義。遙感目標(biāo)檢測要求從復(fù)雜的遙感圖像中找到感興趣的目標(biāo),并精確地標(biāo)注目標(biāo)的位置和名稱[1]。同時(shí),由于遙感圖像的拍攝角度特殊,很大一部分遙感圖像是從高空俯視的角度進(jìn)行拍攝的,造成一幅遙感圖像中常會包含很多無用信息,這大大增加了檢測遙感目標(biāo)的難度[2]。
這就需要高精度和對遙感目標(biāo)檢測有針對性的優(yōu)化方法,但是遙感目標(biāo)的檢測除了拍攝角度問題,還存在著其他一些難題:由于小目標(biāo)覆蓋面積小、像素面積占比少、特征表達(dá)不充分、拍攝距離較遠(yuǎn)、圖像覆蓋范圍較大而導(dǎo)致的目標(biāo)形態(tài)畸變等特點(diǎn),使得基于遙感圖像的小目標(biāo)檢測面臨更大挑戰(zhàn)[3]。
隨著機(jī)器學(xué)習(xí)的快速發(fā)展,深度學(xué)習(xí)越來越多地應(yīng)用在目標(biāo)識別方面,圖像目標(biāo)識別技術(shù)也越來越先進(jìn)。當(dāng)前,目標(biāo)檢測的主流方法大致分為兩種:以R-CNN、Fast R-CNN、Faster R-CNN網(wǎng)絡(luò)為代表的兩階段目標(biāo)檢測以及以YOLO、SSD為代表的單階段目標(biāo)檢測[4]。由于兩階段目標(biāo)檢測在進(jìn)行圖像識別時(shí)需要先選出候選區(qū)域,再對選出的候選區(qū)域進(jìn)行調(diào)整分類,這就使得雙階段比單階段的檢測精度高,但同時(shí)檢測速度(FPS)大打折扣,并且隨著單階段檢測算法YOLO的不斷更新,單階段目標(biāo)檢測已經(jīng)能在保證較高檢測速度的同時(shí),兼顧良好的檢測精度。
在單階段目標(biāo)檢測中,檢測模型存在因目標(biāo)重疊帶來的漏檢、模型計(jì)算量大導(dǎo)致檢測速度較慢、損失函數(shù)GIOU_LOSS本身缺陷導(dǎo)致特殊情況下無法判斷預(yù)測框的位置狀態(tài),從而影響檢測精度等問題。為解決上述存在的問題,張?jiān)谱鬧5]等人使用DIoU-NMS,以及在空洞空間金字塔池化ASPP基礎(chǔ)上設(shè)置不同膨脹系數(shù)以獲得不同的感受野,得到了更好的信息增強(qiáng)檢測效果,提出了ASPP+模塊,減少了傳統(tǒng)NMS非極大值抑制對目標(biāo)的漏檢問題,提高了精度。成倩[6]提出了對yolov5檢測端的優(yōu)化,對于艦船等小目標(biāo)來說,專門負(fù)責(zé)大目標(biāo)的檢測頭并不能充分發(fā)揮作用,甚至?xí)τ谛∧繕?biāo)的檢測產(chǎn)生一定的干擾,所以將負(fù)責(zé)大目標(biāo)的檢測頭進(jìn)行移除,減少了不必要的計(jì)算量,在原網(wǎng)絡(luò)基礎(chǔ)上增加了檢測速度。張宏群[7]將yolov5s(you only look once v5s)中使用的GIOU_LOSS損失函數(shù)更換為CIOU_LOSS,避免了當(dāng)預(yù)測框在真實(shí)框內(nèi)的時(shí)候GIOU_LOSS損失函數(shù)無法判斷預(yù)測框的位置狀態(tài),進(jìn)而提升了檢測的精度。
隨著YOLO模型算法的不斷更新,對于遙感目標(biāo)的檢測不應(yīng)單單局限于艦船、車輛等單一的目標(biāo)。為了有效地對多種遙感目標(biāo)進(jìn)行檢測,本文通過對DOTA數(shù)據(jù)集中的游泳池、客機(jī)、直升機(jī)、戰(zhàn)斗機(jī)、運(yùn)輸機(jī)、網(wǎng)球場共6種待檢測目標(biāo)進(jìn)行學(xué)習(xí)并檢測,對yolov5s網(wǎng)絡(luò)模型的激活函數(shù)、小目標(biāo)檢測能力、任務(wù)檢測頭三方面進(jìn)行優(yōu)化。
基于YOLOv56.0版本改進(jìn)之后的YOLOv5s-MSY結(jié)構(gòu)如圖1所示。對YOLOv5來說共有5個(gè)不同的版本,根據(jù)模型的深度和寬度不同,分別是:YOLOv5l、YOLOv5m、YOLOv5n、YOLOv5s、YOLOv5x[8]。在這5種YOLOv5模型中,YOLOv5s模型相對于網(wǎng)絡(luò)最小,速度最快[9]。
圖1 YOLOv5s-MSY的網(wǎng)絡(luò)結(jié)構(gòu)圖
對于YOLOv5s-MSY網(wǎng)絡(luò)來說,結(jié)構(gòu)分為4個(gè)部分,分別是:輸入端、骨干網(wǎng)絡(luò)Backbone、頸部網(wǎng)絡(luò)Neck、預(yù)測網(wǎng)絡(luò)Prediction。首先,YOLOv5s-MSY網(wǎng)絡(luò)中的CBS模塊更換為CBM模塊,二者的區(qū)別在于在卷積Conv以及BN之后的激活函數(shù)不同,網(wǎng)絡(luò)的激活函數(shù)由SiLu(Sigmoid weighted liner unit)函數(shù)更換為梯度圖像更加平滑的Mish函數(shù),比原網(wǎng)絡(luò)更加方便讓大量遙感圖像信息深入流動,提升了檢測性能、模型泛化能力。其次,該網(wǎng)絡(luò)將空間金字塔由SPP改進(jìn)為SPPF,比SPP速度快上很多。在SPPF中,數(shù)據(jù)首先經(jīng)過CBM模塊,然后依次遞減的經(jīng)過3個(gè)MaxPool最大池化層,最后將4個(gè)支路通過concat疊加,最后再通過一個(gè)CBM模塊。在骨干網(wǎng)絡(luò)Backbone中取消了原本的Focus層,取而代之的是一個(gè)卷積。同時(shí)對于CSP1_X以及CSP2_X進(jìn)行了更新:CSP1_X中的一個(gè)分支首先經(jīng)過CBM模塊然后通過殘差網(wǎng)絡(luò),另外一個(gè)分支僅通過一個(gè)CBM模塊,然后兩個(gè)分支進(jìn)行concat疊加,最后再經(jīng)過一個(gè)CBM模塊,CSP1_X中的參數(shù)X指的是殘差網(wǎng)絡(luò)Resunit的數(shù)量。CSP2_X的兩個(gè)分支中一個(gè)分支通過CBM模塊,另外一個(gè)模塊首先經(jīng)過CBM模塊再經(jīng)過2*X個(gè)CBM模塊,然后兩個(gè)分支同樣經(jīng)過concat疊加,最后再通過一個(gè)CBM模塊。對于輸入端來說,YOLOv5s-MSY同樣使用了Mosaic(馬賽克)數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框計(jì)算、自適應(yīng)圖片縮放[10]。Mosaic數(shù)據(jù)增強(qiáng):通過隨機(jī)縮放、隨機(jī)裁剪、隨機(jī)排布的方式來拼接4張圖片[11],豐富了數(shù)據(jù)集,做到同時(shí)計(jì)算4張圖片數(shù)據(jù),減少了GPU;自適應(yīng)錨框計(jì)算:在設(shè)定了初始的預(yù)測框尺寸之后,與真實(shí)框的尺寸進(jìn)行對比,再反向更新網(wǎng)絡(luò)參數(shù);自適應(yīng)圖片縮放:自動計(jì)算輸入圖像最適合的縮放比例,減少由圖像填充帶來的黑邊干擾。在頸部網(wǎng)絡(luò)Neck方面,依舊采用了自上而下的 FPN 結(jié)構(gòu)和自底向上的 PAN 結(jié)構(gòu)[12],PAN結(jié)構(gòu)首先是在yolov4中提出的,在之前的yolov3中只使用FPN結(jié)構(gòu)。FPN+PAN這種結(jié)構(gòu)保證了在通過FPN將高層特征逐漸向底層傳達(dá)強(qiáng)語義特征的同時(shí),使用PAN將底層特征自下而上傳達(dá)強(qiáng)定位特征。最后,通過預(yù)測網(wǎng)絡(luò)Prediction中進(jìn)行對指定對象的識別預(yù)測。
為提升對復(fù)雜遙感目標(biāo)的檢測性能,在網(wǎng)絡(luò)中加入激活函數(shù):激活函數(shù)是神經(jīng)網(wǎng)絡(luò)的核心單元,給CNN網(wǎng)絡(luò)加入了非線性特性,大大提升了CNN網(wǎng)絡(luò)的學(xué)習(xí)能力[13]。
在YOLOv5之前的版本中,激活函數(shù)使用的是帶泄露修正線性單元函數(shù),即Leaky Relu激活函數(shù)[14],該函數(shù)表達(dá)式如式(1)所示,函數(shù)形狀如圖2所示,通常α=0.01,該函數(shù)在大于0的定義域上為y=x直線,梯度為1;在小于0的定義域上為非零數(shù)值。但是該激活函數(shù)存在著一些問題:LeakyRelu激活函數(shù)在定義域大于0、小于0兩個(gè)區(qū)間上都是線性分布的[15],而采用線性的激活函數(shù)就會影響模型對于一些非線性數(shù)據(jù)的表達(dá)能力;另外,因?yàn)長eakyRelu函數(shù)沒有上界,如果網(wǎng)絡(luò)單元輸出過大,或者網(wǎng)絡(luò)是循環(huán)結(jié)構(gòu)的,就會導(dǎo)致梯度累積超過計(jì)算機(jī)的數(shù)值上限,造成“梯度爆炸”現(xiàn)象,由于遙感目標(biāo)數(shù)據(jù)量大的特點(diǎn),這種情況極容易發(fā)生。為改善上述情況,本文使用Mish激活函數(shù),Mish表達(dá)式如式(2)所示,函數(shù)形狀如圖3所示:
圖2 LeakyRelu激活函數(shù)形狀以及梯度
圖3 Mish激活函數(shù)形狀以及梯度
LeakyRelu=max(αx,x)
(1)
(2)
在YOLOv5網(wǎng)絡(luò)當(dāng)中,激活函數(shù)由LeakyRelu函數(shù)更換為SiLU函數(shù),該函數(shù)可在負(fù)數(shù)域?qū)?shù)據(jù)進(jìn)行擬合[16]。此處改進(jìn)的Mish激活函數(shù)與SiLU函數(shù)相似,SiLU函數(shù)表達(dá)式如式(3)所示,函數(shù)形狀如圖4所示,但是Mish函數(shù)對外有著更好的表現(xiàn)效果,下面以Mish函數(shù)進(jìn)行說明:首先,Mish函數(shù)非飽和,避免了因?yàn)轱柡投鴮?dǎo)致的梯度消失現(xiàn)象;存在下界,在負(fù)半軸有著較小的權(quán)重,即在負(fù)半軸Mish的輸出無限趨近于0但又不等于0,保留了少量的負(fù)信息,防止了有些激活函數(shù)在定義域小于0的范圍內(nèi)函數(shù)輸出為0,導(dǎo)致一些“網(wǎng)絡(luò)單元”始終不被激活,這種情況也被稱為“神經(jīng)元壞死”現(xiàn)象;函數(shù)自身具有正則化效果,對應(yīng)的梯度圖像更加平滑,這樣就更加容易地對其進(jìn)行優(yōu)化。同時(shí)隨著網(wǎng)絡(luò)逐漸加深,信息可以更深入地流動,提升了對遙感目標(biāo)檢測的泛化能力。
圖4 SiLU激活函數(shù)形狀以及梯度
(3)
現(xiàn)在的YOLOv5模型歸根到底使用的是CNN卷積神經(jīng)網(wǎng)絡(luò),所以YOLOv5會因?yàn)镃NN卷積神經(jīng)網(wǎng)絡(luò)本身的不足而存在一些弊端。卷積神經(jīng)網(wǎng)絡(luò)在對大目標(biāo)以及高分辨率圖像的識別已經(jīng)較為成功,但是早期的遙感圖像存在較多小尺寸、低分辨率的目標(biāo),這是因?yàn)檫b感的定義就是一切無接觸的遠(yuǎn)距離探測,導(dǎo)致遙感圖像存在背景復(fù)雜、目標(biāo)方向任意和目標(biāo)尺寸小等問題[17]。在待檢測的遙感目標(biāo)圖像中,小目標(biāo)與大目標(biāo)常常一起出現(xiàn)。
而CNN在圖像分辨率較低或物體較小時(shí),檢測性能迅速下降的原因是:CNN網(wǎng)絡(luò)使用的是卷積步長層(strided convolution)或卷積步長層+池化層。這導(dǎo)致在每一次進(jìn)行“卷積步長”操作之后,會伴隨著一些細(xì)微的信息丟失,造成學(xué)習(xí)特征不足,在進(jìn)行多次操作之后甚至?xí)沟眠b感圖像中一些較小的待檢測學(xué)習(xí)目標(biāo)的特征消失,網(wǎng)絡(luò)無法正常高效地對遙感目標(biāo)進(jìn)行學(xué)習(xí),這也就是CNN網(wǎng)絡(luò)對小尺寸、低分辨率遙感目標(biāo)檢測性能下降的原因。
在參考文獻(xiàn)[18]中,作者提出了一種新構(gòu)建的模塊,稱為SPD-Conv,這是由一個(gè)空間到深度(SPD)層與一個(gè)無步長卷積層組成。SPD層對輸入的遙感圖像特征進(jìn)行下采樣,與卷積步長層不同的是:SPD層保留了通道維度中的所有信息,有效避免了細(xì)微信息的丟失。作者將這種新型的組合方式成功應(yīng)用在整個(gè)CNN網(wǎng)絡(luò)。
SPD-Conv原理:
1)SPD模塊:對于大小為S*S*C1的中間特征圖X來說,屬于X的一系列子特征圖的尺寸如公式(4)所示(公式(4)、圖5均來自于文獻(xiàn)[18]):
圖5 scale=2時(shí)的SPD-Conv示意圖
f0,0=X[0:S:scale,0:S:scale],f1,0=
X[1:S:scale,0:S:scale],
......,
fscale-1,0=X[scale-1:S:scale,0:S:scale];
......
f0,scale-1=X[0:S:scale,scale-1:S:scale],f1,scale-1,......,
fscale-1,scale-1=X[scale-1:S:scale,scale-1:S:scale].
(4)
子特征圖一般來說可以認(rèn)為是從特征圖X中剝離出來的,因此子特征圖的w、h由可整除特征圖X的w、h的所有元素組成。Raja Sunkara、Tie Luo二人在文章中給出了當(dāng)scale=2時(shí)的例子,這里也按照scale=2的情況進(jìn)行解釋說明。例圖如圖5所示。
當(dāng)特征圖X輸入之后,按照scale=2對X進(jìn)行處理,由圖可看出,特征圖X尺寸為(S,S,C1),被分為了scale*scale=2*2=4個(gè)子圖,每一個(gè)子特征圖的尺寸為(S/2,S/2,C1)。之后,將這些子特征圖沿著通道進(jìn)行連接,得到了另外一個(gè)特征圖X1,X1的尺寸為(S/scale,S/scale,scale*scale*C1)=(S/2,S/2,4*C1),通道長度變?yōu)榱嗽瓉淼?倍。
2)無步長卷積層Non-strided Convolution:
在得到了中間特征圖X1之后,作者添加了一個(gè)帶有C2濾波器的無步長卷積層(stride=1),其中C2小于中間特征圖X1的通道數(shù):C2 無步長卷積層的作用是減少CNN網(wǎng)絡(luò)對遙感特征圖中特征的丟失,盡可能保留遙感圖片的特征信息,改善了網(wǎng)絡(luò)對遙感目標(biāo)檢測的性能。例如:使用stride=4的4*4卷積,特征圖在經(jīng)過該卷積操作之后尺寸會縮小,但是該卷積只會對原輸入特征圖中的每一個(gè)像素點(diǎn)信息只進(jìn)行一次采樣,這樣就會導(dǎo)致原始特征圖的特征丟失。由于遙感目標(biāo)中小目標(biāo)居多,小目標(biāo)中的圖像特征本身就要比大目標(biāo)的圖像特征要少,所以這種特征丟失相比于大目標(biāo),對遙感小目標(biāo)的影響更大。總的來說,只要卷積層的步長stride大于1就會導(dǎo)致圖片的特征丟失,這也是CNN網(wǎng)絡(luò)中的一種缺陷,使用SPD-Conv的無步長卷積層就是為了盡可能地減少特征丟失,這也就保證了網(wǎng)絡(luò)對遙感小尺寸、低分辨率目標(biāo)識別能力的提升。 在通常使用的目標(biāo)檢測網(wǎng)絡(luò)中執(zhí)行回歸和分類任務(wù)時(shí),系統(tǒng)常常共用一個(gè)檢測頭,即:二者對應(yīng)的檢測頭是耦合的。導(dǎo)致二者會被迫使用一些相同的數(shù)據(jù)參數(shù)值,造成準(zhǔn)確度下降以及收斂速度變慢。同時(shí),遙感目標(biāo)具有數(shù)量眾多、目標(biāo)小、訓(xùn)練參數(shù)大的特點(diǎn),共用檢測頭容易導(dǎo)致數(shù)據(jù)“混亂”,造成“數(shù)據(jù)擁堵”。所以將YOLOX(you only look once X)中的解耦頭[19]應(yīng)用在YOLOv5的模型中,以此來增加遙感目標(biāo)檢測的準(zhǔn)確度,YOLOX的解耦頭以及耦合頭的收斂速度如圖6所示(圖6、圖7均來自于文獻(xiàn)[20])。由圖可看出(Decoupledhead曲線位于YOLO head曲線上方),將YOLO的耦合頭部換成YOLOX中的解耦頭,大大提升了收斂速度。在YOLOX中回歸和分類任務(wù)分別使用不同的檢測頭,避免了由耦合檢測頭帶來的檢測性能下降。 圖6 耦合頭以及YOLOX解耦頭的收斂速度示意圖 圖7 耦合頭以及YOLOX解耦頭示意圖 同時(shí),由圖7可看出,分類、回歸分別使用解耦的頭部,可減少頭部耦合時(shí)帶來的任務(wù)沖突,防止“擁堵”,減輕了模型訓(xùn)練遙感目標(biāo)時(shí)的負(fù)擔(dān),優(yōu)化效果較好。 本實(shí)驗(yàn)所使用的數(shù)據(jù)集來自于DOTA遙感數(shù)據(jù)集,DOTA 數(shù)據(jù)集是用于對航拍圖像進(jìn)行目標(biāo)檢測的大型圖像數(shù)據(jù)集,其中的目標(biāo)涵蓋了各種各樣的規(guī)模、位置、形狀[21]。它可用于發(fā)現(xiàn)和評估航拍圖像中的物體。DOTA數(shù)據(jù)集無論從數(shù)量還是質(zhì)量上來說,比同類型數(shù)據(jù)集具有很大優(yōu)勢。為了使訓(xùn)練后的模型具有較好的泛化能力,共使用1 162張遙感數(shù)據(jù)圖,包含6種分類:客機(jī)(airplane)、直升機(jī)(helicopter)、運(yùn)輸機(jī)(transport plane)、戰(zhàn)斗機(jī)(warcraft)、游泳池(swimmingpool)、網(wǎng)球場(tenniscourt)。數(shù)據(jù)集原圖如圖8所示,共包含上述提及的6種待檢測目標(biāo)。 圖8 實(shí)驗(yàn)中所用數(shù)據(jù)集原圖 將已經(jīng)準(zhǔn)備好的數(shù)據(jù)集圖片放在images目錄中,通過LabelImg軟件進(jìn)行這6種類別的標(biāo)注,并將軟件標(biāo)注模式更改為YOLO,使標(biāo)圖產(chǎn)生的文件是YOLO網(wǎng)絡(luò)模型訓(xùn)練可以直接使用的txt格式,并保存在數(shù)據(jù)集images目錄的相同路徑的labels目錄中。然后將數(shù)據(jù)集按照訓(xùn)練集、驗(yàn)證集和測試集對應(yīng)數(shù)量為670、245、247進(jìn)行劃分。 本次實(shí)驗(yàn)的模型訓(xùn)練的平臺搭建在服務(wù)器上,相關(guān)配置如下:實(shí)驗(yàn)操作平臺為Ubuntu18.04、CPU為AMD Ryzen Threadripper 3970X、GPU為NVIDIA GeForce RTX 3090顯卡*3,顯存24 G,內(nèi)存128 G、軟件框架使用Pytorch、編程環(huán)境為Python語言。 模型訓(xùn)練的參數(shù)設(shè)置如下:輸入圖片大小(imgsz)為640*640、迭代輪數(shù)(epochs)為300輪、批次大小(batch-size)為48,本文中的所有實(shí)驗(yàn)均是在不加載相應(yīng)模型的預(yù)訓(xùn)練權(quán)重的情況下進(jìn)行。 實(shí)驗(yàn)采用的參數(shù)指標(biāo):查全率、查準(zhǔn)率(precision)、平均精度均值、訓(xùn)練所用的權(quán)重文件大小(MB)、檢測幀數(shù)(FPS)。部分指標(biāo)的計(jì)算公式如下所示: (5) (6) (7) (8) 上述公式中:TP(true positives)表示正確地將目標(biāo)判斷為正例;FP(false positives)表示錯誤地將目標(biāo)判斷為正例;FN(false negatives)表示錯誤地將目標(biāo)判斷為負(fù)例。其中P稱為查準(zhǔn)率,表示被檢測出的目標(biāo)當(dāng)中真實(shí)目標(biāo)所占的比例;R稱為查全率,表示被正確檢測出的目標(biāo)占所有正例的比例。因?yàn)椴闇?zhǔn)率、查全率二者通常有高有低、所以在二者變化不大的情況之下,以mAP(mean average precision)平均精度均值作為評判網(wǎng)絡(luò)精度的標(biāo)準(zhǔn)。其中,r1,r2…rn是按升序排列的Precison插值段第一個(gè)插值處對應(yīng)的Recall值。 2.5.1 目標(biāo)檢測算法對比 本階段,在已發(fā)表的有關(guān)遙感論文(文獻(xiàn)[22]、[23])的實(shí)驗(yàn)數(shù)據(jù)中,選取一些主流的目標(biāo)檢測算法進(jìn)行對比,兩階段:Faster-RCNN,單階段:SSD、YOLOv3、YOLOv4、YOLOv5s、YOLOX、YOLOv7。論文的實(shí)驗(yàn)數(shù)據(jù)如表1所示:不論是在平均精度均值mAP、查準(zhǔn)率,還是在網(wǎng)絡(luò)參數(shù)量、權(quán)重文件大小方面,使用YOLOv5s網(wǎng)絡(luò)檢測遙感數(shù)據(jù)集比其他網(wǎng)絡(luò)具有明顯的優(yōu)勢。 表1 主流目標(biāo)檢測算法對比 2.5.2 激活函數(shù)實(shí)驗(yàn) 為了證明更換Mish激活函數(shù)的有效性,該實(shí)驗(yàn)除了將YOLOv5s的激活函數(shù)由SiLU更換為Mish函數(shù),還分別使用Hardswish、FReLU、MetaAconC三種激活函數(shù)進(jìn)行對比,根據(jù)最終得到的實(shí)驗(yàn)數(shù)據(jù)進(jìn)行評價(jià),改進(jìn)激活函數(shù)實(shí)驗(yàn)結(jié)果如表2所示。使用Hardswish函數(shù)會得到相對最快的檢測速度,但是mAP要比使用Mish函數(shù)時(shí)低2%。對比FReLU、MetaAconC來說,雖然加入Mish函數(shù)的網(wǎng)絡(luò)在檢測速度上稍慢,但是在mAP方面提高了5.7%、4%,查準(zhǔn)率、查全率方面也都得到了提升。所以,將激活函數(shù)更換為Mish對網(wǎng)絡(luò)性能提升最為明顯。 表2 激活函數(shù)對比實(shí)驗(yàn)結(jié)果 2.5.3 消融實(shí)驗(yàn) 相比于YOLOv5s,YOLOv5s-MSY共有三點(diǎn)改進(jìn):由激活函數(shù)SiLU更換為Mish激活函數(shù)、在網(wǎng)絡(luò)模型中使用SPD-Conv模塊、將YOLOX的解耦頭應(yīng)用在YOLOv5s模型當(dāng)中。下面分別對單獨(dú)加入特定模塊、組合加入特定模塊做消融實(shí)驗(yàn),結(jié)果如表3所示。由表可知,單獨(dú)加入Mish激活函數(shù)時(shí),由于該函數(shù)梯度圖像更加平滑,帶來了網(wǎng)絡(luò)在mAP上1.4%的提升;單獨(dú)加入SPD-Conv模塊時(shí),由于該模塊提升了對小目標(biāo)、低分辨率目標(biāo)的檢測能力,帶來了mAP上2.3%的提升;單獨(dú)將YOLOX解耦頭加入到Y(jié)OLOv5網(wǎng)絡(luò)中時(shí),由于YOLOX解耦頭減少了檢測頭耦合時(shí)造成的任務(wù)沖突,在mAP變化不大情況下,帶來查準(zhǔn)率4.8%的提升。網(wǎng)絡(luò)在組合加入特定模塊時(shí)也都有著不同程度的提升。3個(gè)模塊均投入使用時(shí),將網(wǎng)絡(luò)命名為YOLOv5s-MSY,mAP提升了7%,檢測速度也提升了16.95%,相比于原網(wǎng)絡(luò)對于遙感目標(biāo)的檢測有較為明顯的優(yōu)勢。 表3 消融實(shí)驗(yàn)結(jié)果 為了能夠更加直觀地觀察YOLOv5s-MSY網(wǎng)絡(luò)的精度提升,本文利用原網(wǎng)絡(luò)以及YOLOv5s-MSY網(wǎng)絡(luò)對于測試集進(jìn)行目標(biāo)檢測。如圖9所示,圖9(a)和圖9(b)分別對應(yīng)不同網(wǎng)絡(luò)。 圖9 YOLOv5s網(wǎng)絡(luò)與YOLOv5s-MSY網(wǎng)絡(luò)效果對比圖 由圖可看出,改進(jìn)之前網(wǎng)絡(luò)對于運(yùn)輸機(jī)、客機(jī)、戰(zhàn)斗機(jī)常會存在誤檢行為,對于直升機(jī)、網(wǎng)球場、游泳池會存在漏檢行為。在使用改進(jìn)后的網(wǎng)絡(luò)進(jìn)行檢測時(shí),上述情況都有了改善,減少了誤檢、漏檢的行為,檢測效果較好。 2.5.4 較大目標(biāo)的對比實(shí)驗(yàn) YOLOv5s-MSY網(wǎng)絡(luò)相比于原始YOLOv5s網(wǎng)絡(luò)更加注重小目標(biāo)的學(xué)習(xí)。為了全面體現(xiàn)YOLOv5s-MSY的性能變化,再選出共200張目標(biāo)較大的遙感圖像進(jìn)行學(xué)習(xí),數(shù)據(jù)集按照6:2:2進(jìn)行分配,共有3個(gè)種類:田徑場(Groundtrack field)、公路環(huán)島(Roundabout)、棒球場(Baseball court)。實(shí)驗(yàn)結(jié)果如表4所示,改進(jìn)后mAP上升了19.31%、FPS下降了27.89%、查準(zhǔn)率下降了9%。由此看出,YOLOv5s-MSY對于較大的遙感目標(biāo)的檢測速度有所下降。 表4 較大目標(biāo)對比實(shí)驗(yàn) 由于遙感目標(biāo)的距離通常較遠(yuǎn),造成待檢測目標(biāo)較小、分辨率較低,導(dǎo)致YOLOv5s原網(wǎng)絡(luò)模型的檢測精度以及檢測速度的效果不好,且存在誤檢漏檢的問題,本文在YOLOv5s原網(wǎng)絡(luò)模型基礎(chǔ)上將激活函數(shù)更換為Mish,提升了模型的mAP;將YOLOX的解耦頭使用在YOLOv5s模型當(dāng)中,減少了耦合檢測頭的任務(wù)沖突,提高了模型的查準(zhǔn)率;在原模型當(dāng)中使用SPD-Conv模塊,很好地提升了網(wǎng)絡(luò)對小目標(biāo)、低分辨率圖像的檢測精度。同時(shí)本文將這三方面改進(jìn)整合在一起,對模型進(jìn)行了綜合優(yōu)化。實(shí)驗(yàn)結(jié)果表明,YOLOv5s-MSY相比于YOLOv5s:mAP提升了7%,達(dá)到了87.8%;檢測速度提升了16.95%,F(xiàn)PS達(dá)到了169.49。但是YOLOv5s-MSY在對小而密集的游泳池、直升機(jī)、運(yùn)輸機(jī)的檢測還存在漏檢誤檢的問題,影響了檢測效果;對較大目標(biāo)的檢測存在檢測性能下降的問題。由此看出,YOLOv5s-MSY算法還存在較大的上升空間,在后續(xù)工作當(dāng)中,主要需要提高在檢測目標(biāo)尺寸較小、數(shù)據(jù)集較少的情況下網(wǎng)絡(luò)的學(xué)習(xí)能力以及模型對于較大目標(biāo)的檢測速度。1.4 將YOLOX解耦頭應(yīng)用在YOLOv5
2 實(shí)驗(yàn)與分析
2.1 數(shù)據(jù)集的構(gòu)建
2.2 數(shù)據(jù)集的處理
2.3 實(shí)驗(yàn)平臺搭建
2.4 參數(shù)設(shè)置及評價(jià)指標(biāo)
2.5 實(shí)驗(yàn)結(jié)果評估分析
3 結(jié)束語