何亞平 蘇盈盈 周能揚(yáng) 張氣皓 閻 壘
(重慶科技學(xué)院 電氣工程學(xué)院, 重慶 401331)
目標(biāo)檢測(cè)模型能夠識(shí)別一幅圖像中的多個(gè)目標(biāo),并判斷目標(biāo)的類(lèi)別和位置。將目標(biāo)檢測(cè)技術(shù)應(yīng)用于安全領(lǐng)域一直是研究者關(guān)注的問(wèn)題。在易燃易爆場(chǎng)所工作時(shí),需要做好防火防爆措施?;鹧鏌熿F行為檢測(cè)對(duì)保證生產(chǎn)安全和生命安全具有重要的意義。
隨著計(jì)算機(jī)算力的大幅提升,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法的精度和速度有了明顯提升?;谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)算法分為One-Stage和Two-Stage兩大類(lèi)?;靥斓热颂岢隽艘环N結(jié)合Faster R-CNN的多類(lèi)型火焰檢測(cè)方法[1]。 以SSD[2]、YOLO[3]為代表的One-Stage算法速度更快,原因在于該算法能夠在拍攝圖像后直接輸出物體的類(lèi)別概率和位置坐標(biāo)等信息。
Yi等人提出了ASSD模型,在SSD模型中插入注意力模塊,通過(guò)注意力機(jī)制極大地減少了無(wú)用信息對(duì)檢測(cè)結(jié)果的影響,提升了目標(biāo)檢測(cè)精度[4]。 趙坤提出了一種基于YOLOv3和KCF的火災(zāi)煙霧檢測(cè)方法,由于KCF出色的跟蹤性,降低了YOLOv3因環(huán)境因素突變帶來(lái)的干擾,但檢測(cè)速度較慢[5]。顏洵等人提出了一種用于檢測(cè)火焰和煙霧目標(biāo)的優(yōu)化YOLOv4網(wǎng)絡(luò)[6]。Fu等人將殘差網(wǎng)絡(luò)與SSD相結(jié)合,提出了DSSD模型,實(shí)現(xiàn)了對(duì)小目標(biāo)的有效檢測(cè),在一定程度上提高了檢測(cè)的準(zhǔn)確性和速度[7]。
綜上所述,以上算法在檢測(cè)速度和精度上仍有提升空間。本次研究以YOLOv5s模型為基礎(chǔ),構(gòu)建GSN-YOLOv5s網(wǎng)絡(luò)模型,采用網(wǎng)絡(luò)參數(shù)更小、檢測(cè)速度更快的Ghost Bottleneck結(jié)構(gòu)來(lái)替換原網(wǎng)絡(luò)中的BottleneckCsp結(jié)構(gòu)。考慮到減少網(wǎng)絡(luò)參數(shù)可能會(huì)影響檢測(cè)精度,在各網(wǎng)絡(luò)層間增加SENet來(lái)降低減少參數(shù)帶來(lái)的影響。通過(guò)對(duì)比實(shí)驗(yàn)結(jié)果表明,該模型大大減少了網(wǎng)絡(luò)參數(shù),縮短了檢測(cè)時(shí)間,提高了檢測(cè)精度。
根據(jù)YOLOv5模型中殘差組件個(gè)數(shù)的不同,可將其分為YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x等4個(gè)預(yù)訓(xùn)練模型。不同YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)所對(duì)應(yīng)的卷積核和殘差組件個(gè)數(shù)也不同。隨著殘差組件個(gè)數(shù)的增加,模型的特征提取能力也相應(yīng)提高。YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)主要由Input、Backbone、Neck、Prediction等4個(gè)部分組成,如圖1所示。
圖1 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv5的Neck采樣過(guò)程如圖2所示(Backbone的下采樣與Neck類(lèi)似)。輸入尺寸為6086083的圖片到模型中,首先在主干網(wǎng)絡(luò)中對(duì)特征信息進(jìn)行初步提取,形成尺寸為7676、3838、1919等3個(gè)有效特征層;然后,Neck對(duì)提取到的特征進(jìn)行上下采樣,將淺層的細(xì)節(jié)信息和深層的語(yǔ)義信息進(jìn)行融合,從而使網(wǎng)絡(luò)提取到更加豐富的特征信息;最后,通過(guò)Prediction預(yù)測(cè)出位置信息和分類(lèi)結(jié)果。
圖2 YOLOv5的 Neck采樣過(guò)程
GhostNet是2020年提出的一種輕量型移動(dòng)端網(wǎng)絡(luò),使用深度可分離卷積來(lái)降低計(jì)算參數(shù)[8]。
計(jì)算深度可分離卷積與普通卷積的比值,如式(1)所示:
(1)
式中:Dk—— 卷積核大小;
DF—— 輸入圖片大小;
M—— 輸入通道數(shù);
N—— 輸出通道數(shù)。
Ghost Bottleneck主要由2個(gè)堆疊的Ghost模塊組成,如圖3所示。其中,第1個(gè)Ghost模塊作為擴(kuò)展層,用于增加通道數(shù)量;第2個(gè)Ghost模塊作為縮減層,用于減少通道數(shù)量,匹配快捷路徑。在第1個(gè)和第2個(gè)Ghost模塊的輸入與輸出之間連接快捷方式。在第1個(gè)Ghost模塊之后使用批量歸一化(BN)和ReLU激活函數(shù),在第2個(gè)Ghost模塊之后使用批量歸一化(BN)。步長(zhǎng)為1的Ghost Bottleneck提取特征時(shí),輸入輸出的大小不變;步長(zhǎng)為2的Ghost Bottleneck在提取特征的同時(shí),進(jìn)行下采樣操作。
圖3 Ghost Bottleneck結(jié)構(gòu)
SENet(Squeeze-and-Excitation Networks)是Hu等人[9]在2018年提出的網(wǎng)絡(luò)模型,可通過(guò)網(wǎng)絡(luò)損失學(xué)習(xí)特征權(quán)重。在網(wǎng)絡(luò)訓(xùn)練過(guò)程中,有用的共享特征層被賦予更高的權(quán)重,無(wú)用或者用處小的共享特征層被賦予更低的權(quán)重。SENet通過(guò)權(quán)重大小來(lái)判斷每個(gè)特征通道的重要程度,并根據(jù)這個(gè)重要程度提升有用的特征、抑制對(duì)當(dāng)前目標(biāo)用處不大的特征。
SE模塊結(jié)構(gòu)如圖4所示。給定一個(gè)輸入X∈RH′×W′×C′,經(jīng)過(guò)一系列卷積變換為U∈RH×W×C,其中U=[u1,u2,…,uc],表示輸出;V=[v1,v2,…,vc],表示一組濾波器,其中vc表示第c個(gè)濾波器的參數(shù);Ftr表示卷積過(guò)程。卷積操作公式如式(2)所示:
圖4 SE模塊結(jié)構(gòu)
(2)
式中:*表示卷積;vc=[vc,1,vc,2,…,vc,C′];X=[x1,x2,…,xC′];uc∈RH×W;vc,s為二維空間核,表示vc的單個(gè)通道作用于X的對(duì)應(yīng)通道。
(1) Squeeze過(guò)程。根據(jù)空間維度進(jìn)行特征壓縮,使每個(gè)二維的特征通道成為一個(gè)實(shí)數(shù),這個(gè)實(shí)數(shù)在一定程度上具有全局感受野,輸出的維度與輸入的特征通道數(shù)相匹配。U通過(guò)其空間維數(shù)H×W壓縮產(chǎn)生的統(tǒng)計(jì)量z∈RC,則第c個(gè)元素zc如式(3)所示:
(3)
(2) Excitation過(guò)程。利用參數(shù)w為每個(gè)特征通道生成權(quán)重,以顯示建模特征通道之間的相關(guān)性。采用Sigmoid函數(shù),如式(4)所示:
s=Fex(z,w)=σ(g(z,w))=σ(w2δ(w1z))
(4)
(3) Scale過(guò)程。假設(shè)輸出為U,則模塊的最終輸出通過(guò)激活s實(shí)現(xiàn),如式(5)所示:
(5)
本次研究以模型小、速度快的YOLOv5s為基礎(chǔ),構(gòu)建GSN-YOLOv5s網(wǎng)絡(luò)模型。采用網(wǎng)絡(luò)參數(shù)更小、檢測(cè)速度更快的Ghost Bottleneck結(jié)構(gòu)來(lái)替換原網(wǎng)絡(luò)中的BottleneckCsp結(jié)構(gòu)[10]。同時(shí),考慮到減少網(wǎng)絡(luò)參數(shù)可能會(huì)影響檢測(cè)精度,在網(wǎng)絡(luò)層間增加了SENet,以提高檢測(cè)精度、減少網(wǎng)絡(luò)參數(shù)、縮短檢測(cè)時(shí)間。
GSN-YOLOv5s網(wǎng)絡(luò)模型的Input、Neck和Prediction與YOLOv5網(wǎng)絡(luò)模型一致,對(duì)YOLOv5s中的Backbone進(jìn)行修改,得到GSN-YOLOv5s網(wǎng)絡(luò)模型結(jié)構(gòu)(見(jiàn)圖5)。Ghost Bottleneck1和Ghost Bottleneck2分別表示步長(zhǎng)為1和2的Ghost Bottleneck。采用Ghost Bottleneck和SENet替換原網(wǎng)絡(luò)中的CBL和BottleneckCsp1,以提高檢測(cè)精度、減少網(wǎng)絡(luò)參數(shù)、縮短檢測(cè)時(shí)間。
圖5 GSN-YOLOv5s網(wǎng)絡(luò)模型結(jié)構(gòu)
本次研究使用精確度(precision)、召回率(recall)、精度均值(average precision,AP)、平均精度均值(mAP)對(duì)GSN-YOLOv5s網(wǎng)絡(luò)模型性能進(jìn)行評(píng)價(jià)。
精確度、召回率的計(jì)算如式(6)、式(7)所示:
(6)
(7)
式中:ntp表示識(shí)別成功且類(lèi)別正確的圖片數(shù)量;nfp表示識(shí)別成功且類(lèi)別錯(cuò)誤的圖片數(shù)量;nfn表示識(shí)別失敗且類(lèi)別錯(cuò)誤的圖片數(shù)量。
精度均值、平均精度均值的計(jì)算如式(8)、式(9)所示:
(8)
(9)
式中:PA表示精度均值;PMA表示平均精度均值;N表示圖片數(shù)量;P(i)表示識(shí)別出i個(gè)圖片的精確度;Δr(i)表示識(shí)別的圖片個(gè)數(shù)由i-1增加到i時(shí)召回率的變化;C表示類(lèi)別數(shù)。
3.2.1 數(shù)據(jù)集來(lái)源
為了提高模型的泛化能力,采用Mosaic數(shù)據(jù)增強(qiáng)方法對(duì)收集整理的煙霧火焰圖片進(jìn)行數(shù)據(jù)擴(kuò)增,建立了一個(gè)包含1.4×104張圖片的數(shù)據(jù)集。利用Labelimg軟件對(duì)圖片進(jìn)行標(biāo)注,并將數(shù)據(jù)集按照8 ∶1 ∶1的比例劃分為訓(xùn)練集、測(cè)試集、驗(yàn)證集。
3.2.2 實(shí)驗(yàn)平臺(tái)及訓(xùn)練流程
本次實(shí)驗(yàn)在GPU平臺(tái)上進(jìn)行模型的訓(xùn)練和測(cè)試工作。操作系統(tǒng)為Win10 64位,CPU為AMD Ryzen 5 3600 6核 3.6 GHz,顯卡為NVIDIA 2060 super 8 GiB,內(nèi)存為32 GiB,硬盤(pán)為SSD 500 GiB,代碼語(yǔ)言為Python3.6,深度學(xué)習(xí)框架為T(mén)orch1.5、CUDA10.1。
為了讓模型在訓(xùn)練過(guò)程中快速收斂并充分學(xué)習(xí)到特征信息,避免由于過(guò)擬合造成的泛化能力不足現(xiàn)象,采取以下策略對(duì)模型進(jìn)行訓(xùn)練。首先,使用混合精度訓(xùn)練,使運(yùn)算速度更快、硬件效率更高;其次,設(shè)初始學(xué)習(xí)率為0.000 01,動(dòng)量為0.937,輪次為300;最后,使用L2正則化對(duì)權(quán)重進(jìn)行衰減處理,衰減系數(shù)為0.000 5。
分別對(duì)訓(xùn)練后的YOLOv5s、GSN-YOLOv5s網(wǎng)絡(luò)模型進(jìn)行圖片測(cè)試,對(duì)置信度、檢測(cè)時(shí)間、檢測(cè)精度等指標(biāo)進(jìn)行對(duì)比分析。
3.3.1 置信度對(duì)比分析
從測(cè)試集中隨機(jī)抽取3張圖片,分別對(duì)YOLOv5s、GSN-YOLOv5s網(wǎng)絡(luò)模型進(jìn)行測(cè)試,測(cè)試效果對(duì)比圖如圖6所示。圖6a中,GSN-YOLOv5s檢測(cè)到的火焰置信度高于YOLOv5s;圖6b、圖6c中,GSN-YOLOv5s和YOLOv5s檢測(cè)到的火焰煙霧置信度差距不大,但GSN-YOLOv5s檢測(cè)到的火焰框比YOLOv5s多。由此可見(jiàn),GSN-YOLOv5s檢測(cè)到的目標(biāo)更多、置信度更高。
圖6 測(cè)試效果對(duì)比圖
3.3.2 檢測(cè)時(shí)間對(duì)比分析
由檢測(cè)時(shí)間對(duì)比結(jié)果(見(jiàn)表1)可知,GSN-YOLOv5s的檢測(cè)時(shí)間比YOLOv5s快約20%。
表1 檢測(cè)時(shí)間對(duì)比結(jié)果
3.3.3 檢測(cè)精度對(duì)比分析
由檢測(cè)精度對(duì)比結(jié)果(見(jiàn)表2)可知,GSN-YOLOv5s的平均精度均值比YOLOv5s高2.4%。
表2 檢測(cè)精度對(duì)比結(jié)果
本次研究基于YOLOv5s網(wǎng)絡(luò)模型,設(shè)計(jì)了一種GSN-YOLOv5s火焰煙霧檢測(cè)方法。將YOLOv5s的主干替換為輕量化的Ghostnet網(wǎng)絡(luò),并在各網(wǎng)絡(luò)層間增加SENet來(lái)降低減少參數(shù)帶來(lái)的影響。通過(guò)對(duì)比實(shí)驗(yàn)結(jié)果可知,GSN-YOLOv5s的平均精度均值比YOLOv5s高2.4%,檢測(cè)時(shí)間比YOLOv5s快20%。GSN-YOLOv5s網(wǎng)絡(luò)模型大大減少了網(wǎng)絡(luò)參數(shù),縮短了檢測(cè)時(shí)間,提高了檢測(cè)精度。