劉 俊, 張文風(fēng)
(中遠(yuǎn)海運(yùn)科技股份有限公司,上海 200135)
高速公路發(fā)生火災(zāi)會對經(jīng)濟(jì)和生態(tài)環(huán)境等產(chǎn)生巨大的影響。傳感器檢測方法受環(huán)境的影響較大,不適宜在大尺度空間的高速公路火災(zāi)檢測上應(yīng)用。傳統(tǒng)的圖像型檢測方法需對圖像進(jìn)行必要的處理,人工提取相關(guān)特征,不僅耗時耗力,而且分類有很大的局限性。
近年來,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)已在圖像分類、目標(biāo)檢測和圖像語意分割等領(lǐng)域取得一系列突破性研究成果。基于深度學(xué)習(xí)算法的高速公路火災(zāi)檢測方法通常通過CNN對圖像特征進(jìn)行學(xué)習(xí)、分類和檢測。文獻(xiàn)[1]~文獻(xiàn)[3]先后提出區(qū)域CNN、快速區(qū)域CNN和超快區(qū)域CNN,將網(wǎng)絡(luò)應(yīng)用到目標(biāo)檢測問題中,并在檢測速度和準(zhǔn)確率方面不斷提高。文獻(xiàn)[4]提出一種端到端的目標(biāo)檢測算法YOLO(You Only Look Once),將目標(biāo)檢測問題轉(zhuǎn)化為回歸問題,進(jìn)而對目標(biāo)和背景進(jìn)行更好的區(qū)分。文獻(xiàn)[5]提出的YOLOv2算法能在簡化網(wǎng)絡(luò)結(jié)構(gòu)的同時提高目標(biāo)檢測的準(zhǔn)確率。文獻(xiàn)[6]將YOLOv2算法應(yīng)用到無人機(jī)航拍定位領(lǐng)域中,取得了理想的效果,在一定程度上驗證了算法的普適性。文獻(xiàn)[7]提出的YOLOv3算法借鑒殘差神經(jīng)網(wǎng)絡(luò)的思想,在檢測速度和準(zhǔn)確率方面的表現(xiàn)均較好,但其相比YOLOv2算法,網(wǎng)絡(luò)結(jié)構(gòu)更復(fù)雜,卷積層數(shù)目大幅增加,使得小目標(biāo)的特征在深層卷積過程中消失的風(fēng)險增大。
為提高高速公路火災(zāi)檢測方法的適用性和準(zhǔn)確性,本文采用YOLOv3算法進(jìn)行檢測,采用k-means算法對高速公路火災(zāi)標(biāo)簽進(jìn)行聚類分析,確定最優(yōu)的聚類數(shù)目和相應(yīng)的寬高值,并據(jù)此修改YOLOv3算法中的anchor參數(shù)。針對高速公路火災(zāi)檢測的實時性要求和檢測目標(biāo)較小的特點,采用YOLOv3算法,在保證檢測準(zhǔn)確率的同時,提高檢測速度,從而實現(xiàn)對高速公路火災(zāi)的有效檢測。
YOLOv3算法將原輸入圖像劃分為尺寸為S×S的網(wǎng)格,分別在每個網(wǎng)格中預(yù)測B個邊界框,以對C類目標(biāo)進(jìn)行檢測,輸出每類目標(biāo)的邊界框并分別計算每個邊界框的置信度。置信度由各網(wǎng)格中包含檢測目標(biāo)的概率和輸出邊界框的準(zhǔn)確度共同確定,其中輸出邊界框的準(zhǔn)確度tconfidence定義為預(yù)測邊界框與真實邊界框的交并比(Intersection Over Union,IOU),其計算式為
(1)
式(1)中:tconfidence為邊界框的置信度;Pr(m)為網(wǎng)格中含有某類目標(biāo)m的概率。每個網(wǎng)格預(yù)測的類別置信度為
(2)
式(2)中:i=1,2,…,I,I為檢測類別數(shù)。
通過設(shè)定閾值,將類別置信度低于閾值的邊界框剔除,并對類別置信度高于閾值的邊界框進(jìn)行非極大抑制,得到最終的邊界框。預(yù)測得到的邊界框包含x、y、w和h等4個參數(shù),為加快網(wǎng)絡(luò)學(xué)習(xí)的速度,降低奇異樣本數(shù)據(jù)的影響,對這4個參數(shù)進(jìn)行歸一化處理(見圖1)。設(shè)S=7,將整幅圖像劃分為尺寸為7×7的網(wǎng)格,虛線區(qū)域為邊界框位置,(x0,y0)為邊界框中心點坐標(biāo),中心點所在網(wǎng)格坐標(biāo)為(row,col),wimg和himg分別為整幅圖像的寬度和高度,wbox和hbox分別為邊界框的寬度和高度。歸一化過程如下。
1) 邊界框高度歸一化處理為
(3)
(4)
2) 中心點坐標(biāo)歸一化處理為
(5)
(6)
歸一化處理之后,由于在每個網(wǎng)格中可得到x、y、w、h和tconfidence等5個預(yù)測量和C個類別中的1類,因此網(wǎng)絡(luò)的輸出大小為S×S×(5×B+C)。
損失函數(shù)用來表征模型的預(yù)測值與真實值之間的不一致程度,是決定網(wǎng)絡(luò)效果的重要參數(shù)之一。YOLOv3算法損失函數(shù)的設(shè)計主要考慮邊界框坐標(biāo)預(yù)測誤差、邊界框的置信度誤差和分類預(yù)測誤差等3方面內(nèi)容。損失值越小,說明模型的魯棒性越好。YOLOv3算法損失函數(shù)的表達(dá)式為
(7)
式(7)中:S為圖像的劃分系數(shù);B為每個網(wǎng)格中所預(yù)測的邊界框個數(shù);C為總分類數(shù);p為類別概率;c=0,1,…,C為類別序號;i=0,1,…,S2為網(wǎng)格序號;j=0,1,…,B為邊框序號;xi為第i個網(wǎng)格中邊界框中心點橫坐標(biāo);yi為第i個網(wǎng)格中邊界框中心點縱坐標(biāo);wi為第i個網(wǎng)格中邊界框的寬度;hi為第i個網(wǎng)格中邊界框的高度;λcoord為權(quán)重系數(shù);λnoobj為懲罰權(quán)重系數(shù)。
YOLOv3算法在Darknet-19和ResNet網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上提出新的特征提取網(wǎng)絡(luò)Darknet-53。該特征提取網(wǎng)絡(luò)由52個卷積層和1個全連接層組成,交替使用大小為3×3和1×1的卷積核進(jìn)行卷積,其網(wǎng)絡(luò)結(jié)構(gòu)見圖2。
圖2 Darknet-53 網(wǎng)絡(luò)結(jié)構(gòu)
與Darknet-19、ResNet-101和ResNet-152網(wǎng)絡(luò)相比,Darknet-53網(wǎng)絡(luò)在Top-1準(zhǔn)確率、Top-5準(zhǔn)確率和每秒鐘浮點運(yùn)算次數(shù)等3方面具有明顯優(yōu)勢[7]。
首先,將圖像縮放為3通道的長和寬均為416的統(tǒng)一形式,作為整個網(wǎng)絡(luò)的輸入。其次,通過Darknet-53網(wǎng)絡(luò)進(jìn)行特征提取,交替使用大小為3×3和1×1的卷積核進(jìn)行卷積運(yùn)算,分別將在第77層、84層和94層得到的13×13×512維、26×26×768維和52×52×384維的輸出量作為3個特征,降維之后送入YOLO層,通過3個尺度的訓(xùn)練得到最終的權(quán)重模型。最后,對標(biāo)記出的高速公路火災(zāi)測試圖像進(jìn)行輸出。
在YOLOv3算法中引入anchor參數(shù),anchor是一組寬度值和高度值固定的先驗框。在檢測目標(biāo)過程中,先驗框的大小直接影響檢測的速度和準(zhǔn)確度,因此在對高速公路火災(zāi)數(shù)據(jù)進(jìn)行訓(xùn)練時,根據(jù)高速公路火災(zāi)標(biāo)簽的固有特點設(shè)定網(wǎng)絡(luò)參數(shù)尤為重要。為適應(yīng)高速公路火災(zāi)標(biāo)簽的固有特點,達(dá)到最優(yōu)的訓(xùn)練效果,采用k-means聚類算法對高速公路火災(zāi)標(biāo)簽進(jìn)行維度聚類分析。
高速公路火災(zāi)檢測方法以YOLOv3算法網(wǎng)絡(luò)結(jié)構(gòu)為基礎(chǔ),檢測的具體流程為:
1) 對訓(xùn)練集中的高速公路火災(zāi)數(shù)據(jù)進(jìn)行圖像預(yù)處理,將處理之后形式統(tǒng)一的圖像作為整個訓(xùn)練網(wǎng)絡(luò)的輸入;
2) 將處理之后的圖像送入Darknet-53網(wǎng)絡(luò)進(jìn)行火災(zāi)特征提?。?/p>
3) 提取第77層輸出量作為第1個特征,并對該特征進(jìn)行1層卷積和1次上采樣;
4) 對第83層輸出量和第61層輸出量進(jìn)行特征拼接,得到第2個特征,并對該特征進(jìn)行1層卷積和1次上采樣;
5) 對第93層輸出量和第36層輸出量進(jìn)行特征拼接,得到第3個特征;
6) 分別將3個特征送入YOLO層進(jìn)行訓(xùn)練,達(dá)到訓(xùn)練次數(shù)之后停止迭代,生成最終的權(quán)重模型;
7) 將測試集中的圖像輸入同一網(wǎng)絡(luò),調(diào)用訓(xùn)練得到的權(quán)重模型對測試集中的圖像進(jìn)行火災(zāi)檢測,并輸出檢測結(jié)果。
在目標(biāo)檢測問題中,選擇訓(xùn)練數(shù)據(jù)集和制作原始圖像的標(biāo)簽是2個至關(guān)重要的步驟,原始圖像標(biāo)簽的準(zhǔn)確性直接關(guān)系到訓(xùn)練效果和測試的準(zhǔn)確性。試驗中使用的數(shù)據(jù)集是從網(wǎng)上收集的,共1 200張火災(zāi)圖片,其中800張為高速公路上的火災(zāi)圖片,另外400張為其他場景下的火災(zāi)圖片。首先,按VOC2007數(shù)據(jù)集格式對數(shù)據(jù)庫中的圖像進(jìn)行整理,按比例將數(shù)據(jù)集中的圖像隨機(jī)分為訓(xùn)練集和測試集2類。其次,使用labelImg工具對訓(xùn)練集中的圖像進(jìn)行逐一標(biāo)記,并生成與之對應(yīng)的xml格式的目標(biāo)框位置信息文件。最后,編寫python程序,對xml格式的目標(biāo)框位置信息進(jìn)行歸一化處理并將其轉(zhuǎn)化為txt格式,作為高速公路火災(zāi)數(shù)據(jù)集標(biāo)簽。
由于VOC數(shù)據(jù)集中沒有與高速公路火災(zāi)相關(guān)的數(shù)據(jù),使用YOLOv3原始參數(shù)進(jìn)行訓(xùn)練會對訓(xùn)練時間和訓(xùn)練的準(zhǔn)確度造成一定的影響,因此需重新對高速公路火災(zāi)標(biāo)簽進(jìn)行聚類分析,從而得到對高速公路火災(zāi)檢測更有代表性的anchor參數(shù)。
采用k-means算法對高速公路火災(zāi)標(biāo)簽進(jìn)行維度聚類分析,經(jīng)過試驗分析得到,若取k=9時的聚類結(jié)果作為改進(jìn)之后的參數(shù),即(6,9)、(9,14)、(12,18)、(15,24)、(20,32)、(26,43)、(32,51)、(40,69)和(141,10),則聚類結(jié)果較為集中,且寬度和高度明顯小于原始參數(shù),因此使用k=9時聚類得到的anchor參數(shù)替代原始參數(shù)進(jìn)行訓(xùn)練和測試。
在Ubuntu 18.04操作系統(tǒng)下使用Intel(R)-CPU-i7-9700k處理器和YOLOv3官方的darknet框架進(jìn)行試驗。為提高計算速度、縮短訓(xùn)練時間,使用Nvidia GeForce RTX 2080Ti顯卡,CUDA10.0調(diào)用圖形處理器(Graphics Processing Unit, GPU)進(jìn)行加速。在訓(xùn)練過程中,對算法的各項指標(biāo)進(jìn)行動態(tài)記錄,隨著迭代次數(shù)的不斷增加,平均損失函數(shù)的變化趨勢見圖3,平均交并比的變化趨勢見圖4。
從圖3中可看出:訓(xùn)練開始時損失函數(shù)值約為1.6;隨著訓(xùn)練迭代次數(shù)的增加,損失函數(shù)值逐漸減小,并逐漸平穩(wěn);訓(xùn)練迭代至45 000次時,損失函數(shù)值在0.15上下浮動,即達(dá)到理想效果。從圖4中可看出:訓(xùn)練開始時平均交并比為0.57;隨著訓(xùn)練迭代次數(shù)的增加,平均交并比逐漸增大,說明模型檢測的準(zhǔn)確率在不斷提高;訓(xùn)練迭代至15 000次之后,平均交并比可保持在90%以上。
調(diào)用訓(xùn)練生成的權(quán)重文件對測試集圖片進(jìn)行測試,測試之后可自動對測試圖片中的火災(zāi)位置進(jìn)行標(biāo)記,并給出相應(yīng)的標(biāo)簽和置信度,測試效果見圖5和圖6。
本文采用YOLOv3算法對高速公路火災(zāi)進(jìn)行檢測。首先采用k-means算法對anchor參數(shù)進(jìn)行優(yōu)化,其次利用Darknet-53網(wǎng)絡(luò)進(jìn)行相關(guān)特征提取,最后通過整個YOLOv3網(wǎng)絡(luò)實現(xiàn)特征拼接,進(jìn)而實現(xiàn)對高速公路火災(zāi)的檢測,主要得到以下結(jié)論:
1) 提出了基于深度學(xué)習(xí)YOLOv3算法的高速公路火災(zāi)檢測方法;將深度學(xué)習(xí)方法與高速公路火災(zāi)檢測問題相結(jié)合,實現(xiàn)了對高速公路火災(zāi)的端到端檢測。
2) 根據(jù)高速公路火災(zāi)目標(biāo)自身的特點,采用k-means聚類算法對YOLOv3算法中的anchor參數(shù)進(jìn)行了優(yōu)化。試驗結(jié)果表明,優(yōu)化后的YOLOv3網(wǎng)絡(luò)的平均準(zhǔn)確率比未優(yōu)化的網(wǎng)絡(luò)提高了7%,在一定程度上提高了對高速公路火災(zāi)進(jìn)行檢測的準(zhǔn)確性。
3) 采用YOLOv3網(wǎng)絡(luò)并優(yōu)化網(wǎng)絡(luò)參數(shù),使得高速公路火災(zāi)檢測的平均準(zhǔn)確率達(dá)到了80%,檢測速度達(dá)到了30幀/s,同時有效避免了高速公路火災(zāi)漏檢現(xiàn)象。
4) 由于高速公路火災(zāi)數(shù)據(jù)很難收集,試驗使用的樣本量較少,若要實際應(yīng)用,需增加數(shù)據(jù)集的數(shù)量,重新訓(xùn)練模型;本文考慮的是高速公路明火識別情況,沒有考慮火災(zāi)剛發(fā)生時的煙霧情況,該內(nèi)容有待后續(xù)進(jìn)一步研究。