陳跨越 王保云



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