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