張 上, 陳益方, 王申濤, 王恒濤, 冉秀康
(1.三峽大學(xué),a.電氣與新能源學(xué)院; b.湖北省建筑質(zhì)量檢測裝備工程技術(shù)研究中心;c.計算機(jī)與信息學(xué)院,湖北 宜昌 443000; 2.南通理工學(xué)院,江蘇 南通 226000)
合成孔徑雷達(dá)(Synthetic Aperture Radar,SAR)是一種利用合成孔徑原理,實現(xiàn)高分辨率微波成像的主動式的對地觀測系統(tǒng)。其因可全天候地對地面進(jìn)行實時觀測,并且具有一定的穿透能力,故在地面、海洋、山地的評估、監(jiān)測、測繪方面得到了廣泛關(guān)注[1]。近年來,隨著海上軍事信息化、智能化、無人化的高速發(fā)展,如何快速準(zhǔn)確地檢測識別出艦船位置就顯得尤為關(guān)鍵。SAR圖像因其特有的成像原理可大幅過濾因海洋天氣多變而導(dǎo)致的艦船誤檢、漏檢問題,故越來越多的學(xué)者選擇使用SAR圖像進(jìn)行艦船檢測的研究。
傳統(tǒng)的SAR艦船識別檢測算法如雙參數(shù)的恒虛警率[2]和基于K分布的CFAR算法[3],以及之后提出的小波變換[4]、模板匹配[5]等算法都或多或少存在著檢測精度低、檢測時間長、泛化能力低、算法復(fù)雜、依賴性強(qiáng)等不足。隨著人工智能技術(shù)的快速發(fā)展,深度學(xué)習(xí)因其不需要人工費時費力的設(shè)計特征就可以有效地實現(xiàn)目標(biāo)檢測而推動了SAR圖像在機(jī)器視覺領(lǐng)域的應(yīng)用。
目標(biāo)檢測的目的是解決圖像實例的劃分問題和定位問題,它的精度和實時性是整個計算機(jī)視覺系統(tǒng)性能的重要衡量指標(biāo)?;谏疃葘W(xué)習(xí)的目標(biāo)檢測算法是為了實現(xiàn)復(fù)雜場景的自動檢測和分析,是計算機(jī)視覺研究方向的關(guān)鍵,其檢測性能的優(yōu)劣將會影響到后續(xù)的場景分析、行為描述、物體預(yù)測等一系列高層任務(wù)。目前,該技術(shù)已經(jīng)被廣泛運用于醫(yī)學(xué)病變檢測、無人駕駛技術(shù)的交通標(biāo)志檢測、農(nóng)業(yè)的蟲害檢測等各方面,對人們的生產(chǎn)生活方式產(chǎn)生了重要的影響。
傳統(tǒng)的目標(biāo)檢測算法存在著精度低、魯棒性較差、泛化能力低、算法復(fù)雜、成本較高等缺點,于是國內(nèi)外的學(xué)者們開始在這個領(lǐng)域進(jìn)行探索,希望突破這一瓶頸。近年來,隨著深度學(xué)習(xí)技術(shù)的發(fā)展和計算機(jī)硬件水平的提升,相繼提出了各種高質(zhì)量的目標(biāo)檢測算法及其數(shù)據(jù)集。以基于滑動窗口為代表的早期目標(biāo)檢測算法仍存在著計算復(fù)雜、準(zhǔn)確率低等各種缺陷,由此又提出了如 R-CNN[6],SSD[7],YOLO[8]等一系列算法及其改進(jìn)算法,其中,YOLO算法得益于單階段目標(biāo)檢測算法的特性在實時目標(biāo)檢測領(lǐng)域大放異彩。針對基于YOLOv5[9]的SAR艦船目標(biāo)檢測算法存在的模型計算量較大、檢測精度較低、訓(xùn)練時間較長等不足,提出一種基于YOLOv5的以Mobilenetv3[10]網(wǎng)絡(luò)架構(gòu)為基礎(chǔ)的輕量化SAR艦船目標(biāo)檢測算法。Mobilenetv3引入了在Mobilenetv1[11]和Mobilenetv2[12]中表現(xiàn)優(yōu)異的深度可分離卷積和具有線性瓶頸的逆殘差結(jié)構(gòu),將基于SE(Squeeze and Excitation)結(jié)構(gòu)的輕量級[13]融入Backbone,使用h-swish作為新的激活函數(shù),此外,本文算法還以EIoU代替CIoU作為損失函數(shù)并在Neck層中引入CBAM[14]。最后,將該算法應(yīng)用于SSDD(SAR Ship Detection Dataset)并進(jìn)行實驗,得到了良好的檢測效果。
以YOLO算法為代表的單階段目標(biāo)檢測算法因其舍棄候選框的提取而直接采用回歸方式進(jìn)行一步到位的目標(biāo)檢測大大簡化了網(wǎng)絡(luò)模型,加快了檢測速度,從而在實時檢測領(lǐng)域大放異彩。研究者以YOLO算法為基礎(chǔ),又相繼提出了YOLOv2,YOLOv3,YOLOv4,YOLOv5等一系列算法。至此,YOLO系列算法在滿足實時性的同時檢測精度也大大提高,算法的改進(jìn)研究也走向成熟。
本文所提出的算法是以YOLOv5- 6.1版本為基礎(chǔ)網(wǎng)絡(luò)架構(gòu),在此基礎(chǔ)上進(jìn)行模型輕量化、引入新的激活函數(shù)和損失函數(shù)、增加注意力模塊的SAR艦船目標(biāo)檢測算法。YOLOv5- 6.1版本相較之前的版本使用Conv代替Focus以便更好地導(dǎo)出其他結(jié)構(gòu),在主干網(wǎng)絡(luò)最后一層使用SPPF代替SPP從而使網(wǎng)絡(luò)結(jié)構(gòu)更加精簡,提高了推理速度和檢測精度。YOLOv5- 6.1網(wǎng)絡(luò)架構(gòu)如圖1所示。
圖1 YOLOv5- 6.1網(wǎng)絡(luò)架構(gòu)
Mobilenetv3網(wǎng)絡(luò)架構(gòu)使用了NAS(Network Architecture Search),通過優(yōu)化每個網(wǎng)絡(luò)塊來搜索全局網(wǎng)絡(luò)結(jié)構(gòu),采用了NetAdapt對NAS進(jìn)行補(bǔ)充:允許以一種連續(xù)的方式對單個布局進(jìn)行微調(diào),而不是試圖推斷出粗略的全局架構(gòu)。保留了在Mobilenetv1和Mobilenetv2中表現(xiàn)優(yōu)異的深度可分離卷積和具有線性瓶頸的逆殘差結(jié)構(gòu)[15],在Mobilenetv2的基礎(chǔ)上引入了SE輕量級注意力模塊。此外,該網(wǎng)絡(luò)架構(gòu)還引入了一個新的非線性激活函數(shù)h-swish,該函數(shù)是swish的修改版,擁有更好的計算能力和計算速度。Mobilenetv3擁有Large和Small兩種結(jié)構(gòu),本文選用Small網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行實驗。
圖2為Mobilenetv3-Small的block單元。
圖2 Mobilenetv3-Small的block單元
輸入特征先通過一個1×1卷積進(jìn)行升維,將得到的特征輸入3×3的深度卷積。接著將經(jīng)過深度卷積的輸出特征輸入SE模塊,在SE模塊中,將全局平均池化后的特征依次輸入激活函數(shù)為ReLU和激活函數(shù)為h-swish的兩個全連接層得到特征向量。將得到的特征向量進(jìn)行權(quán)重賦值得到輸出特征,最后使用1×1卷積對特征進(jìn)行降維。
圖3為輸入特征經(jīng)過一個Mobilenetv3-Small的block單元得到的輸出特征的結(jié)果。
圖3 經(jīng)block單元后的輸出特征
2.1.1 深度可分離卷積
Mobilenetv1提出的深度可分離卷積,將標(biāo)準(zhǔn)卷積拆分成一個深度卷積和一個逐點卷積,深度卷積將卷積核轉(zhuǎn)為單通道,而逐點卷積則對特征圖進(jìn)行維數(shù)的改變,兩者配合可以大大減小計算成本。圖4所示為一個標(biāo)準(zhǔn)卷積。
圖4 標(biāo)準(zhǔn)卷積
設(shè)輸入特征圖寬和高分別為DW,DH,輸入通道和輸出通道分別為M,N,卷積核為DK,可得標(biāo)準(zhǔn)卷積參數(shù)量PS和計算量FS分別為
PS=DK×DK×M×N
(1)
FS=DK×DK×M×N×DW×DH。
(2)
圖5所示為深度可分離卷積。
圖5 深度可分離卷積
同理可得深度可分離卷積參數(shù)量Pd和計算量Fd分別為
Pd=DK×DK×M+M×N
(3)
Fd=DK×DK×M×DW×DH+M×N×DW×DH。
(4)
2.1.2 逆殘差結(jié)構(gòu)
Mobilenetv2提出的逆殘差結(jié)構(gòu)與傳統(tǒng)的殘差結(jié)構(gòu)相反,先進(jìn)行通道擴(kuò)張,經(jīng)過深度卷積后再進(jìn)行壓縮,同時還去掉最后的非線性激活函數(shù)而使用線性激活函數(shù),以取得更好的效果。
圖6所示為殘差結(jié)構(gòu)與逆殘差結(jié)構(gòu)對比。
圖6 殘差結(jié)構(gòu)和逆殘差結(jié)構(gòu)
傳統(tǒng)的殘差結(jié)構(gòu)首先需要對輸入特征進(jìn)行1×1的降維操作,然后進(jìn)行3×3的卷積操作,最后進(jìn)行1×1卷積實現(xiàn)升維;而逆殘差結(jié)構(gòu)則是先對輸入特征進(jìn)行1×1的升維操作,如進(jìn)行6倍升維,再進(jìn)行3×3的卷積操作和1×1的卷積降維操作。逆殘差結(jié)構(gòu)先對卷積進(jìn)行升維操作,讓深度卷積在一個更高的維度上工作,有利于提高檢測精度。但是,因為逆殘差結(jié)構(gòu)在最后進(jìn)行了降維操作,若仍使用ReLU激活函數(shù)容易造成底層特征信息丟失,將ReLU激活函數(shù)更換為線性激活函數(shù)Linear后能保證逆殘差結(jié)構(gòu)提取特性信息的能力。
2.1.3 SE通道注意力機(jī)制
SE通道注意力機(jī)制是針對卷積神經(jīng)網(wǎng)絡(luò)中信息特征的構(gòu)造問題所提出的,SE模塊可以通過通道的相互依存關(guān)系來增強(qiáng)特征響應(yīng),強(qiáng)化重要特征而弱化次要特征[16]。它主要由壓縮和激勵兩部分組成,首先把輸入的特征圖的信息進(jìn)行壓縮,然后將輸入的特征圖與其所學(xué)到的信息進(jìn)行融合得到最終的特征信息,如圖7所示。
圖7 SE通道注意力模塊
由圖7可知,SE模塊首先通過卷積操作生成特征U,然后進(jìn)行全局平均池化將特征層維度壓縮至1×1×C,再進(jìn)行激勵操作,通過全連接層生成所需要的權(quán)重信息,最后將原特征U進(jìn)行權(quán)重賦值得到最終的特征圖,其中,Fex(·,W)為激勵操作;Fscale(·,·)為通道權(quán)重相乘;Fsq(·)為壓縮操作。
圖8為輸入的特征圖經(jīng)過SE模塊與其所學(xué)到的信息進(jìn)行融合的輸出結(jié)果。由圖8可知,經(jīng)過SE可強(qiáng)化重要特征而弱化次要特征。
圖8 特征融合
2.1.4 h-swish激活函數(shù)
為了提高神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確性,swish函數(shù)出現(xiàn)在了研究者的視野中,該函數(shù)具有無上界、有下界、平滑、非單調(diào)等特點,可以替代ReLU函數(shù)。但是,因為sigmoid計算復(fù)雜所以采用ReLU6函數(shù)來逼近swish函數(shù),即h-swish函數(shù),該函數(shù)可以消除部分潛在的精度損失并且在軟硬件上都有不錯的表現(xiàn),其表達(dá)式如下
(5)
式中,ReLU6=max(0,x)。
YOLOv5使用的損失函數(shù)為CIoU損失函數(shù),可表示為
(6)
EIoU函數(shù)表示為
(7)
式中,LIoU,Ldis,Lasp分別表示IoU損失、距離損失和寬高損失。
由式(6)和式(7)對比可知,雖然CIoU增加了預(yù)測框和真實框的縱橫比,但是仍存在下列問題:在回歸時,當(dāng)兩框的縱橫比成線性時,其懲罰項就失去了原本的作用;預(yù)測框的梯度中,w和h值不能保持同步增加或者同步減少。這樣就無法有效地描述回歸目標(biāo),可能會導(dǎo)致收斂緩慢并且回歸不準(zhǔn)確。
為了解決上述問題,文獻(xiàn)[17]提出了EIoU,EIoU延續(xù)了CIoU的重疊損失和中心距離損失,但調(diào)整了寬高損失,在懲罰過程中,直接對w和h的預(yù)測結(jié)果進(jìn)行懲罰,可以更好地反映預(yù)測框與目標(biāo)框之間的寬高差異,加快了網(wǎng)絡(luò)收斂,有助于提高回歸精度。
如圖9所示,CBAM是一個簡單而有效的前饋卷積神經(jīng)網(wǎng)絡(luò)的注意力模塊,不同于傳統(tǒng)的注意力模塊,該模塊可以同時沿著通道和空間兩個獨立維度推導(dǎo)出各自的權(quán)重系數(shù),然后將其輸入特征圖進(jìn)行特征的自適應(yīng)細(xì)化[18]。同時,因為CBAM是一種輕量級的注意力模塊,將其加入本文算法可進(jìn)一步減小模型尺寸及計算量。
輸入特征首先進(jìn)入通道注意力模塊,不同通道經(jīng)過最大池化和平均池化操作得到n維特征向量,再經(jīng)過全連接層和sigmoid函數(shù)的歸一化處理后得到權(quán)重參數(shù)并進(jìn)行權(quán)重賦值。然后將其作為空間注意力的輸入特征同樣進(jìn)行最大池化和平均池化操作得到雙通道的特征圖,經(jīng)過卷積后形成單通道的特征圖,最后經(jīng)過sigmoid進(jìn)行歸一化處理。CBAM先在通道維度上實現(xiàn)特征變換得到新的特征圖,然后將新的特征圖在空間維度上進(jìn)行特征變換輸出最終特征圖。
圖9 CBAM
圖10所示為經(jīng)過注意力調(diào)整后的仿真結(jié)果。在特征融合階段進(jìn)行注意力調(diào)整,可提高模型檢測精度與檢測效果。
圖10 注意力調(diào)整
為了解決現(xiàn)有的SAR艦船目標(biāo)檢測算法存在的模型計算量大、檢測精度不高、訓(xùn)練時間較長等缺陷,本文基于YOLOv5- 6.1版本進(jìn)行Mobilenetv3模型輕量化處理。在保留Mobilenetv1和Mobilenetv2中表現(xiàn)優(yōu)異的深度可分離卷積和具有線性瓶頸的逆殘差結(jié)構(gòu)的前提下加入了SE通道注意力機(jī)制和h- swish激活函數(shù),特征提取能力得到加強(qiáng)。
表1所示為改進(jìn)主干網(wǎng)絡(luò)。將Mobilenetv3網(wǎng)絡(luò)融入YOLOv5算法的Backbone層,其中,SE一列中“1”表示使用SE模塊,“0”表示不使用SE模塊,h- swish一列中“1”表示使用h- swish激活函數(shù),“0”表示不使用h- swish激活函數(shù)。網(wǎng)絡(luò)共包含11個MobileNet_Block操作。
表1 改進(jìn)主干網(wǎng)絡(luò)
改進(jìn)后算法網(wǎng)絡(luò)架構(gòu)如圖11所示,在Mobilenetv3輕量化的基礎(chǔ)上使用CBAM模塊替換掉Neck層中的C3模塊,并使用EIoU作為該改進(jìn)算法的損失函數(shù)以進(jìn)一步提高檢測效果。
圖11 改進(jìn)網(wǎng)絡(luò)架構(gòu)
本文實驗訓(xùn)練過程所處環(huán)境及訓(xùn)練基本參數(shù)如表2所示,調(diào)用GPU在Pytorch上進(jìn)行訓(xùn)練。
表2 實驗環(huán)境
本文采用SSDD數(shù)據(jù)集[19],該數(shù)據(jù)集共有2456艘艦船被包含在1160張圖片中,相比于其他數(shù)據(jù)集,SSDD數(shù)據(jù)集雖然圖片數(shù)量較少但只有艦船這一種類別,因此在訓(xùn)練艦船模型時該數(shù)據(jù)集更加高效和突出。SSDD數(shù)據(jù)集的標(biāo)注格式是xml,而YOLO系列算法只能檢測txt格式的標(biāo)注文件,故本實驗先將其轉(zhuǎn)換為txt格式,然后將SSDD數(shù)據(jù)集按照7∶1.5∶1.5的比例劃分成訓(xùn)練集、驗證集和測試集進(jìn)行實驗。
深度學(xué)習(xí)領(lǐng)域的目標(biāo)檢測算法的主要評價指標(biāo)如下:模型體積、參數(shù)量、計算量、訓(xùn)練時間、準(zhǔn)確率P(precision)、召回率R(recall)、平均準(zhǔn)確率PmAP(mean average precision,mAP)等。
準(zhǔn)確率、召回率、平均準(zhǔn)確率的算式分別為
(8)
(9)
(10)
其中:TP表示模型預(yù)測為真的正樣本數(shù);FP表示模型預(yù)測為真的負(fù)樣本數(shù);FN表示模型預(yù)測為非真的正樣本數(shù)。
將本文Mobilenetv3輕量化算法與GhostNet輕量化算法[20]進(jìn)行對比,如表3所示。
表3 輕量化效果對比
實驗結(jié)果表明,在均加入了EIoU和CBAM模塊的情況下,本文算法在精度相差不大的情況下其輕量化效果優(yōu)于Ghostnet輕量化算法。
本文進(jìn)行消融實驗,首先在YOLOV5原架構(gòu)的基礎(chǔ)上加入Mobilenetv3,觀察輕量化的效果,然后在此基礎(chǔ)上分別引入EIoU損失函數(shù)和CBAM分別觀察算法效果,最后將這兩者同時加入輕量化后的YOLOv5算法,觀察本文算法的最終實驗結(jié)果。
實驗結(jié)果如表4所示,各字母所表示算法如下:A,原始YOLOv5-6.1算法;B,在A算法的基礎(chǔ)上引入Mobilenetv3;C,在B算法的基礎(chǔ)上加入EIoU損失函數(shù);D,在B算法的基礎(chǔ)上加入CBAM模塊;E,本文算法(即在B算法的基礎(chǔ)上同時引入EIoU損失函數(shù)和CBAM模塊)。
表4 消融實驗結(jié)果
由實驗結(jié)果可知:加入Mobilenetv3后模型體積、參數(shù)量、計算量訓(xùn)練時間均有顯著減少,但同時精度卻出現(xiàn)小幅下降,在此基礎(chǔ)上分別引入EIoU損失函數(shù)和CBAM后精度變化不大,但將這兩者同時加入Mobilenetv3輕量化后的算法時,不僅進(jìn)一步縮小了模型尺寸,并減少了參數(shù)量、計算量、縮短了訓(xùn)練時間,而且精度等指標(biāo)都得到了進(jìn)一步提高,在大大降低模型復(fù)雜度的前提下保證了檢測精度。
將算法訓(xùn)練得到的最佳模型用于預(yù)測,消融實驗的各算法部分預(yù)測結(jié)果如圖12所示。
圖12 預(yù)測效果對比
實驗結(jié)果表明,本文算法在顯著減少模型參數(shù)量和計算量的同時仍保持著較高的檢測效果,并且改善了模型誤檢、漏檢的問題。
針對傳統(tǒng)的艦船目標(biāo)檢測模型體積、參數(shù)量、計算量大等問題,提出一種輕量化的SAR艦船目標(biāo)檢測算法??傻玫揭韵陆Y(jié)論:1) 本文算法在YOLOv5算法的基本架構(gòu)下,將Mobilenetv3融入主干網(wǎng)絡(luò)進(jìn)行輕量化處理,將模型體積壓縮至2.51 MiB,訓(xùn)練時間縮短到原來的64.78%,參數(shù)量減小至1118156,計算量減小至1.7 GFLOPS,輕量化效果明顯;2) 本文使用EIoU損失函數(shù)替換原有的損失函數(shù),并將CABM加入Neck層中使平均精度提升至98.3%,并且進(jìn)一步縮小了模型體積。
目前,本文的研究仍停留在算法的層面,后續(xù)將會在保證較好的檢測效果的前提下移植到硬件設(shè)備上。