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