蔡柳艷, 于 瓅
(安徽理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
火災(zāi)是現(xiàn)實(shí)生活中最常見、最突出,同時(shí)也是危害性最大的一種災(zāi)難,直接關(guān)系到人民群眾的生命、財(cái)產(chǎn)安全,甚至?xí)?yán)重影響區(qū)域生態(tài)系統(tǒng)的穩(wěn)定。因此,在火災(zāi)發(fā)生初期,對其進(jìn)行迅速、有效的監(jiān)控與預(yù)警,是防止火災(zāi)發(fā)生的關(guān)鍵。
早期多使用傳感器檢測火焰和煙霧,對于室內(nèi)等特定環(huán)境有較好的檢測效果,但在室外和復(fù)雜背景條件下受到諸多干擾,導(dǎo)致檢測精度大幅下降[1]。傳統(tǒng)的圖像處理方法對于數(shù)據(jù)和處理器性能的依賴性較小,基于人工設(shè)計(jì)特征,通過收集顏色[2]、形狀、紋理[3]和運(yùn)動(dòng)[4]等特征實(shí)現(xiàn)檢測。Toereyin等人[5]基于小波變換來檢測火焰顏色變換,結(jié)合時(shí)間與顏色的變化信息來減少對顏色相似的物體出現(xiàn)誤檢的情況。Kim等人[6]提出了一種基于RGB空間的顏色檢測算法,優(yōu)化了火災(zāi)的檢測效果。然而,此類方法往往檢測精度較低,誤檢率高,泛化性能不強(qiáng)。近年來,基于深度學(xué)習(xí)的目標(biāo)檢測算法得到了快速發(fā)展。與傳統(tǒng)的機(jī)器視覺技術(shù)相比,深度學(xué)習(xí)方法能夠自動(dòng)提取出更抽象、更具體的特征,增強(qiáng)模型自身的泛化性能。Zhao等人[7]使用EfficientNet替換YOLOv3的主干網(wǎng)絡(luò),提高了網(wǎng)絡(luò)的特征提取能力,但是忽略了計(jì)算量增多帶來的速度下降問題;Xu等人[8]提出了一種輕量級的Light-YOLOv5s算法,提高了火災(zāi)檢測的精度和速度,但是對于遠(yuǎn)距離目標(biāo)的檢測效果不太理想。
目前,以深度學(xué)習(xí)為基礎(chǔ)的火焰和煙霧檢測方法,在實(shí)際應(yīng)用中仍存在很多問題。由于火災(zāi)發(fā)生的環(huán)境往往具有高度的復(fù)雜性和隨機(jī)性,現(xiàn)有算法對存在的遮擋、起火目標(biāo)較小等問題的檢測精度較低、速度較慢,存在較高的誤檢、漏檢等問題。針對以上問題,提出一種基于GB—YOLOv5的煙火智能檢測方法,將YOLOv5骨干網(wǎng)絡(luò)中的CSP1_X模塊替換為輕量級Ghost Bottleneck結(jié)構(gòu),同時(shí)為避免減少參數(shù)量導(dǎo)致精度下降,在網(wǎng)絡(luò)層間添加CBAM注意力機(jī)制,提高檢測速度的同時(shí)保證了檢測精度;最后對頸部進(jìn)行修改,提出一種基于BIFPN的多特征融合方法,更好地實(shí)現(xiàn)多特征融合,提高火焰和煙霧的檢測能力。
YOLOv5網(wǎng)絡(luò)模型目前廣泛應(yīng)用于目標(biāo)檢測任務(wù)中,其具有檢測精度高、推理速度快等特點(diǎn),在各領(lǐng)域問題上都取得了不錯(cuò)的成果[9-11]。YOLOv5根據(jù)網(wǎng)絡(luò)寬度和深度的不同分為了四種大小不同的模型,其中YOLOv5s模型作為YOLOv5系列中結(jié)構(gòu)最簡單、檢測速度最快的網(wǎng)絡(luò),更能符合實(shí)時(shí)火災(zāi)檢測任務(wù)的需求。YOLOv5s網(wǎng)絡(luò)由輸入端、主干網(wǎng)絡(luò)(Backbone)、頸部(Neck)及預(yù)測頭(Head)四部分組成,網(wǎng)絡(luò)結(jié)構(gòu)和主要模塊結(jié)構(gòu)如圖1所示。
圖1 YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)圖
其中輸入端采用Mosaic數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框計(jì)算、圖片縮放等進(jìn)行圖像預(yù)處理,豐富樣本數(shù)據(jù)。Backbone由C3_Darknet,Focus,SPPF模塊組成,主要作用為提取圖像的深層淺層特征信息。主干網(wǎng)絡(luò)將C3與Darknet融合,C3模塊是簡化版的CSPNet(跨局部連接網(wǎng)絡(luò)),能夠獲取更加豐富的特征信息圖;Focus模塊將主干網(wǎng)絡(luò)中輸入的特征圖進(jìn)行切片操作,通過降低模型計(jì)算量來提高推理速度;SPPF在SPP基礎(chǔ)上進(jìn)行了優(yōu)化,速度更快。Neck部分采用路徑聚合網(wǎng)絡(luò)(Path Aggregation Netwok,PANet)[12],即FPN+PAN的特征金字塔結(jié)構(gòu),FPN自頂向下傳輸強(qiáng)語義信息,通過上采樣來傳遞融合信息,PAN則相反過來采用下采樣方式增強(qiáng)網(wǎng)絡(luò)特征融合的能力。最后使用Bounding box損失函數(shù)和非極大值抑制(NMS)作為后處理算法,實(shí)現(xiàn)多檢測框去重的效果。
基于深度學(xué)習(xí)理論的特征提取過程中,通常會(huì)產(chǎn)生大量冗余的特征圖,導(dǎo)致大量的算力消耗,進(jìn)而影響模型的整體性能。Han等人[13]提出的GhostNet最大限度地減少了網(wǎng)絡(luò)計(jì)算消耗,同時(shí)提高網(wǎng)絡(luò)檢測的準(zhǔn)確率。計(jì)算深度可分離卷積與普通卷積的比值,公式如下:
(1)
其中,Dk為卷積核大小,DF為輸入圖片大小,M和N表示輸入輸出通道數(shù)。
Ghost Bottleneck模塊的結(jié)構(gòu)如圖2所示,可以看到它們由兩個(gè)Ghost模塊組成,結(jié)構(gòu)與Resnet中的殘差部分類似。其中第一個(gè)Ghost模塊通過增加通道數(shù)量對后續(xù)操作進(jìn)行擴(kuò)展處理,而第二個(gè)Ghost模塊是通過縮減通道數(shù)量使其與網(wǎng)絡(luò)中的直徑結(jié)構(gòu)相匹配,從而實(shí)現(xiàn)兩個(gè)模塊之間的信息傳遞。在完成了第一次Ghost模塊之后,再進(jìn)行批量歸一化處理和ReLU激活操作,接著在第二個(gè)Ghost模塊之后進(jìn)行歸一化處理。Ghost Bottleneck模塊在不改變輸入和輸出大小的情況下進(jìn)行特征提取,同時(shí)進(jìn)行下采樣操作。通過這樣的結(jié)構(gòu)方式,模型在有效減小計(jì)算量之余,減少了網(wǎng)絡(luò)對特征圖的重復(fù)操作,使特征圖得以優(yōu)化,進(jìn)一步提高模型的檢測效率。
針對YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜和冗余較多而造成檢測效率低下的問題,將YOLOv5骨干網(wǎng)絡(luò)中的CSP1_X模塊替換為輕量級Ghost Bottleneck結(jié)構(gòu),從而減少計(jì)算量、縮短檢測時(shí)間,提高檢測速度??紤]到可能因此帶來精度下降問題,需要在網(wǎng)絡(luò)層之間添加注意力機(jī)制CBAM。Woo等人[14]提出的注意力模塊(Convolutional Block Attention Module,CBAM)結(jié)合了通道注意力模塊和空間注意力模塊,通過加權(quán)學(xué)習(xí)獲得通道和空間位置上的重要特征信息。結(jié)構(gòu)如圖3所示。
圖2 Ghost Bottleneck結(jié)構(gòu)
圖3 CBAM注意力機(jī)制
在通道注意力模塊,經(jīng)過平均池化和最大池化壓縮輸入特征圖的空間維度,具體機(jī)制如公式(2)所示。
Mc(F)=
σ(MLP(AvgPool(F))+MLP(MaxPool(F)))=
(2)
在空間注意力模塊,經(jīng)過平均池化和最大池化壓縮輸入特征圖的通道,計(jì)算過程式(3)所示。
Ms(F)=σ(f7×7([AvgPool(F);MaxPool(F)]))
(3)
其中,f7×7代表7×7的卷積操作。
將注意力機(jī)制引入到Ghost Bottleneck結(jié)構(gòu)中,在減少模型參數(shù)的同時(shí),保證了檢測精度。其模塊結(jié)構(gòu)如圖4所示。在完成首次Ghost卷積運(yùn)算后,對輸入激活函數(shù)進(jìn)行BN層的歸一化處理,同時(shí)使用ReLU激活函數(shù),實(shí)現(xiàn)Ghost卷積的高效表達(dá)能力。在ReLU激活函數(shù)后添加CBAM注意力機(jī)制,避免了減少參數(shù)帶來的精度下降問題。將此模塊替換掉原網(wǎng)絡(luò)中的CSP1_X模塊。
圖4 模塊結(jié)構(gòu)圖
YOLOv5采用PAN結(jié)構(gòu)來實(shí)現(xiàn)對頸部區(qū)域的特征提取和融合,有效解決了不同場景圖像中目標(biāo)尺度差異較大的問題。然而,由于火災(zāi)探測的環(huán)境充滿了復(fù)雜性和不確定性,所以需要融合更多的特征才能取得更好的檢測效果。因此EfficientDet提出的特征融合方法BIFPN (Bidirectional Feature Pyramid Network)[15]更適用于火災(zāi)的檢測。其網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。BIFPN運(yùn)用雙向融合的思想,構(gòu)造了一條自頂向下、自底向上的路線,將骨干網(wǎng)絡(luò)中的多個(gè)尺度信息進(jìn)行融合,再通過上采樣和下采樣對特征分辨率尺度進(jìn)行統(tǒng)一,并在相同尺度之間建立雙向連接,以減少特征數(shù)據(jù)的損失,從而實(shí)現(xiàn)更高層次的融合。
因此,使用BIFPN模塊替換PAN來增強(qiáng)YOLOv5的頸部,更迅速、更容易地實(shí)現(xiàn)多尺度特征融合。同時(shí),BIFPN通過引入可學(xué)習(xí)權(quán)值,實(shí)現(xiàn)了自頂向下和自底向上等多尺度特征的有效融合。與 Yolov5的頸部PANet相比,BIFPN在參數(shù)和FLOPS更少的情況下性能更好,且不犧牲精度,提高了實(shí)時(shí)識別火焰和煙霧的能力。
深度學(xué)習(xí)模型的準(zhǔn)確性高度依賴于訓(xùn)練和測試階段使用的數(shù)據(jù)集。由于缺乏用于火災(zāi)檢測的權(quán)威數(shù)據(jù)集,通過網(wǎng)站Kaggle、網(wǎng)站GitHub以及網(wǎng)絡(luò)爬蟲獲取圖片,整理后使用標(biāo)注工具labelImg進(jìn)行標(biāo)注自制煙火數(shù)據(jù)集FSD,共包含4143張圖像,涵蓋了多種場景,如森林火災(zāi)、室內(nèi)火災(zāi)、城市火災(zāi)和交通火災(zāi)等。按照8:1:1的比例隨機(jī)劃分為訓(xùn)練集、驗(yàn)證集和測試集,并用于火災(zāi)煙霧和火焰的檢測。
在訓(xùn)練過程中用到的硬件設(shè)備CPU為AMD Ryzen 7 5800H,GPU為NVIDIA GeForce RTX3060 Laptop,軟件環(huán)境為Windows11操作系統(tǒng),PyThon3.8編譯語言,Pytorch1.11深度學(xué)習(xí)框架,CUDA為11.4版本。
圖5 BIFPN網(wǎng)絡(luò)結(jié)構(gòu)
為了更好的評價(jià)所提模型的優(yōu)劣性,現(xiàn)采用目前主流的目標(biāo)檢測算法的評價(jià)指標(biāo)來進(jìn)行驗(yàn)證。使用精確率(Precision,P)、召回率(Recall,R)、平均精度均值(mean Average precision,mAP)等評價(jià)指標(biāo)來對模型整體性能進(jìn)行評價(jià)。具體公式如下:
(4)
(5)
(6)
其中TP(真陽性)表示樣本正確分為陽性樣本;FP(假陽性)是指樣本被錯(cuò)誤分成陽性樣本;FN(假陰性)是指樣本被錯(cuò)誤地分成陰性樣本;此外,還對模型的檢測速度進(jìn)行了評估,使用每秒幀數(shù)(Frames Per Second,FPS)表示。
為了展現(xiàn)網(wǎng)絡(luò)模型和算法的性能,使用GB—YOLOv5模型對火焰和煙霧的檢測效果展開綜合評估,并且與原始的YOLOv5s網(wǎng)絡(luò)模型進(jìn)行比較,所用數(shù)據(jù)集均為自制FSD煙火數(shù)據(jù)集,結(jié)果如表1 所示。與YOLOv5s相比,所提GB—YOLOv5方法的P值和R值較原始算法分別提高了7.7%和3.2%,mAP值為85.9%,比原始算法的79.8%提高了6.1%,推理速度比YOLOv5s快21%,為87.51 fps。
表1 檢測精度對比結(jié)果
為了能夠更加直觀地展現(xiàn)提出的基于GB—YOLOv5的煙火智能檢測方法對于火災(zāi)檢測的效果,設(shè)計(jì)了消融實(shí)驗(yàn)對各模塊的有效性進(jìn)行驗(yàn)證,實(shí)驗(yàn)結(jié)果如表2 所示。從表中可以看出,僅使用融合注意力機(jī)制的Ghost Bottleneck模塊替代原網(wǎng)絡(luò)的CSP1_X模塊后,mAP提升了1.4%,推理速度比原始快26%,僅使用BIFPN模塊,FPS略有下降,但是mAP提升了4.9%,改進(jìn)后的模型整體mAP提升了6.1%,FPS比原網(wǎng)絡(luò)快21%。
表2 消融實(shí)驗(yàn)結(jié)果對比
圖6 本文算法檢測效果
經(jīng)過多次訓(xùn)練之后,獲得了最優(yōu)的模型文件。在此基礎(chǔ)上,對真實(shí)火災(zāi)場景中的圖片進(jìn)行測試,其檢測結(jié)果如圖6所示。圖中展示了多種場景下火災(zāi)發(fā)生的可能情況,夜晚和白天場景下形狀多變的火焰和煙霧都可以檢測出來,圖中多個(gè)目標(biāo)都沒有遺漏,并且可以檢測出較小的煙霧和火焰。對于太陽光、夜晚燈光以及天空背景的干擾都可以被排除掉??傊?提出的基于GB—YOLOv5的煙火智能檢測方法在多種場景之下均有較好的檢測效果。
針對火災(zāi)發(fā)生的環(huán)境復(fù)雜多樣導(dǎo)致檢測效果不佳的問題,提出了一種基于GB—YOLOv5的煙火智能檢測方法。將YOLOv5骨干網(wǎng)絡(luò)中的CSP1_X模塊替換為輕量級Ghost Bottleneck結(jié)構(gòu),同時(shí)為避免減少參數(shù)量導(dǎo)致精度下降,在網(wǎng)絡(luò)層間添加CBAM注意力機(jī)制,提高檢測速度的情況下保證了檢測精度;接著使用BIFPN模塊替換PAN模塊來增強(qiáng)YOLOv5的頸部,更好地實(shí)現(xiàn)多特征融合,提高火焰和煙霧的檢測能力。通過實(shí)驗(yàn)結(jié)果表明,所提檢測方法的性能優(yōu)于原始網(wǎng)絡(luò),在復(fù)雜環(huán)境下對火焰和煙霧的檢測精度和速度有明顯提高,并且對于小目標(biāo)火焰和煙霧的檢測也取得了很好的效果。