,唐洋,潘偉
(中國電子科技集團(tuán)公司第三十八研究所 安徽省公共安全應(yīng)急信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,合肥 230028)
煙霧是火災(zāi)早期的重要特征,利用視頻監(jiān)控以及視頻智能分析實(shí)現(xiàn)視頻煙霧的實(shí)時監(jiān)測和火災(zāi)預(yù)警是近年來計算機(jī)視覺和公共安全領(lǐng)域的一個重要研究內(nèi)容。城鎮(zhèn)森林交界區(qū)域的視頻煙霧監(jiān)控與森林、城區(qū)或者室內(nèi)等環(huán)境相比更加復(fù)雜,需要更精準(zhǔn)的算法識別煙霧并且降低誤報率。
當(dāng)前視頻煙霧檢測算法主要設(shè)計思想為:首先利用運(yùn)動目標(biāo)提取算法[1-2]從背景中提取出運(yùn)動變化區(qū)域,然后通過人工設(shè)計特征方法或者結(jié)合機(jī)器學(xué)習(xí)方法進(jìn)行目標(biāo)識別。例如:文獻(xiàn)[3]利用煙霧的YUV顏色空間特征對圖像區(qū)域進(jìn)行檢驗(yàn),排除非煙霧目標(biāo),但諸多實(shí)驗(yàn)表明顏色信息只能作為一種“較弱”的特征進(jìn)行使用,對于閾值的設(shè)定較為敏感;文獻(xiàn)[4]利用小波變換方法分析圖像頻譜,通過構(gòu)建煙霧目標(biāo)的衰減特征與其他目標(biāo)進(jìn)行區(qū)分。但該方法在淺色背景情況下的應(yīng)用效果不理想;文獻(xiàn)[5]利用分形思想構(gòu)建煙霧動態(tài)擴(kuò)散特征,從而建立早期火災(zāi)煙霧識別模型。受風(fēng)力影響,煙霧運(yùn)動區(qū)域不一定滿足該特征,因此,該模型在室外大空間場景下不適用;文獻(xiàn)[6]對煙霧圖像進(jìn)行雙樹復(fù)小波變換,并采用隱性馬爾可夫模型對煙霧紋理建模,通過支持向量機(jī)實(shí)現(xiàn)煙霧的檢測,一定程度上提高了煙霧識別的實(shí)時性和準(zhǔn)確性。文獻(xiàn)[7]采用減法聚類確定模糊規(guī)則數(shù),建立初始模糊系統(tǒng),并通過神經(jīng)網(wǎng)絡(luò)的自學(xué)習(xí)機(jī)制調(diào)整前提參數(shù)和結(jié)論參數(shù),確定模糊推理規(guī)則并判定是否為煙霧。在固定場景下以上方法均取得了較高的識別精度,但是面對城鎮(zhèn)森林交界域復(fù)雜的背景、光照、天氣條件,誤報率較高,因此,需要一種抗干擾性強(qiáng)的識別方法來提高森林煙霧的識別精度,降低誤報率。
得益于計算機(jī)異構(gòu)計算能力的快速提升,深度學(xué)習(xí)成為機(jī)器學(xué)習(xí)近年來一個飛速發(fā)展的領(lǐng)域,其在圖像分類、語音識別和文本分類領(lǐng)域均獲得了極大的成功。在圖像分類上,深度學(xué)習(xí)利用深度卷積神經(jīng)網(wǎng)絡(luò),通過反向傳播訓(xùn)練和修正各層網(wǎng)絡(luò)模型參數(shù)實(shí)現(xiàn)了目標(biāo)特征的自動提取[8]。為此,本文提出一種基于深度學(xué)習(xí)的視頻圖像煙霧檢測算法。首先采用ViBe(Visual Background extractor)背景建模方法提取視頻圖像中的變化區(qū)域,然后利用煙霧靜態(tài)特征(如模糊特性、顏色特征)初步定位疑似區(qū)域,再通過煙霧動態(tài)特征進(jìn)一步排除部分干擾,最后采用深度學(xué)習(xí)對疑似區(qū)域進(jìn)行識別,得到最終結(jié)果??紤]到圖像處理的實(shí)時性問題,算法采用級聯(lián)分類器的架構(gòu),并在具體實(shí)現(xiàn)上大量使用并行計算技術(shù),以滿足城鎮(zhèn)森林交界區(qū)域多路視頻煙霧實(shí)時檢測的應(yīng)用要求。
火災(zāi)煙霧是可燃物在燃燒完全和不完全情況下高分子化合物分解而產(chǎn)生的固體和氣體混合物。煙氣的主要成分是碳,還包含有一氧化碳、硫化氫和氰化氫等有毒氣體。煙氣在視覺上表現(xiàn)為和周圍環(huán)境之間存在一定濃度差,具有一定的形體效應(yīng),煙霧對周圍的遮擋程度在邊緣最為明顯,邊緣的背景部分時隱時現(xiàn),這是火災(zāi)煙霧視頻圖像的重要特征。
交界域火災(zāi)煙霧相機(jī)多架設(shè)在山頂上,多采用高空瞭望和云臺旋轉(zhuǎn)形式對大面積區(qū)域進(jìn)行視頻監(jiān)控,在需要關(guān)注局部細(xì)節(jié)時,可采用調(diào)焦形式拉近目標(biāo)距離。整體上,煙霧視頻探測容易受到以下因素影響,在設(shè)計煙霧探測算法需要進(jìn)行綜合考慮:
1)光照:強(qiáng)光條件下,表面光滑目標(biāo)(如湖面)會產(chǎn)生反射,產(chǎn)生類似于煙霧的顏色空間特征,形成干擾。
2)相機(jī)運(yùn)動:云臺在移動或者相機(jī)受風(fēng)力影響發(fā)生抖動情況下,相機(jī)視場會發(fā)生變化,非運(yùn)動脫焦模糊區(qū)域有可能被誤判為運(yùn)動物體進(jìn)而識別為煙霧。
3)類煙霧目標(biāo):白色墻體建筑在墻體受強(qiáng)光照射條件下,都會產(chǎn)生類似于煙霧的效果。在森林和街道區(qū)域,白色車輛慢速移動條件下在鏡頭模糊情況下也會產(chǎn)生類似于煙霧的圖像特征。
ViBe算法是一種基于樣本隨機(jī)聚類的背景建模算法,其特點(diǎn)是計算量小、占用內(nèi)存少,是目前普遍采用的一種運(yùn)動目標(biāo)提取算法[1]。ViBe算法在初始化時為每個像素點(diǎn)建立一個樣本集,樣本集中的樣本值包含該像素點(diǎn)過去的像素和鄰近像素點(diǎn)的像素值,通過比較當(dāng)前像素值和樣本集中的值來判斷是否屬于前景像素點(diǎn),并通過隨機(jī)的方式對樣本集合進(jìn)行更新。同時,ViBe的并行特性使得計算過程能夠移植到GPU上,加速計算過程。
使用ViBe方法后,對運(yùn)動圖像進(jìn)行腐蝕和開操作,排除由于相機(jī)抖動導(dǎo)致的邊緣噪點(diǎn),可以得到如圖1所示的運(yùn)動區(qū)域。
圖1 運(yùn)動區(qū)域提取結(jié)果
煙霧的出現(xiàn)會導(dǎo)致所在圖像區(qū)域出現(xiàn)一定的模糊,導(dǎo)致細(xì)節(jié)丟失,使得該部分無法準(zhǔn)確提取角點(diǎn)[9],而其他干擾目標(biāo)則可能帶有顯著紋理特征,所以,可利用該現(xiàn)象作為一個判據(jù),排除部分運(yùn)動剛體目標(biāo)干擾。從圖2實(shí)例中可以看到煙霧區(qū)域只能在邊緣部分提取到部分角點(diǎn),內(nèi)部則無法提取到角點(diǎn),而圖像其他紋理較為明顯區(qū)域,則會提取到很多角點(diǎn)。
圖2 角點(diǎn)提取實(shí)例
假設(shè)通過ViBe提取到運(yùn)動區(qū)域S,利用Harris角點(diǎn)檢測方法檢測到該區(qū)域內(nèi)角點(diǎn)數(shù)量為Nc,則角點(diǎn)數(shù)量運(yùn)動區(qū)域面積比率為:
可以設(shè)置rc的閾值Tc,當(dāng)rc 煙霧區(qū)域與背景一般具有明顯的色彩差異,但內(nèi)部具備相似性,因此,可以通過相應(yīng)的顏色模型對煙霧和其他目標(biāo)加以區(qū)分。本文采用以下模型從疑似目標(biāo)中提取出疑似煙霧區(qū)域,必須要說明:多數(shù)情況下煙霧是灰白色的,但顏色特征只能作為“弱特征”加以使用,而不能設(shè)定嚴(yán)格的閾值。本文采用的煙霧顏色特征主要有2類: 1)YCbCr顏色空間特征 文獻(xiàn)[10]通過統(tǒng)計發(fā)現(xiàn),煙霧都是灰白色的,并在Cb和Cr通道內(nèi)變化波動較少。 2)RGB顏色空間特征 文獻(xiàn)[11]利用煙霧在在RGB各個通道內(nèi)顏色分布相對集中的特性,提出一種RGB空間煙霧顏色特征,對每個像素點(diǎn)匹配計算方法如下: 其中,T1=T2=T3=20,T4=100,T5=235。 本文綜合利用以上2種特征,采取“與”的形式進(jìn)行組合,具體的提取結(jié)果如圖3所示。從中可以看出,顏色特征只能作為一種較弱的特征進(jìn)行使用,排除的主要是一些帶有明顯差異的目標(biāo)物體。 圖3 顏色特征提取結(jié)果 早期火災(zāi)煙霧基本上是出現(xiàn)在可燃物周圍,不會和部分剛體一樣出現(xiàn)整體的移動,所以,可以利用運(yùn)動累積圖像計算出持續(xù)運(yùn)動區(qū)域[12]。 煙霧的運(yùn)動特性不同于一般的剛體目標(biāo),特別是遠(yuǎn)距離情況下,煙霧區(qū)域運(yùn)動變化較慢,通過運(yùn)動累積方法無法提取煙霧運(yùn)動區(qū)域,但是對于其他運(yùn)動目標(biāo),則可以明顯提取出來。 運(yùn)動累積圖像計算方法如下: t時刻當(dāng)前灰度圖像與前一張圖像的幀差為: d(x,y,t)=|p(x,y,t)-p(x,y,t-1)| (x,y)∈D 其中,(x,y)為圖像的像素坐標(biāo),D為圖像像素區(qū)域。 利用N張連續(xù)視頻圖像計算的運(yùn)動累積圖像為: 可利用上述方法可以將大部分運(yùn)動剛體剔除出去。如圖4所示,在設(shè)定N=5的情況下,可以發(fā)現(xiàn)汽車移動會形成明顯的前景,而煙霧則不明顯。所以,可通過前景的方式排除運(yùn)動剛體部分。 圖4 運(yùn)動累積圖像 深度學(xué)習(xí)源于人工神經(jīng)網(wǎng)絡(luò),是機(jī)器學(xué)習(xí)的一個分支。在設(shè)計神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)后,只需要提供相應(yīng)的樣本和標(biāo)簽數(shù)據(jù),經(jīng)過訓(xùn)練即可完成特征的自提取。當(dāng)前,所有人工設(shè)計特征都無法將煙霧與其他目標(biāo)完全區(qū)分開來,而深度學(xué)習(xí)是一種良好的分類器。其中,卷積神經(jīng)網(wǎng)絡(luò)作為圖像分類領(lǐng)域一種學(xué)習(xí)工具,近年來取得了顯著的突破和進(jìn)展[13]。卷積神經(jīng)網(wǎng)絡(luò)利用局部感知和參數(shù)共享,顯著減少了網(wǎng)絡(luò)參數(shù)數(shù)量,通過前向傳播計算損失值和反向傳播算法計算梯度,利用GPU并行計算實(shí)現(xiàn)了上億規(guī)模參數(shù)模型的快速訓(xùn)練。 本文采用Caffe框架進(jìn)行煙霧目標(biāo)識別,Caffe是UC Berkeley的一個開源項(xiàng)目,本文選擇Caffe主要基于以下考慮:Caffe由C++/CUDA實(shí)現(xiàn),提供高效的C++接口,便于集成到強(qiáng)調(diào)實(shí)時處理性能的算法中去[14]。 本文采用GoogLeNet[15]網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行學(xué)習(xí)和應(yīng)用,為了準(zhǔn)確識別煙霧,本文并不是簡單地選擇煙霧和非煙霧2類圖片進(jìn)行模型學(xué)習(xí),而是從實(shí)際場景中針對常見的誤報干擾項(xiàng)搜集照片進(jìn)行分類,分為煙霧、湖泊、道路與建筑、車輛、植被,如圖5所示。本文使用的煙霧樣本數(shù)據(jù),均采集于實(shí)際工程現(xiàn)場監(jiān)控視頻,積累了大量圖像數(shù)據(jù)用于模型訓(xùn)練,每一類標(biāo)簽從不同視頻源中了抓取了2 000張共10 000張樣本進(jìn)行學(xué)習(xí),最后得到本文使用圖像分類器。 準(zhǔn)確率和目標(biāo)函數(shù)損失值曲線如圖6所示,通過對其分析以及實(shí)際樣本測試,本文采用11 000次迭代得到的分類模型進(jìn)行實(shí)際測試,結(jié)果整體正確率為94.64%。 圖5 深度學(xué)習(xí)分類標(biāo)簽 圖6 準(zhǔn)確率與目標(biāo)函數(shù)損失值 算法具體實(shí)施流程如圖7所示。 圖7 算法流程 本文算法共使用了5個判據(jù),分為人工設(shè)計特征分類和深度學(xué)習(xí)分類。當(dāng)判斷結(jié)果為否時,均判定為非煙霧。 由是針對大場景空間的煙霧識別,算法在以下方面進(jìn)行了改進(jìn): 1)相機(jī)的運(yùn)動:多數(shù)情況下,監(jiān)控相機(jī)安裝在云臺上,可以進(jìn)行旋轉(zhuǎn),部分相機(jī)還具備變焦功能。此外,受風(fēng)力影響,相機(jī)也會出現(xiàn)抖動。以上情況均會讓沒有運(yùn)動的物體成為運(yùn)動目標(biāo),同時由于相機(jī)的抖動,目標(biāo)會出現(xiàn)的一定模糊,此時很容易造成誤報警,所以,算法中添加了自動檢測相機(jī)運(yùn)動狀態(tài)的步驟,在相機(jī)運(yùn)動時自動關(guān)閉識別的功能。 2)算法性能:每增加一個判據(jù),均會增加計算時間,所以,本文采用級聯(lián)分類器的架構(gòu)設(shè)計了分類算法。算法流程中的步驟如2和步驟7可以采用并行計算方法實(shí)施,因此,可以通過GPU實(shí)現(xiàn)計算加速。此外,Caffe也提供了相應(yīng)的GPU加速接口,可以提高算法處理速度。 算法部分模塊可以實(shí)現(xiàn)GPU加速,本文采用的硬件平臺如下:CPU Intel 6700k主頻3.2 GHz,內(nèi)存16 GB,顯卡NVIDIA Geforce Gtx970,顯存6 GB。處理單幀圖像實(shí)測平均時間如表1所示,其中,CPU實(shí)現(xiàn)單幀處理時間為370 ms,GPU異構(gòu)實(shí)現(xiàn)時間為50 ms,處理圖像分辨率為800×600像素 表1 算法各步驟計算時間 ms 本文面向?qū)嶋H應(yīng)用,針對步驟2和步驟6均實(shí)現(xiàn)了GPU加速,顯著降低了CPU負(fù)載,保證了算法的計算實(shí)時性,實(shí)現(xiàn)了計算的加速。 本文采用Caffe訓(xùn)練得到的煙霧分類模型,對2 500張測試圖片進(jìn)行測試,得到的測試分類結(jié)果如表2所示,其中整體正確率為94.64%,由此可見深度學(xué)習(xí)分類器能夠很好地區(qū)分不同種類的目標(biāo)。 表2 深度學(xué)習(xí)分類正確率 % 本文采用Visual Studio和CUDA平臺實(shí)現(xiàn)了本文算法以及開發(fā)了相應(yīng)監(jiān)控平臺,在算法參數(shù)調(diào)整過程中,進(jìn)行了多次不同場景下的點(diǎn)煙實(shí)驗(yàn),部分實(shí)際場景識別結(jié)果如圖8所示,從中可見,在不同場景下,本文算法均實(shí)現(xiàn)了準(zhǔn)確報警。 圖8 實(shí)際檢測結(jié)果 為對比人工設(shè)計特征提取方法和深度學(xué)習(xí)分類器的分類結(jié)果,本文采集200個有煙短視頻場景,在ViBe提取運(yùn)動區(qū)域后直接使用以上方法和綜合方法進(jìn)行了測試,結(jié)果如表3所示,可以發(fā)現(xiàn),采用綜合識別方法并沒有過多地增加計算負(fù)載,但是對于正確率提升很有幫助。在此需要說明的是,由于是視頻檢測,4.5%的準(zhǔn)確率提升會帶來明顯的識別效果提升。 表3 人工特征、深度學(xué)習(xí)與綜合識別方法性能對比 由于實(shí)際檢測環(huán)境多是無煙場景,要求算法魯棒性較高,不能出現(xiàn)大量的誤報,因此本文對包含圖8所示場景在內(nèi)的不同環(huán)境進(jìn)行了時常為一周的連續(xù)性測試,氣候環(huán)境則包含了晴天、濃霧、陰雨3類天氣。測試結(jié)果表明,本文算法除了在極端天氣如大雨引起的水霧會引起誤報外,其他情形均不會引起誤報。 本文通過結(jié)合靜/動態(tài)人工特征和深度學(xué)習(xí)方法實(shí)現(xiàn)了視頻煙霧檢測。在使用人工設(shè)計特征時采用較弱的閾值設(shè)置,并利用級聯(lián)的方式對多種判據(jù)和深度學(xué)習(xí)分類器進(jìn)行綜合,實(shí)現(xiàn)了城鎮(zhèn)森林交界域煙霧的準(zhǔn)確識別。此外,本文大量運(yùn)用了并行計算技術(shù),將數(shù)據(jù)密集型計算轉(zhuǎn)移到了GPU中,有效地降低了CPU負(fù)載,使得算法能夠?qū)Χ嗦芬曨l同時進(jìn)行分析,保證了其實(shí)時性。后續(xù)工作將使用adaboost算法對多種單幀圖片識別判據(jù)進(jìn)行更優(yōu)組合,并根據(jù)檢測場景實(shí)現(xiàn)閾值自動計算,進(jìn)一步提高算法準(zhǔn)確率。 [1] BARNICH O,van DROOGENBROECK M.ViBe:A Universal Background Subtraction Algorithm for Video Sequences[J].IEEE Transactions on Image Processing,2011,20(6):1709-1724. [2] 馮華文,龔聲蓉,劉純平.基于改進(jìn)高斯混合模型的前景檢測[J].計算機(jī)工程,2011,37(19):179-182. [3] MILLAN G L,SANCHEZ P G,NAKANO M,et al.An Early Fire Detection Algorithm Using IP Cameras[J].Sensors,2012,12(5):5670-5680. [4] 吳愛國,杜春燕,李 明.基于混合高斯模型與小波變換的火災(zāi)煙霧探測[J].儀器儀表學(xué)報,2008,29(8):1622-1626. [5] MARUTA H,NAKAMURA A,YAMAMICHI T,et al.Image Based Smoke Detection with Local Hurst Exponent[C]//Proceedings of International Conference on Image Processing.Washington D.C.,USA:IEEE Computer Society Press,2010:4653-4656. [6] FERRI R J,ZHANG H,KUBE C R.Real-time Detection of Steam in Video Images[J].Pattern Recognition,2007,40(3):1148-1159. [7] 王 濤,劉 淵,謝振平.基于自適應(yīng)神經(jīng)模糊推理系統(tǒng)的視頻煙霧檢測[J].計算機(jī)工程,2011,37(23):186-188,207. [8] LeCUN Y,BENGIO Y,HINTON G.Deep Learning[J].Nature,2015,521(7553):436-444. [9] ROSTEN E,DRUMMOND T.Machine Learning for High-speed Corner Detection[C]//Proceedings of European Conference on Computer Vision.Berlin,Germany:Springer,2006:430-443. [10] CHEN T H,YIN Y H,HUANG S F,et al.The Smoke Detection for Early Fire-alarming System Based on Video Processing[C]//Proceedings of International Conference on Intelligent Information Hiding and Multimedia Signal Processing.Washington D.C.,USA:IEEE Computer Society,2006:427-430. [11] MORERIO P,MARCENARO L,REGAZZONI C S,et al.Early Fire and Smoke Detection Based on Colour Features and Motion Analysis[C]//Proceedings of the 19th IEEE International Conference on Image Processing.Washington D.C.,USA:IEEE Press,2012:1041-1044. [12] 袁非牛,張永明,劉士興,等.基于累積量和主運(yùn)動方向的視頻煙霧檢測方法[J].中國圖象圖形學(xué)報,2008,13(4):808-813. [13] SZEGEDY C,LIU W,JIA Y,et al.Going Deeper with Convolutions[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.Washington D.C.,USA:IEEE Press,2015:1-9. [14] JIA Y,SHELHAMER E,DONAHUE J,et al.Caffe:Convolutional Architecture for Fast Feature Embedding[C]//Proceedings of the 22nd ACM International Conference on Multimedia.New York,USA:ACM Press,2014:675-678. [15] MALIK O.Googlenet Going Global[EB/OL].[2007-09-21].http://gigaom.com/2007/09/21/googlenet-going-global.1.4 煙霧顏色模型
1.5 運(yùn)動累積圖像
1.6 深度學(xué)習(xí)煙霧圖像分類器
1.7 算法流程
2 實(shí)驗(yàn)與結(jié)果分析
2.1 算法計算時間
2.2 深度學(xué)習(xí)分類測試
2.3 識別實(shí)驗(yàn)
3 結(jié)束語