徐 巖,李永泉,郭曉燕,韓立蘇,劉巧玲
(山東科技大學(xué) 電子信息工程學(xué)院,山東 青島 266590)
火災(zāi)是極具破壞性的災(zāi)害之一,造成的損失巨大,因此火災(zāi)的預(yù)防以及前期檢測(cè)尤為重要。基于傳感器的傳統(tǒng)火災(zāi)檢測(cè)系統(tǒng)存在檢測(cè)條件單一、易受戶外場(chǎng)景干擾、響應(yīng)速度慢等缺陷。近年來基于深度學(xué)習(xí)算法的計(jì)算機(jī)視覺發(fā)展迅速,相比于傳統(tǒng)機(jī)器學(xué)習(xí)算法與圖像處理技術(shù),深度學(xué)習(xí)具有強(qiáng)大的特征表示能力和自主學(xué)習(xí)能力,將深度學(xué)習(xí)技術(shù)與火災(zāi)檢測(cè)相結(jié)合,檢測(cè)速度和精度可以大幅提升。
基于深度學(xué)習(xí)的火焰檢測(cè)主要是通過搭建卷積神經(jīng)網(wǎng)絡(luò)提取火焰特征進(jìn)行分類識(shí)別,實(shí)現(xiàn)端到端的火焰檢測(cè)。2016年Frizzi等[1]搭建9層卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了對(duì)火焰和煙霧的分類,檢測(cè)速度較快。Muhammad等[2]使用AlexNet[3]實(shí)現(xiàn)對(duì)火災(zāi)特征的提取,但網(wǎng)絡(luò)參數(shù)量較大,泛化性較差。2018年Sun等[4]利用殘差結(jié)構(gòu)設(shè)計(jì)了一個(gè)新的網(wǎng)絡(luò)進(jìn)行火焰識(shí)別,通過滑動(dòng)窗口進(jìn)行定位,取得較好的檢測(cè)效果。同年,Yan等[5]利用Faster-RCNN[6]實(shí)現(xiàn)了火焰的端到端檢測(cè),檢測(cè)速度與精度大幅提升。2021年Han等[7]采用改進(jìn)的CA-SSD網(wǎng)絡(luò)檢測(cè)吸煙行為,在保證實(shí)時(shí)性的基礎(chǔ)上,提高了煙霧檢測(cè)的準(zhǔn)確性。
常用于目標(biāo)檢測(cè)的卷積神經(jīng)網(wǎng)絡(luò)模型主要分為兩類,一類是以R-CNN[8]系列為代表的兩階段模型,在檢測(cè)過程中,首先找到目標(biāo)候選區(qū)域[9],然后對(duì)候選區(qū)域進(jìn)行分類與定位,該類方案檢測(cè)精度較高,但相對(duì)于單階段網(wǎng)絡(luò)檢測(cè)速度較慢;另一類是以YOLO系列[10-13]、SSD[14]為代表的單階段模型,將檢測(cè)問題看成坐標(biāo)回歸問題,通過模型直接輸出目標(biāo)檢測(cè)結(jié)果,該類算法檢測(cè)速度較快,但相對(duì)于兩階段網(wǎng)絡(luò)檢測(cè)精度較差。本研究針對(duì)火焰檢測(cè)實(shí)時(shí)性需求,選取YOLOv3-tiny輕量級(jí)網(wǎng)絡(luò)。通過改進(jìn)該網(wǎng)絡(luò),在保證檢測(cè)速度的同時(shí)提高火焰檢測(cè)的精度,并通過自制的火焰數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),驗(yàn)證改進(jìn)的YOLOv3-tiny算法的有效性。
YOLOv3-tiny是YOLOv3的一個(gè)輕量級(jí)網(wǎng)絡(luò),構(gòu)架分為特征提取網(wǎng)絡(luò)、特征融合網(wǎng)絡(luò)、檢測(cè)網(wǎng)絡(luò)3個(gè)部分。相比于YOLOv3采用殘差結(jié)構(gòu)來加深特征提取網(wǎng)絡(luò)的方式,YOLOv3-tiny骨干網(wǎng)絡(luò)僅由卷積層和池化層簡(jiǎn)單堆疊構(gòu)成,極大地降低了網(wǎng)絡(luò)的參數(shù)量和計(jì)算量,提升了檢測(cè)速度。特征融合部分延續(xù)了YOLOv3網(wǎng)絡(luò)采用深層高語義特征圖上采樣與淺層特征圖拼接的融合方式,實(shí)現(xiàn)深淺層特征信息的互補(bǔ)。檢測(cè)網(wǎng)絡(luò)部分刪除了52×52大小的檢測(cè)分支,僅包含13×13、26×26大小的兩個(gè)預(yù)測(cè)分支。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,其中Concat表示特征圖拼接操作,Upsample表示上采樣操作,Conv_1、Conv_2分別表示3×3、1×1卷積操作,P1、P2表示輸出特征圖。
圖1 YOLOv3-tiny網(wǎng)絡(luò)結(jié)構(gòu)
2.2.1 引入CSP-MobileNetV2模塊替換骨干網(wǎng)絡(luò)部分卷積層
YOLOv3-tiny骨干網(wǎng)絡(luò)通過卷積層提取特征,池化層降低維度,網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單且層數(shù)較少,導(dǎo)致目標(biāo)特征提取不充分,火焰檢測(cè)效果較差。本研究在骨干網(wǎng)絡(luò)相鄰兩個(gè)池化層之間引入CSP-MobileNetV2模塊,替換骨干網(wǎng)絡(luò)部分卷積層,從而增強(qiáng)網(wǎng)絡(luò)的特征提取能力,使得深層輸出特征圖含有更豐富的語義信息。
CSPNet[15]模塊通過對(duì)輸入特征圖進(jìn)行二分支操作,將特征圖分成相同的兩個(gè)分支,其中一個(gè)分支進(jìn)行后續(xù)的卷積激活操作,另外一個(gè)分支通過跨層連接與卷積激活后的分支進(jìn)行通道拼接,實(shí)現(xiàn)特征融合。CSPNet采用分支操作實(shí)現(xiàn)梯度流分割,通過跨層連接實(shí)現(xiàn)多種梯度信息組合,緩解網(wǎng)絡(luò)訓(xùn)練過程中梯度重復(fù)利用問題,降低計(jì)算量,提升網(wǎng)絡(luò)的性能。
MobileNetV2[16]模塊由一個(gè)1×1的點(diǎn)卷積和一個(gè)深度可分離卷積構(gòu)成。由于深度卷積無法改變特征圖通道數(shù),學(xué)習(xí)到的特征數(shù)受輸入通道的限制,因此,MobileNetV2在深度可分離卷積結(jié)構(gòu)之前添加了一個(gè)1×1卷積進(jìn)行通道升維,獲取更多的目標(biāo)特征。MobileNetV2模塊類似于倒置的殘差模塊,深度可分離卷積常用來替換普通卷積,減少參數(shù)量和計(jì)算量。
本研究將CSPNet模塊與MobileNetV2模塊相結(jié)合,在滿足檢測(cè)速度的情況下提升了網(wǎng)絡(luò)的檢測(cè)性能。圖2為CSPNet模塊、MobileNetV2模塊以及融合后的CSP-MobileNetV2模塊結(jié)構(gòu)。
圖2 模塊結(jié)構(gòu)
2.2.2 引入SKNet選核注意力網(wǎng)絡(luò)
火焰發(fā)生的場(chǎng)景復(fù)雜多樣且火焰的形狀大小各異,復(fù)雜的背景信息對(duì)火焰目標(biāo)檢測(cè)會(huì)產(chǎn)生干擾,同時(shí)不同尺度的火焰目標(biāo)在同種大小卷積核的作用下提取的特征信息量差距較大,使得目標(biāo)特征提取不充分。為了在提高對(duì)火焰有用信息關(guān)注的同時(shí),使火焰特征提取更充分,本研究在原始網(wǎng)絡(luò)檢測(cè)分支輸出之前引入選核注意力網(wǎng)絡(luò)(selective kernel network,SKNet)[17]。SKNet是SENet[18]的改進(jìn)版,通過對(duì)不同大小的卷積核提取到的特征圖進(jìn)行全局池化、激活、加權(quán)等操作,加強(qiáng)特征圖通道關(guān)聯(lián)的同時(shí)實(shí)現(xiàn)不同分支特征圖的加權(quán)分配。SKNet的結(jié)構(gòu)如圖3所示,作用過程可分為3個(gè)部分。
圖3 選核注意力網(wǎng)絡(luò)結(jié)構(gòu)
1) 分支卷積。將輸入特征圖經(jīng)過不同大小的卷積核進(jìn)行卷積操作,得到具有不同感受野的特征圖。分支卷積的個(gè)數(shù)可以有2個(gè)到多個(gè)。實(shí)驗(yàn)表明,在本研究數(shù)據(jù)集上分支卷積個(gè)數(shù)為2時(shí)檢測(cè)效果最好,分支卷積的大小分別為3×3和5×5。
2) 融合。將各卷積分支得到的特征圖F1、F2對(duì)應(yīng)位置元素相加得到特征圖X′,其中F1、F2以及融合特征圖X′的維度與輸入特征圖尺寸一致,皆為H×W×C(H、W為特征圖的高度和寬度,C為通道數(shù))。對(duì)特征圖X′進(jìn)行通道維度上的全局平均池化(global average pooling,GAP)得到維度為1×1×C的特征圖,再經(jīng)過兩個(gè)全連接層進(jìn)行非線性變換。其中,第一個(gè)全連接層進(jìn)行降維,將特征圖降為1×1×d,第二個(gè)全連接層將特征圖恢復(fù)到1×1×C。最后通過softmax函數(shù)激活得到兩個(gè)1×1×C的通道描述符a和b,兩個(gè)通道描述符對(duì)應(yīng)位置的權(quán)重相加等于1,實(shí)現(xiàn)不同卷積核輸出特征圖通道權(quán)重的分配。式(1)、(2)、(3)分別表示特征融合操作、全局池化操作、激活歸一化操作。
X′=F1+F2,
(1)
(2)
Z=δ(B(S))。
(3)
式(3)中:δ表示RELU激活操作,B表示歸一化操作。
(4)
2.2.3 插入PPM金字塔池化模塊
通常網(wǎng)絡(luò)越深感受野越大,而YOLOv3-tiny結(jié)構(gòu)簡(jiǎn)單,網(wǎng)絡(luò)層數(shù)少,得到的特征圖感受野比較小,目標(biāo)的檢測(cè)效果不佳。通過加深網(wǎng)絡(luò)來擴(kuò)大感受野會(huì)增加網(wǎng)絡(luò)的參數(shù)量和計(jì)算量,為了兼顧檢測(cè)速度,同時(shí)擴(kuò)大網(wǎng)絡(luò)的感受野,捕獲更豐富的多尺度上下文信息,提高網(wǎng)絡(luò)的整體性能,本研究在骨干網(wǎng)絡(luò)末端加入金字塔池化模塊(pyramid pooling module,PPM)[19]。
PPM通過對(duì)輸入特征圖進(jìn)行一系列不同大小的池化操作得到具有不同感受野的特征圖,將得到的特征圖與輸入特征圖進(jìn)行空間維度上的拼接融合,實(shí)現(xiàn)多級(jí)特征信息的融合互補(bǔ)。具體過程為:將輸入特征圖分別進(jìn)行1×1、2×2、3×3、6×6大小的池化操作,將池化后的特征圖通過1×1的卷積進(jìn)行通道降維,通道數(shù)降為輸入特征通道的1/N(N為池化操作個(gè)數(shù));將降維后的特征圖采用雙線性插值法,上采樣得到輸入特征圖大小,然后與輸入特征圖進(jìn)行空間維度上的拼接,使特征圖通道數(shù)變?yōu)?C;最后通過卷積操作將特征圖進(jìn)行特征融合降維,通道數(shù)恢復(fù)為C,實(shí)現(xiàn)從全局到局部多尺度特征信息的充分利用。圖4為PPM結(jié)構(gòu)圖,圖5為改進(jìn)的網(wǎng)絡(luò)整體結(jié)構(gòu)圖,紅色邊框部分為改進(jìn)的區(qū)域。
圖4 金字塔池化模塊結(jié)構(gòu)
圖5 改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)
實(shí)驗(yàn)環(huán)境為Deepin Linux V20系統(tǒng)、NVIDIA GeForce RTX 3080 GPU(10 GB)顯卡等硬件條件,結(jié)合Python語言和Pytorch深度學(xué)習(xí)框架進(jìn)行編程實(shí)現(xiàn)。輸入圖片大小為416×416,網(wǎng)絡(luò)初始學(xué)習(xí)率為0.001,權(quán)重衰減系數(shù)為0.000 5,采用動(dòng)量梯度下降優(yōu)化算法,動(dòng)量值為0.9,batch size設(shè)置為32,訓(xùn)練輪數(shù)(epoch)為150。
目前網(wǎng)絡(luò)上公開的火焰數(shù)據(jù)集較少且質(zhì)量不高。本研究通過網(wǎng)絡(luò)爬蟲技術(shù)自制火焰數(shù)據(jù)集,共9 206張圖片,其中訓(xùn)練集7 365張,測(cè)試集1 841張,訓(xùn)練集圖片和測(cè)試集圖片比例為8∶2。通過Labelimg標(biāo)注軟件將數(shù)據(jù)集制作成PASCAL VOC格式。數(shù)據(jù)集圖片分布比較廣泛,既包含了燭火、火炬、篝火等燃燒穩(wěn)定、特征明顯的火焰,也包含了森林火災(zāi)、交通火災(zāi)、城市火災(zāi)等背景復(fù)雜、形狀多樣的火焰。由于數(shù)據(jù)集包含的背景復(fù)雜多樣,火焰燃燒階段不同且形狀不一,檢測(cè)難度較大。數(shù)據(jù)集中火焰圖片大體可以分為兩大類,如表1所示。
表1 數(shù)據(jù)集分類
為了使錨框的大小更符合數(shù)據(jù)集的目標(biāo)尺寸,本研究通過K-means聚類分析法[20]重新尋找合適的聚類中心生成適合本數(shù)據(jù)集的6個(gè)錨框,大小分別為(17, 23),(26, 46),(54, 59),(66, 115),(128, 145),(216, 279)。錨框尺寸整體符合自制數(shù)據(jù)集中目標(biāo)框的尺寸分布,用來加速算法的訓(xùn)練。
實(shí)驗(yàn)常用的評(píng)價(jià)指標(biāo)為準(zhǔn)確率(P)、召回率(R)、平均檢測(cè)精度(A)、平均精度均值(mAP)以及檢測(cè)速度(Fps)。以下分別為幾個(gè)指標(biāo)的計(jì)算式:
(1)
(2)
(3)
(4)
式中:T為真正例,表示被預(yù)測(cè)為正類的正樣本;FP為假正例,表示被預(yù)測(cè)為正類的負(fù)樣本;FN為假負(fù)例,表示被預(yù)測(cè)為負(fù)類的正樣本;N為類別個(gè)數(shù)。本研究只有火焰一類,故采取的評(píng)價(jià)指標(biāo)為mAP和Fps。
本研究在原網(wǎng)絡(luò)的基礎(chǔ)上,分別對(duì)單一改進(jìn)點(diǎn)、融合兩個(gè)改進(jìn)點(diǎn)以及最終網(wǎng)絡(luò)進(jìn)行了8個(gè)實(shí)驗(yàn),具體實(shí)驗(yàn)結(jié)果如表2所示。
表2 消融實(shí)驗(yàn)結(jié)果
在本研究自制數(shù)據(jù)集上,YOLOv3-tiny網(wǎng)絡(luò)的mAP為80.2%,將CSP-MobileNetV2模塊引入到骨干網(wǎng)絡(luò)后mAP提升2.0%,表明引入CSP-MobileNetV2模塊后網(wǎng)絡(luò)的特征提取能力增強(qiáng),對(duì)火焰的深度特征提取更充分。實(shí)驗(yàn)3為引入PPM后的網(wǎng)絡(luò)性能,與原網(wǎng)絡(luò)相比mAP提升1.5%,說明多級(jí)特征信息融合使火焰信息互補(bǔ),檢測(cè)效果更好。實(shí)驗(yàn)4為加入SKNet模塊后的結(jié)果,網(wǎng)絡(luò)的mAP提升1.8%,該結(jié)果表明SKNet模塊實(shí)現(xiàn)了不同尺度火焰目標(biāo)對(duì)卷積核的自適應(yīng)選擇,對(duì)火焰特征提取更充分。實(shí)驗(yàn)5~7分別將實(shí)驗(yàn)2~4進(jìn)行兩兩融合,融合后的mAP分別為83.1%、83.4%、82.9%。實(shí)驗(yàn)8為本算法結(jié)果,mAP達(dá)到84.3%,與YOLOv3-tiny網(wǎng)絡(luò)相比,mAP提升了4.1%,證明了本算法的有效性。
圖6為實(shí)驗(yàn)1與實(shí)驗(yàn)8訓(xùn)練過程中平均精度均值曲線對(duì)比圖。從圖6可以看出,隨著訓(xùn)練程度的加深兩條曲線呈上升趨勢(shì),并在100輪左右趨于穩(wěn)定。最終YOLOv3-tiny的mAP為80.2%,本算法的mAP達(dá)到84.3%,整體提升了4.1%。
圖6 實(shí)驗(yàn)曲線
為了進(jìn)一步驗(yàn)證本算法的有效性,分別從檢測(cè)精度與檢測(cè)速度兩個(gè)方面對(duì)比幾種常用算法在本研究自制數(shù)據(jù)集上的表現(xiàn),結(jié)果見表3。
表3 不同算法實(shí)驗(yàn)對(duì)比
如表3所示,在檢測(cè)精度上,本算法的平均精度均值最高,達(dá)到84.3%。與YOLOv3、YOLOv3-tiny、 EfficientDet-D2[21]和YOLOv5m相比分別提高了0.8%、4.1%、7.0%和1.6%。
在檢測(cè)速度方面,本算法的Fps為106,相較于YOLOv3、SSD,F(xiàn)ps分別高出53和64,比YOLOv5m、EfficientDet-D2算法分別高出69和46。由于引入模塊帶來少許的參數(shù)量和計(jì)算量增加,所以與YOLOv3-tiny、YOLOv4-tiny相比,速度稍微降低,但檢測(cè)速度依舊滿足實(shí)時(shí)性檢測(cè)的需求。
圖7為YOLOv3-tiny算法與本算法在訓(xùn)練過程中分類損失與回歸損失的對(duì)比曲線,圖7(a)、7(b)分別表示回歸損失和分類損失。
圖7 損失曲線
在圖7中,改進(jìn)前后算法損失曲線都呈下降趨勢(shì)。隨著訓(xùn)練程度的加深,原算法的回歸損失值與分類損失值最終分別穩(wěn)定在1.1與0.7左右,本算法的回歸損失值與分類損失值最終分別穩(wěn)定在0.9與0.6左右。
為對(duì)比改進(jìn)前后算法的檢測(cè)效果,對(duì)部分火焰圖片進(jìn)行測(cè)試。測(cè)試的火災(zāi)類型包括夜間城市火災(zāi)、森林火災(zāi)、汽車起火3種類型。圖8(a)為YOLOV3-tiny算法的檢測(cè)結(jié)果,圖8(b)為本算法的檢測(cè)結(jié)果。通過檢測(cè)結(jié)果看出,本算法的檢測(cè)效果整體有所提升,且對(duì)原算法漏檢的小火焰也有較好的檢測(cè)效果。
圖8 部分火焰檢測(cè)圖片
表4為模型改進(jìn)前后的參數(shù)量和訓(xùn)練時(shí)間對(duì)比。從表4中可以看出,由于CSP-MobileNetV2、SKNet以及PPM等模塊的加入,改進(jìn)后YOLOv3-tiny算法的參數(shù)量上升4.5M,導(dǎo)致算法運(yùn)行時(shí)間有所提高,算法處理一張圖片的時(shí)間為9.4 ms,比原YOLOv3-tiny增加3.8 ms。
表4 算法參數(shù)量及運(yùn)行時(shí)間對(duì)比
本研究提出一種基于YOLOv3-tiny的輕量級(jí)火焰檢測(cè)算法,并利用自制的火焰數(shù)據(jù)集驗(yàn)證了算法的有效性。通過在骨干網(wǎng)絡(luò)中加入CSP-MobileNetV2結(jié)構(gòu),提升了算法對(duì)火焰目標(biāo)的特征提取能力;在檢測(cè)分支輸出前加入SKNet,加強(qiáng)了對(duì)重要特征的關(guān)注,實(shí)現(xiàn)了不同尺度火焰目標(biāo)自主選擇合適的卷積核;在骨干網(wǎng)絡(luò)末端加入PPM,實(shí)現(xiàn)了多尺度火焰目標(biāo)特征融合互補(bǔ),提升了火焰的檢測(cè)效果。實(shí)驗(yàn)結(jié)果表明,本算法在自制火焰數(shù)據(jù)集上相比于原算法,mAP提高了4.1%,F(xiàn)ps為106,檢測(cè)效果顯著提升。
由于自制的火焰數(shù)據(jù)集圖片數(shù)量不夠充足,后續(xù)需要進(jìn)一步擴(kuò)充數(shù)據(jù)集圖片,同時(shí)本算法的檢測(cè)速度只是通過部分樣本圖片推理計(jì)算得出,并未在實(shí)際應(yīng)用中進(jìn)行測(cè)試,且網(wǎng)絡(luò)訓(xùn)練時(shí)間較長(zhǎng),在實(shí)驗(yàn)配置上過度依賴高算力的GPU,距離實(shí)際的實(shí)時(shí)檢測(cè)還有差距。在后續(xù)工作中,需要進(jìn)一步開展實(shí)驗(yàn)驗(yàn)證,在不降低準(zhǔn)確率的前提下,研究如何縮短算法訓(xùn)練時(shí)間。
山東科技大學(xué)學(xué)報(bào)(自然科學(xué)版)2022年6期