程廣濤,鞏家昌,趙洪偉
(1.國家消防工程技術(shù)研究中心 研發(fā)部,天津 300381; 2.中國刑事警察學院 聲像資料檢驗技術(shù)系,沈陽 110854;3.應急管理部天津消防研究所 研發(fā)部,天津 300381)
在社會生產(chǎn)和日常生活中,火災作為重要隱患一直威脅著人們的生命和財產(chǎn)安全。隨著科技水平的迅猛發(fā)展,如何防火和有效救援成為消防救援管理部門和社會單位必須加以重視的研究課題。煙霧作為火災發(fā)生的早期信號,其檢測成為火災早期預警的主要技術(shù)手段。視頻圖像傳感器的日益普及和計算機視覺技術(shù)的不斷進步,使得基于視頻圖像的煙霧檢測算法得到迅速發(fā)展[1]。
對于煙霧圖像識別的研究主要集中在煙霧圖像特征的準確描述。局部二值化模型(Local Binary Pattern,LBP)常被用于描述煙霧圖像的紋理特征[2],其通過建模中心像素和周圍像素的局部變化規(guī)律來刻畫煙霧特征。文獻[3]為提取煙霧圖像每個通道的LBP特征,提出基于多通道LBP特征編碼的煙霧識別方法(MCLBP)。為進一步描述煙霧圖像運動的時域信息,文獻[4]提出LBP特征的擴展VLBP方法。文獻[5]通過一種基于Gabor濾波的層級結(jié)構(gòu),實現(xiàn)多尺度、多方向的多層紋理特征表達,以提高煙霧識別的綜合效果。文獻[6]結(jié)合聚合Gabor核和局部二值模式(LAGBP)增強煙霧識別性能。為了描述煙霧圖像的模糊特征,文獻[7]使用小波能量高頻信號變化刻畫煙霧飄散規(guī)律,文獻[8]結(jié)合煙霧的模糊特征和運動特征,應用小波變換和稀疏光流進行煙霧識別。上述方法提取的煙霧圖像特征魯棒性較差,會隨著應用環(huán)境的變化而發(fā)生改變。
近年來,深度卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)在計算機視覺任務中取得了優(yōu)異的結(jié)果,其原因在于CNN只需根據(jù)原始圖像數(shù)據(jù)就能自動學習到豐富的圖像特征,包括低階的邊緣、紋理等特征和高階的抽象特征。文獻[9]利用AlexNet網(wǎng)絡(luò)[10]直接將煙霧圖像原始數(shù)據(jù)作為分類器的輸入進行端到端訓練,避免復雜的預處理過程。文獻[11]對經(jīng)典深度卷積神經(jīng)網(wǎng)絡(luò)在煙霧識別任務上的性能進行對比分析,發(fā)現(xiàn)具有Inception結(jié)構(gòu)的深度網(wǎng)絡(luò)性能更優(yōu)。文獻[12]利用14層的深度規(guī)范和卷積神經(jīng)網(wǎng)絡(luò)(Deep Normalization and Convolutional Neural Network,DNCNN)進行煙霧圖像特征提取和分類,其檢測率較高而誤報率較低。文獻[13]在傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)中引入批量歸一化層和輕量級卷積結(jié)構(gòu),同時提取網(wǎng)絡(luò)中不同卷積層的特征圖進行聯(lián)合訓練。文獻[14]借助Inception設(shè)計框架提出深度多尺度卷積神經(jīng)網(wǎng)絡(luò)(Deep Multi-scale Convolutional Neural Network,DMCNN),其采取不同大小的卷積核進行并行卷積操作和拼接,利用更小的深度學習模型達到了更好的識別效果。深度卷積神經(jīng)網(wǎng)絡(luò)中的小卷積核設(shè)計限制了卷積核的感受野,不利于煙霧圖像的全局特征提取。盡管池化層可以擴大卷積核的感受野,但煙霧圖像分辨率較小,池化層的應用會造成相對較大的信息損失。
由于圖像中的煙霧屬于非剛體目標,其隨著燃燒材料、應用環(huán)境的變化,會呈現(xiàn)多種特征模式,因此考慮煙霧圖像的全局特征有助于改善煙霧識別的性能。本文提出一種基于膨脹卷積和稠密連接的煙霧識別方法DDCNN。利用膨脹卷積擴大卷積核的感受野,使卷積核可以監(jiān)控更廣泛的煙霧區(qū)域。在卷積層之間進行稠密連接,以增強信息流通和特征重利用,促使煙霧圖像的全局特征和局部特征有效結(jié)合。在此基礎(chǔ)上構(gòu)造深度卷積神經(jīng)網(wǎng)絡(luò),并在訓練樣本和標簽的凸組合上進行訓練,以增強模型的泛化能力。
膨脹卷積最初應用于小波分解問題[15]。為了解決圖像分割任務中池化層導致的圖像空域信息損失問題,文獻[16]利用膨脹卷積代替池化操作以擴大卷積核的感受野,提升圖像分割任務的準確率。
(1)
其中,f[i]是輸入信號,g[i]是輸出信號,h[l]表示長度為L的濾波,r表示用于對f[i]采樣的膨脹因子。當r=1時,式(1)表示普通卷積。
在處理2維圖像數(shù)據(jù)時,通過在卷積核間插入“洞”來實現(xiàn)膨脹卷積,即在卷積核相鄰數(shù)值之間插入r-1個零值。對于大小為k×k的卷積濾波,膨脹后的卷積濾波大小為kd×kd,其中,kd=k+(k-1)·(r-1)。通過改變膨脹因子,膨脹卷積可以利用相同大小的卷積核去感知更廣泛的圖像區(qū)域。膨脹卷積示例如圖1所示。
圖1 卷積核大小為3×3的膨脹卷積示意圖
在深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計中,很多研究者采取VGG網(wǎng)絡(luò)[17]中的3×3小卷積結(jié)構(gòu),通過堆疊3個3×3卷積核來代替7×7卷積核,堆疊2個3×3卷積核來代替5×5卷積核,在保證具有相同感受野的條件下,采用多層非線性層增加網(wǎng)絡(luò)深度以確保學習到更復雜的特征模式,進而提升深度卷積神經(jīng)網(wǎng)絡(luò)的效果。同時,通過堆疊小卷積核替換大卷積核也可以減少深度模型的參數(shù)量。
在煙霧識別任務中,圖像中的煙霧屬于非剛體,隨著燃燒物、光照條件、應用場景的變化而呈現(xiàn)眾多形態(tài),導致煙霧圖像的局部特征通常呈現(xiàn)較弱的魯棒性。因此,在深度卷積過程中增大卷積核的感受野,有助于獲得煙霧圖像的全局特征,進而增強煙霧識別的性能。簡單地堆疊3個普通3×3卷積核可以達到7×7的感受野,為了擴大卷積核的感受野,本文依次堆疊r=1、r=2和r=5的膨脹卷積替換普通卷積,如圖2所示,使膨脹卷積的感受野擴大到19×19,對圖像中更加廣泛的區(qū)域進行感知。
圖2 稠密膨脹卷積結(jié)構(gòu)塊
稠密卷積網(wǎng)絡(luò)(Dense Convolutional Network,DenseNet)[18]的提出增強了信息和梯度在深度卷積神經(jīng)網(wǎng)絡(luò)中的傳輸效率。DenseNet利用卷積層間的稠密連接促進特征重利用,同時通過學習更少的參數(shù)來緩解特征冗余問題。鑒于DenseNet的特點,本文對膨脹卷積結(jié)構(gòu)設(shè)計稠密連接機制,如圖2(b)所示??梢钥闯?當前層的輸入來自之前所有層,可有效地增強特征流通,促進圖像中煙霧數(shù)據(jù)局部特征和全局特征的有效融合,進而提升煙霧識別性能。
具體地,xi表示第i層特征圖,第K卷積層的輸入來自所有前面的特征圖xK=HK([x0,x1,…,xK-1]),其中,[x0,x1,…,xK-1]表示特征圖的拼接融合,H(·)表示卷積操作。本文稠密膨脹結(jié)構(gòu)的詳細信息如表1所示,輸入的特征圖尺寸為m×m×c,輸出的特征圖尺寸為m×m×(c+3d)。其中,d表示特征圖生長因子,本文d值取為12。
表1 稠密膨脹卷積結(jié)構(gòu)詳細信息
本文通過堆疊稠密膨脹網(wǎng)絡(luò)結(jié)構(gòu)得到用于煙霧識別的深層卷積神經(jīng)網(wǎng)絡(luò)DDCNN,如圖3所示。輸入的煙霧圖像分辨率為48像素×48像素×3像素,首先經(jīng)過一個普通的3×3×24卷積運算。依次利用3個稠密膨脹卷積結(jié)構(gòu)提取煙霧圖像特征,為了保證膨脹卷積處理時前后特征圖的分辨率不變,在卷積運算時對特征圖上下左右擴充s個元素,s的取值與膨脹率r保持一致。為了減少模型參數(shù),在相鄰2個稠密膨脹結(jié)構(gòu)之間設(shè)計壓縮層,實現(xiàn)特征圖分辨率和通道數(shù)目同時壓縮。壓縮層采取卷積核為1×1、滑動步長為2的卷積運算,使得特征圖通道數(shù)壓縮為原來的1/2,特征圖分辨率壓縮為原來的1/4。然后對特征圖進行全局池化操作,全局池化層由于無參操作可緩解過擬合問題,對于圖像的平移也具有更強的魯棒性,因此全局池化層更適用于圖像數(shù)據(jù)不充分的煙霧識別任務。最后利用Sigmoid函數(shù)對煙霧圖像進行二分類判斷,輸出各類別的置信度。在整個深度神經(jīng)網(wǎng)絡(luò)中,在每個卷積運算后附加BN規(guī)范化和ReLu非線性激活函數(shù)。
圖3 稠密膨脹卷積神經(jīng)網(wǎng)絡(luò)示意圖
為保證深度卷積神經(jīng)網(wǎng)絡(luò)的性能,需要龐大的圖像數(shù)據(jù)集作為支撐。煙霧圖像識別任務中的問題之一是煙霧圖像訓練數(shù)據(jù)不充分,導致訓練的網(wǎng)絡(luò)模型泛化能力差,即模型只記憶少量的訓練數(shù)據(jù)而產(chǎn)生過好的訓練效果,當測試數(shù)據(jù)分布與訓練數(shù)據(jù)略有不同時,測試效果較差。目前,多數(shù)研究者采取數(shù)據(jù)增強技術(shù)改善模型的泛化能力,但這個過程依賴于數(shù)據(jù)集,并且數(shù)據(jù)增強假定領(lǐng)域內(nèi)樣本都屬于同一類,沒有對不同類的不同樣本之間的領(lǐng)域關(guān)系進行建模。文獻[19]為了增強訓練樣本之間的線性表達,使離散的訓練數(shù)據(jù)分布空間近似連續(xù),提出MixUp數(shù)據(jù)增強方法以提升當前神經(jīng)網(wǎng)絡(luò)的泛化能力。MixUp在成對樣本及其標簽的凸組合上訓練神經(jīng)網(wǎng)絡(luò),其構(gòu)建的虛擬訓練樣本如下:
2)截割頭運動視覺測試。截割頭運動情況下的視覺性能測試是檢驗可視化輔助截割系統(tǒng)可靠性的重要部分。同樣地,每100 ms采集1張圖片,首先保持截割頭垂直方向不動,然后操作掘進機截割頭勻速從最右擺動到最左邊?;剞D(zhuǎn)角測試結(jié)果如圖11a 所示。
(2)
其中,(xi,yi)和(xj,yj)是從訓練數(shù)據(jù)中隨機抽取的兩個樣本,λ服從于Beta(α,α)分布,α∈(0,∞)。本文實驗設(shè)置α=1,此時λ服從于均值為0.5的均勻分布。圖4給出混合增強后的數(shù)據(jù)示例。
圖4 MixUp數(shù)據(jù)處理示例
本文使用Pytorch深度學習框架構(gòu)建和訓練DDCNN網(wǎng)絡(luò)。實驗在Windows10操作系統(tǒng)環(huán)境下進行,PC機配置主頻為3.40 GHz的i7-3700 CPU處理器,16 GB的RAM和Nvidia GTX 1080Ti GPU顯卡。每次迭代大約需要11 s以訓練DDCNN。
本文實驗所用的數(shù)據(jù)集由袁非牛教授課題組提供(http://staff.ustc.edu.cn/~yfn/vsd.html),具體信息如表2所示。整個數(shù)據(jù)集包含24 217張圖像,其中,煙霧圖像5 695張,非煙霧圖像18 522張,分為4個子數(shù)據(jù)集,分別為Set1、Set2、Set3和Set4。數(shù)據(jù)集中包含黑煙和白煙兩種類型,每種類型都包含濃煙、淡煙等模式。許多非煙霧圖像具有與煙霧圖像非常相似的顏色、形狀和紋理特征,這是發(fā)生誤報警的主要原因。因此,煙霧識別任務中的數(shù)據(jù)難以收集,致使性能優(yōu)異的深度卷積神經(jīng)網(wǎng)絡(luò)模型容易產(chǎn)生過擬合現(xiàn)象。另外,煙霧數(shù)據(jù)的多樣性及其與其他目標的相似性,使得測試數(shù)據(jù)分布和訓練數(shù)據(jù)分布易出現(xiàn)偏差,導致訓練模型的測試效果較差。Set3數(shù)據(jù)集和Set4數(shù)據(jù)集包含較多的圖像樣本,實驗中選擇Set3作為訓練數(shù)據(jù),Set4作為驗證數(shù)據(jù)。規(guī)模相對較小的Set1和Set2數(shù)據(jù)集用作測試數(shù)據(jù)。
表2 煙霧圖像數(shù)據(jù)集
本文使用批量梯度下降算法(Batch-SGD)訓練深度卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)變量,批量大小設(shè)置為32,動量參數(shù)為0.9。初始學習率設(shè)置為10-2,對數(shù)據(jù)集共迭代200次,每經(jīng)過60次將學習率除以10。網(wǎng)絡(luò)權(quán)重初始化采用Kaiming初始化方法[20]。如圖5所示,DDCNN大約經(jīng)過75次迭代時,驗證集上的損失函數(shù)值降低到0.000 6,準確率達到99.53%,并逐漸趨于穩(wěn)定。
圖5 DDCNN算法的驗證準確率與損失值
本文使用檢測率(Detection Rate,DR)、誤報率(False Alarm Rate,FAR)和準確率(Accuracy Rate,AR)作為煙霧識別方法的量化評價指標,具體計算過程如下:
(3)
(4)
(5)
其中,Qp和Qn分別表示煙霧樣本和非煙霧樣本的數(shù)目,Pp表示煙霧樣本中被正確檢測為煙霧的數(shù)目,Np表示非煙霧樣本中被錯分為煙霧類別的數(shù)目,Nn表示非煙霧樣本中被正確檢測為非煙霧的數(shù)目。
根據(jù)上述實驗設(shè)置,將本文DDCNN煙霧識別網(wǎng)絡(luò)與經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)AlexNet和VGG16以及其他2種基于卷積神經(jīng)網(wǎng)絡(luò)的煙霧識別方法DNCNN[13]和DMCNN[15]進行比較。對于AlexNet和VGG16網(wǎng)絡(luò),分別將輸入圖像的分辨率調(diào)整為227像素×227像素和224像素×224像素。對于基于卷積神經(jīng)網(wǎng)絡(luò)的煙霧識別方法DNCNN、DMCNN和DDCNN,輸入圖像的分辨率調(diào)整為48像素×48像素。表3給出不同煙霧識別算法在測試集Set1和Set2上的實驗結(jié)果,表中加粗數(shù)字表示各個量化指標下的最優(yōu)值??梢钥闯?DDCNN方法在兩個測試集上的DR指標都達到最優(yōu)。AlexNet網(wǎng)絡(luò)的FAR指標最優(yōu),但是DDCNN方法的DR指標和AR指標高于AlexNet。DDCNN在Set2測試集上的AR值略低于DMCNN,但DDCNN的模型大小只有0.34 MB,大約是DMCNN模型大小的1/3。當煙霧圖像識別應用于視頻圖像火災早期報警相關(guān)系統(tǒng)時,從實際應用角度考慮,需將誤報率控制在可接受的范圍內(nèi),取得更高檢測率DR的算法意味著對火災的漏檢率更低,具有更高的應用價值。
表3 5種方法的煙霧識別結(jié)果對比
為了闡述DDCNN網(wǎng)絡(luò)中膨脹卷積和稠密連接在煙霧識別任務中的必要性,設(shè)計如下2個消融實驗:
1)膨脹卷積的作用驗證
膨脹卷積在DDCNN中的作用是擴大卷積核的感受野,進而增強卷積核對煙霧圖像全局特征的提取。為了說明煙霧圖像全局特征的重要性,在DDCNN結(jié)構(gòu)中,簡單地堆疊3個普通3×3卷積替換圖2(b)所示的膨脹卷積結(jié)構(gòu),保持卷積層之間的稠密連接不變,將構(gòu)成的深度卷積神經(jīng)網(wǎng)絡(luò)標記為DDCNN_Dil。從表4的實驗結(jié)果看出,使用普通卷積,在Set1和Set2測試集上的檢測率DR指標具有較大幅度的下降,在Set1上DR由96.38%降低到93.48%,在Set2上DR由96.07%降低到92.44%。因此,通過增加卷積核的感受野可提取煙霧圖像的全局特征,有利于改善煙霧圖像的識別性能。
2)稠密連接的作用驗證
稠密連接的作用是增強特征圖間額信息流通和特征重利用,使得煙霧圖像的局部特征和全局特征有效結(jié)合。為了驗證稠密連接有助于提升煙霧識別性能,在DDCNN結(jié)構(gòu)中,去掉特征圖間的稠密連接,利用圖2(a)所示的膨脹卷積結(jié)構(gòu)替代圖2(b)所示的稠密膨脹卷積結(jié)構(gòu),由此堆疊而成的深度卷積神經(jīng)網(wǎng)絡(luò)標記為DDCNN_Den。從表4的實驗結(jié)果可以看出,刪除稠密連接后,煙霧識別性能下降。在Set1和Set2測試集上,DR指標分別下降了0.73%和0.88%,AR指標分別下降了0.29%和0.40%。因此,通過稠密連接實現(xiàn)特征重利用有助于增強數(shù)據(jù)信息流通,進而提升模型對煙霧圖像的識別能力。
表4 3種方法的消融實驗結(jié)果對比
煙霧圖像識別任務中的問題之一是圖像數(shù)據(jù)的不充分和多變性,深度卷積神經(jīng)網(wǎng)絡(luò)容易過分記住訓練集中出現(xiàn)的數(shù)據(jù),測試數(shù)據(jù)分布一旦與訓練數(shù)據(jù)稍有不同,就會導致訓練模型的識別能力降低。
在圖像識別任務中,通常使用數(shù)據(jù)增強技術(shù)處理上述問題。數(shù)據(jù)增強一般通過對訓練樣本進行翻轉(zhuǎn)、旋轉(zhuǎn)、平移等幾何變換達到擴充訓練數(shù)據(jù)集的目的,進而改善深度訓練模型的泛化能力。本文對訓練數(shù)據(jù)集Set3中的所有圖像數(shù)據(jù)進行水平翻轉(zhuǎn)和垂直翻轉(zhuǎn)增強,DDCNN在增強后數(shù)據(jù)集上的性能如表5中的DDCNN_Fli行所示。實驗結(jié)果表明,擴大訓練煙霧圖像規(guī)模后,在各個量化指標上都略有提升。數(shù)據(jù)增強技術(shù)對每一個圖像單獨進行處理,并沒有針對不同圖像之間的關(guān)系進行建模,對于離散分布的訓練數(shù)據(jù)而言并沒有達到連續(xù)分布的近似。MixUp與常見的數(shù)據(jù)增強技術(shù)不同,直接根據(jù)訓練圖像對建立樣本和標簽的凸組合訓練深度神經(jīng)網(wǎng)絡(luò),導致訓練模型的泛化能力更強。如表5中的DDCNN_Mix行所示,對訓練數(shù)據(jù)進行MixUp處理之后,在Set1和Set2測試集上,DR指標分別提高了0.86%和1.06%。與上述的水平翻轉(zhuǎn)和垂直翻轉(zhuǎn)數(shù)據(jù)增強結(jié)果相比,除了FAR指標略差之外,其他DR和AR指標都有提升。
表5 3種方法的數(shù)據(jù)增強實驗結(jié)果對比
為了展示利用深度卷積神經(jīng)網(wǎng)絡(luò)進行煙霧識別的優(yōu)勢,將DDCNN方法與傳統(tǒng)基于紋理特征的煙霧識別方法MCLBP[3]和LAGBP[6]進行比較,結(jié)果如表6所示。與MCLBP方法相比較,DDCNN方法在Set1和Set2測試集上的DR、AR和FAR指標都更有優(yōu)勢。LAGBP方法在2個測試集上的FAR性能都達到最優(yōu),但DR指標低于DDCNN方法。如上所述,在FAR達到可接受的范圍內(nèi),DR指標更高的煙霧識別方法更能滿足消防報警需求,具有更好的應用價值。
表6 本文方法與2種傳統(tǒng)方法的實驗結(jié)果對比
為充分考慮煙霧圖像的全局特征,本文提出一種基于膨脹卷積和稠密連接的煙霧識別方法。通過堆疊不同膨脹因子的膨脹卷積,擴大卷積核的感受野,獲得全局的煙霧圖像區(qū)域特征。在膨脹卷積層之間進行稠密連接,實現(xiàn)特征重利用和信息流通,增強煙霧圖像局部特征和全局特征的有效結(jié)合?;谂蛎浘矸e結(jié)構(gòu)和稠密連接機制,構(gòu)造深度卷積神經(jīng)網(wǎng)絡(luò),并利用MixUp方法促使離散分布的訓練數(shù)據(jù)近似連續(xù)分布,完成深度網(wǎng)絡(luò)在成對樣本和標簽的凸組合上的訓練。在公開數(shù)據(jù)集上的實驗結(jié)果表明,該方法訓練的模型大小僅0.34 MB,其在Set1和Set2測試集上的檢測率最高可達97.24%和98.01%,驗證了DDCNN方法的有效性。后續(xù)將研究幾何變換、生成對抗網(wǎng)絡(luò)等數(shù)據(jù)增強方式,以提高煙霧識別的準確率。