文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.180118
中文引用格式: 王濤,宮寧生,蔣貴祥. 基于深度學習的煙霧識別研究[J].電子技術應用,2018,44(10):131-135.
英文引用格式: Wang Tao,Gong Ningsheng,Jiang Guixiang. Smoke recognition based on the depth learning[J]. Application of Electronic Technique,2018,44(10):131-135.
0 引言
火災對人類社會造成的傷害無可估量,每年都有大量的生命財產因為火災而蒙受了巨大損失,不同于室內火災監控技術的成熟,戶外火情由于各種因素的影響為實時監控帶來了困難。隨著計算機技術的發展和圖像識別技術的廣泛普及,通過視頻監控智能地進行火情監控將是未來火災預警的重要手段。由于野外火情具有相當的隱蔽性,直接對火焰檢測效果甚微,而對火情發生時產生的大量煙霧進行檢測就成為了一個有效的方案,如何提高煙霧的識別率和效率就成為了當前研究的重點。
近年來眾多研究學者在煙霧檢測方面做出了許多研究,眾多學者提出了許多對于煙霧檢測的方法和方案。其中李紅娣等[1]提出的采用金字塔紋理和邊緣特征的檢測方法,王欣剛等[2]利用運動檢測和小波分析的方法進行檢測,袁非牛等[3]提出了根據運動方向進行判斷的檢測方法。這些方法多為現今煙霧識別領域的主流方法,但是由于此類算法多是基于單一顏色和運動變化等方面對煙霧檢測或需要大量運算難以保證檢測的實時性,在復雜環境條件下應用尚有不足,再進行田地里的秸稈焚燒監控時,由于干擾量多且實時性和準確性要求較高,這種情況下傳統方法難以達到預期效果。
深度學習領域近來發展迅猛備受關注,成為了目前各行各業研究的熱點,同時國家也對人工智能深度學習方面進行大力扶持。不久前AlphaGo在圍棋上大獲全勝更使得深度學習成為了熱門話題,深度學習在人工智能[4]、語音識別[5]和圖像識別等方面都有突出表現,其中在圖像識別方面的應用已經較為成熟,通過深度網絡抽取目標特征加以識別被廣泛應用。因此,本文針對傳統煙霧檢測算法的不足,通過深度學習算法對煙霧進行實時監測預警,經過實驗驗證該算法識別率高具有較好的檢測效果,并且大幅優化了深度學習中由于復雜的神經網絡而造成的大量運算,相比于傳統圖像識別方法有更好的自適應性和靈活性。
1 視頻運動檢測
由于在發生火情形成煙霧的情況下煙霧不是靜止不動的而是運動狀態,因此可以對視頻中運動物體進行檢測來提取疑似煙霧目標,但是由于煙霧具有移動緩慢的特點,傳統的光流法、幀間插法、背景插法等運動檢測算法檢測效果不佳。針對這些不足,本文綜合幀插與背景插法結果疊加從而準確有效地檢測運動區域。
首先對具有n幀的連續視頻片斷中全部的n幀進行三幀插處理,即在第i幀與i-1幀、i+1幀這3幀之間做兩兩幀插,幀插公式如下:
最后將三幀插結果D與背景插結果做或運算,結果即為本文運動檢測結果。接下來對檢測到的運動目標區域送入深度學習模型檢測。
圖1為對田間煙霧進行運動檢測的效果,基本保留了煙霧整體形態,具有較理想的效果,可以將煙霧區域基本選取出來。
2 數據預處理
深度學習通過對數據的特征分析從而完成對模型的訓練,通常一個圖像數據中包含了大量信息,而對最終的學習效果產生影響的只有主要特征,而大量特征造成了數據冗余而使得運算效率大打折扣。一個500×500大小的視頻幀圖像其原始特征就會達到M=250 000維,這在應用過程中產生了龐大的運算量,嚴重影響到運算效率。由于本文應用的系統目標是對煙霧進行實時的監控報警,對算法實時性有較高要求,因此為了減少圖像在訓練、測試和檢測過程中的運算量、提高運算效率,對圖像數據使用經驗值法[6]進行灰度化處理后利用PCA算法進行數據的降維處理,以減少無關特征的影響。
3 卷積網絡模型構建
卷積神經網絡(CNN)是一種深度學習的架構,在人工智能、文本處理、圖像識別等方面被廣泛應用。卷積神經網絡對煙霧識別的主要過程是使用現有煙霧圖像對網絡進行訓練,進而提取煙霧圖像特征,由于類似于人類的記憶學習過程近似,故被稱為網絡的學習過程。本文通過預處理的煙霧圖像數據集對卷積神經網絡訓練提取煙霧特征,并結合Inception Resnet v2[7]網絡模型進行煙霧檢測,在基于TensorFlow[8]的多GPU支持下本文對煙霧特征的提取訓練時間大大縮短。
3.1 基本卷積神經網絡原理
卷積神經網絡是一個利用反向傳播算法進行特征訓練的多層神經網絡,卷積核就是其核心,當前在各領域被廣泛運用。一個基本的卷積神經網絡通常是由一系列卷積層、非線性層、池化層和完全連接層組成的。與普通神經網絡不同,在卷積層中一個神經元只與部分相鄰層的神經元相連,圖2展示了一個卷積神經網絡卷積的基本結構。
從圖2中可以看出,在前幾層里每一層的節點和上一層部分節點相連,全連接層中每個節點與上一層的全部節點連接。根據不同需求可以構建多層神經網絡,為了使神經網絡能夠解決更復雜的問題,使用具有更多層次的網絡可以識別更高級的特征,多層網絡中上一個卷積層的輸出即為下一層的輸入。但是網絡層數增加的同時也帶來參數過多、資源消耗過大、網絡退化等問題。
3.2 網絡模型構建
針對深層網絡的退化、效率低、資源消耗大等問題,本文在Inception Resnet v2網絡模型的基礎上對神經網絡進行了改進。在增加了卷積層數提高特征提取的精度的同時,避免由于網絡的加深訓練誤差和測試誤差加大造成的網絡退化的現象,并確保資源的消耗盡可能地低,使用Inception結構和全局池化層增加計算效率,使用Resnet殘差塊解決深層網絡的退化問題。
Inception結構將不同的卷積層以并聯的方式連接;Inception使用不同尺寸的過濾器,將各自的處理結果拼接成一個更深的矩陣;Inception結構增加了網絡深度和寬度,可以更好地提取特征,同時減少了參數,保證了計算效率。圖3展示了Inception模塊結構。
Resnet殘差網絡利用shortcut將一個卷積層的輸入和輸出連接起來即構成了一個殘差塊, 當殘差函數F(x)與輸入向量大小相同時,使用式(9)表達殘差塊公式:
式(10)中使用線性投影Ws進行維度匹配。殘差網絡的使用最大限度地解決了因為網絡深度增加而帶來的退化問題。在網絡最后一層使用全局池化層代替全連接層,對全部的輸出特征圖進行全局均值池化得到輸出,取消了全連接層可以大幅減少參數,避免了全連接層由于參數過多而造成的過度擬合和過度消耗資源。
圖4展示了改進后的網絡結構,由于模型深度很深,為了能更直觀地展示,將部分重復的殘差區塊進行了壓縮。整個模型架構由40個Inception Resnet模塊組成,整個模型中有233個卷積層。Inception Resnet模型可以快速準確地提取更多的特征,使得訓練和檢測過程中的效率和準確率都進一步得到了保證。
4 算法流程
本文的煙霧檢測系統流程分為對神經網絡的訓練和煙霧檢測實現兩個部分。圖5展示了算法的整體流程。
圖5中,上部分為網絡的訓練過程,數據集經過預處理后送入網絡模型中進行訓練,最終得到經過數據訓練的網絡模型。下部分為煙霧視頻檢測,對原始視頻流進行運動檢測后,將運動目標送入訓練完成的網絡中識別,若檢測為煙霧圖像則將其在原始圖像中標記后進行報警。
5 煙霧識別的實現與分析
本文基于Google開源的TensorFlow平臺構造深度學習網絡模型,考慮到算法實時性要求使用GPU進行硬件支持,實驗環境為Windows10系統下的tensorflow1.2的GPU版本,硬件設備為NVIDIA TESLA K80顯卡。
5.1 數據集準備
首先收集含有煙霧的圖像制作訓練數據集,將1 000張包含煙霧的圖像和500張其他干擾圖像作為訓練數據,將其中1 000張作為訓練數據集,500張作為測試數據集。將全部訓練數據集和測試數據集的圖像進行灰度化和PCA降維處理后使用深度學習網絡進行訓練學習。其中每個圖像都包含了對應的分類標簽。
5.2 模型訓練
得到訓練數據集后,通過深度學習網絡模型對數據集進行訓練,訓練過程可以通過Tensorboard可視化工具進行觀察分析。
圖6即為訓練過程中損失函數Loss的變化趨勢,可以看出整個訓練過程進行了10 000次迭代,其中在到達6 000次的時候損失基本趨于穩定,訓練過程基本達到預期。該算法的訓練效率對運行環境有較高的依賴,本文實驗僅在單GPU環境下進行,通過提高GPU的數量并行運算可以使得訓練時間大幅縮短。
5.3 結果分析
訓練完成后使用模型對圖像進行識別,為了檢驗本文算法在戶外實時煙霧檢測過程中的效果,截取了3段不同環境下的煙霧視頻,共有52 300幀,其中有煙霧的幀數為37 201幀,測試視頻情況如下。
分別對田間、樹林、工廠不同環境下的監控視頻進行檢測,表1展示了實驗后的結果統計,通過深度學習算法進行煙霧檢測結果準確率滿足了實際應用要求。表2展示了本文算法與當前主流煙霧檢測算法對比情況。
通過表2可以看出本文算法相對于其他煙霧檢測算法減少了誤檢、漏檢情況的發生,檢測準確率高于其他算法,并且本文算法的準確率與訓練數據有較大關系,后期通過提高煙霧圖像數量和迭代次數對模型進行進一步訓練,檢測準確率有進一步提高空間。
圖7展示了各個煙霧檢測算法的檢測效率,本文算法在運行效率方面與當前主流方法相差不大,其中由于大運算量的小波分析影響,王欣剛[2]的算法相對效率較低,而常規的深度學習算法由于沒有經過視頻流的運動檢測和數據降維的處理造成了大量的無用運算,因此效率很低無法運用到實際項目中。
本文算法實現了對煙霧進行實時監控的目的,并在算法準確率和效率之間達到了較好的平衡。
5.4 實際應用效果
圖8展示了本文算法在某地秸稈焚燒監控系統中的實際應用效果,識別過程中將模型認為是煙霧區域概率大于50%的區域進行了框選,4幅圖像均采用了室外秸稈焚燒的煙霧圖像,可以看出煙霧均被準確檢測。
經實際運用驗證了該算法在田間的煙霧識別效果較好,工廠環境下由于房屋等建筑干擾和工廠中工業制造所排放的煙霧干擾造成了識別效果有所下降,但識別率均達到了90%以上,總計漏檢率為3.3%,誤檢率為4.3%,最終準確率為92%。本文算法成功達到了秸稈焚燒監控目的,并且在進一步增加訓練數據集的情況下準確率有進一步提高空間。
6 結論
本文基于TensorFlow平臺利用PCA降維算法和深度學習對預處理后的煙霧圖像進行訓練提取煙霧圖像主特征,并對圖像中的煙霧區域進行識別。相比于傳統的圖像識別方法,基于深度學習的識別具有自學習和適應能力,可以更好地對目標進行識別。經實驗驗證,該方法具有較高的識別率,可以有效地對煙火進行檢測,對室外的煙霧報警火災預防有較好的應用價值。
參考文獻
[1] 李紅娣,袁非牛.采用金字塔紋理和邊緣特征的圖像煙霧檢測[J].中國圖象圖形學報,2015,20(6):772-780.
[2] 王欣剛,魏崢,劉東昌,等.基于煙霧動態特征分析的實時火災檢測[J].計算機技術與發展,2008,18(11):9-12.
[3] 袁非牛,張永明,劉士興,等.基于累積量和主運動方向的視頻煙霧檢測方法[J].中國圖象圖形學報,2008,13(4):808-813.
[4] BENGIO Y.Learning deep architectures for AI[J].Foundations & Trends in Machine Learning,2009,2(1):1-127.
[5] GRAVES A,MOHAMED A R,HINTON G.Speech recognition with deep recurrent neural networks[C].IEEE International Conference on Acoustics,Speech and Signal Processing.IEEE,2013:6645-6649.
[6] 陳鍛生,宋鳳菲,張群.一種彩色圖像灰度化的自適應全局映射方法[J].計算機系統應用,2013(9):164-167,171.
[7] SZEGEDY C,IOFFE S,VANHOUCKE V,et al.Inception-v4,Inception-ResNet and the impact of residual connections on learning[Z].2016.
[8] ABADI M,AGARWAL A,BARHAM P,et al.TensorFlow:large-scale machine learning on heterogeneous distributed systems[Z].2016.
作者信息:
王 濤,宮寧生,蔣貴祥
(南京工業大學 計算機科學與技術學院,江蘇 南京211816)