尚明鵬, 周 敏, 陳燕軍, 李鑫炎
(1 武漢科技大學(xué) 冶金裝備及其控制教育部重點(diǎn)實(shí)驗(yàn)室, 武漢 430081;2 武漢科技大學(xué) 機(jī)械傳動與制造工程湖北省重點(diǎn)實(shí)驗(yàn)室, 武漢 430081)
制造業(yè)擁有十分繁雜的生產(chǎn)工藝,而機(jī)械加工設(shè)備一旦出現(xiàn)電器過載或線路絕緣層老化以及短路等情況,就會發(fā)生工廠火災(zāi)[1],對工業(yè)企業(yè)帶來巨大的危害。 及時發(fā)現(xiàn)火情和控制火勢,能夠盡可能的減少火災(zāi)所造成的損失,因此工廠火災(zāi)的早期檢測和預(yù)警有著重要意義。
隨著近年來圖像處理技術(shù)的發(fā)展,由于基于機(jī)器視覺的檢測方法其檢測速率快且受環(huán)境因素干擾程度小等優(yōu)點(diǎn),成為眾學(xué)者研究的焦點(diǎn)[2]。 胡勒等[3]依據(jù)陰燃和火羽流階段的熱物理現(xiàn)象,提出了一種基于動態(tài)紋理的火焰檢測算法;鄧?yán)砦牡龋?]通過選取溫度、煙霧濃度和CO 濃度3 種參數(shù),基于模糊神經(jīng)網(wǎng)絡(luò)對火災(zāi)進(jìn)行探測。 但是,火災(zāi)探測傳感器不僅會受到空氣濕度、溫度以及氣流等環(huán)境因素的影響,而且工廠環(huán)境復(fù)雜不利于傳感器放置,所以傳感器往往無法及時檢測到火災(zāi)。 此外,一些學(xué)者嘗試通過人工選取特征來對火焰進(jìn)行描述并結(jié)合淺層機(jī)器學(xué)習(xí)模型進(jìn)行訓(xùn)練和分類。 如:TRUONG T[5]基 于 多 階 段 模 式 提 取 火 焰 特 征;DIMITROPOULOS K[6]基于動態(tài)紋理分析來提取特征;KONG S[7]和HAN X[8]通過回歸和混合背景高斯模型來進(jìn)行機(jī)器學(xué)習(xí)模型的構(gòu)建等等。 但這些檢測方法的效果取決于人工特征選取,模型識別率較低。 隨后,孟令昀[9]對火焰檢測算法進(jìn)行了特征優(yōu)化,但該算法的泛化性還有待改進(jìn);富雅捷等[10]采用遷移學(xué)習(xí)結(jié)合卷積神經(jīng)網(wǎng)絡(luò)的方法來訓(xùn)練火災(zāi)數(shù)據(jù),該算法雖然誤報率低但檢測速度有待提高。
在目標(biāo)檢測領(lǐng)域中,基于區(qū)域的雙階段算法(如Faster R-CNN[11]系列算法),雖然精度較高,但其大量預(yù)選框的需求導(dǎo)致了檢測速度極慢。 基于回歸的單階段算法(如SDD[12]算法、YOLO[13]系列算法),推理速度更快,但其高級語義特征較多,且網(wǎng)絡(luò)后部分特征圖尺寸較小,所以在小目標(biāo)檢測上存在不足。 而工廠火災(zāi)檢測中存在環(huán)境復(fù)雜、目標(biāo)密集、火焰初期目標(biāo)較小、樣本像素較低以及火焰邊界特征不明顯等問題,因此以上算法對于工廠火災(zāi)的檢測效果并不理想。
針對上述問題,本文基于目前較為優(yōu)秀的YOLO v5 模型算法,提出了一種融合了BiFPN[14]和YOLO v5 網(wǎng)絡(luò)(以下簡稱Bi-YOLO v5)的工廠火災(zāi)檢測算法。
YOLO v5 是Ultralytics LLC 公司基于Pytorch 框架提出的輕量級目標(biāo)檢測算法,在單階段檢測算法中比較成熟,相比其它目標(biāo)檢測模型,體積更加輕便且兼具準(zhǔn)確度和檢測速率,適合嵌入在工廠火災(zāi)探測設(shè)備中。 YOLO v5 將網(wǎng)絡(luò)結(jié)構(gòu)分成Input、Backbone、Neck 和Prediction 4 個部分,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。
圖1 YOLO v5 網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 The structure of YOLO v5 network
YOLO v5 目標(biāo)檢測模型的輸入端(Input)主要包含自適應(yīng)錨框值選取、自適應(yīng)縮放圖像和馬賽克(Mosaic)數(shù)據(jù)增強(qiáng)技術(shù)3 個模塊。 模型主干網(wǎng)絡(luò)(Backbone)是在分層圖像細(xì)粒度上聚合生成圖像特征的卷積神經(jīng)網(wǎng)絡(luò),主要包含了Focus、跨階段局部融合網(wǎng)絡(luò)(Cross Stage Partial Networks,CSPNet)和空間金字塔池化(Spatial Pyramid Pooling,SPP)模塊。 其中,第一層Focus 從輸入端圖像中相鄰的4個位置進(jìn)行堆疊,在C 通道空間中聚焦W、H 維度信息,能夠減少計算量。 CSPNet 利用密集跳層連接來進(jìn)行局部跨層融合,獲取多層次的特征圖。 最后一層SPP 使用5、9、13 的Maxpool 最大池化層,在低速度差的情況下進(jìn)行Concat 融合來提高感受野,有助于特征層對齊。 Neck 部分采用特征金字塔結(jié)構(gòu)(Feature Pyramid Networks,F(xiàn)PN)[15]和路徑聚合網(wǎng)絡(luò)結(jié)構(gòu)(Path Aggregation Networks,PAN),以加強(qiáng)網(wǎng)絡(luò)結(jié)構(gòu)對多種縮放尺度的圖像特征融合。 FPN 通過自上向下、自下向上的高低層特征融合,提高了對小目標(biāo)的檢測準(zhǔn)確度;而PAN 結(jié)合不同層的CSPNet 模塊對輸出的深淺層特征進(jìn)行聚合,減少底層定位信息向頂層傳遞過程中的損耗。 輸出端(Output)使用GIOU_Loss[16]函數(shù)作為損失函數(shù),相比于之前YOLO 版本的IOU_Loss 函數(shù),采用非極大值抑制(NMS)對多目標(biāo)的邊界框進(jìn)行篩選,增加了相交尺度衡量,提升了遮擋目標(biāo)和多目標(biāo)的檢測能力。
由于網(wǎng)絡(luò)層次連續(xù)加深,在特征語義由低維向高維轉(zhuǎn)換過程中,每經(jīng)過一層都會丟失部分特征信息。 為了豐富特征語義信息,實(shí)現(xiàn)多層級的特征融合,構(gòu)造特征金字塔是目前主流的融合思想。
FPN 結(jié)構(gòu)如圖2(a)所示,該結(jié)構(gòu)搭建了一條自頂向下的通路,把更抽象的高語義信息特征圖進(jìn)行上采樣,融合后的語義信息通過在兩層相同尺寸的特征空間中橫向連接傳播。 但是,單向的信息流通在一定程度上限制了底層位置信息的傳遞。 針對于此,PAN 結(jié)構(gòu)(圖2(b))在自頂向下通路的基礎(chǔ)上添加了一條自底向上的通路,使預(yù)測層中也可以對底層的位置信息進(jìn)行定位,這樣預(yù)測層就兼具了底層位置信息和頂層語義信息,提升了目標(biāo)檢測的準(zhǔn)確度。
圖2 FPN、PAN 和BiFPN 結(jié)構(gòu)Fig.2 The structure of FPN, PAN and BiFPN
加權(quán)雙向特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)(Bidirectional Feature Pyramid Network,BiFPN)是由谷歌大腦團(tuán)隊(duì)在PAN 的基礎(chǔ)上提出的雙向融合方式(圖2(c))。BiFPN 基于路徑增強(qiáng)的雙向融合思想,實(shí)現(xiàn)了高效的雙向跨尺度連接,搭建了自頂而下和自底向上的特征融合通道。 由于在多尺度特征圖的融合過程中,輸出特征的重要程度受到輸入特征在不同分辨率下的影響,所以在每個節(jié)點(diǎn)設(shè)置權(quán)重來平衡多尺度的特征信息,能夠進(jìn)一步提高檢測精度。
基于該結(jié)構(gòu)的優(yōu)點(diǎn),本文將原YOLO v5 特征金字塔網(wǎng)絡(luò)中的PAN 結(jié)構(gòu)改為BiFPN 結(jié)構(gòu),以增強(qiáng)特征融合,提高檢測精度。 融合了BiFPN 的YOLO v5網(wǎng)絡(luò)的特征金字塔(如圖3 所示),從Backbone 的Conv 4、Conv 5 和Conv 6 層中提取3 種不同尺度的特征進(jìn)行通道壓縮,然后進(jìn)行跨尺度連接和加權(quán)特征融合,并在最后設(shè)置特征分辨率為19*19、38*38 和76*76 的預(yù)測分支,減少了特征融合時小目標(biāo)信息的損失。
圖3 Bi-YOLO v5 的特征金字塔結(jié)構(gòu)Fig.3 The structure of feature pyramid in Bi-YOLO v5
原YOLO v5 中的自適應(yīng)計算錨框值的思想,使用K 均值(K-Means)聚類算法,依照標(biāo)注好的目標(biāo)框來自動計算并選取適合的錨定框,該過程在模型訓(xùn)練數(shù)據(jù)集時自動完成。
由于公開數(shù)據(jù)集檢測的目標(biāo)尺寸與自定義數(shù)據(jù)集有所不同,YOLO v5 根據(jù)MSCOCO(Microsoft Common Objects in Context)數(shù)據(jù)集重新自動學(xué)習(xí)并設(shè)置了9 種錨定框,從大到小依次為(373,326)、(156,198)、(116,90)、(59,119)、(62,45)、(30,61)、(33,23)、(16,30)和(10,13)。 由于工廠環(huán)境復(fù)雜且初期火焰目標(biāo)較小,所以本文添加了用于檢測工廠火災(zāi)的3 種小尺寸的錨定框,分別為(16,14)、(9,15)和(7,8)。 依據(jù)檢測層不同的尺度對錨定框進(jìn)行歸類,統(tǒng)計出的錨定框分配情況見表1,用于檢測目標(biāo)較小的初期火焰。
表1 錨定框分配表Tab.1 Anchor box allocation
由于火勢的大小受到燃燒環(huán)境和燃燒時長的影響,造成了火焰邊界框尺寸在不同尺度圖像中存在差異,所以需要對邊框損失函數(shù)進(jìn)行改進(jìn)和優(yōu)化。雖然GIOU 函數(shù)對IOU 的梯度問題進(jìn)行了改進(jìn),但仍存在收斂效率慢和回歸不穩(wěn)定的弊端。 因此,本文采用CIOU 函數(shù)來為bounding box 計算邊框回歸損失,如式(1)~式(3)所示:
式中:ρ代表計算預(yù)測框與實(shí)際框兩個中心點(diǎn)間的歐式距離,b、bgt分別代表預(yù)測框和實(shí)際框的中心點(diǎn),C是最小包圍預(yù)測框和實(shí)際框的對角線距離,α是權(quán)重參數(shù),ν是用來計算預(yù)測框和實(shí)際框之間寬高比的相似性,w、wgt分別是預(yù)測框和實(shí)際框的寬度,h、hgt分別是預(yù)測框和實(shí)際框的高度。
CIOU 納入了邊界回歸的中心點(diǎn)距離、重疊面積和縱橫比,多維度的參數(shù)更好的反映了預(yù)測框和實(shí)際框的差異,提高了收斂速度和預(yù)測精度。
本文通過Python 編寫腳本從網(wǎng)絡(luò)上獲取火災(zāi)圖片,并使用縮放、翻轉(zhuǎn)、剪切、加噪、平移和鏡像等方法對數(shù)據(jù)集進(jìn)行數(shù)據(jù)擴(kuò)充,經(jīng)擴(kuò)充后的樣本數(shù)量為8 435 張圖片。 對自建數(shù)據(jù)集通過增加圖片飽和度、調(diào)整色彩空間和Mosaic 數(shù)據(jù)增強(qiáng)技術(shù),來獲得更好的訓(xùn)練效果。 圖4 為對火災(zāi)數(shù)據(jù)集樣本進(jìn)行Mosaic 數(shù)據(jù)增強(qiáng)的實(shí)例。 處理后的數(shù)據(jù)集保證了本文提出的Bi- YOLO v5 模型能在復(fù)雜的工廠環(huán)境中良好泛化。
圖4 Mosaic 數(shù)據(jù)增強(qiáng)實(shí)例Fig.4 The instance of Mosaic data enhancement
為了驗(yàn)證Bi- YOLO v5 模型的性能,本文用真陽性(True Positive,TP)、 假陽性(False Positive,F(xiàn)P) 和假陰性(False Negative,F(xiàn)N) 來計算召回率(Recall)、準(zhǔn)確率(Precision)、 平均精度(Average Precision,AP) 和 平 均 精 度 均 值(Mean Average Precision,mAP),以此作為評價指標(biāo)。
Recall表示真陽性和真陽性與假陰性之和的比值,如式(4)所示:
Precision表示真陽性占所有陽性的比值,如式(5)所示:
AP用來衡量模型在每個類別上的學(xué)習(xí)程度,其數(shù)學(xué)意義是以Recall為橫軸和以Precision為縱軸圍成的曲線面積,如式(6) 所示:
mAP表示模型里所有類別的AP均值,如式(7)所示:
其中,n代表模型里所有類別的個數(shù)。
本文將火災(zāi)數(shù)據(jù)集按照8 ∶2 的比例隨機(jī)劃分成訓(xùn)練集和測試集。 其中訓(xùn)練集和測試集的數(shù)量分別為6 748 和1 687。 采用608×608 作為輸入圖像尺度,并使用隨機(jī)梯度下降(Stochastic Gradient Descent,SGD) 函數(shù)來為模型的網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化。訓(xùn)練參數(shù)設(shè)置見表2,本次實(shí)驗(yàn)共訓(xùn)練4 個模型,分別是Faster R-CNN、SDD、YOLO v5 和本文提出的Bi-YOLO v5。
表2 參數(shù)設(shè)置表Tab.2 Parameter settings
根據(jù)日志文件繪制出Bi-YOLO v5 和YOLO v5模型在訓(xùn)練過程中的Loss 值對比曲線,如圖5 所示。
圖5 Loss 值對比曲線圖Fig.5 Comparison curve of Loss
由圖可以看出,Bi-YOLO v5 的Loss 值曲線始終在YOLO v5 下方,且迭代30 輪后Loss 值變化更為平緩,說明Bi-YOLO v5 模型比YOLO v5 模型收斂更快,損失值更小。
此外,通過對比召回率、準(zhǔn)確率、平均精度和每幀推理時間,驗(yàn)證了幾種現(xiàn)有算法和Bi-YOLO v5的性能,結(jié)果見表3。
表3 與現(xiàn)有算法的對比Tab.3 Comparison with existing algorithms
由表3 可知,在相同數(shù)據(jù)集中,Bi-YOLO v5 的平均精度為99.2%,相比于Faster R-CNN、SDD 和YOLO v5 模型,平均精度分別提高了7.1%、12.8%和1.7%。 并且改進(jìn)后算法的每幀推理時間降低到了27 ms。綜合來看,本文提出的Bi-YOLO v5 更好的滿足了火災(zāi)檢測對于檢測精度和實(shí)時性上的需求。
為了展示Bi-YOLO v5 對工廠火災(zāi)的檢測效果,在網(wǎng)絡(luò)中隨機(jī)選取一些背景復(fù)雜且像素較低的工廠監(jiān)控視頻,以及暗黑環(huán)境下的火災(zāi)圖片進(jìn)行了檢測,檢測結(jié)果如圖6 所示。
由檢測效果可見,無論是白天還是夜晚,Bi-YOLO v5 都能在環(huán)境復(fù)雜的工廠中通過像素不高的監(jiān)控系統(tǒng)準(zhǔn)確的識別火焰,體現(xiàn)了模型優(yōu)越的性能以及良好的泛化能力。
針對工廠環(huán)境復(fù)雜、目標(biāo)密集、火焰初期目標(biāo)較小、樣本像素較低以及火焰邊界特征不明顯等問題,本文提出了一種Bi-YOLO v5 算法模型。 該算法通過融合BiFPN 和YOLO v5 的特征網(wǎng)絡(luò)、錨框參數(shù)優(yōu)化和損失函數(shù)改進(jìn)來提高模型對多尺度火焰的檢測效率,進(jìn)而提高了火災(zāi)檢測在工廠環(huán)境中的泛化能力。 實(shí)驗(yàn)結(jié)果表明,Bi-YOLO v5 模型的準(zhǔn)確率和平均精度比YOLO v5 提高了2.2%和1.7%,并且每幀推理時間降低到了27 ms。 與現(xiàn)有算法相比,Bi-YOLO v5 的準(zhǔn)確率最高且時間最快。 綜上,本文算法為進(jìn)一步部署工廠火災(zāi)監(jiān)控系統(tǒng)提供了模型支持,對工廠火災(zāi)檢測系統(tǒng)的推廣有著實(shí)際意義。