(華中師范大學(xué) 物理科學(xué)與技術(shù)學(xué)院,湖北 武漢 430079)
由于火災(zāi)的突發(fā)性、頻發(fā)性和危害性,人們一直在尋找更加及時有效的火災(zāi)檢測方法。傳統(tǒng)的火災(zāi)探測系統(tǒng)存在探測范圍有限,誤報率高,安裝密度大,可拓展性不強,智能化程度較低等缺點。近年來,隨著視頻監(jiān)控的普及、視頻圖像處理技術(shù)和計算機視覺技術(shù)的發(fā)展,視頻火焰識別一直是火災(zāi)檢測領(lǐng)域的熱點。
傳統(tǒng)的視頻火焰檢測算法大多關(guān)注檢測火焰的存在性,而不能對火焰的燃燒狀態(tài)進(jìn)行持續(xù)有效的跟蹤,使用常見的目標(biāo)跟蹤算法,如kalman濾波器算法對火焰目標(biāo)進(jìn)行跟蹤,其對于火焰這種原地閃動且存在被遮擋可能的目標(biāo)跟蹤效果欠佳[1]。大多數(shù)早期的火焰檢測算法都是通過先人工提取火焰的特征,再將多種特征進(jìn)行融合識別火焰。人工提取的火焰特征主要分為靜態(tài)與動態(tài)兩類,早期的火焰識別算法通過提取典型的靜態(tài)特征如圓形度序列,面積序列,面積序列頻譜,強度序列等進(jìn)行融合判別火焰[2], 動態(tài)特征方面,火焰的尖角運動方向[3]、閃爍特征與邊緣一致性特征[4]等能有效區(qū)分疑似火焰的干擾物。將火焰的尖角數(shù)目與火焰高度的頻譜變化等靜態(tài)特征與動態(tài)特征相結(jié)合進(jìn)行火焰識別,也成為一個研究熱點[5]。但是,人工提取特征有容錯性差,魯棒性低的缺點。
火焰識別是視頻火焰檢測最關(guān)鍵的一步,其識別效果決定了算法整體的實用性與可靠性,早期的火焰識別通過建立概率模型實現(xiàn)[2-5],這種方法逐漸被機器學(xué)習(xí)算法取代,如支持向量機[6-7]、貝葉斯分類器[8-9]等,但該類方法依賴于特征的選取。由于火災(zāi)發(fā)生的背景較復(fù)雜,容易出現(xiàn)干擾物,為使算法適用于復(fù)雜的環(huán)境情況,Oleksii Maksymiv[10]通過AdaBoost和LBP進(jìn)行前期的檢測,將檢測為疑似發(fā)生火災(zāi)的區(qū)域送至卷積神經(jīng)網(wǎng)絡(luò)(CNN)中處理,進(jìn)行最終判斷,但煙霧與火災(zāi)的分類結(jié)果影響了其識別精度。
針對上述算法的優(yōu)缺點,同時考慮到火焰檢測的實時性與準(zhǔn)確性,本文提出了一種基于多目標(biāo)跟蹤與深度學(xué)習(xí)的火焰識別算法,首先通過運動檢測與顏色檢測提取出具有火焰顏色的運動目標(biāo),然后對疑似火焰目標(biāo)進(jìn)行跟蹤,進(jìn)而對每個目標(biāo)通過訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行預(yù)測,得到最后的火焰識別結(jié)果。
對于待檢測的視頻序列,對單幀圖像進(jìn)行檢測運算量大,不利于火焰特征的提取,因此提取圖像中疑似火焰區(qū)域?qū)⑹亲R別前的必要步驟。傳統(tǒng)的火焰識別算法是直接對提取到的疑似火焰目標(biāo)進(jìn)行識別,判斷其是否是火焰,但這種方式不能對火焰的狀態(tài)進(jìn)行記錄,無法排除瞬時出現(xiàn)的干擾物,導(dǎo)致算法誤檢率升高,魯棒性較差,因此本算法在提取火焰目標(biāo)后對目標(biāo)進(jìn)行持續(xù)跟蹤,從而為火焰識別階段提供穩(wěn)定存在的待識別目標(biāo)。
火焰目標(biāo)提取采用先運動檢測再顏色檢測的方式提取疑似火焰區(qū)域,首先,運動檢測算法與顏色檢測算法相比,運算速度較快,因此先運動檢測,篩選出圖像中運動的物體能有效提高算法整體運算速度。其次,根據(jù)火焰的持續(xù)不斷運動的特征,先進(jìn)行運動檢測可以篩選出視頻中的運動物體,進(jìn)而排除具有類似火焰顏色但靜止的干擾物。
運動檢測利用了火焰持續(xù)不斷進(jìn)行隨機運動的特征,對比多種運動檢測方法后使用自適應(yīng)的高斯混合模型的背景建模法提取運動物體。該算法提取的前景較為連續(xù)且完整,同時運算速度較快,可以滿足實時檢測運動物體的要求。
接下來將運動前景進(jìn)行分割,對該分割區(qū)域進(jìn)行顏色檢測,得到具有火焰顏色的運動目標(biāo)。顏色檢測使用Chen[11]提出的火焰顏色模型進(jìn)行識別。
顏色模型公式:
(1)
式(1)即本文使用的火焰的顏色檢測模型,其采用基于RGB與HSV顏色空間相結(jié)合的火焰顏色判據(jù),R、G、B代表圖像的R、G、B通道值,S代表圖像的HSV顏色空間的Saturation值,Ravg代表圖像中R通道的均值,在本算法中,Sth=0.4,Rth為115。
圖1(a)、(b)、(c)為對一段視頻進(jìn)行運動檢測與顏色檢測后的結(jié)果。圖1(c)中白色部分即為二值化后的火焰區(qū)域。由檢測結(jié)果可以看出,運動檢測可以檢測出視頻中火焰、煙霧等運動物體,再對運動區(qū)域進(jìn)行顏色檢測,可以提取出較完整的疑似火焰區(qū)域。
圖1 運動檢測與顏色檢測結(jié)果
針對火焰運動速度較慢的特點,結(jié)合多目標(biāo)跟蹤算法的處理速度需要,設(shè)計了一種基于幀間距離匹配的多目標(biāo)跟蹤算法,處理時先將每一幀提取的目標(biāo)的外接矩形進(jìn)行整體融合處理。融合時與目標(biāo)匹配時所依據(jù)的距離匹配關(guān)系相同,這樣可以確保接下來要融合的目標(biāo)的唯一性。兩目標(biāo)按照距離相交或相鄰的位置示意圖見圖2,圖2中a圖表示的情況即兩目標(biāo)相交,b圖表示的情況即兩目標(biāo)相鄰,(Xa1,Ya1) 、(Xa2,Ya2)為矩形a的左上角坐標(biāo)與右下角坐標(biāo),(Xb1,Yb1)、(Xb2,Yb2)為矩形b的左上角坐標(biāo)與右下角坐標(biāo),Wa、Wb即矩形a、b的寬,Ha、Hb即矩形a、b的高。
圖2 目標(biāo)相交相鄰位置示意圖
具體的距離匹配公式見式(2),
(2)
若前后幀有兩個目標(biāo)相鄰或相近則視該目標(biāo)狀態(tài)為存在,即若相鄰幀兩個目標(biāo)的外接矩形距離關(guān)系滿足式(2)則判定其為同一目標(biāo)。若前一幀的目標(biāo)在當(dāng)前幀無匹配結(jié)果,則視為目標(biāo)消失。類似的,若當(dāng)前幀的目標(biāo)在前一幀無匹配結(jié)果,則視為目標(biāo)新增。
當(dāng)出現(xiàn)目標(biāo)離散或目標(biāo)融合情況時,可使用最大目標(biāo)信息繼承方式處理相應(yīng)目標(biāo),即當(dāng)多個目標(biāo)融合為一個目標(biāo)時,當(dāng)前目標(biāo)繼承歷史目標(biāo)中面積最大目標(biāo)的信息,當(dāng)歷史目標(biāo)離散為多個目標(biāo)時,當(dāng)前多個目標(biāo)中面積最大者繼承歷史目標(biāo)的信息。為了處理短時間的目標(biāo)遮擋問題,在目標(biāo)消失后算法將依據(jù)該目標(biāo)的存在時間長短,對目標(biāo)信息進(jìn)行一定時間保存,當(dāng)目標(biāo)遮擋消失,仍能對該目標(biāo)進(jìn)行持續(xù)不斷的跟蹤,若該消失目標(biāo)長時間沒有再次出現(xiàn),再刪除目標(biāo)信息。這樣的處理既適用于火焰的目標(biāo)跟蹤也保證了跟蹤的穩(wěn)定性。
多目標(biāo)跟蹤算法的跟蹤效果如圖3所示,方框代表疑似火焰目標(biāo),其附近的標(biāo)號代表該目標(biāo)的序號,由跟蹤效果可以看出,本算法能夠處理短時間目標(biāo)被遮擋以及目標(biāo)離散或融合等復(fù)雜運動情況,較好地實現(xiàn)了針對火焰疑似目標(biāo)的實時跟蹤功能?;鹧孀鳛橐环N運動區(qū)域相對固定的物體,在檢測火焰時進(jìn)行目標(biāo)跟蹤可以在前期排除一些諸如汽車、自行車等快速移動的物體,同時可以提高系統(tǒng)的魯棒性,為接下來的目標(biāo)識別做準(zhǔn)備。
圖3 多目標(biāo)跟蹤結(jié)果
深度學(xué)習(xí)類似人腦學(xué)習(xí)的機制,從底層特征到高層特征逐層進(jìn)行抽象提取,進(jìn)而得到分類識別所需要的關(guān)鍵特征,提升分類的準(zhǔn)確性。本文使用卷積神經(jīng)網(wǎng)絡(luò),其可以壓縮輸入端維度,在多個空間位置共享參數(shù),進(jìn)行公共特征的提取,尤其適合處理圖片這種二維格狀數(shù)據(jù),其適用性強,泛化能力好,具有全局優(yōu)化能力,且訓(xùn)練參數(shù)少。深度神經(jīng)網(wǎng)絡(luò)是由機器學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò)算法演變而來,且與傳統(tǒng)的機器學(xué)習(xí)方法相比,深度神經(jīng)網(wǎng)絡(luò)能一次完成特征提取與分類識別,從而避免了手工提取特征的步驟,實現(xiàn)火焰識別。
Lecun在1998年提出的深度卷積神經(jīng)網(wǎng)絡(luò),是解決模式識別問題的有效工具[12]。原始圖像輸入到有多個神經(jīng)元的卷積層,其中的卷積核函數(shù)會提取輸入圖像的邊緣,輪廓,尖角等局部特征。卷積層后面是池化層,主要用于對卷積層進(jìn)行特征圖的下采樣運算,降低分辨率,從而降低模型的復(fù)雜度。下采樣后的特征也具有一定的尺度不變能力。卷積層和池化層交替出現(xiàn)在網(wǎng)絡(luò)中。通常,一層卷積層和一層池化層完成一次特征提取過程。在卷積神經(jīng)網(wǎng)絡(luò)中,最后幾層通常是全連接層,這使得最終生成的特征圖連接在一起。輸出節(jié)點的數(shù)量可以根據(jù)分類要求進(jìn)行調(diào)整,最終得到分類結(jié)果。綜上,卷積神經(jīng)網(wǎng)絡(luò)的主要優(yōu)點是不依賴于先驗知識,可以有效地解決手工特征的設(shè)計難度問題。
本文算法選用的特征提取網(wǎng)絡(luò)為CaffeNet,其網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。該網(wǎng)絡(luò)由五層卷積層、三層全連接層組成,其圖像的輸入尺寸為227×227,通道數(shù)為3,即圖像的RGB三通道,網(wǎng)絡(luò)層數(shù)為8層,網(wǎng)絡(luò)參數(shù)大小為60 MB,神經(jīng)元個數(shù)650 000,分類數(shù)目為1 000,并且已經(jīng)在ImageNet數(shù)據(jù)集上做了預(yù)訓(xùn)練。CaffeNet使用RELU函數(shù)進(jìn)行激活,將負(fù)激活部分全部清零,以改善使用sigmoid激活函數(shù)帶來的收斂波動以及梯度消失缺陷,在保留神經(jīng)網(wǎng)絡(luò)非線性能力的同時,加快訓(xùn)練速度。使用數(shù)據(jù)集擴展和dropout的方法防止過擬合。CaffeNet的降采樣技術(shù)將輸入為227×227 的圖像降采樣為6×6,最終得到抽象后的特征。
圖4 CaffeNet結(jié)構(gòu)示意圖
微調(diào)是在數(shù)據(jù)量不足時的解決方案,它使用復(fù)雜網(wǎng)絡(luò)在小數(shù)據(jù)集上訓(xùn)練模型,結(jié)合網(wǎng)絡(luò)結(jié)構(gòu),恢復(fù)已經(jīng)訓(xùn)練好的模型權(quán)重進(jìn)行訓(xùn)練的方式。在大規(guī)模的網(wǎng)絡(luò)結(jié)構(gòu)中,如果訓(xùn)練數(shù)據(jù)集的樣本量和特征維數(shù)較小,系統(tǒng)可能出現(xiàn)局部收斂,并導(dǎo)致過擬合,對測試數(shù)據(jù)進(jìn)行分類結(jié)果較差,分類精度不高。微調(diào)可以有效地緩解這一問題。訓(xùn)練時,直接在模型中使用其他層的權(quán)重,通過改變最后一層并利用現(xiàn)有的數(shù)據(jù)對訓(xùn)練好的模型進(jìn)行微調(diào)操作。該方法不僅大大提高了訓(xùn)練速度,還能減少過擬合問題。在本文中,我們對CaffeNet的Caffe模型進(jìn)行微調(diào),以適應(yīng)火焰的分類任務(wù)。
首先,網(wǎng)絡(luò)中的crop_size為227×227。在Caffe的訓(xùn)練過程中,訓(xùn)練和驗證同時進(jìn)行。test_iter值設(shè)置為260代表每1000次迭代計算一次誤差,batch_size設(shè)置為16,即每次迭代的圖像數(shù)是batch_size×crop_size=16×1000=16 000。每一個迭代過程,所有的訓(xùn)練數(shù)據(jù)集都將通過網(wǎng)絡(luò)訓(xùn)練一次。在solover.prototxt中,迭代的最大次數(shù)為max_iteration=50 000,因此epoch=50 000/1 000=50。當(dāng)初始學(xué)習(xí)率base_lr=0.01時,訓(xùn)練中l(wèi)oss值不會下降,甚至在一定的值停止,通過調(diào)整base_lr參數(shù)來解決這個問題。在本實驗中,將base_lr設(shè)置為0.001,lr_policy設(shè)置為step,Gamma=γ=0.1,stepsize=20 000。根據(jù)Step學(xué)習(xí)策略,學(xué)習(xí)速率的衰減時間與step有關(guān),衰減程度與“γ”有關(guān)。例如,當(dāng)設(shè)置step=500,base_lr=0.000 1,Gamma=0.1時,達(dá)到第一次500迭代次數(shù)時,學(xué)習(xí)率將開始衰減。衰減后的學(xué)習(xí)率為a=a×γ= 0.000 1×0.1= 10-5。即step表示學(xué)習(xí)速率的衰減步長,“γ”表示衰減因子。優(yōu)化后的網(wǎng)絡(luò)訓(xùn)練參數(shù)見表1。
本算法的整體流程圖如圖5所示。其中程序初始化主要實現(xiàn)閾值初始化、火焰識別模型加載等步驟,接著對輸入的視頻進(jìn)行運動檢測提取出運動前景,并對運動前景進(jìn)行顏色檢測提取出面積較大的顯著目標(biāo),然后對疑似火焰目標(biāo)進(jìn)行多跟蹤跟蹤并對目標(biāo)信息進(jìn)行存儲與更新,并對持續(xù)存在的目標(biāo)進(jìn)行火焰識別,最后根據(jù)當(dāng)前目標(biāo)被識別為火焰的頻次得到識別結(jié)果,實現(xiàn)火災(zāi)檢測。
表1 CaffeNet優(yōu)化前后網(wǎng)絡(luò)參數(shù)
圖5 算法整體流程圖
本實驗軟件環(huán)境為Windows10系統(tǒng)下Caffe開源框架,硬件配置為:英特爾Core i7-8550U八核處理器,8 G內(nèi)存,128 G固態(tài)硬盤等。由于火焰檢測領(lǐng)域還沒有公開、統(tǒng)一的標(biāo)準(zhǔn)數(shù)據(jù)集,因此本實驗使用的火焰樣本視頻部分來自Bilkent大學(xué)火災(zāi)火焰視頻庫(http://Signal.ee.bilkent.edu.tr/VisiFire),部分來自網(wǎng)絡(luò)及作者拍攝。
火焰識別模型的訓(xùn)練標(biāo)簽有兩類:火焰與非火焰,為實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,從火焰視頻數(shù)據(jù)集與火焰圖片數(shù)據(jù)集中整理了2400張火焰圖片作為火焰訓(xùn)練集,1020張火焰圖片作為火焰測試集,2400張疑似火焰圖片作為疑似火焰訓(xùn)練集,1020張疑似火焰圖片作為疑似火焰測試集,兩類樣本數(shù)量達(dá)到1:1平衡,且訓(xùn)練集與測試集數(shù)量基本滿足2.4:1,符合訓(xùn)練集與測試集的合理劃分比例。為滿足CaffeNet的輸入要求,圖像大小統(tǒng)一為227pixel×227pixel,將數(shù)據(jù)集轉(zhuǎn)化為LMDB格式存儲,并輸入CaffeNet處理。
實驗過程中,網(wǎng)絡(luò)訓(xùn)練采用微調(diào)策略,每迭代1000次進(jìn)行一次預(yù)測,迭代訓(xùn)練50000次后網(wǎng)絡(luò)已經(jīng)具備了識別火焰與疑似火焰目標(biāo)的能力,并可通過輸出對應(yīng)各類別的概率實現(xiàn)對目標(biāo)是否是火焰的量化評價。網(wǎng)絡(luò)訓(xùn)練過程的損失函數(shù)如圖6所示,從圖6中可以看出,經(jīng)過10000次的迭代訓(xùn)練后迅速收斂,并保持平穩(wěn)。網(wǎng)絡(luò)的訓(xùn)練誤差在20000次迭代訓(xùn)練后逐步下降,并在50000次附近達(dá)到平穩(wěn),實驗結(jié)果表明網(wǎng)絡(luò)得到了有效學(xué)習(xí)。如圖7所示,網(wǎng)絡(luò)的測試精度也逐步上升,最終網(wǎng)絡(luò)模型的精度達(dá)到97.79%。
圖6 CaffeNet訓(xùn)練階段誤差
圖7 CaffeNet測試階段精度
本文為測試算法檢測火焰的準(zhǔn)確性,使用了多個火焰與非火焰視頻進(jìn)行了測試,火焰視頻包含了多種場景下,各個階段的火焰燃燒情況,非火焰視頻包含了一些生活中較為常見的與火焰相似的物體,具有較強的干擾性。
算法實驗結(jié)果如圖8所示,對于識別為火焰的目標(biāo),用紅色框高亮顯示,并在旁邊標(biāo)注為火焰;對于識別為非火焰的目標(biāo),用綠色框高亮顯示,并在旁邊標(biāo)注為非火焰?;鹧嬲`報率即為將非火焰目標(biāo)識別為火焰目標(biāo)的概率,本文算法的平均檢測率達(dá)到了98.79%,且對各種場景的火焰都具有較好的檢測效果。圖8是不同場景的測試結(jié)果圖,結(jié)果表明本算法能成功排除相似顏色的樹干,移動燈光,帶有火焰顏色的煙霧等干擾,穩(wěn)定地檢測出不同場景、不同光照下的火焰。
圖8 不同場景的測試結(jié)果
為了驗證算法的識別準(zhǔn)確率,使用上述視頻樣本對算法進(jìn)行測試,檢測結(jié)果如表2所示,同時,將本算法的識別準(zhǔn)確率與三種典型火焰檢測算法進(jìn)行對比,文獻(xiàn)[11]采用的是RGB-HSI混合顏色模型,通過運動檢測與顏色檢測結(jié)合面積變化特征識別火焰,該方法對穩(wěn)定燃燒的火焰識別效果不好且容易誤判。文獻(xiàn)[6]使用水平、垂直和對角方位的亮度圖結(jié)合SVM分類器建立了一種基于像素的非線性火焰分類方法,實驗結(jié)果表明該方法對于火焰檢測具有較強的魯棒性,但存在對比度較高時容易誤判的問題。文獻(xiàn)[13]提出的基于RGB顏色空間統(tǒng)計模型的火焰識別算法,提取火焰的分層與閃爍特征,利用神經(jīng)網(wǎng)絡(luò)進(jìn)行火焰的識別,該算法魯棒性較好,但對大空間內(nèi)火焰面積占比較小的視頻檢測效果較差。由表2和表 3可見,與類似算法相比本算法具有較高的可靠性與準(zhǔn)確性,抗干擾能力強,誤報率低,檢測效果好。在算法運行效率上,火焰檢測識別算法中前期的特征提取與跟蹤部分計算量較小,但火焰判別部分對算法運行效率影響較大,在測試實驗中,本文算法平均幀處理時間為147 ms。利用每三幀識別一次的方式處理,在加快算法運行速率的同時也能保證算法的識別效果。在應(yīng)用中火焰檢測的平均處理效率達(dá)到了20幀/s,能很好地滿足工業(yè)需求。
表2 火焰視頻檢測結(jié)果
表3 非火焰視頻視檢測結(jié)果
本文提出了一種基于多目標(biāo)跟蹤與深度學(xué)習(xí)的火焰檢測算法,使用多目標(biāo)跟蹤的方法使得算法能對火焰目標(biāo)進(jìn)行持續(xù)穩(wěn)定的跟蹤,增強系統(tǒng)的魯棒性,使用深度學(xué)習(xí)的方法進(jìn)行火焰目標(biāo)識別,使得本算法與傳統(tǒng)機器學(xué)習(xí)方法進(jìn)行火焰檢測相比,擁有更好的準(zhǔn)確率與更低的誤報率,同時可以避免人工提取火焰特征的缺點。測試結(jié)果表明,本算法具有較為理想的火焰檢測效果,同時具備較好的實時性與抗干擾能力,具有較好的應(yīng)用前景。但本算法僅能檢測到火焰的發(fā)生,對于陰燃及火焰被完全遮擋的情況還沒有考慮,因此后面將增加煙霧檢測模塊,實現(xiàn)對火焰更為及時有效的預(yù)警。