嚴 忱,嚴云洋,2,高尚兵,朱全銀
(1.淮陰工學院計算機與軟件工程學院,江蘇 淮安 223003) (2.江蘇海洋大學計算機工程學院,江蘇 連云港 225005)
在社會生產(chǎn)生活中,火災一直是威脅公共安全,危害人們生命財產(chǎn)的災害之一,它給人類社會帶來了重大的生命危險和財產(chǎn)損失. 伴隨著日益加快的社會生產(chǎn)力發(fā)展,日益增長的社會財富,城市的發(fā)展趨于現(xiàn)代化,主要的特點有:生產(chǎn)集中、人口集中、建筑集中和財富集中等. 同時出現(xiàn)的危險現(xiàn)象有易燃易爆物品增多,火源、危險源增多等現(xiàn)象. 這就導致城市火災損失呈上升趨勢[1]. 因此,火災檢測成為了必不可少的防災措施. 伴隨著深度學習、目標檢測[2]技術的發(fā)展和數(shù)字監(jiān)控攝像的普及,可以在多種場合進行實時監(jiān)控,于是視頻火焰檢測技術也成為火災防控的一種重要手段.
Sharma等[3]利用改進的Resnet50和VGG16網(wǎng)絡進行火焰檢測,想法是把全連接層用作特征提取層. 該算法雖然與單一的神經(jīng)卷積網(wǎng)絡相比準確率提高了,但是速度卻比之前降低了. Lee等[4]改進了GoogleNet,并融合了VGG13網(wǎng)絡對火焰進行檢測,進行改進后,網(wǎng)絡模型中的卷積層和全連接層的寬度只有之前的一半,該方法的模型訓練時間相較于經(jīng)典的卷積神經(jīng)網(wǎng)絡也大大減少,但是該模型的準確率略有下滑. Zhang等[5]提出一種實時火焰檢測算法,使用 HSV 顏色模型對于動態(tài)的火焰區(qū)域分割,然后提取均方差、面積、邊界和圓形度等5個特征作為輸入變量輸入到BP神經(jīng)網(wǎng)絡中,進行火焰識別. 黃文鋒等[6]以BN_Inception網(wǎng)絡為骨干網(wǎng),采用多種分辨率的神經(jīng)網(wǎng)絡互補學習復雜場景中火焰的多尺度視覺特征. 該算法側重于目標所處的背景,主要提取局部目標和整體布局等目標特征. 江洋等[7]以RetinaNet網(wǎng)絡為基礎提出了一種火焰檢測算法,該算法以特征金字塔網(wǎng)絡作為骨干網(wǎng),并在特征金字塔的網(wǎng)絡結構中加入殘差網(wǎng)絡模塊,通過模型計算,得到特征更加豐富的特征金字塔,最后通過模型中的分類子網(wǎng)絡和邊框預測子網(wǎng)絡對于骨干網(wǎng)的輸出進行分類和回歸.
近年來,深度學習領域發(fā)展迅速,有許多優(yōu)秀的深度學習模型,如SSD[8]系列、Yolo[9]系列等,都被應用于目標檢測. 得益于它的“沙漏”結構,SSD系列中的DSSD[10]模型在小目標檢測方面表現(xiàn)非常優(yōu)秀. Yolo系列中,最新的是Yolov3[11]和Yolov4[12]模型,檢測率和檢測速度表現(xiàn)依舊穩(wěn)定. 但是由于從Yolov3開始,作者加入了大量的殘差結構,并融入了特征金字塔結構,對于不同大小的圖像進行3次預測,大幅度提升了模型復雜度,加深了網(wǎng)絡結構,對于設備的要求較高,不利于應用. 模型復雜度對比如表1所示.
表1 模型復雜度對比Table 1 Comparison of the model complexity
因此從應用性更強的角度出發(fā),本文在Yolov2[12]算法的基礎上,融合多級特征,充分利用高層和低層卷積層的語義信息,生成特征信息更豐富的feature map,提高模型對于小目標的檢測能力和整體的檢測精度.
Yolov2是在Yolo的基礎上進行的改進,優(yōu)化了對物體的定位(localization)和召回率(recall),從而大大提高了目標檢測的精度. 同時,Yolov2也保留了單階段(one-stage)檢測器檢測速度快的優(yōu)點.
Yolov2將Darknet-19作為主干網(wǎng),包含了19個卷積層和5個最大池化層[14],如表2. Darknet-19進行了5次下采樣,為了得到更高分辨率的特征圖(feature map),最后一層卷積沒有添加池化層.
表2 Darknet-19網(wǎng)絡結構Table 2 Network structure of Darknet-19
Yolov2在每層卷積后面都添加了Batch Normalization層,以Batch Normalization層來代替dropout,雖然Batch Normalization層和dropout都有一定的正則化效果,但是Batch Normalization可以提升模型的收斂速度,一定程度上可以降低模型的過擬合. 在Yolov2中還加入Faster R-CNN[15]中的anchor機制,就是利用K-Means聚類的方式在訓練集中聚類計算出更好的候選框的值,用于更好地預測bounding box. 在引入 anchor 機制后,雖然Yolov2的精度有小幅度下降,但是recall上升了,說明Yolov2還有更多可提升的空間.
火焰擴散速度非???因此必須在前期盡早檢測出火焰,防止擴散釀成火災. 火焰前期多為小目標,因此需要加強模型對于小目標的檢測能力. 而卷積神經(jīng)網(wǎng)絡普遍存在的問題是:高層網(wǎng)絡感受野較大,語義信息表征能力強,但分辨率低,幾何細節(jié)信息表征能力較弱;而低層網(wǎng)絡感受野比較小,幾何細節(jié)信息表征能力強,雖然分辨率高,但語義信息表征能力弱[16]. 在Yolov2模型中,輸入416×416的圖像后經(jīng)過5個最大池化層下采樣,最終輸出的圖像大小僅為13×13,許多小目標的特性信息和位置信息在下采樣時容易丟失.
本文以Darknet-19網(wǎng)絡為骨干網(wǎng),去掉所有的最大池化層,使用步長為2的跨步卷積層代替池化層對圖像進行下采樣,防止最大池化層丟失大量圖像信息,盡量最大化保留圖像的特征信息. 同時引入DSSD的“沙漏”結構思想,將模型設計成“寬-窄-寬”的形式,目的就是將高層和低層的語義信息進行融合,得到更豐富的預測回歸位置框和分類任務輸入的多尺度特征圖,以此來提高檢測精度. 即在5次下采樣結束后,在模塊后添加反卷積模塊,生成對應的26×26、52×52、104×104共3種大小的卷積層,而每個卷積層的實現(xiàn)最小單位為DBL(卷積+Batch Normalization+Leaky relu),并在卷積層中加入1×1的小卷積核來減少模型的計算量,算法模型結構如圖1所示,算法流程圖如圖2所示. 在反卷積模塊中穿插進行張量拼接(Concat),每次進行反卷積,得到更大的feature map后,Concat可以將輸出的大小相同的feature map進行合并,擴充張量的維度,將高層和低層的語義信息融合在一起. 去掉用于融合13×13和26×26大小卷積層的reorg層,使上下層之間相同大小圖像中的特征信息更好地融合,以便獲取更豐富的feature map,提高模型檢測率.
圖1 算法模型結構Fig.1 Model structure
圖2 算法流程圖Fig.2 Flow chart of the model
基于多級特征融合的火焰檢測算法過程描述如下:
(1)輸入待檢測圖片;
(2)通過步長為2的跨步卷積對圖像進行下采樣;
(3)將下采樣得到的圖像通過Batch Normalization層進行正則化處理;
(4)使用3×3的卷積核處理feature map,得到候選框位置、置信度和候選框中類別分數(shù);
(5)若圖像大小大于 13×13時,則跳轉步驟2,否則,進行反卷積;
(6)將反卷積后得到的圖像通過Batch Normalization層進行正則化處理;
(7)通過concat,將步驟4和步驟6大小相同的卷積層輸出的feature map融合起來;
(8)通過反卷積模塊中的卷積層處理步驟7生成的feature map,再次通過concat拼接,生成新的feature map;
(9)若圖像大小小于104×104時,則跳轉步驟3;否則,得到輸出的feature map,更新候選框位置、置信度和候選框中類別分數(shù);
(10)計算出feature map上的候選框和真實邊框的IoU值;
(11)若IoU值大于閾值,則刪除該候選框;否則,保留該候選框;
(12)輸出檢測圖片、候選框和候選框中的分類.
實驗環(huán)境:CPU:Intel?CoreTMi5-7500 3.40GHz×4,GPU:華碩GeForce GTX 1080-8G,內(nèi)存:16GB,操作系統(tǒng):Ubuntu16.04.
本文的實驗數(shù)據(jù)集分為兩部分:一部分是通過網(wǎng)絡搜集和整理所得的火焰視頻和圖片,其中包括室
內(nèi)、室外等不同場景,整理為FireData數(shù)據(jù)集;另一部分是Bilkent大學火災數(shù)據(jù)庫VisiFire的測試視頻. 測試視頻首先要逐幀抽取成圖片,再對圖片中的檢測對象打標處理,最后整理為VisiFire數(shù)據(jù)集. 數(shù)據(jù)集具體內(nèi)容如表3所示.
表3 數(shù)據(jù)集描述Table 3 Dataset description
本文將對比算法模型與本文模型在公開的數(shù)據(jù)集ImageNet上進行預訓練,然后在FireData數(shù)據(jù)集上進行微調,最后在建立的VisiFire數(shù)據(jù)集上進行檢測. 選取各模型性能最佳的一輪進行比較. 以mAP(mean Average Precision)作為評價標準,從表4可以看出將Yolov2的最大池化層全部替換為跨步卷積后,mAP相較于原模型提高了2.3%.
表4 模型性能比較Table 4 Comparison of model performance
從表5可以看出在替換最大池化層并添加反卷積模塊后,相同的場景下,本文的模型檢測率更高,改進后模型的mAP相較原模型提高了10%,雖然比Yolov4低了0.7%,但是模型復雜度遠低于Yolov4.
表5 模型性能比較Table 5 Comparison of model performance
實驗測試集取自Bilkent大學火災數(shù)據(jù)庫VisiFire中的火災視頻,本文模型對于視頻火焰的檢測結果如圖3所示. 將文獻[10]、文獻[12]、文獻[13]和文獻[15]的算法模型與本文模型進行對比,對比試驗結果如表6和表7所示. 其中TP代表火焰檢測率,FP代表漏檢率,TN代表非火焰視頻正確率,FN代表誤檢率.
圖3 檢測結果Fig.3 Detection results
表6 火焰視頻的檢測結果Table 6 Detection results on flame videos
文獻[10]、文獻[12]和文獻[13]都是單階段檢測器,文獻[15]是經(jīng)典的雙階段檢測器. 文獻[10]的DSSD檢測器采用了“沙漏”結構,以此來提高模型對于小目標的檢測能力,雖然利用了側連接將高層和低層語義信息做了融合,但是這種連接只存在于模型后半部分,并沒有充分地利用模型的低層語義信息. 文獻[12]是Yolo的最新版本Yolov4,Yolov4的精度遠高于Yolov2,但是Yolov4的模型復雜度較高,對于設備的要求較高,一些實際場景難以應用. 文獻[13]中的Yolov2檢測器相比于Yolo加入了passthrough layer,簡單地說,就是將26×26的feature map和本層13×13的feature map進行連接,目的是為了提高小目標檢測率,但是經(jīng)過了多次的下采樣,更多的特征信息極有可能在最大池化層就已經(jīng)丟失了,這一層并不具有代表性,所以Yolov2的小目標檢測并不那么理想,如Video2和Video4. 文獻[14]中的Faster R-CNN有較高的正檢率,這是雙階段檢測器最大的優(yōu)點,尤其是在Video4這種檢測目標和背景差異較小的場景下,Faster R-CNN的檢測率遠高于其他單步檢測器,但是由于模型中包括特征金字塔和全連接層等復雜結構,計算量較大,對于設備性能要求特別高,并且很難滿足實時檢測要求.
本文基于Yolov2改進的網(wǎng)絡模型,通過去掉大量的最大池化層,盡可能地保留了原圖的特征信息,并且通過反卷積模塊和concat將高層和低層的特征信息融合起來,在Video2、Video3中對于小目標的檢測效果較好,并且在Video4中目標與背景差異較小的情況下,也有較好的檢測率.
本文以Darknet-19為骨干網(wǎng),提出引入反卷積模塊,通過連接層融合多級特征信息,一定程度上提高了模型對于小目標的檢測率;通過以跨步卷積代替最大池化層對圖像進行采樣,最大程度上避免了特征信息的丟失,提高了模型整體的檢測精度. 該模型對于設備配置要求較低,實用性強,可以滿足多場合火焰檢測需求.