鞏家昌, 李齊杰
(中國刑事警察學院聲像資料檢驗技術系, 沈陽 110854)
煙霧是火災早期呈現(xiàn)的主要特征,因此煙霧的有效探測成為火災預警的主要技術途徑。對于傳統(tǒng)的煙霧探測器,只有當火災煙霧接近探測器并且煙霧濃度達到報警閾值后才能觸發(fā)報警,這種報警方式勢必對實際火災響應不夠及時,尤其在高大空間場所的應用過程中,需要火勢很大時才能觸發(fā)感煙探測器發(fā)出火災報警信號。隨著安防視頻監(jiān)控系統(tǒng)的普及和計算機模式識別技術的快速發(fā)展,基于視頻圖像的煙霧識別方法已經(jīng)發(fā)展為早期火災探測預警的有效技術手段[1]。
煙霧圖像識別一般包括煙霧特征提取和分類器最終識別兩個階段。因為煙霧特征的準確提取很大程度上影響最終的識別性能,近年來,學者們主要集中于煙霧特征提取問題的研究。紋理特征在煙霧圖像識別任務中首先被廣泛關注。為了獲取煙霧紋理特征的空間分布,Yuan等[2]提出了局部二值化模式(local pattern pattern, LBP)的子方向直方圖改進煙霧識別性能。張潔等[3]提出了基于紋理特征和輪廓光流矢量的煙霧識別方法來提高火災探測的準確性和快速性。Yuan等[4]通過在每個圖像像素進行高階方向?qū)?shù)編碼,提出了具有保持局部投影的高階局部二值化模式。Singh等[5]提出了多通道解碼的二值化模式去改善煙霧圖像識別性能。除了煙霧圖像紋理特征之外,小波變換也成為了描述煙霧圖像的重要方法。Gubbi等[6]從三級小波變換圖像中的每個子帶提取小波特征用于煙霧識別。這些特征包括算術均值、幾何均值、標準差、偏度和峰度。Ferrari等[7]使用小波變換去構(gòu)建一個隱馬爾科夫樹模型去改善煙霧識別準確率。然而,煙霧顏色、紋理和形狀常常因為光照條件和周圍環(huán)境而呈現(xiàn)不穩(wěn)定的變化,上述的煙霧特征提取方法通常面臨計算復雜和魯棒性不足的問題。
卷積神經(jīng)網(wǎng)絡(convolutional neural network, CNN)在圖像識別[8-13]任務中已經(jīng)取得了顯著的效果。它能夠從輸入圖像中自動學習區(qū)分能力強和魯棒性強的圖像特征。淺層卷積層提取像邊緣和紋理的簡單特征,而深層卷積層提取更加抽象具體的圖像特征。有學者已利用CNN提升了煙霧圖像的識別性能。Yin等[14]在原有的CNN卷積層結(jié)構(gòu)中增加批規(guī)范化運算來增加煙霧識別性能。Yuan等[15]采用并行的卷積結(jié)構(gòu)來提取煙霧圖像的多尺度特征,進而提升煙霧識別性能。楊劍等[16]對殘差網(wǎng)絡進行結(jié)構(gòu)改進,實現(xiàn)精確的煙霧區(qū)域檢測。Gu等[17]設計了對偶深度卷積神經(jīng)網(wǎng)絡,增強了煙霧識別的魯棒性。
針對煙霧圖像識別任務,進一步考慮煙霧圖像的全局信息、多尺度信息流通和計算效率,提出了稠密和非局部卷積神經(jīng)網(wǎng)絡(dense and non-local CNN, DNLCNN)。首先,利用稠密連接和非局部運算構(gòu)建基本卷積塊,稠密連接可以促進卷積層間的信息流通和特征重利用,而非局部運算可以方便與卷積層進行結(jié)合,增強卷積過程中的全局信息。然后,堆疊若干基本卷積塊和采取多尺度策略,搭建用于煙霧識別的卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)。
首先構(gòu)造基于稠密連接和非局部運算的基本卷積塊,然后將基本卷積塊進行堆疊搭建用于煙霧識別的DNLCNN網(wǎng)絡。
稠密卷積神經(jīng)網(wǎng)絡(DenseNet)[12]中卷積層間的稠密連接結(jié)構(gòu)增強了卷積層特征圖之間的特征重利用,保證了網(wǎng)絡中最大程度地信息流通。
DenseNet中的稠密基本塊包含l個卷積層,第l個卷積層連接所有以前的卷積層特征圖c0,c1,…,cl-1,
cl=Hl([c0,c1,…,cl-1])
(1)
式(1)中:[c0,c1,…,cl-1]為來自第0,1,…,l-1層卷積層特征圖的拼接融合;Hl(·)為連續(xù)的計算單元序列,包括批規(guī)范化(batch normalization, BN)、限制線性單元激活函數(shù)(rectified linear unit, ReLU)和卷積核為1×1的卷積運算,再接入另外3個連續(xù)運算:BN、ReLU和卷積核為3×3的卷積運算,輸出數(shù)目為k的特征圖,這里k稱為擴張率。
為了清晰和便捷地表達,后續(xù)提到的卷積層指的是上述連續(xù)計算單元序列組合。在一個稠密基本塊中,如果每個卷積層經(jīng)Hl(·)后輸出k個特征圖,則第i個卷積層的輸入特征圖數(shù)目為k0+k(l-1),其中k0為當前稠密基本塊輸入層的特征圖數(shù)目。擴張率k控制每個卷積層對整個稠密基本塊的信息貢獻程度。包含3個卷積層的稠密基本塊結(jié)構(gòu)如圖1所示。
圖1 包含3個卷積層的稠密基本塊Fig.1 Dense basic block comprising 3 convolutional layers
卷積運算通常只考慮圖像像素位置的鄰域局部信息,而對于煙霧圖像識別任務,煙霧圖像的整體全局信息十分重要。為了在卷積運算過程中引入全局信息,借鑒非局部均值和非局部神經(jīng)網(wǎng)絡[18]設計,在稠密基本塊中引入非局部運算來獲取全局信息。深度卷積神經(jīng)網(wǎng)絡中的非局部運算被定義為
(2)
式(2)中:i為圖像當前像素位置的指標;j為所有可能參與計算像素位置的指標;x為輸入信號;y為輸出信號;函數(shù)f計算位置i和所有位置j之間的關系;函數(shù)g計算輸入信號在位置j處的特征表示;輸出響應被函數(shù)C(x)規(guī)范化。
利用Gaussian函數(shù)估計像素之間的關系可表示為
f(xi,xj)=exiTxj
(3)
非局部運算是一個靈活的卷積運算構(gòu)件,非常便捷與已知的卷積運算相結(jié)合,因此非局部運算被增加到上述的稠密基本塊,與所有的卷積核為3×3的卷積層相結(jié)合,最終構(gòu)成了稠密和非局部基本卷積塊。
用于煙霧識別的DNLCNN由上述若干的稠密和非局部基本卷積塊堆疊而成,詳細的網(wǎng)絡構(gòu)成描述如下。
1.3.1 擴張率增加
原來的DenseNet網(wǎng)絡結(jié)構(gòu)包含很多稠密塊,每個稠密塊包含一些卷積層[12],每層產(chǎn)生k個新的特征圖??紤]到深度卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)通常更依賴于深層的具體抽象特征,隨著網(wǎng)絡深度的增加而增加擴張率k,如在第m個稠密和非局部基本卷積塊中,擴張率設置為k=mkinit,其中kinit為第一個稠密和非局部基本卷積塊中設置的擴張率。這樣增加了來自更深卷積層特征的計算比重,使得DNLCNN能夠更多考慮具體抽象的高水平特征。
1.3.2 壓縮
為了進一步對模型進行參數(shù)壓縮,在相鄰稠密和非局部基本卷積塊之間設計了壓縮層,實現(xiàn)了卷積特征圖分辨率和特征圖通道數(shù)目的同時壓縮。壓縮層將特征圖分辨率壓縮為原來的1/4,將特征圖通道數(shù)目壓縮為原來的1/2。壓縮層使得整個DNLCNN結(jié)構(gòu)更加緊湊,保證最終的特征圖通道數(shù)目在合理的范圍之內(nèi)。
1.3.3 多尺度特征連接
卷積神經(jīng)網(wǎng)絡在淺層學習紋理等低層次特征,而在深層學習抽象具體的高層次特征,為了增加圖像識別性能,采取多尺度特征連接策略構(gòu)造網(wǎng)絡。最終的特征表示由每個稠密和非局部基本卷積塊特征圖拼接融合而成,再輸入到分類損失函數(shù)。這樣,DNLCNN網(wǎng)絡的最終特征表示重新利用了來自不同卷積層的特征信息。
利用隨機梯度下降方法(stochastic gradient descent, SGD)訓練DNLCNN。批處理樣本數(shù)為32,初始學習率為0.01,訓練過程中當測試準確率飽和時將學習率除以10,整個訓練過程,學習率改變3次。當遍歷300次樣本之后,訓練過程終止。
提出的DNLCNN模型使用Pytorch深度學習框架進行訓練和測試估計,實驗使用的計算機配備Inter(R) Core(TM) i7-3700 3.60 Hz的CPU和NVIDIA GTX1080Ti的GPU。
實驗評估所用的煙霧數(shù)據(jù)庫[14]被分為4個子集。如表1所示,整個煙霧圖像數(shù)據(jù)庫包含24 217張圖像,其中5 695張煙霧圖像和18 522張非煙霧圖像。由于在實際的生活中很難收集大量的煙霧圖像,因此煙霧圖像識別任務中通常面臨數(shù)據(jù)不充分和數(shù)據(jù)分布不平衡問題。
表1 煙霧圖像數(shù)據(jù)庫Table 1 Smoke image dataset
煙霧圖像數(shù)據(jù)庫包含黑煙和白煙兩種顏色,每種顏色中又包含稠密煙霧、稀薄煙霧和模糊煙霧形態(tài)。數(shù)據(jù)庫中存在一些與煙霧圖像顏色、形狀和紋理相似的非煙霧圖像,容易導致誤報。實驗中數(shù)據(jù)規(guī)模相對較大的子集Set3和Set4被用作訓練集和驗證集,而其他的兩個子集Set1和Set2被用作測試集進行性能估計。
檢測率(detection rate, DR),準確率(accuracy rate, AR)和誤報率(false alarm rate, FAR)通常被用來定量地估計煙霧識別算法,3個估計指標計算公式分別為
(4)
(5)
(6)
式中:Qp和Qn分別為煙霧圖像和非煙霧圖像的數(shù)目;Pp為煙霧圖像被正確識別的數(shù)目;Np為非煙霧圖像被錯誤識別為煙霧類別的數(shù)目;DR表示所有測試的煙霧圖像被正確識別的概率;AR表示所有圖像數(shù)據(jù)被正確識別的概率;FAR表示非煙霧圖像被誤識別為煙霧類別的概率。
煙霧識別網(wǎng)絡結(jié)構(gòu)要取得較高的AR和DR值,但同時要達到較低的FAR值。
將所提出的DNLCNN與一些經(jīng)典的卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)進行煙霧識別性能比較,如AlexNet[7]、visual geometry group (VGG)[8]和Inception-v3[9]。此外,將DNLCNN與另外兩個基于深度神經(jīng)網(wǎng)絡的煙霧識別方法DNCNN[13]和DMCNN[14]進行比較。為了采用已經(jīng)開源的卷積網(wǎng)絡結(jié)構(gòu)代碼和論文已經(jīng)報道的實驗結(jié)果進行公正比較,將DNLCNN的輸入圖像分辨率分別調(diào)整到224×224和48×48。在所有實驗中,DNLCNN-r-l-kinit表示包含r個稠密和非局部基本卷積塊的DNLCNN網(wǎng)絡結(jié)構(gòu),每個稠密和非局部基本卷積塊包含l個卷積層,初始擴張率為kinit。
已經(jīng)開源的AlexNet、VGG-16和Inception-V3網(wǎng)絡結(jié)構(gòu)的輸入圖像分辨率大約為224×224,為了進行公平比較,將煙霧圖像分辨率統(tǒng)一調(diào)整為224×224,采用DNLCNN-5-3-8的網(wǎng)絡結(jié)構(gòu)進行實驗評估。在測試集Set1和Set2上的實驗結(jié)果分別如圖2所示。
圖2 測試集上的實驗結(jié)果Fig.2 Experimental results on testing dataset
從實驗結(jié)果(圖2)可以看出,DNLCNN-5-3-8在測試集Set1上達到最高的DR值(98.01%)和AR值(98.70%),在Set2上達到了最高的DR值(96.54%)和AR值(98.07%)。AlexNet在測試集Set1和Set2上的FAR指標略低于DNLCNN-5-3-8,但DR和AR指標與所提出的DNLCNN-5-3-8存在較大差距。并且,所提出的DNLCNN-5-3-8僅使用0.94M的學習參數(shù)就可以達到優(yōu)異的性能,而AlexNet、VGG-16和Inception-v3的參數(shù)量分別為54 M、128 M和33.93 M。
進一步將DNLCNN與另外兩個基于深度神經(jīng)網(wǎng)絡的煙霧識別方法DNCNN[14]和DMCNN[15]進行比較。DNCNN在原有的卷積層結(jié)構(gòu)中增加批規(guī)范化運算來增加煙霧識別性能,DMCNN采用并行的卷積結(jié)構(gòu)來提取多尺度特征。采取DNLCNN- 4-2-8,DNLCNN- 4-3-8 和 DNLCNN- 4- 4-8網(wǎng)絡結(jié)構(gòu)進行實驗估計,需要的學習參數(shù)量分別為0.33M、0.52M和0.72M。將煙霧圖像分辨率調(diào)整為48×48,作為實驗中深度卷積神經(jīng)網(wǎng)絡的輸入。在測試集Set1和Set2上的實驗估計結(jié)果如表2所示。
表2 測試集上的實驗結(jié)果Table 2 Experimental results on testing dataset
DNLCNN-4-3-8網(wǎng)絡結(jié)構(gòu)僅使用0.52M的參數(shù)量就可以在測試集Set1上達到最高的DR值96.20%和AR值98.34%,在測試集Set2上達到最高的DR值97.24%和AR值98.47%。同時,DNLCNN-4-3-8在測試集Set1上達到最低的FAR值0.24%。從表2和表3也可以發(fā)現(xiàn),對于DNLCNN網(wǎng)絡,隨著網(wǎng)絡深度增加,煙霧識別性能指標達到飽和。
實驗結(jié)果(表2)證明了提出的DNLCNN結(jié)構(gòu)在煙霧識別問題上是更加準確和更加計算有效的,更有可能被應用到實際的煙霧識別任務中。
在煙霧識別問題中,煙霧顏色、紋理和形狀常常因為光照條件和周圍環(huán)境而呈現(xiàn)不穩(wěn)定的變化,傳統(tǒng)的煙霧特征提取方法通常面臨計算復雜和魯棒性不足的問題,為了解決上述問題,提出了稠密和非局部卷積神經(jīng)網(wǎng)絡用于煙霧識別,通過對提出的DNLCC進行分析和實驗,得出以下結(jié)論。
(1)DNLCNN中的稠密連接設計增強了深度卷積網(wǎng)絡結(jié)構(gòu)中的信息流通和特征重利用。
(2)DNLCNN中非局部運算操作促進了深度卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)中全局特征和局部特征的有效融合,進而改善煙霧識別的魯棒性。
(3)通過實驗證明了,所提出的DNLCNN既具有更高的計算效率又具有更令人滿意的識別性能,只使用不到1M參數(shù)量的條件下取得更好的識別性能,在FAR指標相差不大的同時取得更高的DR值和AR值,因此具有更高的實用價值。