侯易呈,王慧琴,王 可
(西安建筑科技大學(xué) 信息與控制工程學(xué)院,陜西 西安 710055)
傳統(tǒng)火災(zāi)檢測方法使用感溫、感煙傳感器采集火焰數(shù)據(jù)的靜態(tài)或動態(tài)特征進(jìn)行火焰檢測,對手動提取目標(biāo)特征的依賴性較高?,F(xiàn)階段,通過圖像處理進(jìn)行目標(biāo)識別的技術(shù)[1]和基于機(jī)器視覺的目標(biāo)檢測技術(shù)不斷發(fā)展[2],并且已開始應(yīng)用到火災(zāi)檢測領(lǐng)域。
傳統(tǒng)方法在火焰識別任務(wù)中,多注重人工對火焰目標(biāo)進(jìn)行特征提取以及分類器的設(shè)計[3-5]。蔡敏[6]將運動分割分為運用目標(biāo)檢測和圖像分割兩個方面,并提出對VIBE算法的兩點改進(jìn),用于森林火災(zāi)視頻檢測。劉宇欣[7]將人工蜂群算法圖像處理分割方法、邊緣檢測技術(shù)以及特征融合等技術(shù)應(yīng)用于礦用帶式輸送機(jī)的火災(zāi)檢測中。苗續(xù)芝[8]和王中林[9]分別改進(jìn)了果蠅優(yōu)化SVM模型和增量支持向量機(jī)算法,提高了火災(zāi)檢測識別的準(zhǔn)確率。相比較于傳統(tǒng)檢測方法,深度學(xué)習(xí)方法能夠自動提取目標(biāo)特征,在圖像識別領(lǐng)域得到了廣泛的應(yīng)用[10-12]。同時,也有學(xué)者將深度學(xué)習(xí)方法應(yīng)用到了火焰識別檢測任務(wù)中。任嘉峰[13]提出一種引入K-means聚類算法的YOLOV3算法進(jìn)行火焰識別檢測,通過遷移學(xué)習(xí)實現(xiàn)了對小樣本的識別分類。徐登[14]使用改進(jìn)的雙流卷積神經(jīng)網(wǎng)絡(luò),提高了火焰目標(biāo)識別率。段鎖林[15]對火焰區(qū)域的RGB通道做灰度處理和二值化處理,形成9通道的三維數(shù)據(jù)輸入,并且對Relu激活函數(shù)進(jìn)行了修改,以平衡特征數(shù)量?;靥靃16]提出基于Faster R-CNN的火焰識別檢測方法,使用AlexNet作為基礎(chǔ)特征提取網(wǎng)絡(luò),通過遷移學(xué)習(xí)完成對不同類別火焰樣本的識別與分類。
利用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行火焰識別的過程中,隨著網(wǎng)絡(luò)卷積層數(shù)的加深,火焰特征的語義信息變抽象,分辨率降低,火焰深層特征中的火焰目標(biāo)細(xì)節(jié)信息減少,同時提取到了與火焰目標(biāo)低相關(guān)性的冗余特征,導(dǎo)致火焰識別率不高。本文提出了一種基于Faster R-CNN[17]網(wǎng)絡(luò)的火焰識別檢測方法,使用深度殘差網(wǎng)絡(luò)(Residual Network,ResNet)[18]進(jìn)行特征提取,添加壓縮和激勵網(wǎng)絡(luò)(Squeeze-and-Excitation Networks,SENet)模塊[19]減少低相關(guān)度冗余特征,然后使用多尺度特征融合結(jié)構(gòu),通過通道疊加補(bǔ)充深層特征中特征信息的不足,為具有抽象語義信息的深層特征添加具有豐富細(xì)節(jié)信息的淺層特征。該方法可以提升火焰目標(biāo)檢測的精度。
Faster R-CNN目標(biāo)檢測模型是通過優(yōu)化R-CNN和Fast R-CNN模型而來的高性能模型,圖1為Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu),主要由4部分組成:特征提取網(wǎng)絡(luò)、區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network,RPN)、興趣池化網(wǎng)絡(luò)(Region of interest pooling Network,RoI)和分類回歸網(wǎng)絡(luò),其圖像處理步驟為:
圖1 Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Faster R-CNN network structure diagram
Step 1.將原始圖片處理為224×224大小輸入網(wǎng)絡(luò),經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)[20]提取圖像特征,將圖片信息編碼到深層維度,提取到的特征圖作為區(qū)域建議網(wǎng)絡(luò)和平均池化網(wǎng)絡(luò)的共享特征層。
Step 2.區(qū)域建議網(wǎng)絡(luò)[21]通過在共享特征圖上添加滑動窗口將空間窗口映射到低維向量,在每個滑動的位置都會預(yù)測出k個區(qū)域建議框。然后連接兩個并行的全連接層,分別得到2k個對應(yīng)的分類層輸出和4k個對應(yīng)的回歸層輸出。接著采用非極大抑制法以交并比作為分類指標(biāo)選取得分排名前300的目標(biāo)建議框。
Step 3.平均池化網(wǎng)絡(luò)將共享特征層和目標(biāo)建議框作為輸入,將不同大小的感興趣區(qū)域通過池化操作降維成7×7尺寸的特征向量,使得輸入圖片不要求固定尺寸。
Step 4.利用Softmax損失函數(shù)完成分類任務(wù),利用smoothL1損失函數(shù)完成回歸定位任務(wù)。
區(qū)域建議網(wǎng)絡(luò)總體損失函數(shù)的定義如下所示:
(1)
分類損失函數(shù)Lcls的定義如下所示:
(2)
回歸損失函數(shù)Lreg的定義如下所示:
(3)
其中,R為smoothL1函數(shù),其公式如下所示:
(4)
本文在Faster R-CNN中使用ResNet50作為特征提取網(wǎng)絡(luò),并添加注意力機(jī)制模塊增加火焰相關(guān)特征通道重要性,然后通過多尺度結(jié)構(gòu)在深層特征中添加淺層特征,增強(qiáng)火焰特征表達(dá)能力,以提高火焰識別精度。
深度學(xué)習(xí)中,加深網(wǎng)絡(luò)深度會遇到梯度爆炸和梯度消失問題。傳統(tǒng)對于該問題的解決方法主要是對數(shù)據(jù)進(jìn)行初始化和正則化,但是此方法伴隨著網(wǎng)絡(luò)深度的加深,誤報率和錯報率提升,造成網(wǎng)絡(luò)性能的退化。何凱明在使用多達(dá)152層的ResNet網(wǎng)絡(luò)在ImageNet上進(jìn)行實驗,結(jié)果表明深度殘差網(wǎng)絡(luò)在深度增加的情況下,有效提高了準(zhǔn)確率,解決了因深度增加造成的梯度消失和網(wǎng)絡(luò)性能退化的問題。本文特征提取網(wǎng)絡(luò)部分采用ResNet50網(wǎng)絡(luò)進(jìn)行特征提取,增加SENet注意力機(jī)制模塊,簡稱為SE-RCSNet50,ResNet和SE-ResNet模塊分別如圖2、圖3所示。
圖2 ResNet模塊Fig.2 Block diagram of ResNet module
圖3 SE-ResNet模塊Fig.3 Block diagram of SE-ResNet module
在深度殘差網(wǎng)絡(luò)模塊中,存在兩種映射關(guān)系,一種為恒等映射,指的是把當(dāng)前網(wǎng)絡(luò)輸入當(dāng)作輸出直接傳輸?shù)较乱粚泳W(wǎng)絡(luò)中,跳過當(dāng)前網(wǎng)絡(luò)。另一種為殘差映射,最終的輸出為H(x)=F(x)+x,此時當(dāng)F(x)=0時,則H(x)=x。在此基礎(chǔ)上,改變了殘差網(wǎng)絡(luò)的學(xué)習(xí)目標(biāo),直接學(xué)習(xí)H(x)和x的差值,就是殘差映射F(x)=H(x)-x。
本文在深度殘差模塊中添加了SENet注意力機(jī)制模塊,通過學(xué)習(xí)的方式自動獲取每個特征通道的重要程度,并且根據(jù)該通道的重要程度提升有用特征,抑制無用特征,以此來使提取到的特征具有更強(qiáng)的表征能力。壓縮和激勵網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 注意力機(jī)制模塊Fig.4 Block diagram of attention mechanism module
壓縮和激勵網(wǎng)絡(luò)執(zhí)行步驟如下:
(1)首先對特征U進(jìn)行擠壓(Squeeze)操作,該操作通過全局平均池化(Global average pooling)將二維特征壓縮成一個1×1×C的實數(shù)數(shù)列。該實數(shù)數(shù)列在一定意義上具有全局感受野,使得低層網(wǎng)絡(luò)也可以具有全局信息。全局平均池化計算方式為:
(5)
(2)接入激勵(Excitation)操作,自主學(xué)習(xí)每個特征通道之間的非線性交互關(guān)系,根據(jù)重要性的不同賦予不同的權(quán)重。先通過全連接層,減少計算量,然后連接ReLu函數(shù),使得輸出的維度不變。激勵操作計算方式為:
s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))).
(6)
(3)經(jīng)過重新賦值(Reweight)操作,如式(7)所示,經(jīng)過激勵操作后的結(jié)果輸出可以看作是經(jīng)過特征選擇后的每個特征通道的重要性,然后通過乘法將每個通道加權(quán)到之前的特征上,完成對原始特征的重新賦值,實現(xiàn)注意力機(jī)制。
(7)
uc表示u中第c個二維矩陣,sc表示激勵操作的輸出權(quán)重。
由于卷積神經(jīng)網(wǎng)絡(luò)通過逐層抽象的方式來提取目標(biāo)的特征,提取到的高層特征的感受野比較大,語義信息表征能力強(qiáng),但是特征分辨率小,幾何信息的表征能力弱,適合處理大目標(biāo);而提取到的低層特征的感受野比較小,語義信息表征能力弱,但是特征分辨率大,幾何信息的表征能力強(qiáng),適合處理小目標(biāo)。為了節(jié)省計算量,使用Block4特征圖進(jìn)行火焰目標(biāo)檢測,Block5用做最后的分類和回歸。Block4層特征圖的語義信息較為豐富,能更好地反映火焰圖像全局特征,但是分辨率低,細(xì)節(jié)信息表征能力弱,所以不能精確地對火焰進(jìn)行檢測。通過分析,本文提出一種基于Faster R-CNN的多尺度特征融合算法,通過在深層特征上添加淺層特征信息進(jìn)行特征增強(qiáng),提高對火焰目標(biāo)的識別檢測準(zhǔn)確率。
網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示,分別對Block1,2,3的輸出用1×1的卷積做通道變換,將其通道數(shù)從64,256,512變換為256,512,1 024,并引入批規(guī)范化(Batch Normalization,BN)處理,將數(shù)據(jù)規(guī)范到N(0,1)的正態(tài)分布,然后將Block2,3,4的輸出分別和上一層進(jìn)行通道變化后的輸出進(jìn)行concatenate通道相加,然后使用Rule函數(shù)進(jìn)行激活,以此作為Block2,3,4的輸出。利用該結(jié)構(gòu),能夠增強(qiáng)火焰目標(biāo)的特征表達(dá)能力,并且任意下一層的輸入都來自前面兩層的輸出,加強(qiáng)了對特征的重用[22],使得網(wǎng)絡(luò)更利于訓(xùn)練,具有一定的正則化效果,緩解了梯度消失和模型退化問題。同時引入批規(guī)范化處理,能夠加快訓(xùn)練速度,并提高網(wǎng)絡(luò)泛化能力。
圖5 多尺度結(jié)構(gòu)Fig.5 Block diagram of muti-scale feature fusisn mechanism
本文所使用的主要硬件參數(shù)為:操作系統(tǒng)為Windows10 64 bit,內(nèi)存為8 GByte,GPU設(shè)備為GTX2070,使用python3.6語言,搭建平臺為Keras,訓(xùn)練和測試軟件為Pycharm。
在實際情況中,火焰圖片都是采集于視覺模塊。通過查找有關(guān)火焰檢測實驗的公開數(shù)據(jù)集,并且添加從不同角度拍攝的火焰圖像數(shù)據(jù),擴(kuò)充原本公開數(shù)據(jù)集以作為本文的實驗數(shù)據(jù)集,使得該樣本數(shù)據(jù)集更接近實際數(shù)據(jù)。由于原始圖像的尺寸過大,在進(jìn)行模型訓(xùn)練時導(dǎo)致計算量增加,在不影響整體細(xì)節(jié)的情況下,將圖像裁剪為224×224像素大小,并將格式轉(zhuǎn)變PNG格式,按照PSACAL VOC格式構(gòu)建火焰數(shù)據(jù)集。本次實驗共采用數(shù)量為10 078的火焰圖像數(shù)據(jù)集,從擴(kuò)充以后的圖像數(shù)據(jù)中隨機(jī)選擇8 163圖像作為訓(xùn)練集,907張作為驗證集,剩余1 008張作為測試集。
深度學(xué)習(xí)中對分類器模型進(jìn)行評估主要使用精確率(Precision)和召回率(Recall)。通過混淆矩陣進(jìn)行計算,混淆矩陣如表1所示。
表1 混淆矩陣Tab.1 Confusion matrix
表中,TP(True Positive)表示將正類預(yù)測為正類數(shù);TN(True Negative)表示將負(fù)類預(yù)測為負(fù)類數(shù);FP(False Positive)表示將負(fù)類預(yù)測為正類數(shù),也稱為誤報率;FN(False Negative)表示將正類預(yù)測為負(fù)類數(shù),也成為漏報率。
精確率表示預(yù)測為正的樣本中有多少為正確的預(yù)測,如下所示:
(8)
召回率表示在正例樣本中被正確地預(yù)測,如下所示:
(9)
同時在目標(biāo)檢測任務(wù)中,使用平均精度均值(Mean average precision,mAP)作為衡量模型性能的指標(biāo)。在本任務(wù)中,對火焰的識別檢測為單類識別,平均精度均值指標(biāo)與平均精度(Average precision,AP)等價,所以使用平均精度來作為本任務(wù)中模型評價指標(biāo),平均精度指標(biāo)計算如式(10)所示:
(10)
式中,R表示測試集中所有正樣本的個數(shù);M表示測試集總樣本個數(shù);Ii=1表示第i個樣本是正樣本,若是負(fù)樣本,則Ii=0;Ri表示前i個樣本中正樣本的個數(shù)。
使用本文算法和改進(jìn)前算法在本文測試集上進(jìn)行測試,實驗結(jié)果如表2所示。
表2 改進(jìn)前后對比Tab.2 Comparison before and after improvement
通過表中數(shù)據(jù)對比可以發(fā)現(xiàn),改進(jìn)前算法以ResNet50作為特征提取網(wǎng)絡(luò),與本文方法進(jìn)行比較,本文算法的平均精度、召回率、精確率分別提高了7.78%、9.05%、12.54%,證明本文方法提取到的火焰目標(biāo)特征對于火焰識別精度有較高影響。原因是加入了SENet注意力機(jī)制模塊的ResNet50特征提取網(wǎng)絡(luò)抑制了與火焰目標(biāo)相關(guān)度低的無關(guān)特征通道,并且將火焰的通道重要性提高,同時,因為多尺度結(jié)構(gòu)在提取到的深層特征上加入了淺層的細(xì)節(jié)特征,增強(qiáng)了火焰目標(biāo)特征的表征能力,有效提高了模型對于火焰目標(biāo)的識別性能。
為進(jìn)一步對比本文算法在特征提取部分的優(yōu)勢,進(jìn)行特征圖可視化對比實驗,結(jié)果如圖6所示。由圖中可以看出,隨著網(wǎng)絡(luò)深度加深,火焰目標(biāo)的位置、形狀等細(xì)節(jié)信息隨著感受野的增大而稀疏化,使得無法分辨火焰的輪廓、紋理等信息。通過對比本文方法與ResNet50,在火焰目標(biāo)深層特征中,因為使用了多尺度特征融合結(jié)構(gòu),使得本文提取到的火焰目標(biāo)有著更為明顯的紋理、顏色以及輪廓等淺層特征中的細(xì)節(jié)信息,同時,由于SENet的作用,對提取到的特征通道進(jìn)行了重新標(biāo)定,抑制了與目標(biāo)特征相關(guān)性低的通道,增強(qiáng)了相關(guān)性高的顏色等通道信息,使得提取到的火焰特征信息表達(dá)能力更強(qiáng)。
圖6 特征圖可視化Fig.6 Visualization of feature map
在測試集中,選取不同場景下的火焰圖像對本文算法模型以及改進(jìn)前算法進(jìn)行性能測試對比,結(jié)果如圖7所示??梢钥闯?,以ResNet50作為特征提取網(wǎng)絡(luò)進(jìn)行火焰目標(biāo)識別時,存在識別率低的問題,同時在復(fù)雜背景下,有復(fù)檢問題存在,并且對于小目標(biāo)的檢測效果不好。而本文方法能夠適應(yīng)不同背景下對火焰目標(biāo)的識別檢測,對于不同環(huán)境下的火焰都有較好的識別結(jié)果。
圖7 檢測結(jié)果對比Fig.7 Comparison of test results
對圖片識別時間進(jìn)行對比,其結(jié)果如表3所示。本文算法對比改進(jìn)前對每張圖片的消耗時間增加了0.03 s。原因是本文添加了SENet模塊,并且采用了多尺度特征融合機(jī)制,增加了模型參數(shù)量,導(dǎo)致識別時間增加。
表3 改進(jìn)前后參數(shù)量和時間的比較Tab.3 Comparison of parameter quantity and time before and after improvement
為進(jìn)一步驗證本文算法的效果,將本文算法與已有學(xué)者完成的火焰識別檢測方法進(jìn)行比較。實驗結(jié)果如表4所示。本文方法對比文獻(xiàn)[14]和文獻(xiàn)[23]的結(jié)果有所提高,其中文獻(xiàn)[14]使用改進(jìn)的雙流卷機(jī)神經(jīng)網(wǎng)絡(luò)進(jìn)行火焰目標(biāo)提取,文獻(xiàn)[23]通過采用多個不同尺度融合的方式進(jìn)行目標(biāo)檢測。在特征提取方面,本文方法能夠提取到信息更豐富的火焰特征,使得本文算法效果較好。
表4 與現(xiàn)有學(xué)習(xí)算法準(zhǔn)確率對比Tab.4 Comparison with accuracy of existing learn algorithms
針對火焰目標(biāo)檢測,本文提出一種基于Faster R-CNN模型的改進(jìn)算法,提高深度學(xué)習(xí)網(wǎng)絡(luò)對火焰識別的準(zhǔn)確率。首先使用ResNet50作為基礎(chǔ)特征提取網(wǎng)絡(luò)進(jìn)行特征提取,接著添加SENet模塊通過通道注意力機(jī)制,增強(qiáng)目標(biāo)相關(guān)性高的特征通道,然后使用多尺度結(jié)構(gòu)將淺層特征進(jìn)行通道變換并和深層特征進(jìn)行通道相加,最后完成對火焰區(qū)域的識別檢測。實驗證明該方法能夠克服深度網(wǎng)絡(luò)中深層特征幾何信息的缺失問題,并抑制無用特征,提取更有效的火焰特征,完成對火焰目標(biāo)的識別檢測。對比改進(jìn)前的算法,其火焰識別檢測平均精度提高了7.78%,召回率提高了9.05%,精確率提高了12.54%。有效地提高了火焰識別效果。