高楊
(西藏自治區科技信息研究所,西藏 拉薩 850008)
隨著全國范圍內的城鎮鄉村不斷融合,人員聚集度越來越高,火災防控壓力急劇增加。據統計,2020年全國共接報火災25.2萬起,含重大火災1起,較大火災65 起,1183 人死亡,775 人受傷,造成40.09 億元財產損失[8],其中很多是沒有配備有效的火災探測器/探測系統導致的。
實現更早、更有效地發現火災,在樓道、房間等室內布局監測點的同時,室外的大場景火災監測也極為重要。針對傳統點式傳感器融合的火災探測技術無法處理大場景的檢測需求,越來越多的科研人員將發展突破口瞄準了人工智能技術。宋衛國等[1]運用BP神經網絡開展火災探測,對比常規火災探測系統,改算法檢測精度有所提高。Qiu G Q 等[2]運用改進幀差法捕捉火焰運動的特征,依據Lab 顏色空間捕捉火焰顏色的特征,判斷圖像中是否存在火情,算法能提高檢測率,但普適性較低。Dunnings A J 等[3]應用In‐ception 網絡,研究了實時范圍內視頻(或靜止)圖像中火像素區域的自動檢測,降低網絡架構的復雜度,相對性能得到提升。李杰等[4-7]將火災探測與卷積神經網絡進行深層次結合,提升檢測性能。本文主要在前人研究基礎上,進一步提升深度神經網絡在火災探測上應用的檢測速度。
為解決傳統神經網絡連接計算量大、泛化能力弱、缺乏特征描述的問題,擁有局部感知的前饋神經網絡卷積神經網絡(CNN)應運而生。經典卷積神經網絡有AlexNet、VGGNet、GoogLeNet 等。CNN 一般包含卷積層、池化層和全連接層。卷積層以卷積計算的方式見式(1),選取一定尺寸的核函數w 作為感受野,滑動提取感受野尺寸的特征值S;最終以權值共享和多核運算來減少參數數量、提升特征提取質量。

池化層一般在卷積層之后,總結并選取特征結果,池化公式見式(2)。卷積層產生的多個特征圖FK,經過特定的pooling 操作GP后,形成融合特征ZK。常用的池化操作有average pooling、max pooling,池化操作可減少參數,防止過擬合。全連接層主要是連接各個神經元,進行最終分類。

GoogLeNet 衍生出Inception 結構,Inception V1 設計22 層網絡,利用1x1、3x3、5x5 尺度的卷積核,廣泛地提取目標圖像的特征,并通過1x1 的卷積核降低特征圖厚度,增加網絡的寬度,提升網絡應用的普遍性。圖1所示。

圖1 Inceptionv1網絡結構圖
Inception V2 在V1 基礎上,先是將5×5 的卷積核拆成兩個串行的3×3卷積核,再把n×n的卷積核,拆分為串行的1×n、n×1卷積核,從而降低運算量。
Inceptionv3 擴大網絡至46 層,共包括11 個In‐ception 模塊,添加RMSProp 優化算法加快訓練速度。加入BN 算法,以處理神經元的方式來處理特征圖,對整層數據進行歸一化處理,消除梯度彌散問題,提高了計算速度。
以Simple Linear Iterative Clustering(SLIC)算法先對圖像執行迭代聚類以減少空間上的網絡參數,分割圖像成相同大小的超像素,再輸入改進的Inceptionv3網絡,進行火災探測,最后輸出是否發生火災及火源位置。
SLIC是以圖像的色彩、紋理、明暗度等為標準,將鄰域內的像素聚類劃分,得到具有相似特征的超像素。經過SLIC的預處理操作,使得本應計算所有像素點數量縮小到超像素的個數,從源頭上減少了輸入參數。具體實現步驟有以下三步:①初始化聚類中心,設置超像素的大小;②在每個聚類中心的領域內,推舉出最小梯度像素點作種子點;③對聚類中心領域內的像素點進行打標,明確所屬的聚類中心;④分別算出像素點與種子點的位置距離DC、色彩距離Ds,歸一化為距離D,D 表示聚類像素點的相似度,計算見式(3~5);⑤通過對步驟②③④進行一定次數的迭代,來尋找出最為合理的聚類劃分,圖2為超像素分割圖效果。


圖2 Inception V1網絡結構圖
在傳統Inception V3 的基礎上,將11 個Inception模塊縮減為3個,從而達到簡化網絡結構,精簡參數數量,達到計算速度提升的效果,圖3所示。第一層為卷積operation,設置卷積核數量為32,尺寸為1×1,滑動步長為2,通道數量為3,valid 補洞策略,relu 激活函數,輸出得到111×111×32 尺寸的圖。第二、三層繼續進行卷積operation。第四層為池化operation,設置池化方式為max pooling、窗口尺寸為3、滑動步長為2,得到49×49×64尺寸的特征圖。經一系列卷積、池化operation 后,由softmax 進行歸一化處理,得到一個概率值。

圖3 Inception V3-onfire網絡架構圖
實際實驗中,根據輸出結果對網絡進行了調整,調整后的3 種Inception 模型結構如圖4~6。Inception A 與傳統Inception V1 結構類似,采用1x1,3x3,5x5 三種卷積核進行特征提取。Inception B 與Inception V2設計理念類似,將n×n 的卷積核尺寸分解為1×n 和n×1。Inception C則對網絡再次進行細化。

圖4 Inception A結構圖

圖5 Inception B結構圖

圖6 Inception C結構圖
實驗使用的硬件平臺為10 核inter(R) Xeon(R)CPU E5-2630 v4 @2.20GHz 和8G 顯存的NVIDIA RTX2080 SUPER GPU,軟件開發環境為Python3.7,搭建模型使用的框架為tensorflow1.15、opencv4.5,所使用的操作系統為ubuntu16.04。
由于目前公開的火災視頻、圖像數據集較小,本文采用Selenium 自動化測試工具和icrawler 框架進行爬蟲,共完成了近14000條火災數據集的采集,并利用labelImg 工具,人工標注圖像,如圖7 所示。其中10000條提供訓練,4000條提供測試。

圖7 labelImg工具標注圖
在讀入數據后,先將數據調整為224×224×3 大小,再應用SLIC 進行圖像分割,最后將getlabel方法打標好的數據傳給CNN。CNN 選取categorical_cros‐sentropy 交叉熵損失函數、rmsprop 優化器以及softmax激活函數,設置30 個epochs,學習率learning rate 設定為0.001。實際火災檢測效果如圖8所示。其中,紅色標記為火源區域,綠色標記為無火區域,直觀視覺認為算法能夠精準判斷是否發生火災并鎖定火源位置。

圖8 火災檢測效果圖
為充分評估本文算法Inception V3-onfire的效果,將實驗結果與Qiu G Q 等[2]研究成果Inception V1、Inception V1-onfire 對比情況見表1。從表中可看出,Inceptionv3-onfire 雖然在準確率上有所下降,但網絡參數數量有所減少,檢測速度有較大提升,總體檢測性能良好。

表1 網絡結構效果對比表
本文運用網絡爬抓等技術手段,構造了一定體量的火災視頻、圖片數據集。以SLIC算法為預處理環節的核心算法,將圖像分割為具有一定相似度的超像素。在InceptionV3的基礎上,進一步簡化網絡結構,縮小參數數量,形成了改進算法。總體而言,本算法應用卷積神經網絡算法,實現了具有良好檢測效果的火災探測的算法設計,但因未應用更先進的深度學習算法,以及缺少更大體量的實驗數據集等原因,深度學習算法在火災探測方向的應用還具有很大提升空間。