許 小 華,陳 豹,王 海 菁,包 學(xué) 才
(1.江西省水利科學(xué)院,江西 南昌 330029; 2.南昌工程學(xué)院 信息工程學(xué)院,江西 南昌 330099; 3.南昌工程學(xué)院 江西省水信息協(xié)同感知與智能處理重點實驗室,江西 南昌 330099 )
內(nèi)河航運是中國綜合立體交通運輸系統(tǒng)的重要組成部分,對推動經(jīng)濟發(fā)展和擴大對外開放發(fā)揮了不可替代的作用。隨著建設(shè)投資金額的不斷提升,航運系統(tǒng)日益完善,貨物裝載量和吞吐量逐年提高[1]。然而,內(nèi)河航運暴露出一些問題亟待解決,如船舶間的相互碰撞嚴重威脅航運安全[2]。此外,運砂船違規(guī)??拷o河道管理帶來挑戰(zhàn),采砂船違規(guī)作業(yè)對水生態(tài)環(huán)境造成不可逆的破壞。因此,加強河湖過往船舶的監(jiān)管變得極為重要。
常規(guī)的河湖船舶目標檢測算法主要是基于支持向量機(SVM)[3]和主成分分析(PCA)的算法,這些算法在白天天氣良好的環(huán)境下對船舶檢測識別效果較好,但在強光照、水面波動、物體倒影和船舶之間相互遮擋等復(fù)雜河湖環(huán)境下,識別效果精度較差,給全天候有效監(jiān)管帶來了挑戰(zhàn)。
近年來,基于深度學(xué)習(xí)的目標檢測算法得到了快速發(fā)展,目標檢測精度得到大幅提升,主要分為兩階段(Two-Stage)和一階段(One-Stage)兩類目標檢測算法。兩階段的目標檢測算法專注于對建議框的尋找和目標分類,如Lin等[4]利用壓縮與激勵機制提升兩階段R-CNN檢測算法性能,并使用編碼比例向量有效抑制子特征圖的信息冗余;Nie等[5]在Mask R-CNN檢測算法的特征金字塔網(wǎng)絡(luò)(FPN)中添加自下而上的短接結(jié)構(gòu),使用通道與空間注意力機制提升重要像素特征的相應(yīng)權(quán)重,實現(xiàn)像素級別的船舶檢測;針對樣本數(shù)據(jù)利用不充分的問題,李健偉等[6]利用生成對抗網(wǎng)絡(luò)進行特征變換,獲取多尺度與旋轉(zhuǎn)角的檢測圖擴充樣本,提升不同場景下船舶檢測的適應(yīng)性;You等[7]將場景分割功能引入檢測框架,使用邊緣概率加權(quán)合并方法檢測特征圖與非目標區(qū)域,抑制近岸相似物體對船舶檢測的干擾。而一階段的目標檢測算法則專注于一次性得到目標船舶的邊界框和類別,以保證船舶檢測實時性。如李暉暉等[8]將CReLU引入SSD的淺層網(wǎng)絡(luò),利用FPN逐級融合深淺層特征圖有效檢測出碼頭中的密集船舶;楊龍等[9]選取Darknet-53作為主干網(wǎng)絡(luò),設(shè)計了新的二分類損失函數(shù),改善訓(xùn)練過程中難易樣本失衡;針對大尺度圖像中船舶目標漏檢較多的問題,王璽坤等[10]將YOLOv3-Tiny與特征映射模塊增強預(yù)測層融合,以提高對小尺度密集目標的檢測精度;為提升模型的可移植性,Zhou等[11]利用堆疊的小尺度卷積充分提取圖像特征,改進雙向密集連接模塊降低網(wǎng)絡(luò)復(fù)雜度;Chen等[12]提出端到端的全卷積Anchor-Free網(wǎng)絡(luò)預(yù)測船頭、船尾以及船舶中心3類關(guān)鍵點及角度生成包圍框;Zhang等[13]在CenterNet基礎(chǔ)上分別利用降低假陰性與假陽性樣本數(shù),將雙向特征金字塔與YOLOv3檢測網(wǎng)絡(luò)相結(jié)合,以提升相似并排船舶的檢測精度;Gao等[14]提出具有密集注意力機制的Anchor-Free網(wǎng)絡(luò),通過密集連接與迭代融合提高網(wǎng)絡(luò)的泛化性能;劉荻等[15]提出了由多維特征聚合模塊與注意力特征重構(gòu)模塊組成的特征重聚焦策略。
上述目標檢測算法的優(yōu)點是對復(fù)雜河面場景下的船舶檢測精度較高,但缺點是模型參數(shù)量較大,操作過程相對復(fù)雜,推理速度較慢,無法滿足邊緣計算設(shè)備實時性的要求。
因此,為解決這一問題,提出一種基于改進YOLOv4-Tiny的輕量化檢測模型,模型引入Sigmoid 加權(quán)線性單元(SiLU)激活函數(shù)來提高網(wǎng)絡(luò)的特征映射效果,并通過改進空間金字塔池化以適應(yīng)不同尺度的輸入圖像。此外,通過引入卷積塊注意力模塊(CBAM)以加強深層網(wǎng)絡(luò)對信息的傳遞,并對路徑聚合網(wǎng)絡(luò)(PANet)進行改進,以加強不同尺度特征層的信息融合。
為實現(xiàn)河面船舶識別任務(wù)的要求,對YOLOv4-Tiny算法進行一系列改進,通過引入SiLU激活函數(shù),在兩個不同大小的有效特征層后面引入CBAM,并在大小為(19,19,512)的有效特征層后面引入改進的空間金字塔池,利用改進的PANet結(jié)構(gòu)加強特征融合。此外,使用Mosic數(shù)據(jù)增強對數(shù)據(jù)集進行預(yù)處理,并利用α=0.005的標簽平滑正則化提高模型的泛化性能和準確率,同時結(jié)合余弦退火來實現(xiàn)學(xué)習(xí)率衰減?;诟倪MYOLOv4-Tiny的目標檢測網(wǎng)絡(luò)架構(gòu)如圖1所示。
注:CBS為CONV+BN+SiLU激活函數(shù)組成的基本卷積塊,CONV為卷積操作,BN為批量歸一化(Batch Normalization)操作,SiLU為Sigmoid Weighted Liner Unit激活函數(shù),CSP為跨階段殘差(Cross Stage Partial)結(jié)構(gòu),Concat為通道拼接的特征融合方式,Maxpool為最大池化下采樣操作,CBAM為卷積塊注意力模塊,Upsample為上采樣操作,Downsample為利用卷積實現(xiàn)的下采樣操作,輸入為608×608像素尺度的圖片,輸出為YOLOHead的兩個輸出張量,其大小分別為(38,38,33)和(19,19,33)。圖1 基于改進YOLOv4-Tiny的目標檢測網(wǎng)絡(luò)架構(gòu)Fig.1 Object detection network structure based on improved YOLOv4-Tiny
激活函數(shù)是確定神經(jīng)網(wǎng)絡(luò)輸出的數(shù)學(xué)方程式,該函數(shù)加在每個神經(jīng)單元后面,神經(jīng)元的輸入經(jīng)過線性映射后,再經(jīng)過激活函數(shù)得到最后的輸出。激活函數(shù)的作用是為神經(jīng)網(wǎng)絡(luò)加入非線性映射。因此,選擇一種合適的激活函數(shù)對提高網(wǎng)絡(luò)的整體性能發(fā)揮著重要作用。YOLOv4-Tiny網(wǎng)絡(luò)使用的是帶泄露修正線性單元(Leaky ReLU)激活函數(shù),是ReLU[16]激活函數(shù)的變體。該函數(shù)的特點是:若輸入是正值,直接線性映射輸出;若輸入是負值,線性映射成絕對值很小的輸出,其優(yōu)點是導(dǎo)數(shù)不為零,減少了靜默神經(jīng)元的出現(xiàn),在輸入為負值時允許基于梯度的學(xué)習(xí)。但Leaky ReLU的缺點是采用基于梯度的學(xué)習(xí)收斂速度很慢,而且實驗結(jié)果表明其實際效果并不總是優(yōu)于ReLU函數(shù)。另外一種具有高性能的神經(jīng)網(wǎng)絡(luò)激活函數(shù)是高斯誤差線性單元(Gaussian Error Linear Units,GELU)[17]。GELU的非線性變化是一種符合預(yù)期的隨機正則變換方式,在尊重神經(jīng)元值的同時結(jié)合Dropout和ZoneOut方法,但是GELU激活函數(shù)過于復(fù)雜,對于YOLOv4-Tiny這種輕量級網(wǎng)絡(luò)達不到最優(yōu)效果。
基于上述原因,本文引入性能表現(xiàn)優(yōu)秀且簡潔的SiLU激活函數(shù)。SiLU激活函數(shù)是Swish激活函數(shù)[18]的簡化版,具備無上界、有下界、平滑和非單調(diào)的特點。該函數(shù)將正值輸入線性映射為輸出,將負值輸入進行一個非線性映射,輸出為接近于零的值。在零點附近時,不同于Leaky ReLU的硬零映射,SiLU為一個光滑的擬合函數(shù),避免了零點導(dǎo)數(shù)不存在而引起的梯度消失和梯度爆炸問題,從而在深層模型上的學(xué)習(xí)效果更好。
SiLU激活函數(shù)公式如下:
f(x)=x*sigmoid(x)
(1)
因此導(dǎo)數(shù)為
f′(x)=f(x)+sigmoid(x)[1-f(x)]
(2)
式中:x為激活函數(shù)的輸入,f(x)為SiLU激活函數(shù)的輸出;f′(x)為SiLU激活函數(shù)的導(dǎo)數(shù)。
當(dāng)提取圖片特征時,卷積神經(jīng)網(wǎng)絡(luò)需要提取重要的特征,同時抑制不重要的特征,無法通過手工調(diào)整來實現(xiàn),因此如何讓神經(jīng)網(wǎng)絡(luò)自適應(yīng)地注意感興趣的區(qū)域并且提高其表達能力非常重要。為此,Woo等[19]提出卷積塊注意力模塊CBAM(Convolutional Block Attention Module),該模塊由通道注意力模塊(Channel Attention Module,CAM)和空間注意力模塊(Spatial Attention Module,SAM)組成。
CAM模塊利用特征通道間的關(guān)系生成通道注意力特征圖,將每個通道看作一個特征檢測器。CAM模塊首先使用平均池化和最大池化對輸入特征圖F∈C×H×W在空間維度上進行壓縮,得到兩個不同的一維特征圖和使用平均池化可以有效學(xué)習(xí)到目標具體大小范圍的信息,使用最大池化可以提取到區(qū)分不同目標的信息,同時使用兩者可以最大程度上提升通道注意力的效果。其次,將這兩個特征圖輸入共享的多層感知機進行處理,然后將結(jié)果相加,最后通過Sigmoid激活函數(shù)生成權(quán)值介于0~1之間的通道注意力特征圖Mc∈C×1×1,將此特征圖乘以原輸入特征圖,即得到CAM模塊的輸出F′∈C×H×W。
CBAM結(jié)構(gòu)如圖2所示,對于給定的輸入特征圖F∈C×H×W,CBAM首先生成一維通道注意力特征圖Mc∈C×1×1,并與輸入特征圖進行自適應(yīng)特征加權(quán)相乘得到F′∈C×H×W,然后根據(jù)F′∈C×H×W生成二維空間注意力特征圖Ms∈1×H×W,并與之進行自適應(yīng)特征加權(quán)相乘得到F″∈C×H×W。此過程如下:
圖2 CBAM模塊結(jié)構(gòu)Fig.2 Structure of CBAM
F′=Mc(F)?F
(3)
F″=Ms(F′)?F′
(4)
式中:?為張量元素逐個相乘,Mc(F)為一維通道注意力特征圖,Ms(F′)為二維空間注意力特征圖,F為輸入特征圖,F′為經(jīng)通道注意力加權(quán)的特征映射,F″為經(jīng)空間注意力加權(quán)的特征映射。
對于卷積神經(jīng)網(wǎng)絡(luò)來說,其網(wǎng)絡(luò)結(jié)構(gòu)固定且層數(shù)和權(quán)重的維度基本不變,因此需要統(tǒng)一輸入圖片的尺寸來滿足卷積神經(jīng)網(wǎng)絡(luò)中分類器層的固定尺度需求。通常統(tǒng)一輸入尺寸的方式包括裁剪圖片或者在圖片周圍添加灰條,但這會帶來圖片信息的丟失和圖片畸變等問題。為了解決此問題,He等[20]提出了空間金字塔池化(Spatial Pyramid Pooling,SPP)網(wǎng)絡(luò),該網(wǎng)絡(luò)能對神經(jīng)網(wǎng)絡(luò)提取的不同尺度特征層進行池化和融合操作,并得到固定尺度的輸出。在YOLOv4-Tiny的骨干網(wǎng)絡(luò)之后引入改進的SPP網(wǎng)絡(luò)來實現(xiàn)對于不同尺度特征層的融合,增強特征層對于不同大小目標的提取能力。YOLOv4中的SPP使用大小分別為5×5,9×9,13×13的池化核進行最大池化處理。卷積神經(jīng)網(wǎng)絡(luò)其淺層網(wǎng)絡(luò)提取內(nèi)容是圖像局部紋理的位置和小目標信息,其深層網(wǎng)絡(luò)提取內(nèi)容是整體語義和大目標信息。因此,對于越深的網(wǎng)絡(luò),其特征層映射到原圖的感受野越大,所以使用較大的池化核提取特征;對于較淺的網(wǎng)絡(luò),其特征層映射到原圖的感受野較小,因此使用較小的池化核進行特征提取。YOLOv4-Tiny是YOLOv4的簡化版,其網(wǎng)絡(luò)層數(shù)比YOLOv4少。如圖1所示,改進SPP網(wǎng)絡(luò)使用大小為3×3,7×7,11×11的池化核進行最大池化,改進CSPDarknet53-Tiny主干網(wǎng)絡(luò)的第二個有效輸出特征層先經(jīng)過改進SPP模塊處理,然后進入改進特征融合網(wǎng)絡(luò)。
改進SPP的具體實現(xiàn)過程為:首先使用卷積核大小分別為1×1,3×3,1×1,步長為1的3個CBS卷積塊對輸入的特征層進行處理,通道數(shù)由512變?yōu)?56;其次使用3個大小分別為3×3,7×7,11×11的池化核進行最大池化處理,每個池化層輸出的通道數(shù)都為256;然后將這3個輸出與改進SPP的輸入在通道維度上進行拼接,通道數(shù)變?yōu)? 024;最后再經(jīng)過卷積核大小分別為1×1,3×3,1×1,步長為1的3個CBS卷積塊處理得到改進SPP的輸出,其通道數(shù)變?yōu)?56。改進SPP模塊在對輸入有效特征層進行多尺度最大池化和特征融合的同時,也增加了網(wǎng)絡(luò)對于大目標的感受野,對于輸入特征信息尤其是大目標語義信息提取更為充分。
YOLOv4-Tiny的特征融合部分使用的是特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,FPN)[21]。FPN對語義信息更豐富的高層次特征進行上采樣后,與細節(jié)信息更為豐富的低層次特征在通道維度上進行拼接,來進行特征融合。FPN使用了自下而上的特征融合方式,從深層特征往上與淺層特征相結(jié)合。然而此FPN結(jié)構(gòu)比較簡單,導(dǎo)致網(wǎng)絡(luò)不同尺度的特征融合不夠充分,而且對于細節(jié)特征信息的利用率過低,導(dǎo)致模型在復(fù)雜場景下檢測遮擋船舶目標時精度不高。
為了解決上述問題,引入路徑聚合網(wǎng)絡(luò)(Path Aggregation Network,PAN)[22]并對其進行改進作為特征融合網(wǎng)絡(luò)。具體改進方法如下:分別在PAN的上采樣層和下采樣層后加入CBAM以及在第二個輸出Feat2之前加入CBS形成改進的PAN結(jié)構(gòu),其接收來自CBAM的輸出特征層Feat1和改進SPP的輸出特征層Feat2,共同進行自下而上和自上而下的特征融合。在自下而上的特征融合路徑中,輸入Feat2經(jīng)過卷積核大小為1×1,步長為1的CBS處理、上采樣處理和CBAM處理后,形狀變?yōu)?38,38,128),然后與Feat1在通道上進行拼接實現(xiàn)特征融合。該特征圖有兩個作用:一個是作為改進PAN的第一個輸出,特征圖大小變?yōu)?38,38,384);另一個是在自上而下的路徑中,經(jīng)過一層卷積核大小為3×3,步長為2的CBS進行下采樣處理來減小特征圖的尺度,特征圖大小變?yōu)?19,19,256),再經(jīng)過一次CBAM處理之后,與Feat2在通道維度上進行拼接,再一次融合兩個不同尺度的特征,最后經(jīng)過卷積核大小為1×1,步長為1的CBS整合特征得到改進PANet的第二個輸出,特征圖大小為(19,19,256)。
改進PAN的兩個不同尺度輸出特征圖分別經(jīng)過各自對應(yīng)的盒類預(yù)測網(wǎng)絡(luò)YOLOHead處理后,輸出的船舶分類預(yù)測信息、船舶置信度預(yù)測信息和錨框坐標預(yù)測信息,為YOLOv4-Tiny網(wǎng)絡(luò)的最終輸出結(jié)果。其中,盒類預(yù)測網(wǎng)絡(luò)YOLOHead由一個卷積核大小為3×3的CBS卷積塊和一層卷積核大小為1×1的普通卷積組成,其輸出數(shù)據(jù)中的錨框坐標信息是相對于先驗框坐標信息的偏移量。
使用公開船舶目標檢測數(shù)據(jù)集SeaShip(7 000張)驗證本文所提算法的有效性,數(shù)據(jù)集包括河面上常見的六大類船舶,分別為運砂船、普通貨船、散裝貨船、集裝箱船、客船和漁船。數(shù)據(jù)集格式為PASCAL VOC。訓(xùn)練時按照9∶1的比例劃分訓(xùn)練驗證集(6 300張)和測試集(700張),在訓(xùn)練驗證集中也按照9∶1的比例劃分訓(xùn)練集(5 670張)和驗證集(630張)。其中,訓(xùn)練集的作用是設(shè)置分類器與回歸器的參數(shù),再訓(xùn)練分類與回歸算法,最后擬合出船舶檢測算法的多個分類回歸器;驗證集的作用是找出識別精度最高的算法權(quán)重,對訓(xùn)練出的各個算法權(quán)重進行檢測,并記錄算法準確率,選出精度最高的算法所對應(yīng)的權(quán)重參數(shù);測試集的作用是對經(jīng)過訓(xùn)練集和驗證集得出的最優(yōu)算法進行預(yù)測,衡量該算法的效果[23]。
基于改進YOLOv4-Tiny的河湖船舶目標檢測算法的具體驗證流程如圖3所示。
圖3 基于改進YOLOv4-Tiny的目標檢測算法驗證流程Fig.3 Verification process of the object detection algorithm based on improved YOLOv4-Tiny
本文采用平均精度均值(mAP)和每秒推理幀數(shù)(FPS)作為算法檢測精度和速度的指標。
在河面船舶檢測任務(wù)中,mAP即為6類船舶檢測平均精度(AP)的均值,其計算公式如式(5)所示:
(5)
式中:N為船舶類別數(shù),i為某一類船舶,APi為第i類船舶的檢測平均精度,其計算公下:
(6)
式中:P(R)為檢測精確率P和召回率R兩者的映射關(guān)系。
(7)
(8)
式中:TP為被正確劃分到正樣本的數(shù)量,FP為被錯誤劃分到正樣本的數(shù)量,FN為被錯誤劃分到負樣本的數(shù)量。
每秒推理幀數(shù)(FPS)是指網(wǎng)絡(luò)一秒時間內(nèi)識別的圖像幀數(shù),用于衡量算法的推理速度,每秒推理幀數(shù)越高表示算法推理越快,它主要取決于算法前向傳播、閾值篩選和非極大值抑制操作的復(fù)雜度。
本文實驗平臺計算機配置為Intel Core i5-9500中央處理器,主頻2.90 GHz,運行內(nèi)存16 GB,顯卡為Nvidia GeForce RTX3060,顯存12 GB,操作系統(tǒng)為Windows 10,并行計算架構(gòu)版本為CUDA11.1,深度學(xué)習(xí)加速庫版本為cuDNN8.0.5,深度學(xué)習(xí)框架為PyTorch1.7.1,采用Python3.7作為編程語言。使用PASCAL VOC數(shù)據(jù)集的預(yù)訓(xùn)練權(quán)重對改進的CSPDarknet53-Tiny主干網(wǎng)絡(luò)進行權(quán)重初始化,以獲得更好的初始性能。此外,訓(xùn)練前使用Mosic數(shù)據(jù)增強對數(shù)據(jù)集進行預(yù)處理。
算法的訓(xùn)練超參數(shù)設(shè)置具體包括:解凍前每批次訓(xùn)練樣本數(shù)為32,學(xué)習(xí)率為0.001;解凍后每批次訓(xùn)練樣本數(shù)為16,學(xué)習(xí)率為0.000 1。采用自適應(yīng)矩陣估計(Adam)優(yōu)化器優(yōu)化算法,使用標簽平滑策略,同時利用余弦退火算法更新學(xué)習(xí)率。遍歷1次全部訓(xùn)練驗證集數(shù)據(jù)稱為1個Epoch,經(jīng)過200個Epoch訓(xùn)練使代價函數(shù)最小,得到最優(yōu)算法。
傳統(tǒng)YOLOv4-Tiny算法和改進YOLOv4-Tiny算法對于河湖不同類型船舶的識別效果如表1所列。表中mAP為算法對測試集中所有6種類型船舶識別平均精度的均值。改進YOLOv4-Tiny算法檢測平均精度,比傳統(tǒng)YOLOv4-Tiny算法提高了1.27%,這是
表1 YOLOv4-Tiny算法改進前后的檢測效果對比Tab.1 Comparison of detection effects of YOLOv4-Tiny model before and after improvement
由于改進YOLOv4-Tiny算法加入了改進的SPPNet結(jié)構(gòu)及改進的PAN結(jié)構(gòu),從而加強了高層特征語義信息的提取,提高了算法對船舶目標的檢測能力。此外,改進的YOLOv4-Tiny算法模型大小為37.34 MB,每秒的推理幀率為81.55幀/s。重要的是,算法的主干網(wǎng)絡(luò)僅引入了簡化的激活函數(shù),改進后的YOLOv4-Tiny算法不僅提高了檢測精度,而且符合實時性的要求。
使用相同的河湖船舶數(shù)據(jù)集分別訓(xùn)練YOLOv5s、YOLOX-Tiny[24]、傳統(tǒng)YOLOv4-Tiny和改進YOLOv4-Tiny 4種目標檢測算法,分別對昏暗、模糊、強光、遮擋重疊和部分目標4種場景下的河湖過往船舶進行識別。不同檢測算法對于4種場景下船舶檢測效果的對比結(jié)果如圖4所示。通過綜合對比發(fā)現(xiàn),改進的YOLOv4-Tiny目標檢測算法能準確識別出昏暗、模糊、強光、遮擋重疊和船舶目標不全場景下的河湖過往船舶,具有最高的識別率,而其他3種目標檢測算法均出現(xiàn)了漏檢、誤檢以及重復(fù)檢測的情況。因此,本文改進YOLOv4-Tiny算法具有很好的魯棒性,可應(yīng)用到實際復(fù)雜天氣環(huán)境下的河湖船舶目標檢測。以運砂船目標檢測為例,結(jié)合智能追蹤技術(shù),可對重點關(guān)注的運砂船只及其行為及時發(fā)現(xiàn)和預(yù)警,有效應(yīng)用于河湖采砂監(jiān)管中,提升采運砂監(jiān)管效能[25]。
圖4 4種場景下不同目標檢測算法的船舶檢測效果Fig.4 Detection effects of ships under four scenarios for different object detection algorithms
此外,YOLOv4-MobileNetV3、YOLOv5s、YOLOX-Tiny、傳統(tǒng)YOLOv4-Tiny和改進YOLOv4-Tiny等5種目標檢測算法對河湖船舶的檢測性能對比結(jié)果如表2所列。從表2可以看出,本文提出的改進YOLOv4-Tiny目標檢測算法對于運砂船、集裝箱船、客船和漁船的檢測平均精度均有較大的提升,相對于傳統(tǒng)YOLOv4-Tiny分別提升了1%,1.34%,1.54%和3.51%。
表2 不同目標檢測算法的檢測識別性能對比Tab.2 Comparison of detection performance for different object detection algorithms
在推理速度方面,改進YOLOv4-Tiny算法的推理速度比YOLOv4-MobileNetV3快近1倍,推理速度超出YOLOv5s 23.09幀/s,超出YOLOX-Tiny 29.08幀/s。由于本文提出的改進算法引入了改進模塊,增加了一些參數(shù)量,所以推理速度略低于傳統(tǒng)YOLOv4-Tiny,不過仍然達到了81.55幀/s。綜上所述,改進的YOLOv4-Tiny目標檢測算法模型占據(jù)了較少的內(nèi)存和計算資源,在實現(xiàn)高精度推理的同時滿足了實時性要求,適合邊緣計算設(shè)備的部署。
(1) 本文提出了一種基于改進YOLOv4-Tiny的輕量級目標檢測算法,實現(xiàn)對于不同自然場景下河湖過往船舶的目標檢測識別。在傳統(tǒng)YOLOv4-Tiny算法的基礎(chǔ)上引入性能優(yōu)越的SiLU激活函數(shù),在改進的主干網(wǎng)絡(luò)后面加入CBAM注意力模塊和改進的SPP網(wǎng)絡(luò),并在特征金字塔網(wǎng)絡(luò)FPN中加入CBAM注意力模塊和自上而下的連接,形成改進的特征融合網(wǎng)絡(luò),以提高算法在實時條件下對于不同類型船舶的檢測精度。實驗結(jié)果表明,在使用RTX3060圖形處理器的條件下,結(jié)合Mosaic數(shù)據(jù)增強、余弦退火學(xué)習(xí)率衰減和標簽平滑,改進的YOLOv4-Tiny算法對于河湖船舶識別的平均精度均值達到98.67%,比原算法提升了1.27%,推理速度達到81.55幀/s,占用內(nèi)存僅為37.34 MB,滿足河道沿岸邊緣計算設(shè)備對復(fù)雜場景下河湖船舶精準快速識別的要求。
(2) 對于復(fù)雜天氣環(huán)境下河湖中實際檢測船舶識別需求,針對4種不同自然場景下的河湖船舶測試集,分別測試了YOLOv4-MobileNetV3、YOLOv5s、YOLOX-Tiny、傳統(tǒng)YOLOv4-Tiny和改進YOLOv4-Tiny目標檢測算法的檢測效果,并進行檢測精度和推理速度的對比分析。實驗結(jié)果表明,本文提出的改進YOLOv4-Tiny目標檢測算法在滿足實時性的同時達到了最高的檢測精度,在與其他先進目標檢測算法的綜合比較中取得了最好的效果。