王偉峰, 張寶寶, 王志強(qiáng), 張方智, 任浩, 王京
(1.西安科技大學(xué) 安全科學(xué)與工程學(xué)院, 陜西 西安 710054;2.西安科技大學(xué) 電氣與控制工程學(xué)院, 陜西 西安 710054;3.西安科技大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院, 陜西 西安 710054;4.陜西陜煤澄合礦業(yè)有限公司 董家河煤礦分公司, 陜西 渭南 714000)
礦井火災(zāi)是煤礦的主要災(zāi)害之一,“十三五”以來礦井火災(zāi)引起的爆炸事故頻發(fā)。如2020年9月重慶松藻煤礦火災(zāi)事故,2020年12月重慶吊水洞煤礦“12·4”重大火災(zāi)事故等,都造成了嚴(yán)重的生命財產(chǎn)損失,引起了較大的社會關(guān)注。
為了降低礦井火災(zāi)的發(fā)生率,提高礦井火災(zāi)識別準(zhǔn)確性,保護(hù)礦井工作人員的生命財產(chǎn)安全,許多學(xué)者對礦井火災(zāi)識別方法進(jìn)行了大量研究。孫繼平等[1]提出了基于可見光和紅外圖像的礦井外因火災(zāi)識別方法,降低了礦燈、車燈等對火焰圖像的干擾,通過對火焰進(jìn)行特征提取,達(dá)到火災(zāi)識別的目的。苗續(xù)芝等[2]提出了一種基于改進(jìn)果蠅優(yōu)化算法-支持向量機(jī)(FOA-SVM)的火災(zāi)圖像識別算法,提取火災(zāi)圖像的多種特征作為輸入信息,對火災(zāi)進(jìn)行識別。何晨陽等[3]提出了一種圖像處理與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的礦井火災(zāi)識別方法,通過提取火焰圖像的圓形度、面積增長率等特征并輸入BP神經(jīng)網(wǎng)絡(luò)模型,實(shí)現(xiàn)火災(zāi)識別。袁慶輝[4]提出了一種基于圖像識別的礦井火災(zāi)檢測方法,利用火焰面積變化率及分布規(guī)律作為火災(zāi)判據(jù),對火災(zāi)進(jìn)行識別。
上述研究在礦井火災(zāi)識別方面取得了較好的研究成果,但由于煤礦井下光照分布不均勻,導(dǎo)致圖像像素信息失真,火災(zāi)識別精度低,難以發(fā)揮算法的優(yōu)越性。本文在現(xiàn)有研究基礎(chǔ)上,提出了一種基于YOLOv5的礦井火災(zāi)視頻圖像智能識別方法。該方法以YOLOv5為識別模型,結(jié)合K-means改進(jìn)的暗通道去霧算法及動態(tài)目標(biāo)提取算法,可解決礦井環(huán)境造成的圖像特征信息丟失問題,提高礦井火災(zāi)特征識別準(zhǔn)確率。
YOLOv5算法模型結(jié)構(gòu)如圖1所示。模型的Backbone階段采用 Focus和CSPDarknet53結(jié)構(gòu),F(xiàn)ocus結(jié)構(gòu)對輸入目標(biāo)的維度進(jìn)行切片操作,減少目標(biāo)原始特征信息的丟失,并且提高模型計算速度,經(jīng)過一系列卷積操作得到不同尺寸的特征圖像;Neck特征融合結(jié)構(gòu)對不同尺寸的特征圖像進(jìn)行采樣,將特征圖像處理成相同大小,然后進(jìn)行特征融合及卷積,得到3個具有更強(qiáng)特征表現(xiàn)能力的特征層;Prediction預(yù)測結(jié)構(gòu)通過損失函數(shù)進(jìn)行目標(biāo)類別概率和位置坐標(biāo)計算,得到目標(biāo)預(yù)測結(jié)果[5]。
圖1 YOLOv5算法模型結(jié)構(gòu)Fig.1 Structure of YOLOv5 algorithm model
YOLOv5算法是一種從端到端的檢測算法,其核心是卷積神經(jīng)網(wǎng)絡(luò)的特征提取結(jié)構(gòu),可識別輸入目標(biāo)類別及輸出位置,是圖像分類與定位相結(jié)合的算法[6-7]?;鹧婺繕?biāo)檢測過程如下:
(1) 用YOLOv5算法將輸入的火焰圖像劃分為N×N個單元格,每個單元格針對大、中、小不同尺度的目標(biāo)生成先驗框,識別目標(biāo)的中心落在某個網(wǎng)格中,則由該網(wǎng)格的先驗框負(fù)責(zé)跟蹤識別該目標(biāo)[8]。YOLOv5用置信度c表示該先驗框中目標(biāo)分類概率及匹配目標(biāo)的性能。
c=PH
(1)
式中:P為預(yù)測框內(nèi)目標(biāo)概率,若預(yù)測框內(nèi)無目標(biāo)為0,否則為1;H為預(yù)測框與真實(shí)框交并比。
(2) 對劃分的火焰圖像進(jìn)行歸一化處理,將歸一化后的火焰數(shù)據(jù)集送入下層特征提取網(wǎng)絡(luò)進(jìn)行特征提取[9]。
(3) 通過K-means聚類設(shè)置預(yù)測框,分為不同大小的框,針對不同檢測目標(biāo),計算預(yù)測框位置,即中心點(diǎn)坐標(biāo)。
(4) 依據(jù)預(yù)測坐標(biāo)的偏移值,計算目標(biāo)中心點(diǎn)位置及預(yù)測框?qū)挾取⒏叨萚10-11]。
(5) 輸出目標(biāo)識別結(jié)果。
通過暗通道去霧算法降低光照分布不均勻及煤粉、水氣等因素對火焰圖像的影響,增加火焰圖像細(xì)節(jié)信息,提高礦井火災(zāi)識別率。暗通道去霧模型公式如下:
(2)
I(x)=J(x)t(x)+A[1-t(x)]
(3)
式中:t(x)為透射率,x為像素值;q為去霧參數(shù),一般取0.95;y為像素索引值;Ω(x)為以x為中心的窗口;I(y)為輸入圖像;ε為像素通道;A為全球大氣光成分;I(x)為待去霧火焰圖像;J(x)為處理后無霧火焰圖像。
t(x)的求取與A值有關(guān),利用有霧圖像求取A。首先在暗通道圖中按亮度大小取前0.1%的像素,隨后在原始含霧圖像中找到其對應(yīng)位置亮度最高的點(diǎn),即為A值。
暗通道去霧算法雖然在大部分含霧圖像去霧方面取得了不錯的效果,但在求取A值時,某些像素點(diǎn)會被遺漏,造成去霧不徹底,影響后期火災(zāi)視頻圖像識別精度。為此,利用K-means改進(jìn)暗通道去霧算法。
將火焰圖像的像素點(diǎn)看作是樣本集X={X1,X2,…,Xn},Xi為第i個像素點(diǎn),1≤i≤n,n為正整數(shù),采用K-means聚類算法將位于相同區(qū)域的像素點(diǎn)聚為一類,使得在求取A值時整個圖像的像素點(diǎn)均可被取到。K-means改進(jìn)暗通道去霧算法具體步驟如下:
(1) 根據(jù)K與S(樣本的聚類誤差)的關(guān)系將像素集初始化為K個聚類中心,S值與K值關(guān)系曲線如圖2所示。
(4)
式中:Cj為第j個聚類中心,1≤j≤K;p為Cj中的像素點(diǎn);Lj為質(zhì)心。
圖2 S值與K值關(guān)系曲線Fig.2 The relationship curve of S values and K values
可看出S值隨著K值增大快速下降,在K=5時,出現(xiàn)明顯的拐點(diǎn),S值趨于平緩,即聚類中心K值為5。
(2) 計算每個像素點(diǎn)到各個聚類中心之間的歐氏距離,將每個像素點(diǎn)分配給距離其最近的聚類中心:
(5)
式中:a為像素點(diǎn)的屬性,1≤a≤k;Xia為第i個像素點(diǎn)的第a個屬性;Cia為第i個聚類中心的第a個屬性。
(3) 所有像素點(diǎn)歸類后,對每個聚類中的像素值求平均值,得到新聚類中心點(diǎn)。
(4) 重新計算每個像素點(diǎn)到聚類中心點(diǎn)的距離并再次分類,如此循環(huán)直到中心點(diǎn)變化很小。
(5) 求取每個聚類中像素值的平均值,得到K個像素值,然后對K個像素值加權(quán)平均,即為A值。
K-means改進(jìn)暗通道去霧算法前后火焰圖像去霧效果如圖3所示,可看出改進(jìn)后去霧圖像色彩度更顯著,特征信息更豐富。
(a) 改進(jìn)前去霧效果
(b) 改進(jìn)后去霧效果圖3 K-means改進(jìn)暗通道去霧算法前后去霧效果Fig.3 The defogging effect before and after dark channel defogging algorithm improved by K-means
為了減少井下環(huán)境中靜態(tài)非目標(biāo)物對火災(zāi)識別的干擾,采用幀差法與混合高斯模型相結(jié)合的算法,提取動態(tài)火焰圖像輪廓,獲取清晰的形態(tài)信息進(jìn)行特征分析[12-15]。
(1) 動態(tài)火焰目標(biāo)提取。采用幀差法截取火焰視頻中連續(xù)相鄰的5幀圖像,并以當(dāng)前幀分別與相鄰幀圖像進(jìn)行差分運(yùn)算,然后對差分圖像進(jìn)行二值運(yùn)算,得到更顯著的火焰圖像輪廓。
(2) 背景建模。采用m個高斯模型表示巷道背景圖像中各像素點(diǎn),對m個高斯模型加權(quán)組合得到背景圖像。
(6)
式中:f(θt)為當(dāng)前t時刻圖像的概率密度函數(shù);θt為t時刻的圖像;wl,t為第l個高斯模型在t時刻的權(quán)值,1≤l≤m;φ(·)為高斯分布模型的概率密度函數(shù);ul,t為第l個高斯模型在t時刻的均值;δl,t為第l個高斯模型在t時刻的方差。
將火焰圖像對應(yīng)的高斯模型按wl,t+1/δl,t+1大小進(jìn)行排序,取前B個高斯模型組成該像素點(diǎn)背景的混合高斯模型[7]。對B個模型按照wl,t+1匹配,若滿足式(7)和式(8),則該像素點(diǎn)為背景,否則為前景。
(7)
|θl,t+1-ul,t|<λδl,t+1
(8)
式中:T為閾值,一般為0.75;θl,t+1為第l個高斯模型在t+1時刻的圖像;λ為前景閾值,取2.5。
(3) 將混合高斯模型與幀差法提取到的火焰圖像對應(yīng)像素值進(jìn)行與運(yùn)算,并采用形態(tài)學(xué)處理算法消除圖像中存在的缺口,從而得到更加完整的火焰目標(biāo)圖像。
動態(tài)火焰目標(biāo)提取效果如圖4所示??煽闯鐾ㄟ^提取動態(tài)火焰目標(biāo),火焰圖像的輪廓更加明顯,避免了井下復(fù)雜靜態(tài)背景的干擾。
(a) 提取前的火焰圖像
(b) 提取后的火焰圖像圖4 動態(tài)火焰目標(biāo)提取效果Fig.4 Dynamic flame target extraction effect
平均精度和損失函數(shù)是目標(biāo)檢測中最常用的評價指標(biāo),平均精度表示模型的平均檢測精度,損失函數(shù)表示模型的收斂性。實(shí)驗中將火焰設(shè)為正樣本,其他類別(如燈光等)設(shè)為負(fù)樣本。若預(yù)測目標(biāo)為正樣本,實(shí)際目標(biāo)為正樣本,記為NTP;若預(yù)測目標(biāo)為正樣本,實(shí)際為負(fù)樣本,記為NFP;若預(yù)測目標(biāo)為負(fù)樣本,實(shí)際為正樣本,記為NTN;若預(yù)測目標(biāo)為負(fù)樣本,實(shí)際為負(fù)樣本,記為NFN。
(8)
(9)
式中:Pr為精確率;Re為召回率。
(10)
式中:M為平均精度;Q為類別數(shù)量。
4.2.1 實(shí)驗過程
在Windows環(huán)境下,采用python及pytorch搭建YOLOv5算法模型,利用網(wǎng)絡(luò)工具得到與礦井火災(zāi)相似的火焰圖像。部分實(shí)驗數(shù)據(jù)如圖5所示。在實(shí)驗過程中,設(shè)迭代次數(shù)為300,動量因子為0.8,學(xué)習(xí)率為0.000 1,訓(xùn)練批次為40。
圖5 部分實(shí)驗數(shù)據(jù)Fig.5 Part of experimental data
實(shí)驗步驟如下:
(1) 采用K-means改進(jìn)暗通道去霧算法,對火焰圖像進(jìn)行去霧處理,提高圖像細(xì)節(jié)信息并剔除干擾。
(2) 采用幀差法與混合高斯模型融合算法,對動態(tài)演化的火焰圖像進(jìn)行特征提取,減少靜態(tài)背景對火災(zāi)識別的影響。
(3) 對處理后的數(shù)據(jù)集進(jìn)行標(biāo)注并命名。標(biāo)注后生成xml文件,包括標(biāo)注框的坐標(biāo)及寬高信息。
(4) 配置YOLOv5算法模型參數(shù),開展模型訓(xùn)練及測試。
4.2.2 結(jié)果分析
模型訓(xùn)練結(jié)果如圖6所示,火災(zāi)識別結(jié)果如圖7所示。
(a) 平均精度曲線
(b) 損失函數(shù)曲線圖6 模型訓(xùn)練結(jié)果Fig.6 Model training outcome curve
(a) 火災(zāi)識別結(jié)果1
(b) 火災(zāi)識別結(jié)果2圖7 火災(zāi)識別結(jié)果Fig.7 Fire identification results
由圖6可知,在迭代300次時,基于YOLOv5的礦井火災(zāi)視頻圖像智能識別方法的平均精度為92%,損失函數(shù)為0.6,表明該方法檢測速度快、精度高。
由圖7可看出,本文方法能夠精確識別出火焰。
為了驗證本文方法的優(yōu)越性,與Alexnet,VGG16,Inceptionv3等傳統(tǒng)目標(biāo)識別算法進(jìn)行對比,結(jié)果見表1??煽闯霰疚姆椒ǖ钠骄缺華lexnet,VGG16,Inceptionv3的分別高9.6%,13.5%,4.9%,表明本文方法可有效提高火災(zāi)識別準(zhǔn)確率。
表1 不同算法火災(zāi)識別結(jié)果對比Table 1 Comparison of the fire identification results of different algorithms
(1) 在迭代300次時,基于YOLOv5的礦井火災(zāi)視頻圖像智能識別方法的平均精度為92%,損失函數(shù)為0.6,表明該方法檢測速度快、精度高。
(2) 基于YOLOv5的礦井火災(zāi)視頻圖像智能識別方法平均精度比Alexnet,VGG16,Inceptionv3分別高9.6%,13.5%,4.9%,表明該方法可有效提高火災(zāi)識別準(zhǔn)確率。