蔡 靜,張 讚,冉光金,李 震,李良榮
(貴州大學 大數據與信息工程學院,貴陽 550025)
火災是造成環境問題、人員傷亡和經濟損失的重大災害之一。在國外許多地方,火災的面積和強度都以驚人的速度增加。這不僅僅是火災數量在增加,火災的性質也在發生變化,尤其是在巴西和澳大利亞。例如,“地球之肺”亞馬遜雨林發生的大火,已燒毀了總計4920 平方公里的雨林,面積超過50萬個足球場,給人類和自然環境帶來了難以估量的破壞。因此,為了有效控制和減輕火災,對火災的萌發進行預警尤為重要。對于火災的預警,與火災火焰相比,煙霧出現時間更早,傳播速度更快,體積更大,更易于識別。
傳統的煙霧檢測主要是基于對紋理、溫度、顏色、運動特征和空氣透明度的分析[1],最常見的煙霧探測器是基于紅外/紫外攝像頭。基于此,Deldjoo Y 等人[2]使用穩健的煙霧特征評估方法區分煙霧和非煙霧運動對象,利用模糊推理系統,以模糊化的方式將煙霧特征結合起來進行最終評估,并決定何時發出火災警報。J Qian 等人[3]利用延時參數改進高斯混合模型提取候選煙霧區域,通過煙霧的面積變化率和運動方式等運動特征,從候選區域中選擇煙霧區域。Yuan F 等人[4]利用Gabor 網絡對煙霧圖像進行識別以及對其紋理信息進行分類。殷夢霞等人[5]利用煙霧圖像塊的HSV(Hue、Saturation、Value)顏色特征、能量特征等物理特征,提出了基于多特征融合的自適應煙霧檢測算法。劉長春等人[6]根據可見光視頻圖像處理原理,以及煙霧塊的紋理特征、HSV 顏色空間等物理特征,提出了一種基于局部區域圖像動態特征的林火視頻煙霧檢測方法。王偉剛等人[7]提出一種TDFF(Triple Multi Feature Local Binary Patterns and Derivative Gabor Feature Fusion)的煙霧檢測算法,采用T-MFLBP(Triple Multi-Feature Local Binary Patterns)算法獲得煙霧的紋理特征,利用高斯核函數進一步優化圖像邊緣灰度信息,最后對融合后的特征進行訓練,對煙霧區域進行識別。
但是,當背景復雜以及影響因數較多時,傳統的檢測算法會受到限制。由于煙霧為非剛性物體,其形狀、顏色和紋理等物理特征容易隨時間變化,導致無法提取煙霧的最本質特征[8],且傳統的煙霧檢測傳感器大多用于室內,難以在森林和草原等戶外場景中發揮有效作用,有時也會有較高的錯檢率以及誤警率[9]。
得益于各種人工智能領域的進步,圖像處理和計算機視覺等基于視覺的研究領域已經取得了一定的成果,基于計算機視覺的火災煙霧檢測模型也通過這些技術得到了改進。與傳統的檢測模型相比,基于計算機視覺的火災檢測模型在成本、準確性、魯棒性和可靠性等方面都具有許多優勢。Zhang[10]和張倩[11]等人利用Faster R-CNN 對煙霧圖像進行識別檢測。Lee Y 等人[12]利用三幀差分算法和均方誤差獲得輸入幀圖像,通過Faster R-CNN 提取火焰和煙霧候選區域,最后利用局部HSV 和RGB 顏色直方圖,確定最終的火災和煙霧區域。謝書翰等人[13]通過改進YOLOv4 模型對火災煙霧圖片進行了檢測識別。Saponara S 等人[14]提出了一個非常輕量級的神經網絡FireNet,開發了一個物聯網(IoT)火災探測單元取代當前基于物理傳感器的火災探測器,在Raspberry Pi 3B 等嵌入式設備上進行訓練;聯合物聯網功能允許探測單元在發生火災緊急情況時,向用戶提供實時視覺反饋和火災警報。劉麗娟等人[15]通過改進SSD 算法對火災煙霧圖像進行識別。葉寒雨等人[16]將光流估計與YOLOv4 算法結合,提出了SmokeNet 算法對煙霧進行檢測。
基于計算機視覺的檢測算法雖然在精度和速度上都有所提高,但是當背景復雜、檢測目標距離較遠時,仍然存在漏檢以及錯檢等問題。針對以上問題,本文提出一種基于改進的YOLOv5s 的火災煙霧檢測算法,在 YOLOv5s 的 骨干網上引 入 Vision Transformer 模塊,增強其特征提取能力;使用Ghost Block 卷積代替常規卷積,減少模型參數和計算量。實驗結果表明,該算法的檢測性能均提高且模型參數顯著減少。
根據型號的大小,YOLOv5 分為YOLOv5s、YOLOv5m、YOLOv5l 和YOLOv5x 4 個版本。模型越大,單個圖像的精度越高,檢測時間越長。由于4 種版本只是在其模型寬度和深度的不同,且對于火災煙霧檢測而言,不僅對檢測精度有極高的要求,對檢測速度也要求實現實時檢測,所以選用YOLOv5s 作為本文的基本檢測模型。YOLOv5s 在數據輸入端使用了Mosaic 數據增強[17]、自適應錨計算和自適應圖像縮放等技術,來提高對小目標的檢測。主干使用了跨階段局部網絡(CSP)[18]結構,提取輸入圖像特征,頭部主要解決從主干提取特征映射的定位問題,并執行類概率預測。Neck 結構由特征金字塔網絡(FPN)[19]和路徑聚合網絡(PAN)[20]組成,Neck 結構是連接主干和頭部的部分,主要是對特征圖進行細化和重構。此外YOLOv5s 的Neck 結構中,還借鑒了CSPNet 中設計的CSP2_X 結構,加強網絡特征融合的能力[21]。YOLOv5s 的網絡結構如圖1 所示,YOLOv5s 結構中的組件結構如圖2 所示。

圖1 YOLOv5s 結構Fig.1 YOLOv5s structure

圖2 YOLOv5s 組件圖Fig.2 YOLOv5s component diagram
在深層網絡中常規的特征提取方式會堆疊大量的卷積層,產生豐富的特征圖,但是同時需要保存大量參數,占用其有限內存,不利于在嵌入式設備上部署網絡模型。本文使用一種Ghost Convolution 模塊[22]替換原網絡中的常規卷積模塊,可以通過較少的參數來提取特征。與常規卷積相比,在不改變輸出特征映射大小的情況下,該Ghost Convolution 模塊所需的參數和計算量都有所降低,其結構如圖3 所示。

圖3 Ghost Convolution 模塊Fig.3 Ghost Convolution module
Ghost Convolution 模塊通過常規卷積生成幾個固有的特征映射,然后使用線性運算來擴展特征和增加通道。給定輸入數據X∈Rc×h×w,其中c為輸入通道數,h、w是X的高度和寬度,任意卷積層生成特征圖的操作可表示為
式中:?表示卷積運算,b表示偏差,Y∈是具有n個通道的輸出特征圖,f∈Rc×k×k×n是這一層中的卷積濾波器。此外,h'和w'表示輸出特征圖Y的高度和寬度,k × k表示f的核大小。
使用常規卷積生成m個固有特征圖的操作可表示為
其中,f '∈Rc×k×k×m(m≤n)表示所用濾波器,濾波器的大小、填充、步幅等超參數與式(1)中的常規卷積相同。
對y中每個固有的特征圖進行線性運算,生成s個Ghost 特征,其計算公式可表示為
由公式(3)得到n =m·s個特征圖Y =y11,y12,…,yms作為Ghost 模塊的輸出數據。
2.2.1 Vision Transformer 模塊
在機器視覺領域中,為了改善卷積神經網絡(Convolutional Neural Network,CNN)[23]在低層特征依賴關系范圍較大時存在的局限性。Dosovitskiy A等人[24]在Transformer 的基礎上提出了Vision Transformer。與CNN 網絡不同,Vision Transformer在獲取全局信息能力上很強大,將 Vision Transformer 與CNN 模型結合,通過自注意力機制改善底層特征提取。Vision Transformer 網絡模塊結構如圖4 所示。

圖4 Vision Transformer 模塊Fig.4 Vision Transformer module
為了將圖片轉換為標準的Transformer 編碼器,用于處理序列數據,將輸入二維圖像x∈RH×W×C分割成固定大小的圖片xp∈。其中(H,W)是原始圖像的分辨率,C表示通道數,(P,P)是每個圖片塊(patch)的分辨率,N =HW/P表示獲得的圖片塊總數,其也用作變換器的有效輸入序列長度;然后線性嵌入每個面片,添加位置嵌入,并將生成的矢量序列提供給標準的Transformer 編碼器;再將Transformer 的第一個輸出送入MLP Head 得到預測結果。此外,在輸入的序列數據之前添加了一個分類標志位(class),可以更好地表示全局信息。
2.2.2 嵌入Coordinate Attention 注意力
在某些情況下,攝像頭捕捉到的物體圖像較小,而Yolov5s 模型對小目標的檢測效果欠佳,此時模型預測易受顏色、亮度等因素的影響。因此,本文引入Coordinate Attention 注意力機制[25],可以有效地提高骨干網絡的特征提取能力,進一步提升準確率。
Coordinate Attention 模塊可以視為一個計算單元,有效提升網絡的表達能力,并且可以充分利用捕獲的位置信息,從而準確地定位感興趣的區域。Coordinate Attention 注意力的實現過程如圖5所示。

圖5 CA 模塊結構圖Fig.5 CA module structure diagram
Coordinate Attention 注意力為了獲取輸入圖像全局上的注意力,并對每個通道信息進行編碼。首先將輸入特征圖分為寬度和高度兩個方向進行全局平均池化,獲得在寬度和高度兩個方向的特征圖。其中,分別逐通道使用兩個大小為(H,1)和(W,1)池化核,在高度為h的第c個通道的輸出可表示為
通過式(4)、式(5)獲得全局感受野并編碼精確的位置信息,兩種變換分別沿空間兩個方向聚合特征,生成一對特征映射張量,這有助于網絡更準確地定位感興趣的對象。
隨后將兩個方向的特征圖進行融合,使用大小為1×1 的卷積模塊,把維度降低為原來的C/r,再通過批量歸一化處理送入非線性激活函數中獲得輸出特征圖,如式(6):
其中,[·,·]表示沿空間維度的融合操作,F1為1×1 卷積,f∈表示在水平方向和垂直方向上編碼空間信息的中間特征圖,δ是非線性激活函數,r表示下采樣比例。然后沿著空間維度將f分解成兩個獨立的張量f h∈和f w∈,再使用兩個1×1 卷積Fh和Fw將特征圖變換為與輸入X相同數量的通道。得到結果如式(7)、式(8):
式中:δ為Sigmoid 函數,gh、gw分別用作兩個空間上注意力的權重。最后在原始特征圖上通過乘法加權計算,將得到在寬度和高度方向上帶有注意力權重的特征圖,如式(9):
本文將改進模塊加入到YOLOv5s 模型中,優化結構如圖6 所示。

圖6 改進后的結構Fig.6 Improved structure diagram
圖7 中,GBS 表示使用Ghost Convolution 模塊替換原網絡中的常規卷積模塊的結構圖,C3_TR 表示使用Transformer 替換原CSP 結構中的Resunit 模塊的結構圖。

圖7 改進結構圖的組件圖Fig.7 Component diagram of improved structure diagram
實驗的操作系統為windows7 系統,訓練框架為PyTorch1.7.1。CPU 為8 GB RAM 的Intel(R)Core(TM)i7 -6700k @ 4.00 GHz,GPU 為NVIDIA GeForce GTX 970。
由于公開的火災煙霧數據集較少,通過互聯網采集數據,最終經過清洗獲得20 114張圖片,隨機選取18 287張作為訓練集,1 827張作為測試集。數據集圖像包含建筑、草原、森林、車輛起火4 種場景,并且涵蓋白天、黑夜以及其它背景干擾因素。數據集中部分火災煙霧如圖8 所示。

圖8 部分數據集Fig.8 Partial Dataset
實驗使用召回率(Recall)、精準率(Precision)、平均精度AP(Average Precision)、平均精度均值mAP(mean Average Precision)來評價檢測模型準確性。評價指標計算公式如下:
其中,m表示樣本類別數;p(r)表示Precision以recall為參數的一個函數;TP(True Positives)是指被正確識別的正樣本;TN(True Negatives)為被正確識別的負樣本;FP(False Positives)表示負樣本被錯誤識別為正樣本;FN(False Negatives)表示正樣本被錯誤識別為負樣本。
本文主要從實際檢測結果圖進行對比分析,檢測對比數據見表1,實際檢測結果如圖9、圖10 所示。

圖9 YOLOv5s 檢測結果Fig.9 Yolov5s test result chart

圖10 改進YOLOv5s 檢測結果Fig.10 Image of improved YOLOv5s test results

表1 改進前后算法測試結果對比表Tab.1 Comparison of test results before and after the improvement
表1 中,mAP為mAP@0.5 值。通過測試結果可以得出,改進后mAP提高了0.73%,檢測速度提高了22.5%,模型參數比原網絡參數減少了17%。
通過圖9、圖10 對比結果可知,改進后的YOLOv5s 模型在不同場景中對煙霧、火焰目標算法都可以有效地解決原YOLOv5s 存在的漏檢、錯檢。
在相同的運算環境下,將深度學習算法YOLOv4-Tiny、傳統單階段算法SSD、原網絡YOLOv5s 同本文算法進行比較分析。算法的對比結果見表2。

表2 檢測算法測試結果對比表Tab.2 Comparison table of test results of detection algorithm
由表2 可見,在檢測精度和檢測速度上,YOLOv4-tiny 檢測算法相對本文改進的模型有一定的優勢,而檢測速度的快慢與算法的模型參數量等因素成反比,即模型參數量越小,檢測速度則越快。YOLOv4-tiny 是YOLOv4 的輕量化網絡架構,極大地減少了模型參數量以及降低了模型的計算量,提高了檢測速度,但是該算法的總體性能略低。
通過對比實驗可以看出,本文算法總體上優于其它幾種算法,該檢測算法在實際工程應用中更具優勢。
本文提出了一種基于YOLOv5s 的火災煙霧檢測模型,在YOLOv5s 模型的基礎上進行優化,并引入注意力機制、Vision Transformer 模塊提高檢測精度,解決目標漏檢和錯檢等問題;引入Ghost Convolution 模塊,減少模型參數,提高火災煙霧檢測算法的性能。與同一環境下的其他檢測模型相比,改進后的模型在識別精度和速度上都有良好優勢。
但是,本文的召回率還有很大的進步空間,在之后的工作中,在保證準確率的條件下,提升召回率;其次,還應擴充火災煙霧數據集,豐富火災煙霧檢測場景,增強火災煙霧圖片質量。