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