關(guān)鍵詞:YOLOv8;CBAM注意力機(jī)制;森林火災(zāi)檢測(cè)
0 引言(Introduction)
隨著全球天氣持續(xù)變暖,高溫、干旱、大風(fēng)等極端天氣呈現(xiàn)多發(fā)并發(fā)態(tài)勢(shì),導(dǎo)致全球范圍內(nèi)森林火災(zāi)頻繁爆發(fā)。據(jù)統(tǒng)計(jì),2022年前10個(gè)月,我國(guó)共發(fā)生森林火災(zāi)648起[1]。為有效監(jiān)測(cè)和防范森林火災(zāi),近年來(lái)基于深度學(xué)習(xí)的目標(biāo)檢測(cè)技術(shù)逐漸成為研究熱點(diǎn)?,F(xiàn)階段,傳統(tǒng)的森林火災(zāi)檢測(cè)算法在精確性和實(shí)時(shí)性方面存在諸多挑戰(zhàn),尤其是受限于火焰和煙霧圖像分辨率較低和不同場(chǎng)景因素的影響。
當(dāng)前,YOLOv8在目標(biāo)檢測(cè)領(lǐng)域的表現(xiàn)出色,但在復(fù)雜場(chǎng)景下,特別是在森林火災(zāi)檢測(cè)中,其性能仍有不足,包括分辨率低、易受環(huán)境影響等。針對(duì)以上問(wèn)題,本文提出一種新的算法模型YOLOv8,并在改進(jìn)算法的基礎(chǔ)上加入了CBAM 注意力機(jī)制[2]。通過(guò)實(shí)驗(yàn)數(shù)據(jù)對(duì)比,驗(yàn)證了與原始算法相比,改進(jìn)之后的算法具有更高的檢測(cè)精度。
1 相關(guān)研究(Related research)
近年來(lái),研究者將深度學(xué)習(xí)和機(jī)器學(xué)習(xí)應(yīng)用于圖像領(lǐng)域,取得了較好的成果,搭建了一些預(yù)測(cè)模型。黃翰鵬等[3]提出一種新型FNN-TSM火災(zāi)預(yù)警算法,將模糊神經(jīng)網(wǎng)絡(luò)模型和溫度時(shí)序模型結(jié)合,有效解決了傳統(tǒng)火災(zāi)檢測(cè)器誤報(bào)率高的問(wèn)題。盧鵬等[4]提出一種基于SSD_MobileNet的復(fù)雜環(huán)境火焰區(qū)域標(biāo)記方法,適用于實(shí)時(shí)火焰檢測(cè)領(lǐng)域。張彬彬等[5]提出將改進(jìn)的CIOU和Focal loss作為損失函數(shù),能滿(mǎn)足火焰檢測(cè)的實(shí)時(shí)性和高效性要求,但是訓(xùn)練和檢測(cè)速度有所下降。王冠博等[6]通過(guò)K-Means聚類(lèi)和引入注意力機(jī)制,提出改進(jìn)型YOLOv4火焰圖像實(shí)時(shí)檢測(cè)模型,解決火焰受周?chē)蛩馗蓴_的問(wèn)題,使檢測(cè)效果得到了很大的提升。目前,以上算法大都針對(duì)城市和周邊居民區(qū)的火災(zāi)檢測(cè),有些算法只能對(duì)火焰進(jìn)行檢測(cè),但忽略了對(duì)煙霧的檢測(cè)[7],而在森林火災(zāi)發(fā)生的初期,對(duì)煙霧的檢測(cè)恰恰是不能缺失的,并且自然環(huán)境下的火焰和煙霧的形態(tài)與城市環(huán)境下的火焰和煙霧的形態(tài)差別較大。在不同場(chǎng)景下,面對(duì)不同天氣變化和周?chē)h(huán)境變化,精確且實(shí)時(shí)地檢測(cè)煙霧和火焰是檢測(cè)算法研究人員面臨的一個(gè)難題。因此,必須設(shè)計(jì)一個(gè)合適的預(yù)測(cè)模型,既能夠同時(shí)檢測(cè)火焰和煙霧,又要保證其檢測(cè)精度。本文采用YOLO系列中最新算法模型YOLOv8,在Neck層中改進(jìn)算法和加入注意力機(jī)制,對(duì)常見(jiàn)的森林火災(zāi)發(fā)生場(chǎng)景進(jìn)行識(shí)別,驗(yàn)證其識(shí)別效果。
2 YOLOv8原理及模型架構(gòu)(YOLOv8 principlesand model architecture)
目前,YOLO系列中最新的算法模型是YOLOv8,其在公開(kāi)的數(shù)據(jù)集上的檢測(cè)準(zhǔn)確率和速度均超過(guò)其他YOLO系列的算法模型。YOLOv8算法由Glenn-Jocher提出,與YOLOv3算法、YOLOv5算法一脈相承[8]。YOLOv8網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示,主要組成部分為Input、Backbone、Neck和Head。
2.1Input
在輸入端部分,主要包括Mosaic圖像增強(qiáng)、自適應(yīng)錨框計(jì)算和自適應(yīng)圖片縮放。
采用Mosaic數(shù)據(jù)增強(qiáng)方法的思想是隨機(jī)使用4張不同圖像,將其隨機(jī)拼接成一張大的圖像,可以增加訓(xùn)練集的多樣性和難度,有助于提高目標(biāo)檢測(cè)模型的泛化能力。
在網(wǎng)絡(luò)訓(xùn)練前,自適應(yīng)錨框通過(guò)學(xué)習(xí)的方式自動(dòng)計(jì)算出最適合輸入圖像的錨框參數(shù),不需要手動(dòng)設(shè)置。這種方法可以提高目標(biāo)檢測(cè)的精度和魯棒性。
在YOLOv4之后加入了圖像混疊增強(qiáng)技術(shù),但是在訓(xùn)練的過(guò)程中全程啟用圖像混疊增強(qiáng)技術(shù)會(huì)影響訓(xùn)練效果。YOLOv8會(huì)在最后訓(xùn)練時(shí)期關(guān)閉圖像混疊增強(qiáng)技術(shù),從而得到更好的訓(xùn)練效果。
2.2Backbone
Backbone由CBS、C2F、SPPF等模塊組成,主要是對(duì)目標(biāo)特征進(jìn)行提取。其中,C2F模塊參考了YOLOv7[9]中ELAN的設(shè)計(jì)思想以及YOLOv5中的C3模塊進(jìn)行設(shè)計(jì),將原先的C3模塊全部換成C2F模塊。同時(shí),在該模塊中加入更多的分支。圖2為YOLOv8的C2F模塊結(jié)構(gòu)圖,圖3為YOLOv5的C3模塊結(jié)構(gòu)圖。SPPF 仍然使用YOLOv5 中的模塊。Bottleneck是一種特殊的殘差結(jié)構(gòu)。
2.3 Neck
Neck層仍然采用了YOLOv5 中的特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network, FPN) [10]和路徑聚合網(wǎng)絡(luò)(PathAggregation Network, PAN)[11],對(duì)不同層的特征信息進(jìn)行融合。FPN和PAN相互配合使用,可以提高模型的檢測(cè)性能。FPN結(jié)構(gòu)可以增強(qiáng)模型的感知能力和尺度不變性,而PAN結(jié)構(gòu)可以增強(qiáng)多尺度特征的融合能力。在結(jié)構(gòu)上僅需要將C3模塊替換為C2F模塊,其余結(jié)構(gòu)不變。
2.4 Head
本文設(shè)計(jì)的算法模型有一部分改進(jìn)是針對(duì)Head層,與YOLOv5相比,有兩大改進(jìn)之處。首先使用了目前主流的解耦頭(Decoupled-Head)結(jié)構(gòu),將分類(lèi)和檢測(cè)頭分離。其次將Anchor-Based換成Anchor-Free。該模塊負(fù)責(zé)檢測(cè)大尺度目標(biāo)、中尺度目標(biāo)和小尺度目標(biāo),用于將特征圖轉(zhuǎn)換為目標(biāo)框的預(yù)測(cè)結(jié)果,能夠準(zhǔn)確地預(yù)測(cè)圖像中目標(biāo)的位置、類(lèi)別和邊界框信息。
目前,YOLOv8官方代碼中給出了YOLOv8n、YOLOv8s、YOLOv8m、YOLOv8l和YOLOv8x共5個(gè)不同網(wǎng)絡(luò)寬度和深度的版本??紤]到模型的檢測(cè)速度和精度,本文采用YOLOv8n為基線(xiàn)模型對(duì)目標(biāo)進(jìn)行檢測(cè),并在此基礎(chǔ)上進(jìn)行了改進(jìn),檢測(cè)速度快、穩(wěn)定性高,具有深度和特征圖寬度最小的優(yōu)點(diǎn),可以很好地用于火焰和煙霧目標(biāo)的實(shí)時(shí)監(jiān)測(cè)。
3 改進(jìn)YOLOv8 識(shí)別模型(Improvement ofYOLOv8 recognition model)
3.1CBAM 注意力機(jī)制
CBAM(Convolutional Block Attention Module)是一種組合模型,它將通道注意力和空間注意力結(jié)合,可以提高模型的表現(xiàn)力。CBAM模塊包含通道注意力和空間注意力兩個(gè)子模塊,可以對(duì)輸入特征進(jìn)行通道級(jí)和空間級(jí)的注意力調(diào)控。通道注意力模塊計(jì)算每個(gè)通道的重要性,以便更好地區(qū)分不同通道之間的特征;空間注意力模塊計(jì)算每個(gè)像素在空間上的重要性,幫助模型更好地捕捉圖像中的空間結(jié)構(gòu)。
3.2CBAM 注意力機(jī)制原理
CBAM是用于增強(qiáng)卷積神經(jīng)網(wǎng)絡(luò)(CNN)性能的注意力機(jī)制模塊,能夠應(yīng)用于很多卷積神經(jīng)網(wǎng)絡(luò)中,如GoogLeNet[12]、VGGNet[13]和ResNet[14]等。CBAM 的主要目標(biāo)是通過(guò)在CNN中引入通道注意力模塊和空間注意力模塊提高模型的感知能力,從而在不增加網(wǎng)絡(luò)復(fù)雜性的情況下提高其性能。
通道注意力模塊是一種用于確定每個(gè)通道對(duì)最終特征的重要性的方法,通道注意力機(jī)制模型結(jié)構(gòu)如圖4所示,它通過(guò)對(duì)卷積后的特征圖進(jìn)行全局平均池化,得到每個(gè)通道的全局特征描述。通過(guò)兩個(gè)全連接層將全局特征描述映射為通道權(quán)重,表示每個(gè)通道對(duì)最終特征的重要性,然后將通道權(quán)重與原始特征圖相乘,得到經(jīng)過(guò)通道注意力調(diào)整的特征圖。這樣可以更好地區(qū)分不同通道之間的特征,提高特征的表達(dá)能力。
間注意力模塊則用于計(jì)算每個(gè)像素在空間上的重要性,以更好地捕捉圖像中的空間結(jié)構(gòu)。空間注意力機(jī)制模型結(jié)構(gòu)如圖5所示,首先通過(guò)對(duì)通道注意力模塊輸出的特征圖進(jìn)行最大池化和平均池化操作,得到每個(gè)通道的最大值和平均值。將這些值拼接并輸入一個(gè)全連接層中,生成表示每個(gè)像素空間權(quán)重的向量。將空間權(quán)重向量與經(jīng)過(guò)通道注意力調(diào)整的特征圖相乘,得到最終經(jīng)過(guò)空間注意力調(diào)整的特征圖。這樣可以更好地區(qū)分不同像素空間的重要性,提高特征的表達(dá)能力。
公式(2)中的σ 表示Sigmoid函數(shù),f7×7 表示7×7大小的卷積核。
CBAM注意力機(jī)制能夠自適應(yīng)地調(diào)整不同的通道和像素在特征映射中的權(quán)重,它可以針對(duì)不同的任務(wù)和數(shù)據(jù)集自動(dòng)選擇最優(yōu)的特征組合,從而提高模型的性能。
3.3 改進(jìn)模型結(jié)構(gòu)
在初始YOLOv8網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,加入效果更好的混合注意力機(jī)制CBAM,將CBAM 注意力機(jī)制添加到上采樣階段中的Upsample模塊后面以及Neck層中C2F模塊的后面。嵌入CBAM機(jī)制后的網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
引入CBAM模塊可以增強(qiáng)火焰和煙霧特征表示能力。首先通過(guò)YOLOv8模型提取原始圖像的特征圖,其次在特征圖中添加CBAM模塊進(jìn)行特征增強(qiáng)。將特征通道和特征空間兩個(gè)維度相結(jié)合構(gòu)成注意力機(jī)制,然后將注意力聚焦的范圍信息與輸入的特征圖相乘,進(jìn)行自適應(yīng)的特征細(xì)化。CBAM注意力機(jī)制模型如圖7所示。
4 相關(guān)實(shí)驗(yàn)設(shè)置(Related experimental settings)
4.1 數(shù)據(jù)集制作及其劃分
使用爬蟲(chóng)技術(shù)在互聯(lián)網(wǎng)中收集數(shù)據(jù)集,在新聞網(wǎng)以及百度等網(wǎng)站上收集火災(zāi)目標(biāo)圖片共6 850張,其中數(shù)據(jù)集為5 360張,驗(yàn)證為1 490張。數(shù)據(jù)集包含多種場(chǎng)景下發(fā)生的火災(zāi)圖像,能夠適用于大部分場(chǎng)景下的火焰和煙霧目標(biāo)檢測(cè)。
4.2 數(shù)據(jù)集標(biāo)注
將數(shù)據(jù)集中的圖片輸入算法模型中進(jìn)行訓(xùn)練,因?yàn)闆](méi)有YOLO算法所需的標(biāo)注文件,因此使用LabelImg軟件對(duì)火焰進(jìn)行標(biāo)注。數(shù)據(jù)集標(biāo)注示例圖片如圖8所示,圖8(a)為標(biāo)注火焰和煙霧的樣本,圖8(b)和圖8(c)為單獨(dú)標(biāo)注火焰的樣本,圖8(d)為單獨(dú)標(biāo)注煙霧的樣本。圖片用于模型訓(xùn)練和模型測(cè)試的比例分別為80%和20%。
4.3 實(shí)驗(yàn)平臺(tái)配置
本次實(shí)驗(yàn)中使用的YOLOv8模型是在Windows 10的操作系統(tǒng)下配置,CPU型號(hào)為Intel(R)Core(TM)i7-8750 H CPU@2.2 GHz 2.21 GHz,運(yùn)行內(nèi)存為16 GB,GPU型號(hào)為NVIDIAGeForce GTX 1050 Ti,深度學(xué)習(xí)框架為Pytorch2.0.1+cu118,運(yùn)算架構(gòu)為Cuda11.8,開(kāi)發(fā)環(huán)境是Python 3.8。
4.4 訓(xùn)練過(guò)程及評(píng)價(jià)指標(biāo)
為了驗(yàn)證圖像的檢測(cè)性能,給出模型的評(píng)價(jià)指標(biāo)。
(1)準(zhǔn)確率P (Precision)。準(zhǔn)確率可以衡量模型的精確性,可以定義為模型預(yù)測(cè)的正類(lèi)別中有多少是真正的正類(lèi)別,其公式如下:
其中:TP 表示模型正確地將正例判定為正例的數(shù)量,F(xiàn)P 表示模型錯(cuò)誤地將負(fù)例判定為正例的數(shù)量。
(2)召回率R(Recall)。召回率可以衡量模型的全面性,可以定義為所有真正的正類(lèi)別中有多少被模型成功檢測(cè)到,其公式如下:
其中:TP 表示模型正確地將正例判定為正例的數(shù)量,F(xiàn)N 表示模型錯(cuò)誤地將正例判定為負(fù)例的數(shù)量。
(3)平均準(zhǔn)確率AP (Average Precision)。平均準(zhǔn)確率可以衡量模型的檢測(cè)性能,定義為對(duì)各個(gè)樣本的檢測(cè)精度,其公式如下:
(4)平均準(zhǔn)確率均值mAP(mean Average Precision)。平均準(zhǔn)確率均值[14]是一種綜合評(píng)價(jià)指標(biāo),它綜合考慮了模型在不同類(lèi)別上的精準(zhǔn)率,是所有類(lèi)別AP 的均值,其公式如下:
5 實(shí)驗(yàn)結(jié)果展示(Presentation of experimentalresults
為了驗(yàn)證改進(jìn)YOLOv8算法模型的有效性,將其與原始YOLOv8分別應(yīng)用于數(shù)據(jù)集中進(jìn)行訓(xùn)練實(shí)驗(yàn),實(shí)驗(yàn)檢測(cè)結(jié)果如表1所示。從表1中的數(shù)據(jù)可見(jiàn),改進(jìn)后的YOLOv8模型相比原始的YOLOv8模型,P、R 和mAP@0.5指標(biāo)分別提高了6.5%、6.8%和4.8%,表明采用了CBAM注意力機(jī)制模塊后,較好地滿(mǎn)足了對(duì)火焰和煙霧的檢測(cè)要求。
圖9(a)和圖9(c)為原始的YOLOv8的檢測(cè)結(jié)果,圖9(b)和圖9(d)為添加了CBAM 注意力機(jī)制模塊的火災(zāi)檢測(cè)結(jié)果。對(duì)比4張圖片發(fā)現(xiàn),兩種網(wǎng)絡(luò)模型均能夠?qū)馂?zāi)進(jìn)行識(shí)別,但是未添加注意力機(jī)制的網(wǎng)絡(luò)對(duì)于檢測(cè)框的置信度低于添加注意力機(jī)制的改進(jìn)網(wǎng)絡(luò),所以經(jīng)改進(jìn)的YOLOv8能更精確地對(duì)火焰和煙霧進(jìn)行識(shí)別。
6 結(jié)論(Conclusion)
為提升森林火災(zāi)檢測(cè)精確率和實(shí)時(shí)性差等,本文提出一種基于改進(jìn)YOLOv8的森林火災(zāi)檢測(cè)算法模型,引入CBAM 注意力機(jī)制到Neck層中C2F模塊后面和Upsample結(jié)構(gòu)后面,能夠提高模型特征提取的準(zhǔn)確率,使網(wǎng)絡(luò)模型更好地學(xué)習(xí)森林火災(zāi)場(chǎng)景,最終提高其對(duì)火災(zāi)和煙霧的識(shí)別靈敏度和辨別能力。從最終的實(shí)驗(yàn)結(jié)果可知,相比于原模型,改進(jìn)后的YOLOv8模型的mAP@0.5提高了4.8%,具有較高的檢測(cè)精度。目前,該模型還處于優(yōu)化階段,對(duì)于一些特殊情況還要進(jìn)一步研究、調(diào)整,之后的研究中將加入更多不同的數(shù)據(jù)集對(duì)不同環(huán)境下的火災(zāi)進(jìn)行檢測(cè),并進(jìn)一步研究算法對(duì)目標(biāo)檢測(cè)的識(shí)別性能。