陳跨越 王保云
摘? 要:針對不同場景下火災(zāi)圖像的識別問題,提出一種利用殘差網(wǎng)絡(luò)改進(jìn)VGG16的模型。首先,將VGG16原有的3層全連接層改為1層,并增加dropout層以防止過擬合。其次,在殘差塊中的卷積層之后添加BatchNorm2d函數(shù),對數(shù)據(jù)進(jìn)行歸一化處理。結(jié)果表明,改進(jìn)的VGG16網(wǎng)絡(luò)準(zhǔn)確率、召回率和AUC值等指標(biāo)性能均優(yōu)于VGG16和Resnet34網(wǎng)絡(luò),能夠?qū)馂?zāi)圖像進(jìn)行快速、準(zhǔn)確的識別。
關(guān)鍵詞:火災(zāi)圖片;殘差網(wǎng)絡(luò);VGG16;深度學(xué)習(xí)
中圖分類號:TP183;X928.7? ? 文獻(xiàn)標(biāo)識碼:A? 文章編號:2096-4706(2023)13-0075-05
Fire Image Recognition Based on Improved VGG Network
CHEN Kuayue1, WANG Baoyun1,2
(1.School of Mathematics, Yunnan Normal University, Kunming? 650500, China; 2.Key Laboratory of Modeling and Application of Complex Systems in Universities of Yunnan Province, Kunming? 650500, China)
Abstract: A model using residual network to improve VGG16 is proposed for the recognition of fire images in different scenarios. Firstly, change the original 3-layer fully connected layer of VGG16 to 1-layer and add a dropout layer to prevent overfitting. Secondly, add the BatchNorm2d function after the convolutional layer in the residual block to normalize the data. The results show that the improved VGG16 network performs better than VGG16 and Resnet34 networks in terms of accuracy, recall, and AUC values, and can quickly and accurately recognize fire images.
Keywords: fire image; residual network; VGG16; deep learning
0? 引? 言
火災(zāi)是指爆炸或燃燒在時間和空間上不受控制而引起的重大災(zāi)難,會對人身與財產(chǎn)安全造成嚴(yán)重威脅[1]。因此,如果能夠正確預(yù)測火災(zāi)的發(fā)生,并在事前采取預(yù)防措施,就可以將損失降至最低。
目前關(guān)于火災(zāi)檢驗的方法大致有以下三種:一是使用顏色檢測火災(zāi)。顏色是火焰最顯著的靜態(tài)特征[2],這種識別火災(zāi)的方法主要利用樣本中顏色與亮度的相關(guān)信息。先提取出有特征的區(qū)域,然后對該區(qū)域進(jìn)行分析。但當(dāng)取樣中有與火色相近的物體顏色時,使用這種方法就會有很多誤預(yù)判。二是利用各種傳感器對火災(zāi)進(jìn)行檢測。將傳感器提供的火災(zāi)信息用智能技術(shù)處理體現(xiàn)了這種檢測模式的進(jìn)步性,根據(jù)火災(zāi)發(fā)生時的溫度、煙霧等信號判斷是否發(fā)生火災(zāi)[3]。但該檢測系統(tǒng)易受周圍電子噪聲及環(huán)境的影響,誤報率極高,并且這種方式不能掌握現(xiàn)場火災(zāi)的情況[4]。三是使用圖像檢測技術(shù)識別火災(zāi)。目前用于火災(zāi)檢測的圖像檢測技術(shù)分為傳統(tǒng)的圖像檢測技術(shù)和深度學(xué)習(xí)技術(shù)[5]。傳統(tǒng)的圖像檢測技術(shù)相對于傳感器識別火災(zāi)而言,在識別范圍、效果、抗干擾等方面有了很大的進(jìn)步,但也需要人工提取特征,這就會造成準(zhǔn)確率有限,并且過程復(fù)雜等問題。于是有人提出了運用深度學(xué)習(xí)技術(shù)來解決上述問題的火災(zāi)檢測方法。一般的深度學(xué)習(xí)網(wǎng)絡(luò)會隨著網(wǎng)絡(luò)層數(shù)的增加導(dǎo)致算法的復(fù)雜度逐漸遞增,同時使調(diào)取參數(shù)的數(shù)量增大,在網(wǎng)絡(luò)結(jié)構(gòu)中加入殘差模塊可以一定程度解決這一問題。
針對圖像識別問題,本研究運用殘差模塊來改進(jìn)VGG16網(wǎng)絡(luò)的深度學(xué)習(xí)方法,對殘差模塊加入了Batch Normalization進(jìn)行歸一化處理并讓網(wǎng)絡(luò)的全連接層數(shù)減少以提高運算效率。
1? 實驗數(shù)據(jù)
本研究所采用數(shù)據(jù)來自Visifire數(shù)據(jù)集和項目組自行收集的火災(zāi)圖像。共包括15 000張圖片,其中不同場景下有火災(zāi)圖片共6 600張,無火災(zāi)圖片共8 400張,其部分樣本如圖1所示。其中圖1(a)為不同光照強(qiáng)度、近景遠(yuǎn)景、不同場景下的火災(zāi)數(shù)據(jù)集部分樣本,圖1(b)為亮光、紅黃物體等無火災(zāi)數(shù)據(jù)集部分樣本。
為了模型的訓(xùn)練要求,我們將有火災(zāi)的圖片作為正樣本(記為0),將無火災(zāi)的圖片作為負(fù)樣本(記為1)。為了避免模型在訓(xùn)練過程中產(chǎn)生過擬合或欠擬合現(xiàn)象[6],各類別的訓(xùn)練集、測試集按照4:1的比例進(jìn)行劃分,那么原始數(shù)據(jù)被劃分為如表1所示。
2? 改進(jìn)的VGG網(wǎng)絡(luò)
VGG16是神經(jīng)網(wǎng)絡(luò)中一個經(jīng)典的模型[7]。VGG16的顯著特征主要體現(xiàn)在三個方面:一是卷積層均采用小卷積核尺寸(3×3),二是池化層均使用同樣的池化核參數(shù)(2×2),三是模型使用多個卷積層和池化層堆疊(stack)的方法,可以創(chuàng)建深度網(wǎng)絡(luò)結(jié)構(gòu)[8]。但是VGG16網(wǎng)絡(luò)模型的不足之處也比較明顯:由于VGG16的網(wǎng)絡(luò)結(jié)構(gòu)較深,因此會延長網(wǎng)絡(luò)的訓(xùn)練時間,參數(shù)的調(diào)取量也較大;同時又需要有較大的存儲空間,因此有不利于調(diào)配等缺點。
本研究對VGG16網(wǎng)絡(luò)進(jìn)行如下改進(jìn)。因為火災(zāi)識別是一個二分類問題,不需要復(fù)雜的分類層,所以保留VGG16原有的卷積層、激活函數(shù)和池化層。在進(jìn)入網(wǎng)絡(luò)之前,先將樣本圖片統(tǒng)一為224×224大小。為了減小參數(shù)的大小,將原有的3層全連接層改進(jìn)為1層全連接層,使用ReLU[9]激活函數(shù),其計算如式(1)。為防止過擬合,增加了dropout層[10],并在網(wǎng)絡(luò)結(jié)構(gòu)中加入殘差模塊。
f (x) = max (0,x)? ? ? ? ? ? ? ? ? ?(1)
改進(jìn)后的VGG16網(wǎng)絡(luò)結(jié)構(gòu)框架,如圖2所示。
殘差塊結(jié)構(gòu)圖如圖3所示,殘差神經(jīng)網(wǎng)絡(luò)(ResNet)于2015年被提出,其特有的網(wǎng)絡(luò)結(jié)構(gòu)可以克服一般網(wǎng)絡(luò)由于深度增加而形成的梯度破壞或消失以及訓(xùn)練持續(xù)時間過長等問題[11],殘差模塊(Basic Block)的結(jié)構(gòu)如圖3(a)所示。而在殘差塊中的卷積層之后添加Batch Normalization(BN)對數(shù)據(jù)進(jìn)行歸一化處理,這樣網(wǎng)絡(luò)的性能就不會因為在ReLU前由于數(shù)據(jù)太大而變得不穩(wěn)定。改進(jìn)后的殘差模塊結(jié)構(gòu)如圖3(b)所示。
3? 實驗結(jié)果與分析
3.1? 實驗環(huán)境與實驗流程
模型的訓(xùn)練和測試都在PyTorch框架內(nèi)完成。硬件環(huán)境為Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40 GHz CPU,NVIDIA RTX A2000 GPU;軟件環(huán)境為Ubuntu 18.04操作系統(tǒng),Python 3.8,CUDA 11.3,PyTorch 1.11.0, torchvision 0.12.0,torchaudio 0.11.0以及圖像相關(guān)的第三方庫。
模型訓(xùn)練時采用了GPU加速,具體訓(xùn)練設(shè)定如下:epochs設(shè)定為250,batch_size設(shè)定為32,lr設(shè)定為0.001,優(yōu)化方法為隨機(jī)梯度下降法(SGD)[11],損失函數(shù)為nn.CrossEntropyLoss()(交叉熵?fù)p失函數(shù)[12]),其計算如式(2):
每次實驗,在全部的樣本數(shù)據(jù)中隨意抽出正負(fù)樣本各20%當(dāng)作訓(xùn)練集,其余的80%作為測試集,實驗流程如圖4所示。
3.2? 評價指標(biāo)
在測試集中根據(jù)神經(jīng)網(wǎng)絡(luò)的結(jié)果,以準(zhǔn)確率、精確率、召回率、AUC值等作為評價指標(biāo)對網(wǎng)絡(luò)模型進(jìn)行評估。這些評價指標(biāo)均是數(shù)值越高,模型的分類效果越好。其中準(zhǔn)確率(Accuracy)是指所有樣本中預(yù)測正確的比例,其計算如式(3):
其中TP表示正樣本被預(yù)測正確的數(shù)量,TN表示負(fù)樣本被預(yù)測正確的數(shù)量,F(xiàn)P表示負(fù)樣本被預(yù)測為正樣本的數(shù)量,F(xiàn)N表示正樣本被預(yù)測為負(fù)樣本的數(shù)量。
精確率(Precision)是指正樣本預(yù)測正確的數(shù)量占所有預(yù)測為正的比例,其計算如式(4):
召回率(Recall)是指正樣本預(yù)測正確的數(shù)量占所有實際為正的比例,其計算如式(5):
AUC(Area Under ROC Curve)值是ROC曲線下方與坐標(biāo)軸圍成的面積,面積越接近1,其識別能力越強(qiáng)。ROC曲線是反映敏感性和特異性連續(xù)變量的綜合指標(biāo),以偽正類率(False positive rate, FPR)為橫坐標(biāo),以真正類率(True positive rate, TPR)為縱坐標(biāo),其中偽正類率是指負(fù)樣本被預(yù)測為正樣本的數(shù)量占所有實際為負(fù)的比例,其計算如式(6):
真正類率是指正樣本被預(yù)測正確的數(shù)量占所有實際為正的比例,其計算如式(7):
3.3? 識別結(jié)果與分析
以同樣的條件對改進(jìn)的VGG16、VGG16和Resnet34網(wǎng)絡(luò)分別進(jìn)行20組的平行實驗。由于每組實驗結(jié)果較為相似,將其匯總后計算平均值。訓(xùn)練后三種網(wǎng)絡(luò)模型各項性能的對比,如表2所示。
對比發(fā)現(xiàn),改進(jìn)的VGG16網(wǎng)絡(luò)模型的各項指標(biāo)要優(yōu)于VGG16和Resnet34模型,能夠更準(zhǔn)確判斷某一樣本是否有發(fā)生火災(zāi)的可能。
根據(jù)實驗結(jié)果繪制圖像并進(jìn)行分析。各模型測試集準(zhǔn)確率隨迭代次數(shù)的變化趨勢,如圖5所示,各模型損失值的變化趨勢,如圖6所示。
從圖5可以看出,三種模型測試集準(zhǔn)確率的變化趨勢基本保持一致,且訓(xùn)練50輪次后,改進(jìn)的VGG16模型的準(zhǔn)確率就明顯高于VGG16和Resnet34模型的準(zhǔn)確率。從圖6可以看出,三種模型損失值的變化趨勢基本保持一致,且最終都能收斂到0。
為了進(jìn)一步檢驗?zāi)P偷男阅?,根?jù)各個網(wǎng)絡(luò)模型的實驗結(jié)果可進(jìn)一步繪制出它們的ROC曲線圖,如圖7所示。改進(jìn)后VGG16模型具有更高的AUC值,計算得AUC值為0.962,分別比VGG16和Resnet34高0.01和0.022,說明加入殘差模塊后的VGG16有更精準(zhǔn)的識別能力。
3.4? 原因分析
部分樣本類別識別錯誤的圖片如圖8所示。其中圖8(a)展示的是將有火災(zāi)識別為無火災(zāi)的部分樣本,分析其原因是受到紅黃顏色、煙霧等因素的干擾。圖8(b)展示的是將無火災(zāi)識別為有火災(zāi)的部分樣本,分析原因是圖片樣本中有濃煙不能準(zhǔn)確辨別或有與火焰的顏色、形狀都相似的物體。
4? 結(jié)? 論
針對傳統(tǒng)深度學(xué)習(xí)技術(shù)的火災(zāi)圖像檢測算法復(fù)雜度高,檢測精度低等缺點,殘差網(wǎng)絡(luò)可有效解決上述問題,對于深度學(xué)習(xí)圖像識別具有重要意義。通過殘差結(jié)構(gòu)對VGG16網(wǎng)絡(luò)進(jìn)行改進(jìn),產(chǎn)生了一種新的網(wǎng)絡(luò)結(jié)構(gòu)。通過實驗結(jié)果對比,改進(jìn)后的VGG16性能明顯高于VGG16和Restnet34網(wǎng)絡(luò),能夠更好地通過圖像檢測技術(shù)識別不同場景下的火災(zāi),為改進(jìn)網(wǎng)絡(luò)提供了一種新的思考方式,對火災(zāi)的預(yù)防有更大的參考價值。
在本次研究中發(fā)現(xiàn)煙霧對火災(zāi)的識別有著密切聯(lián)系,還不能準(zhǔn)確辨識出有濃煙但無火災(zāi)發(fā)生的情形。下一步需要研究出更好的方法來改善煙霧在火災(zāi)圖像識別中的問題,進(jìn)一步提高模型的準(zhǔn)確率。
參考文獻(xiàn):
[1] 張杰.基于視頻圖像的火災(zāi)識別算法研究 [D].長春:吉林大學(xué),2019.
[2] 周靈飛.基于DM642和統(tǒng)計顏色模型的火災(zāi)檢測研究 [D].西安:西安電子科技大學(xué),2013.
[3] 王洋.基于卷積神經(jīng)網(wǎng)絡(luò)的火災(zāi)智能檢測技術(shù) [D].長沙:國防科技大學(xué),2019.
[4] 賀婉茹,劉國成.基于圖像處理的火災(zāi)探測報警系統(tǒng)研究 [J].中國設(shè)備工程,2021(16):71-72.
[5] 張藝秋.基于深度學(xué)習(xí)的森林火災(zāi)識別與檢測算法研究 [D].北京:北京林業(yè)大學(xué),2020.
[6] 孟浩,田洋,孫宇婷,等.全局注意力關(guān)系網(wǎng)絡(luò)的小樣本船舶識別 [J].儀器儀表學(xué)報,2021,42(12):220-227.
[7] 李連煌.基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)加速技術(shù)研究 [D].杭州:浙江大學(xué),2020.
[8] 郭天偉,齊金山,楊海東,等.基于深度學(xué)習(xí)與特征融合的人臉識別算法 [J].微型電腦應(yīng)用,2020,36(11):5-8+22.
[9] 蔣昂波,王維維.ReLU激活函數(shù)優(yōu)化研究 [J].傳感器與微系統(tǒng),2018,37(2):50-52.
[10] 蔣珍存,溫曉靜,董正心,等.基于深度學(xué)習(xí)的VGG16圖像型火災(zāi)探測方法研究 [J].消防科學(xué)與技術(shù),2021,40(3):375-377.
[11] 徐繁樹,王保云.基于殘差網(wǎng)絡(luò)的泥石流孕災(zāi)溝谷快速識別 [J].現(xiàn)代計算機(jī),2022,28(12):75-80.
[12] 羅志剛.基于姿態(tài)估計的FMS評測技術(shù)研究與實現(xiàn) [D].北京:北京郵電大學(xué),2021.
作者簡介:陳跨越(2000—),男,漢族,山東濟(jì)寧人,碩士研究生在讀,研究方向:圖像處理和深度學(xué)習(xí);王保云(1977—),男,漢族,云南玉溪人,副教授,博士,研究方向:機(jī)器學(xué)習(xí)及圖像處理。
收稿日期:2023-01-03