高楊
(西藏自治區(qū)科技信息研究所,西藏 拉薩 850008)
隨著全國范圍內(nèi)的城鎮(zhèn)鄉(xiāng)村不斷融合,人員聚集度越來越高,火災防控壓力急劇增加。據(jù)統(tǒng)計,2020年全國共接報火災25.2萬起,含重大火災1起,較大火災65 起,1183 人死亡,775 人受傷,造成40.09 億元財產(chǎn)損失[8],其中很多是沒有配備有效的火災探測器/探測系統(tǒng)導致的。
實現(xiàn)更早、更有效地發(fā)現(xiàn)火災,在樓道、房間等室內(nèi)布局監(jiān)測點的同時,室外的大場景火災監(jiān)測也極為重要。針對傳統(tǒng)點式傳感器融合的火災探測技術(shù)無法處理大場景的檢測需求,越來越多的科研人員將發(fā)展突破口瞄準了人工智能技術(shù)。宋衛(wèi)國等[1]運用BP神經(jīng)網(wǎng)絡開展火災探測,對比常規(guī)火災探測系統(tǒng),改算法檢測精度有所提高。Qiu G Q 等[2]運用改進幀差法捕捉火焰運動的特征,依據(jù)Lab 顏色空間捕捉火焰顏色的特征,判斷圖像中是否存在火情,算法能提高檢測率,但普適性較低。Dunnings A J 等[3]應用In‐ception 網(wǎng)絡,研究了實時范圍內(nèi)視頻(或靜止)圖像中火像素區(qū)域的自動檢測,降低網(wǎng)絡架構(gòu)的復雜度,相對性能得到提升。李杰等[4-7]將火災探測與卷積神經(jīng)網(wǎng)絡進行深層次結(jié)合,提升檢測性能。本文主要在前人研究基礎上,進一步提升深度神經(jīng)網(wǎng)絡在火災探測上應用的檢測速度。
為解決傳統(tǒng)神經(jīng)網(wǎng)絡連接計算量大、泛化能力弱、缺乏特征描述的問題,擁有局部感知的前饋神經(jīng)網(wǎng)絡卷積神經(jīng)網(wǎng)絡(CNN)應運而生。經(jīng)典卷積神經(jīng)網(wǎng)絡有AlexNet、VGGNet、GoogLeNet 等。CNN 一般包含卷積層、池化層和全連接層。卷積層以卷積計算的方式見式(1),選取一定尺寸的核函數(shù)w 作為感受野,滑動提取感受野尺寸的特征值S;最終以權(quán)值共享和多核運算來減少參數(shù)數(shù)量、提升特征提取質(zhì)量。
池化層一般在卷積層之后,總結(jié)并選取特征結(jié)果,池化公式見式(2)。卷積層產(chǎn)生的多個特征圖FK,經(jīng)過特定的pooling 操作GP后,形成融合特征ZK。常用的池化操作有average pooling、max pooling,池化操作可減少參數(shù),防止過擬合。全連接層主要是連接各個神經(jīng)元,進行最終分類。
GoogLeNet 衍生出Inception 結(jié)構(gòu),Inception V1 設計22 層網(wǎng)絡,利用1x1、3x3、5x5 尺度的卷積核,廣泛地提取目標圖像的特征,并通過1x1 的卷積核降低特征圖厚度,增加網(wǎng)絡的寬度,提升網(wǎng)絡應用的普遍性。圖1所示。
圖1 Inceptionv1網(wǎng)絡結(jié)構(gòu)圖
Inception V2 在V1 基礎上,先是將5×5 的卷積核拆成兩個串行的3×3卷積核,再把n×n的卷積核,拆分為串行的1×n、n×1卷積核,從而降低運算量。
Inceptionv3 擴大網(wǎng)絡至46 層,共包括11 個In‐ception 模塊,添加RMSProp 優(yōu)化算法加快訓練速度。加入BN 算法,以處理神經(jīng)元的方式來處理特征圖,對整層數(shù)據(jù)進行歸一化處理,消除梯度彌散問題,提高了計算速度。
以Simple Linear Iterative Clustering(SLIC)算法先對圖像執(zhí)行迭代聚類以減少空間上的網(wǎng)絡參數(shù),分割圖像成相同大小的超像素,再輸入改進的Inceptionv3網(wǎng)絡,進行火災探測,最后輸出是否發(fā)生火災及火源位置。
SLIC是以圖像的色彩、紋理、明暗度等為標準,將鄰域內(nèi)的像素聚類劃分,得到具有相似特征的超像素。經(jīng)過SLIC的預處理操作,使得本應計算所有像素點數(shù)量縮小到超像素的個數(shù),從源頭上減少了輸入?yún)?shù)。具體實現(xiàn)步驟有以下三步:①初始化聚類中心,設置超像素的大??;②在每個聚類中心的領域內(nèi),推舉出最小梯度像素點作種子點;③對聚類中心領域內(nèi)的像素點進行打標,明確所屬的聚類中心;④分別算出像素點與種子點的位置距離DC、色彩距離Ds,歸一化為距離D,D 表示聚類像素點的相似度,計算見式(3~5);⑤通過對步驟②③④進行一定次數(shù)的迭代,來尋找出最為合理的聚類劃分,圖2為超像素分割圖效果。
圖2 Inception V1網(wǎng)絡結(jié)構(gòu)圖
在傳統(tǒng)Inception V3 的基礎上,將11 個Inception模塊縮減為3個,從而達到簡化網(wǎng)絡結(jié)構(gòu),精簡參數(shù)數(shù)量,達到計算速度提升的效果,圖3所示。第一層為卷積operation,設置卷積核數(shù)量為32,尺寸為1×1,滑動步長為2,通道數(shù)量為3,valid 補洞策略,relu 激活函數(shù),輸出得到111×111×32 尺寸的圖。第二、三層繼續(xù)進行卷積operation。第四層為池化operation,設置池化方式為max pooling、窗口尺寸為3、滑動步長為2,得到49×49×64尺寸的特征圖。經(jīng)一系列卷積、池化operation 后,由softmax 進行歸一化處理,得到一個概率值。
圖3 Inception V3-onfire網(wǎng)絡架構(gòu)圖
實際實驗中,根據(jù)輸出結(jié)果對網(wǎng)絡進行了調(diào)整,調(diào)整后的3 種Inception 模型結(jié)構(gòu)如圖4~6。Inception A 與傳統(tǒng)Inception V1 結(jié)構(gòu)類似,采用1x1,3x3,5x5 三種卷積核進行特征提取。Inception B 與Inception V2設計理念類似,將n×n 的卷積核尺寸分解為1×n 和n×1。Inception C則對網(wǎng)絡再次進行細化。
圖4 Inception A結(jié)構(gòu)圖
圖5 Inception B結(jié)構(gòu)圖
圖6 Inception C結(jié)構(gòu)圖
實驗使用的硬件平臺為10 核inter(R) Xeon(R)CPU E5-2630 v4 @2.20GHz 和8G 顯存的NVIDIA RTX2080 SUPER GPU,軟件開發(fā)環(huán)境為Python3.7,搭建模型使用的框架為tensorflow1.15、opencv4.5,所使用的操作系統(tǒng)為ubuntu16.04。
由于目前公開的火災視頻、圖像數(shù)據(jù)集較小,本文采用Selenium 自動化測試工具和icrawler 框架進行爬蟲,共完成了近14000條火災數(shù)據(jù)集的采集,并利用labelImg 工具,人工標注圖像,如圖7 所示。其中10000條提供訓練,4000條提供測試。
圖7 labelImg工具標注圖
在讀入數(shù)據(jù)后,先將數(shù)據(jù)調(diào)整為224×224×3 大小,再應用SLIC 進行圖像分割,最后將getlabel方法打標好的數(shù)據(jù)傳給CNN。CNN 選取categorical_cros‐sentropy 交叉熵損失函數(shù)、rmsprop 優(yōu)化器以及softmax激活函數(shù),設置30 個epochs,學習率learning rate 設定為0.001。實際火災檢測效果如圖8所示。其中,紅色標記為火源區(qū)域,綠色標記為無火區(qū)域,直觀視覺認為算法能夠精準判斷是否發(fā)生火災并鎖定火源位置。
圖8 火災檢測效果圖
為充分評估本文算法Inception V3-onfire的效果,將實驗結(jié)果與Qiu G Q 等[2]研究成果Inception V1、Inception V1-onfire 對比情況見表1。從表中可看出,Inceptionv3-onfire 雖然在準確率上有所下降,但網(wǎng)絡參數(shù)數(shù)量有所減少,檢測速度有較大提升,總體檢測性能良好。
表1 網(wǎng)絡結(jié)構(gòu)效果對比表
本文運用網(wǎng)絡爬抓等技術(shù)手段,構(gòu)造了一定體量的火災視頻、圖片數(shù)據(jù)集。以SLIC算法為預處理環(huán)節(jié)的核心算法,將圖像分割為具有一定相似度的超像素。在InceptionV3的基礎上,進一步簡化網(wǎng)絡結(jié)構(gòu),縮小參數(shù)數(shù)量,形成了改進算法??傮w而言,本算法應用卷積神經(jīng)網(wǎng)絡算法,實現(xiàn)了具有良好檢測效果的火災探測的算法設計,但因未應用更先進的深度學習算法,以及缺少更大體量的實驗數(shù)據(jù)集等原因,深度學習算法在火災探測方向的應用還具有很大提升空間。