馬慶祿,唐小垚
(重慶交通大學(xué)交通運輸學(xué)院,重慶 400074)
我國的隧道數(shù)量和長度均占世界第一,隧道火災(zāi)事故的危害極大[1],較早的發(fā)現(xiàn)火災(zāi)事故能夠保障人民的生命安全,降低社會和個人的財產(chǎn)損失,因此研究實時、準(zhǔn)確的感知火災(zāi)的發(fā)生并能及時發(fā)出警告具有重要的意義。
傳統(tǒng)的基于硬件的火災(zāi)檢測器[2]具有很多的局限性,雖然一些學(xué)者在此基礎(chǔ)上做出了改進(jìn),如Ting[3]等提出了將傳感器采集的多種物理信息進(jìn)行融合的火災(zāi)檢測算法,但是由于傳感器自身的特性,受隧道里環(huán)境(氣流、粉塵等)影響較大,且必須近距離接觸火源待收集火災(zāi)到信息后,才能發(fā)送數(shù)據(jù)提出警示,不能很好的保證實時性以及精準(zhǔn)的反饋火災(zāi)的嚴(yán)重程度。近年來,許多學(xué)者提出通過視頻監(jiān)控系統(tǒng)以實現(xiàn)實時監(jiān)測火災(zāi)的研究算法越來越多,視頻檢測能夠滿足實時性的要求并且檢測的區(qū)域的大,并能提供很直觀的火災(zāi)畫面。
基于圖像的火災(zāi)檢測的關(guān)鍵環(huán)節(jié)在于特征提取以及模式識別。判斷火焰是否存在提取的圖像特征一種是關(guān)于靜態(tài)的顏色和外形,另一種是動態(tài)的變化區(qū)域和閃爍頻率等。Kim MG[4]提出了結(jié)合顏色信息理論的火焰檢測分割技術(shù),通過幀差法成功提取火焰的HIS特征,但由于顏色比較單一,所以準(zhǔn)確率較低。Liqiangwang[5]通過分析火焰閃爍的時空特性和亮度變化特性建立了閃動特征模型,實驗結(jié)果誤報率較低。Foggia[6]在火災(zāi)檢測中融合了火焰燃燒的形狀、顏色和運動形態(tài),從而在一個多專家框下實現(xiàn)了火災(zāi)的實時檢測。王琳等[7]給出一種基于RGB和Lab的顏色統(tǒng)計模型,對隧道內(nèi)疑似火災(zāi)區(qū)域邊緣分割完整,有較好的魯棒性。這些方法多是以顏色和形狀來提取火焰特征,泛化能力不足,人為因素影響較大,無法廣泛應(yīng)用。
目前,基于深度學(xué)習(xí)的視頻目標(biāo)檢測發(fā)展迅速,Frizzi[8]采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)對火災(zāi)進(jìn)行檢測,該方法雖然取代了手動提取特征,但無法準(zhǔn)確獲取火災(zāi)位置并且對初期火焰漏檢率高?,F(xiàn)在深度學(xué)習(xí)網(wǎng)絡(luò)主要分為先產(chǎn)生候選區(qū)域再分類的兩步法(Two Stage)和直接對圖像進(jìn)行卷積處理得檢測結(jié)果的一步法(One Stage)。常見的兩步法主要R-CNN[9]、Fast R-CNN[10]、Faster R-CNN[11],一步法主要包括SSD[12]、YOLO[13]、YOLOv2[14]、YOLOv3[15]、YOLOv4[16]可以更快地實現(xiàn)目標(biāo)檢測。YOLOv3是最流行的一步法,它廣泛應(yīng)用于交通運輸領(lǐng)域的交通標(biāo)志[17]、交通流[18]、路面坑洼[19]、視覺裂縫[20]等檢測。Shen等[21]運用YOLOv1模型進(jìn)行火災(zāi)檢測,雖然有很高的檢測速度,但易受環(huán)境和其它因素干擾導(dǎo)致檢測精度較低。Kim等[22]采用Faster R-CNN進(jìn)行火災(zāi)檢測,檢測的精度顯著提高但實時性無法得到保證。Yu等[23]在提出Mask R-CNN的特征層中從下至上將火焰特征進(jìn)行融合,精度有所提高但實時性卻無法保證。Jin等[24]采用了Anchor-Free網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行火災(zāi)檢測,降低了網(wǎng)絡(luò)參數(shù)使其更容易部署在實際應(yīng)用,但算法的檢測效果正負(fù)樣本極端不平衡且具有語義模糊性(兩個目標(biāo)中心點重疊);
現(xiàn)有的算法無法滿足隧道火災(zāi)檢測對實時性和準(zhǔn)確性的要求,因此本文提出嵌入DenseNet的YOLOv4多尺度公路隧道火災(zāi)檢測算法。自建了一個含有3000張隧道火焰圖片的數(shù)據(jù)集,在CSP特征提取層中加入DenseNet網(wǎng)絡(luò),加強特征復(fù)用,降低梯度消失的問題,抑制過擬合。為了增強小尺寸的隧道火焰,在特征檢測層中加入104×104特征檢測層,加強特征融合,并用K-means聚類算法對數(shù)據(jù)集進(jìn)行處理,獲取隧道火災(zāi)檢測先驗框并分配給各特征檢測尺度。建立了嵌入DenseNet的YOLOv4多尺度公路隧道火災(zāi)檢測模型。實驗表明該模型對隧道火災(zāi)檢測具有較高的準(zhǔn)確性和實時性,能夠滿足隧道火災(zāi)檢測的要求,并且對隧道火災(zāi)初期的小尺寸火焰具有很好的檢測效果,對隧道火災(zāi)預(yù)警的研究具有重要意義。
YOLOv4網(wǎng)絡(luò)主要由輸入端、BackBone主干網(wǎng)絡(luò)、Neck、Prediction四個模塊構(gòu)成。在輸入端采用Mosaic和CutMix的數(shù)據(jù)增強方式,增強圖像特征信息,減少GPU的損耗。包含5個CSP網(wǎng)絡(luò)結(jié)構(gòu)的CSPDarknet53作為主干的核心,能夠降低計算瓶頸以及內(nèi)存成本,增強學(xué)習(xí)能力。在頸部以路徑聚合網(wǎng)絡(luò)(PANet)和采用1×1,5×5,9×9,13×13最大池化方式的空間金字塔(SPP)構(gòu)成,增強特征融合。在訓(xùn)練過程中采用標(biāo)簽平滑和學(xué)習(xí)率余弦退火衰減等技巧進(jìn)行優(yōu)化??蚣芙Y(jié)構(gòu)如圖1所示。
圖1 YOLOv4框架結(jié)構(gòu)圖
YOLOv4目標(biāo)檢測網(wǎng)絡(luò)流程如圖2所示。在輸入端將隧道火災(zāi)視頻幀劃分為N×N格。采用具有火焰中心坐標(biāo)的網(wǎng)格進(jìn)行火焰檢測,每個網(wǎng)格單元預(yù)測B個賦有Tx、Ty、Tw、Th和置信度五預(yù)測值的邊界框。用置信度來評價檢測的精度和置信水平[15]。
圖2 YOLOv4網(wǎng)絡(luò)火災(zāi)檢測
通過式(1)求得預(yù)測框的寬和高,分別用Bw、Bh表示,以及預(yù)測框的中心坐標(biāo)(Bx,By)。
(1)
式中σ(x)——Logistic函數(shù);
Cx、Cy——特征圖中每個網(wǎng)格的左上角坐標(biāo);
Pw、Ph——先驗框相對于特征圖的寬和高;
Tx、Ty、Tw、Th——模型預(yù)測的中心坐標(biāo)及寬高。
圖1表示換道車輛在時間段t內(nèi)完成從初始車道到達(dá)目標(biāo)車道的換道過程,圖中M代表換道車輛,C代表原始車道上行駛于換道車輛M前方的車輛,
將預(yù)測框的位置參數(shù)與特征尺寸的比值與輸入圖片尺寸相乘,得到火焰原圖中預(yù)測的邊界框坐標(biāo)值。每個網(wǎng)格需預(yù)測一個類別信息,記錄為C類,因此輸出為尺寸N×N(5×B+C)的張量。同時,檢測系統(tǒng)按式(2)計算交并比。
(2)
式中IoU——交并比;
DR——預(yù)測框;
GT——實際框。
用IoU來衡量預(yù)測框的精度,其理想值為1。
YOLOv4網(wǎng)絡(luò)訓(xùn)練時的損失函數(shù)由邊界框回歸損失Lciou、置信損失Lconf、分類損失Lclass共同構(gòu)成YOLOv4目標(biāo)檢測網(wǎng)絡(luò)的的損失函數(shù),表達(dá)式如式(3)。若邊界框沒有目標(biāo),就不計算Lciou和Lclass。
(3)
式中S2、B——特征圖尺度與先驗框;
λnoobj——權(quán)重系數(shù);
ρ(·)——歐氏距離;
c——預(yù)測框與實際框閉包區(qū)域的對角線距離;
b、w、h——預(yù)測框的中心坐標(biāo)及寬高;
bgt、wgt、hgt——實際框的中心坐標(biāo)及寬高;
相比傳統(tǒng)的損失函數(shù)計算方法,CIoU避免了尺度敏感的問題,對預(yù)測框和實際框的關(guān)系有更好的表達(dá)。因此采用CIoU損失函數(shù)計算邊界框回歸損失,采用交叉熵計算置信度損失與分類損失。
3.1.1 特征檢測層改進(jìn)
在特征檢測網(wǎng)絡(luò)中,YOLOv4采用13×13,26×26,52×52的三種尺度對特征進(jìn)行融合,尚未完全利用特征提取網(wǎng)絡(luò)中分辨率較大的淺層特征圖的位置信息[25]。因此直接用來進(jìn)行檢測,多次卷積處理后,會使小型火焰信息丟失,不能很好的完成火焰初期的檢測任務(wù)。
因此,在原來的基礎(chǔ)上新增一個低維尺度104×104尺度檢測,強化特征的學(xué)習(xí),將YOLOv4檢測尺度由3尺度變?yōu)?尺度,通過融合多種尺度的特征信息后進(jìn)行火災(zāi)檢測,但新增的檢測尺度會稍加模型檢測時間。改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
3.1.2 特征提取層改進(jìn)
在特征提取過程中,為了解決特征傳播梯度消失的問題,在CSPX模塊中嵌入DenseNet網(wǎng)絡(luò)[26],增強多層間的特征復(fù)用,結(jié)構(gòu)如圖4(a)所示。
圖4 嵌入DenseNet結(jié)構(gòu)
DenseNet與ResNet網(wǎng)絡(luò)總體結(jié)構(gòu)類似,不同的是,前者是將網(wǎng)絡(luò)結(jié)構(gòu)中前面的每一層與下一層進(jìn)行密集鏈接,而后者是將下一層與某一層進(jìn)行元素級相加,因此特征信息更加豐富。為了增強計算效率,減少網(wǎng)絡(luò)參數(shù),DenseNet采用1×1卷積模塊降低特征數(shù)量并躍層將特征圖融合。DenseNet的核心如式(4)所示
xm=Hm([x0,x1,…,xm-1])
(4)
式中xm表示第m層網(wǎng)絡(luò)輸出的特征圖;
[x0,x1,…,xm-1]表示將第0層到第m-1層網(wǎng)絡(luò)的特征圖進(jìn)行通道合并;
Hm是由批歸一化(batch normalization,BN)、修正線性單元(Mish)激活和CONV(卷積)的組合操作.
改進(jìn)后的特征提取網(wǎng)絡(luò)如圖4(b)所示。其中,CBM模塊表示Hm操作組合;ResNet單元表示兩個CBM模塊及其快捷鏈路的和;DenseNet單元表示一個1×1卷積CBM和一個3×3卷積CBM的組合操作,不同DenseNet單元間采用密集型網(wǎng)絡(luò)連接的方式。
在目標(biāo)檢測中引入先驗框,通過判斷給定錨框中是否含有檢測對象并分預(yù)測框與實際框的距離,省去了以往的多尺度滑動窗口遍歷環(huán)節(jié),從而提升了目標(biāo)檢測的速度與精度。為了加快隧道火焰檢測的精度和速度,采用K-means聚類對火災(zāi)數(shù)據(jù)集進(jìn)行處理,統(tǒng)計分析,重新獲得先驗框的寬高值,其中的K代表類簇個數(shù),means代表類簇內(nèi)數(shù)據(jù)對象的均值[27]。
而傳統(tǒng)的歐式距離變換會使大目標(biāo)和小目標(biāo)檢測產(chǎn)生較大的誤差,影響檢測性能。因此通過式(5)來進(jìn)行計算,將交并比加入到標(biāo)注框的距離計算中。
d(box,centroid)=1-IoU(box,centroid)
(5)
通過K-means算法得到IoU與先驗框個數(shù)的關(guān)系圖,如圖5所示。
圖5 先驗框K與IoU關(guān)系
由圖可知,在先驗框個數(shù)為12時,IoU增長速度變緩,因此文章設(shè)置先驗框個數(shù)為12,使網(wǎng)絡(luò)的計算效率和模型的檢測精度的關(guān)系都能達(dá)到最佳。再通過K-means在本文的隧道火災(zāi)數(shù)據(jù)集中計算得到12個聚類中心,如圖6所示。
圖6 聚類中心分布圖
因此得到的12個先驗框如表1所示,通過對比測試最終選定(19,27),(44,52),(52,98)分配給新增具有小物體感受野的104×104特征檢測層;將(114,97),(88,170),(206,106)分配給52×52的火災(zāi)檢測特征層;在26×26的特征圖層上選用(163,183),(123,272),(257,239)這三種先驗框尺寸進(jìn)行火焰檢測;最后將(372,162),(218,347),(371,344)分配給13×13的特征圖層用于大面積火災(zāi)檢測。
表1 先驗框分配表
目前有很多與目標(biāo)檢測相關(guān)的數(shù)據(jù)集,如MS COCO以及PASCAL VOC,但關(guān)于火災(zāi)檢測的數(shù)據(jù)集較少,因此本文通過收集網(wǎng)上以及公開的火災(zāi)視頻,對視頻處理提取火災(zāi)圖片,構(gòu)建了一個包含13000張左右的火災(zāi)圖片數(shù)據(jù)集,以及幾十段火災(zāi)的視頻庫。本文還通過在重慶交通大學(xué)1號門地下通道模擬隧道火災(zāi)形成初期實驗獲取數(shù)據(jù)集,試驗現(xiàn)場如圖7。經(jīng)過篩選,一共提取了火災(zāi)圖片數(shù)據(jù)集中的3000張火焰圖片,并通過軟件LabelImg進(jìn)行數(shù)據(jù)標(biāo)記。為了文中提出的火災(zāi)檢測算法的泛化性,本文還通過手機(jī)拍攝隧道燈光以及汽車的車燈獲取了1000張圖片作為負(fù)樣本數(shù)據(jù)集。因此,本文算法訓(xùn)練的數(shù)據(jù)集共4000張,其中火焰圖片3000張,隧道行車燈光,隧道燈光各500張。
圖7 隧道火災(zāi)初期模擬試驗
本文在Intel Core I5-10200H處理器,8G內(nèi)存,NVIDIA GeForce GTX 1650Ti,4G獨立顯存的硬件環(huán)境下,以及CUDA10.2,CUDNN7.6,Darknet深度學(xué)習(xí)框架,Windows10,64位系統(tǒng),編程語言Python等軟件環(huán)境進(jìn)行實驗驗證。
在模型訓(xùn)練階段,設(shè)置批尺寸(Batch size)、動量(Momentum)、衰變值(Decay)、初始學(xué)習(xí)率(Learning rate)等參數(shù),訓(xùn)練參數(shù)如表2所示。采用數(shù)據(jù)增強來增加訓(xùn)練樣本,在訓(xùn)練過程中,通過分析IoU曲線和Loss曲線來不斷優(yōu)化和調(diào)整模型參數(shù),最終保存Loss曲線趨于平滑穩(wěn)定、Loss值最低的權(quán)重,將該權(quán)重用于隧道火災(zāi)火焰檢測,文中將改進(jìn)后的算法用YOLOv4-Improve表示。
表2 參數(shù)設(shè)置
訓(xùn)練過程中的損失函數(shù)變化曲線圖如圖8所示。由圖8可知,在前1500次迭代中,曲線變化較大,后逐漸平滑,而到了12000次以后,Loss值相對穩(wěn)定。
圖8 Loss值變化曲線
訓(xùn)練過程中IoU變化曲線圖如圖9所示,從圖9中可以看出,在前2500次迭代中,IoU值變化明顯,逐漸增大。在2500次以后曲線趨于平滑,最后也達(dá)到穩(wěn)定值,變化較小。
圖9 IoU變化曲線
在目標(biāo)檢測中,通常將預(yù)測框與目標(biāo)真實框的交并比(IoU)大于0.5設(shè)定為成功預(yù)測到目標(biāo)位置,通過準(zhǔn)確率(P)和召回率(R)計算平均精準(zhǔn)度(AP)和加權(quán)調(diào)和平均(F),并以平均AP值(mAP)作為算法檢測精度的綜合評價指標(biāo)。AP用于評估模型在單個檢測類別上的精度表現(xiàn),而mAP越大表明整體檢測精度越高。式(8)為準(zhǔn)確率的計算公式,式(9)為召回率的計算公式,式(10)為加權(quán)調(diào)和平均的計算公式,式(11)為mAP的計算公式。
(8)
(9)
(10)
(11)
其中,TP為真正例,FP為假正例,FN為負(fù)正例,c為分類數(shù)。
4.4.1 驗證集檢測結(jié)果
為了驗證改進(jìn)后的YOLOv4網(wǎng)絡(luò)的魯棒性和泛化性,本文用百度圖片獲取的驗證集進(jìn)行了測試,部分檢測結(jié)果如圖10所示。
由圖10(a)和圖10(b)可以看到,隧道模擬的兩處火災(zāi)都達(dá)到了0.9以上的置信度,完整的標(biāo)記出圖中存在的火焰。圖10(c)和圖10(d)也能正確的標(biāo)記燃燒車身上的火焰,且沒有受隧道燈光的干擾導(dǎo)致誤檢。實驗結(jié)果表明本文算法在公路隧道火災(zāi)檢測中較好的效果,能夠?qū)崿F(xiàn)對隧道內(nèi)不同面積的火焰的檢測,并且不受隧道其它燈光的影響。
4.4.1 對比實驗
為了更好的體現(xiàn)本文優(yōu)化后的網(wǎng)絡(luò)模型,本文將改進(jìn)后的模型與YOLOv4、YOLOv3、YOLOv4-tiny進(jìn)行了測試對比,LOSS曲線圖如圖11所示。
圖11 Loss曲線圖
由圖11可以看出YOLOv3和YOLOv4-tiny在前1500次Loss值就下降到1以內(nèi),然后開始緩慢下降,最終分別達(dá)到0.3802和0.4075。而YOLOv4和YOLOv4-Improve在3000次以后Loss值降到2以內(nèi),然后變化趨于平滑,在達(dá)到平穩(wěn)時,Loss值分別為1.3000和1.3537。
繪制模型的精度和召回率曲線,簡稱P-R曲線(Precision-Recall),結(jié)果如圖12所示。
圖12 P-R曲線
由圖12(a)和(b)可以看出,YOLOv3和YOLOv4-tiny兩種模型在火焰和燈光檢測精度各有優(yōu)點,但總體上精度都比較低。圖12的(c)圖,YOLOv4在檢測精度上相比前兩種算法有了一個不錯的提升,且燈光和火焰都能兼顧。而圖12(d)為改進(jìn)后的模型P-R曲線明顯優(yōu)于其它幾個模型,在YOLOv4的基礎(chǔ)進(jìn)一步提升了算法的檢測精度。本文為了實現(xiàn)火災(zāi)初期的火焰檢測,在小目標(biāo)檢測上進(jìn)了很多增強,改進(jìn)前后的小目標(biāo)檢測效果如圖13所示。
圖13 改進(jìn)前后小目標(biāo)檢測
圖13(a)、(b)、(c)中可以看出,YOLOv3將火光作為了檢測對象,而實際的火焰并未檢測到。而YOLOv4只是檢測出了一處火焰,但改進(jìn)后的YOLOv4模型將大巴車兩處火焰均標(biāo)記出來。在隧道燈光檢測上,YOLOv3的置信度只有0.35,而YOLOv4有0.96,改進(jìn)后的YOLOv4模型確能將多處隧道燈光標(biāo)記出來。由此可知,本文改進(jìn)的YOLOv4算法對小目標(biāo)檢測有較大的提升。
為了評估不同改進(jìn)方法對火焰的檢測效果,將P、R、mAP進(jìn)行對比,結(jié)果如圖14所示。其中,YOLOv4-K是對數(shù)據(jù)進(jìn)行了聚類分析的模型檢測結(jié)果,YOLOv4-104是多尺度檢測模型,YOLOv4-DenseNet是在特征提取層中嵌入了DenseNet網(wǎng)絡(luò)的檢測模型。
圖14 不同改進(jìn)方法對比結(jié)果
由圖可知,只增加特征檢測層算法mAP提升了0.9%,對小目標(biāo)檢測有提升。而對先驗框重新聚類得到的YOLOv4-K模型總體也只提升了0.7%。而在特征提取層中加入DenseNet對檢測結(jié)果有較大的提升。而融合了多種改進(jìn)策略的YOLOv4-Improve相對YOLOv4-DenseNet還提升了1.3%。
為了進(jìn)一步證明改進(jìn)后的YOLOv4算法在隧道火災(zāi)檢測中有更好的效果,本文將自建的數(shù)據(jù)集Faster R-CNN、YOLOv3、YOLOv4等模型上進(jìn)行實驗對比,結(jié)果如表3所示。
表3 多種算法對比結(jié)果
由表3可以得到,相比Faster R-CNN,本文改進(jìn)的算法mAP提升了6.3%,平均檢測時間也比其快0.15s。而相比YOLOv3,mAP提升了9.7%,速度提升了0.08s。對比原YOLOv4,本文提出的算法雖然犧牲了0.04s檢測時間,但mAP提升了4.3%,隧道火災(zāi)檢測的總體效果得到了提升。
為滿足公路隧道火災(zāi)實時檢測的要求,綜合考慮和分析其它算法模型,研究了一種結(jié)合隧道機(jī)器人、攝像頭等視覺的YOLOv4火災(zāi)檢測算法。實驗結(jié)果表明,改進(jìn)的算法在同類火災(zāi)檢測算法中具有更好的精確度和實時性,在本文構(gòu)建的隧道火災(zāi)數(shù)據(jù)集上,準(zhǔn)確率達(dá)到了90.4%,召回率達(dá)到了82.3%,mAP達(dá)到了83.8%,平均檢測時間為0.16s,為實現(xiàn)隧道初期火焰智能檢測提供了理論研究價值,構(gòu)建了一個隧道火災(zāi)火焰數(shù)據(jù)庫,以及一些類火特征的負(fù)樣本數(shù)據(jù)集,為深度學(xué)習(xí)在隧道火焰檢測領(lǐng)域的理論研究提供了訓(xùn)練集支撐。本文隧道火焰數(shù)據(jù)集較少,圖像質(zhì)量等問題,檢測精度還有待提高。因此,在以后的研究中,將對隧道火災(zāi)數(shù)據(jù)集進(jìn)行擴(kuò)充和優(yōu)化,對不同材質(zhì)火源引起的火焰進(jìn)行數(shù)據(jù)采樣,同時繼續(xù)對網(wǎng)絡(luò)進(jìn)行改進(jìn),降低網(wǎng)絡(luò)復(fù)雜度。