張堅鑫, 郭四穩(wěn), 張國蘭, 譚 琳
(廣州大學 計算機科學與網(wǎng)絡工程學院,廣東 廣州 510006)
火災是全球范圍內(nèi)的災難性破壞事件,會在短時間內(nèi)對人民的生命和財產(chǎn)安全造成重大的損害。隨著人工智能技術的不斷發(fā)展,深度卷積神經(jīng)網(wǎng)絡已經(jīng)在圖像識別和檢測方面展示了最先進的性能[1]。圖像分類識別任務是對圖像是否有該物體進行分類識別,圖像檢測任務是對物體的對應區(qū)域進行類別的標記。黃文鋒等[2]將深度卷積神經(jīng)網(wǎng)絡應用于視頻監(jiān)控中火災煙霧和火焰的識別和檢測。Frizzi等[3]提出了用于視頻火焰和煙霧識別的卷積神經(jīng)網(wǎng)絡,結果表明,基于卷積神經(jīng)網(wǎng)絡的方法比一些常規(guī)的視頻火災探測方法具有更好的性能。Sharma等[4]探討了將Vgg16[5]和Resnet50[6]用于火災識別。林作永等[7]使用Inception[8]、ResNet[6]、MobileNet[9]作為特征提取器Backbone,使用Faster R-CNN[10]、SSD[11]、R-FCN[12]作為深度學習檢測框架進行火災煙霧檢測,結果發(fā)現(xiàn),使用Inception V2[13]特征提取網(wǎng)絡能增加檢測精度,F(xiàn)aster R-CNN檢測效果最好,SSD速度最快,但定位精度不夠,R-FCN獲得了速度與精度的平衡[14]?;谶@些考慮,本文對雙階段目標檢測網(wǎng)絡Faster R-CNN在火災圖像的應用進行改進和研究,以實現(xiàn)對火災區(qū)域的精準定位。
在至今為止的目標檢測算法中,基于深度學習的單階段和雙階段目標檢測算法都能夠實現(xiàn)較高的檢測準確率,但是兩種算法各有優(yōu)勢:雙階段的精度更準,單階段的速度更快。雙階段的Faster R-CNN系列方案第1步是先訓練好特征提取網(wǎng)絡;第2步是使用該網(wǎng)絡生成很多候選框來檢測目標。單階段方案是將特征提取網(wǎng)絡和生成候選框在同一個網(wǎng)絡里完成。這里選用雙階段Faster R-CNN的目標檢測方案進行改進。
在傳統(tǒng)的目標檢測任務中一般使用特征提取和機器學習結合的算法,特征提取方法往往有3種:第1種是最基本的,一般是顏色、紋理等底層的特征;第2種是中層特征,一般是經(jīng)過特征挖掘學習之后得到的特征,包括PCA特征和LDA學習得到的特征;第3種是高層的特征,是將前面2種特征結合進一步挖掘計算得到的特征?;谶@個考慮,雙階段Faster R-CNN目標檢測任務中的特征提取網(wǎng)絡能夠融合多種尺度的特征來提升網(wǎng)絡的效果。特征金字塔結構FPN方法[15]是對不同層中的信息進行融合,淺層網(wǎng)絡包含更多的細節(jié)信息,高層網(wǎng)絡則包含更多的語義信息。將卷積網(wǎng)絡中淺層和高層的特征圖進行累加,使其不會丟失過多信息,從而提升檢測的效果。Inception系列的方法[16-17]就是通過增加網(wǎng)絡的寬度來提升卷積神經(jīng)網(wǎng)絡的性能。不同大小的卷積核會提取到不同的信息:較大的卷積核會提取到圖像中的全局性的特征圖信息;較小的卷積核會提取到圖像中局部的特征圖信息。視覺注意力機制主要是模仿人的大腦信號處理機制,獲取全局圖像中需要重點關注的目標區(qū)域的細節(jié)信息。使用通道注意力機制和像素注意力機制可以將前景和背景之間的細節(jié)信息進行區(qū)分,從而增強檢測的效果。
本文引入了一種改進的Faster R-CNN檢測火災區(qū)域的目標檢測框架,如圖1所示。該方法主要是基于Resnet101網(wǎng)絡進行特征提取,得到生成的每個候選框的類別分數(shù),從而找出最佳結果。為充分利用火災場景的火焰特征,使用了預訓練效果較好的Resnet101作為特征提取網(wǎng)絡,加入特征金字塔結構FPN,對淺層和高層特征進行提取,使用Inception Module結構提取多種卷積特征,并加入像素注意力機制和信道注意力機制,通過這些操作來突出特征使得生成候選框操作更加精準,以提高火災區(qū)域定位的性能。
圖1 多尺度特征融合網(wǎng)絡結構Figure 1 Multi-scale feature fusion network structure
一般認為淺層特征映射可以保留小對象的位置信息,而高層特征映射可以包含更高級別的語義提示。因此將語義信息充分的高層特征映射回分辨率較高、細節(jié)信息充分的底層特征,將兩者以合適的方式融合來提升檢測的效果。輸入層的特征圖尺寸為600×600,使用特征提取網(wǎng)絡Resnet101的網(wǎng)絡架構[5]。在Resnet101網(wǎng)絡基礎上采用了特征金字塔結構FPN,將Resnet101網(wǎng)絡的卷積層2輸出特征圖和卷積層3輸出特征圖進行融合,如圖1所示。通過這樣的操作可以平衡語義信息和位置信息,同時忽略其他不太相關的特征。
將Resnet101中的卷積層2輸出特征圖輸入到Inception Module結構中可以抽取更多的特征。Inception Module架構如圖2所示。采用多個1×1卷積的作用是在相同尺寸的感受野中疊加更多的卷積,能提取到更豐富的特征,并且降低了計算復雜度。在上一層網(wǎng)絡之后首先使用1×1卷積再進入較大的二維卷積的作用是當某個卷積層輸入的特征數(shù)較多,對這個輸入進行卷積運算將產(chǎn)生巨大的計算量;如果對輸入先進行降維,減少特征數(shù)后再做卷積計算就會顯著減少計算量。在這一層網(wǎng)絡中還將較大的二維卷積分解成較小的一維卷積,例如將3×3卷積分解成1×3卷積和3×1卷積,將5×5卷積分解1×5卷積和5×1卷積,將7×7卷積分解成1×7卷積和7×1卷積。這個操作一方面可以減少參數(shù)、減輕過擬合,另一方面則增加了非線性擴展模型表達能力。非對稱的卷積結構分解效果比對稱地分解為幾個相同的小卷積核效果更好,可以處理更豐富的空間特征,從而增加特征提取的多樣性。
圖2 Inception Module網(wǎng)絡結構Figure 2 Inception Module network structure
將Resnet101的卷積層2和卷積層3融合得到的特征圖F3輸入一個多維注意力網(wǎng)絡,如圖3所示。多維注意力網(wǎng)絡由像素注意力網(wǎng)絡和信道注意力網(wǎng)絡組成,用于抑制噪聲和突出前景。像素注意力網(wǎng)絡將更廣泛的上下文信息編碼為局部特征,從而增強其表示能力。在這個網(wǎng)絡結構中的特征圖F3需要進入1個新的Inception Module,這里采用5個3×3的卷積核進行特征的抽取,輸出1個兩通道的顯著特征圖。顯著特征圖分別表示前景和背景的分數(shù)。由于顯著特征圖是連續(xù)的,非目標信息不會被完全消除,這有利于保留一定的上下文信息,提高魯棒性。為了引導該網(wǎng)絡學習到目標信息,這里采用了1個有監(jiān)督學習的方式,使用1個二值化圖像作為真實標簽,兩通道的顯著特征圖作為預測標簽,進而計算2個標簽的交叉熵損失,并將其作為注意力損失添加到總損失的計算中。接著在顯著特征圖上執(zhí)行softmax操作,并選擇一個通道與F3相乘,獲得新的信息特征圖A3。值得注意的是,在經(jīng)過softmax函數(shù)操作之后的顯著特征圖的值在[0,1],說明其可以減少噪聲并相對增強對象信息。由于顯著特征圖是連續(xù)的,因此不會完全消除非對象信息,這對于保留某些細節(jié)信息并提高魯棒性是有利的。信道注意力網(wǎng)絡通過獲取不同通道映射之間的相互依賴性,從而有效增強特征圖對于特定語義的表征能力。在這個網(wǎng)絡結構中主要采用SE Block[18]的結構,其重點是使用全局平均池化操作,將各個特征圖全局感受野的空間信息置入特征圖。全局平均池化操作可以通過減少模型中的參數(shù)總數(shù)來最小化過度擬合。與最大池化層類似,全局平均池化層用于減少三維張量的空間維度。然而全局平均池化層執(zhí)行更極端的維數(shù)減少操作,將尺寸為h×w×d的張量尺寸減小為1×1×d的尺寸。全局平均池化層通過簡單地獲取h和w的平均值,將每個h×w特征映射層減少為單個數(shù)字。每層卷積操作之后都接著一個樣例特化激活函數(shù),基于通道之間的依賴關系對每個通道進行一種篩選機制操作,以此對各個通道進行權值評比。
圖3 多維注意力網(wǎng)絡結構Figure 3 Structure of multidimensional attention network
網(wǎng)絡模型在進行訓練時需要計算多個位置的損失:RPN階段的分類和回歸損失、Faster R-CNN階段的分類和回歸損失、多維注意力機制階段的注意力損失,加起來的總損失就是整個網(wǎng)絡的損失:
loss=lossrpn+lossfastrcnn+lossattention。
(1)
RPN階段的分類和回歸損失如式(2)所示,其中分類損失lossr_c是判斷方框中是否是火災,也就是區(qū)分前景、背景兩類物體的損失,如式(3)所示。lossr_l可以對方框位置進行評估和微調(diào),也就是用于比較真實分類的預測參數(shù)和真實平移縮放參數(shù)的差別,如式(4)所示。lossr_l需要對損失進行L1平滑正則化處理,如式(5)所示,參數(shù)σ=1。Faster R-CNN階段的分類損失計算和RPN階段一致,而回歸損失的L1平滑正則化參數(shù)σ=3。
lossrpn=lossr_c+lossr_l。
(2)
(3)
(4)
(5)
(6)
圖4 注意力圖像Figure 4 Attention image
本實驗選用了開源的Tensorflow框架,該框架可以快速地進行部署和實驗,還可以對數(shù)據(jù)流圖進行有效數(shù)據(jù)可視化,編程語言選用Python3.6,硬件設備CPU為英特爾?酷睿TMi7-7700HQ,內(nèi)存大小為8 G,GPU型號為GeForce GTX 1060,顯存大小為6 G,系統(tǒng)環(huán)境為Ubuntu 16.04。
由于目前還沒有比較完善的火災圖像檢測數(shù)據(jù)集,本文自主構建了一個火災圖像檢測的數(shù)據(jù)集,總共有210張圖片。將所有圖片使用標注軟件labelImage進行標注,給圖像中火災區(qū)域標注1個方框,如圖5所示。將標注信息保存到xml文件中,xml文件包括圖片文件的位置、名字、寬度width、高度height和維度depth,以及標注方框對應的4個坐標xmin、ymin、xmax和ymax。將圖片和標注文件制作成一一對應的tfrecord格式的數(shù)據(jù)集,然后按7∶3的比例分成訓練集和測試集,即訓練集中有147張火災圖片,測試集有63張火災圖片,并將2個數(shù)據(jù)集均轉化為tfrecord格式的數(shù)據(jù)。
圖5 標注實例圖Figure 5 Example drawing of annotation
3.2.1 實驗過程
實驗首先將訓練集數(shù)據(jù)train.tfrecord數(shù)據(jù)進行解析,得到圖片數(shù)據(jù)和標簽,加載卷積網(wǎng)絡resnet101.ckpt作為特征提取網(wǎng)絡,建立多尺度特征融合的目標檢測網(wǎng)絡,設置不同的參數(shù)來訓練數(shù)據(jù),使得網(wǎng)絡得到最佳的訓練效果。對訓練集進行8萬次迭代得到的損失曲線如圖6所示,從圖6可以看出,該模型在訓練后達到收斂。
圖6 損失函數(shù)曲線Figure 6 Loss function curve
3.2.2 檢測精度評估
在目標檢測中,一般使用多種評價指標來進行模型的性能評價。二級指標準確率P為在測試集的識別結果中預測正確的正例數(shù)目(TP)占所有預測正例數(shù)目(FP+TP)的比例,如式(7)所示。召回率R為在測試集的識別結果中預測正確的正例數(shù)目(TP)占所有真實正例數(shù)目(TP+FN)的比例,如式(8)所示。利用準確率P和召回率R可以得到P-R曲線,P-R曲線反映了分類器對正例的識別準確程度和對正例的覆蓋能力之間的權衡。AP是P-R曲線與X軸圍成的圖形面積,如式(9)所示。平均檢測準確率MAP是對所有類別的AP求均值,如式(10)所示。三級指標F1是準確率和召回率的調(diào)和平均值,如式(11)所示。F1指標綜合了P與R的產(chǎn)出結果。F1的取值范圍為0~1,1代表模型的輸出結果最好,0代表模型的輸出結果最差。
(7)
(8)
(9)
(10)
(11)
本文所提出的多尺度特征融合網(wǎng)絡模型的檢測精度指標與其他的模型對比情況如表1所示。其中,所有模型都是以Faster R-CNN模型為基礎網(wǎng)絡模型,用于對比的模型特征提取網(wǎng)絡分別使用了Vgg16、Resnet101、Resnet101+FPN。從表1的對比結果可以發(fā)現(xiàn),使用Resnet101相對于使用Vgg16,MAP值提升了15.2%;使用Resnet101+FPN相對于僅使用Resnet101,MAP值提升了3.6%;使用本文的多尺度特征融合網(wǎng)絡模型相對于Resnet101特征提取網(wǎng)絡有了8.5%的提升,相對于Resnet101+FPN也有4.9%的提升。多尺度特征融合網(wǎng)絡模型的F1相對于Resnet101特征提取網(wǎng)絡有2.3%的提高,相對于Resnet101+FPN也有1.7%的提高。
表1 精度評價指標Table 1 Accuracy evaluation index
各個模型對應的P-R曲線如圖7所示。從圖7可以看出,多尺度特征融合火災檢測算法的P-R曲線下方面積最大,即平均檢測準確率MAP最高。
圖7 P-R曲線圖Figure 7 P-R curve
3.2.3 檢測速度評估
由于火災檢測的實時性要求,對于檢測速度的評估也是性能評估的一個重要方面。對本文的Resnet101系列模型進行檢測速度的評估,最終得到對比結果如表2所示。從表2可以看出,所有的模型均能檢測出圖像中較為明顯的火焰。其中加載模型Faster R-CNN以Resnet101作為特征提取層時,不加上任何改進的檢測效率最高,檢測1張圖片的時間t為0.83 s;使用Resnet101為特征提取層加特征金字塔結構FPN的檢測效率最低,檢測1張圖片的時間t為0.94 s;使用YOLOv3網(wǎng)絡[19]的速度最快,時間只需要0.05 s,但是MAP值相對較低為0.762;本文的多尺度特征融合網(wǎng)絡得到了速度與精度的平衡,處于中間位置,檢測一張圖片需0.86 s。
表2 不同方法在火災檢測數(shù)據(jù)集中的性能對比Table 2 Performance comparison of different methods in fire detection dataset
3.2.4 室內(nèi)外火災檢測
火災發(fā)生分室內(nèi)和室外,使用本文多尺度特征融合火災檢測模型,輸入圖8(a)的室內(nèi)火災圖像可以得到圖8(b)的檢測結果,輸入圖8(c)的室外火災圖像可以得到圖8(d)的檢測結果。通過對比可以看出,使用本文的多尺度特征融合火災檢測算法能夠較好地檢測出室內(nèi)、室外火災的目標區(qū)域。
圖8 室內(nèi)外火災檢測結果Figure 8 Fire image input and output of indoor and outdoor
本文首先對火災檢測的現(xiàn)狀進行了深入的分析,指出深度學習相對于手工提取特征的優(yōu)勢,并且參考了傳統(tǒng)的機器學習的算法思想,在卷積神經(jīng)網(wǎng)絡中加入了多種特征的融合提取。首先將Resnet101的淺層特征和高層特征進行融合,接著使用Inception Module網(wǎng)絡提取了多種尺寸的特征,最終加入了多維注意力機制,這些操作使得特征提取網(wǎng)絡模型提取特征更加充分,更加接近人的視覺模型。該模型相對原始的Resnet101特征提取網(wǎng)絡的檢測精度提升了8.5%,相比Resnet101加特征金字塔結構FPN也有4.9%的提升,最終得到平均檢測準確率MAP為0.851。對Resnet101特征提取網(wǎng)絡進行多種改進操作后檢測1張火災圖片的時間為0.86 s。經(jīng)過驗證可知,本文的火災檢測算法能夠檢測出室內(nèi)和室外火災的目標區(qū)域,在保證檢測速度與原始模型[10]接近的同時,精度相對于原始模型得到較大的提升。