魏倫勝,徐望明,2*,張景元,陳 彬
(1.武漢科技大學 信息科學與工程學院,湖北 武漢 430081;2.武漢科技大學 教育部冶金自動化與檢測技術工程研究中心,湖北 武漢 430081)
全球范圍內平均每天發生上千起火災,造成數百人傷亡和大面積的森林植被破壞,且嚴重威脅人類生命財產安全和自然生態環境。火災通常爆發突然,影響范圍廣,難以及時處理。因此,火災的實時監測尤為重要,早期發現火災并進行處理是減少損失的關鍵。傳統的火焰和煙霧探測系統通常是基于實時采樣溫度、濕度或一氧化碳濃度傳感器[1-2]。這些傳感器因成本低和使用方便而被廣泛使用,但存在難以克服的固有局限性,如煙霧傳感器經常會出現錯誤觸發的情況,而且,這些傳感器通常需要足夠的火災觸發水平進行探測,會導致長時間探測延遲。除此之外,它們僅限應用于狹小的室內空間,無法應用于戶外場景。
為了克服傳統火災探測系統的局限性,近年來基于監控視頻的火災探測系統成為主流。在這類系統中,火焰和煙霧被抽象為由亮度、紋理、顏色以及運動信息生成的圖像特征。Chen 等人[3]在RGB 和HIS 顏色空間中利用火焰的動態特性和不規則性來實現對火焰像素的分類。Celik 等人[4]提出一種基于YCbCr空間中色度和亮度可分離性的火災探測器,并融合多種信息提高檢測性能。Rafiee 等人[5]通過使用二維小波變換將靜態和動態特征結合起來檢測火焰及煙霧目標。以上這些算法依賴于人工設計的圖像特征,在實際應用場景下的魯棒性較差。
隨著深度學習技術的發展,計算機視覺受到了學術界和工業界的極大關注。深度學習具有自動提取圖像特征的優勢,顯示出從圖像或視頻中檢測火焰及煙霧的泛化能力。Wu 等人[6]使用AlexNet 從動態和靜態信息中提取復合特征并提出一種自適應加權方向算法檢測視頻中的火焰和煙霧。Wu 等人[7]使用Faster R-CNN[8]、YOLO[9-12]、SSD[13]等經典目標檢測網絡實時檢測森林火災。侯易呈等人[14]通過引入SENet模塊提出一種基于改進Faster R-CNN 的火焰檢測方法,提升檢測精度。這些方法在檢測準確率方面相對于傳統方法取得了明顯提升,但并未在嵌入式硬件平臺上提供低成本的實現,使得這些算法的落地應用變得相當困難。而且,這些算法未充分考慮火焰或煙霧目標周圍的背景信息,從而導致誤報率升高。
近年來,在自然語言處理領域廣泛運用的上下文信息(Context)也被用于計算機視覺領域,并展現出優越的性能。Wang 等人[15]提出了NLNet(Non-local Network),該算法融合了全局上下文信息,在目標檢測、圖像分類、實例分割等領域證明了其有效性,但會極大地增加計算量,不適合在輕量級模型上使用。Cao 等人[16]在Wang 等人的基礎上提出了GC-Ne(tGlobal-Context Network),在不降低精度的情況下提升了算法的運行速度。劉波等人[17]提出了一種自適應上下文感知相關濾波算法用于目標跟蹤,提高了算法魯棒性。張瑞琰等人[18]提出了面向光學遙感目標的全局上下文檢測模型,提高了復雜背景下的光學遙感圖像目標檢測精度,并降低了檢測網絡復雜度。通過使用全局上下文信息,可建模目標與背景的遠程依賴(Long-range Dependency),加強網絡學習過程對視覺場景的全局理解,從而學習到更具判別性的特征。因此,在煙火檢測任務中,有效建模并利用煙火目標的全局上下文信息,可學習到與類煙火目標相區分的視覺特征,從而提高檢測性能。
針對以上問題以及實際應用場景對實時性的要求,本文算法選擇以輕量級目標檢測網絡YOLOX[19]為基礎網絡進行改進,提出了一種能高效建模圖像上下文信息的EGC-Net(Efficient Global Context Network)網絡,并將EGC-Net 嵌入到YOLOX 的主干特征提取網絡與特征金字塔網絡之間形成EGC-YOLOX 網絡,實現了高精度且實時的煙火目標檢測。
YOLOX 是基于回歸的單階段目標檢測算法,在YOLO 系列其他算法上所做的改進使其在保持高精度的同時也可滿足在嵌入式設備上流暢運行,深受工業界認可。YOLOX 使用CSPDarknet 作為主干特征提取網絡,CSPDarknet 是由跨階段局部網絡(CSPNet)[20]與Darknet網絡共同構造而成的,通過使用DenseNet[21]和CSP 結構增強了卷積神經網絡的學習能力,減少了網絡模型的參數量,同時也保證了準確性。YOLOX的主干特征提取網絡使用了SiLU[22]激活函數,具有無上界有下界、平滑、非單調特性,在深層模型上的效果優于ReLU[23]函數。為了提升網絡的感受野,主干特征提取網絡使用SPP(Spatial Pyramid Pooling)結構[24]。
不同于YOLO 系列其他算法,YOLOX 采用了無錨框(Anchor-free)檢測策略,極大降低了算法復雜程度,提高了檢測速度,對不同數據集、不同大小的目標都有很好的魯棒性。在正負樣本平衡策略上,YOLOX 使用了SimOTA 算法來為不同大小的目標動態匹配正樣本,相比于OTA[25]算法在不損失精度的前提下速度更快,同時避免了設置大量額外超參數。
對于煙火檢測任務,為了較好地平衡檢測的精度和速度,本文選用了YOLOX 作為基礎網絡。然而,實驗研究發現,直接使用YOLOX 而不進行改進時,存在煙火目標漏檢和誤檢問題。如圖1所示,YOLOX 未能檢測到圖1(a)中存在的火焰目標,錯誤地將圖1(b)中的電燈、圖1(c)中的夕陽、圖1(d)中的水霧等具有強干擾性的類火或類煙目標檢測為煙火目標。究其原因,這主要是由YOLOX 網絡的本質屬性所決定的,卷積操作擅長分析圖像的空間局部信息,卷積核感受野大小與卷積核尺寸有關,一般輕量級網絡都選擇使用較小的卷積核參與運算以減少計算量,故卷積神經網絡易于提取圖像的局部特征,不易提取圖像的全局特征。而實際上在煙火檢測任務中,在圖像中煙火目標較小或出現類煙火目標時,其周圍的背景信息可以提供非常有用的全局上下文信息,作為網絡判斷目標類別和定位的重要輔助信息。

圖1 YOLOX 煙火檢測算法出現的漏檢和誤檢結果。(a)漏檢結果;(b)、(c)、(d)誤檢結果。Fig.1 Missing and false detection results using YOLOXbased smoke and fire detection algorithm.(a)Missing detection result;(b),(c),(d)False detection results.
針對煙火檢測任務中檢測精度不夠及受類煙火目標干擾的問題,本文嘗試在YOLOX 網絡中加入提取圖像全局上下文信息的網絡進行改進,以期通過有效利用煙火目標的背景信息來提升檢測性能。
圖像全局上下文網絡的作用是建模目標和背景信息的遠程依賴,加強網絡學習過程對視覺場景的全局理解。在卷積神經網絡中,卷積層主要作用于圖像局部區域,遠程依賴只能通過堆疊多個卷積層來建模,計算量大且難以優化。為解決此問題,NLNet[15]使用自注意力機制來建模遠程依賴。為充分利用圖像中火焰和煙霧目標周圍的背景信息,建模煙火目標與背景信息的遠程依賴關系,本文基于NLNet 構造了一種新的高效全局上下文網絡(EGC-Net)。
NLNet 的核心思想是:某一位置的響應是輸入特征圖中所有位置特征的加權和,通過計算這一響應來獲得全局上下文信息。NLNet 網絡結構如圖2(a)所示,圖中X、Z分別是輸入和輸出特征圖,其關系如式(1)和(2)所示:

其中,i是當前被計算的響應位置索引,j是所有位置的索引,Np是所有位置數量。f(xi,xj)用來計算兩個位置的相關性,方法之一是采用公式(2)的形式,且θ(xi)=Wθxi。?(xj)=W?xj,Softmax操作用于歸一化。Wg xj計算輸入特征在位置j時的表示,可通過1×1 的卷積來實現。因此,對于每一個位置,NLNet 均通過計算該位置與所有位置之間的關系來建立局部特征和全局特征的關系,從而獲取全局上下文信息,其網絡結構復雜,且參數量和計算量都比較大。
Cao等人[16]通過實驗發現,NLNet試圖計算每一個特定位置的全局上下文信息,但結果顯示圖像不同位置的注意力圖幾乎相同,這說明圖像的全局上下文信息是不受位置依賴的。此外,NLNet算法本身的空間壓縮會導致通道注意力的丟失。鑒于此,本文對NLNet進行改進,依據ECA-Net[26]中不降維的局部跨信道交互策略,提出了結構簡單、參數量和計算量都很小的高效全局上下文網絡EGCNet,其網絡結構如圖2(b)所示。
EGC-Net 網絡結構如式(3)所示:

EGC-Net 整體結構包含3 個階段,即上下文建模(Context)、特征轉換(Transform)和特征融合(Fusion)。上下文建模階段計算全局上下文信息,此處Wk為二維1×1 卷積核。既然全局上下文信息與位置無關,故無需再針對每一個位置單獨計算,這就是公式(1)和公式(3)的主要區別。在上下文建模階段只需計算特征圖中一處位置的全局上下文信息,并對接下來輸入的所有位置都共享這一信息。Norm 是歸一化操作(Nor‐malization)。在特征轉換階段進行非線性轉換,其本質為通道注意力機制,用于篩選有用特征圖信息,此處Wq為一維卷積,卷積核大小k可根據通道數C自適應調整,使得維數較高的通道可進行遠程交互而維數較低的通道可進行短程交互。由于通道數通常情況下都為2 的指數,故可定義為:

故可得:

其中,參數設定為γ=2,b=1,odd 表示選擇距離結果最近的奇數。最后,特征融合階段將原來的輸入與特征轉換階段的輸出進行融合得到最終的輸出。
為改善YOLOX 網絡檢測煙火目標的效果,本文算法將EGC-Net網絡插入到YOLOX 的主干特征提取網絡與特征金字塔網絡之間,從而構成EGC-YOLOX 網絡,目的是從主干特征提取網絡輸出的特征圖中建立煙火目標與背景信息的遠程依賴關系,即全局上下文信息,并進行特征融合,從而學習到更具判別性的特征,使網絡預測結果更為精準。
EGC-YOLOX 網絡結構如圖3 所示,主要包含3個部分:主干網絡部分(Backbone)、特征增強部分(EGC-Net+FPN+PAN)和預測部分(Predict)。輸入待檢測圖像,通過主干網絡部分的Focus 操作得到多組特征圖,之后將其拼接并通過卷積運算得到無信息丟失的雙下采樣特征圖,接著使用CSP結構進行特征提取,最后SPP 結構采用1×1、5×5、9×9、13×13 最大池化進行多尺度特征融合。在特征增強部分,通過插入具有全局上下文信息和通道信息的EGC-Net 網絡進行多級特征提取和強化,并使用FPN 和PAN 特征金字塔結構進行特征融合。FPN 將圖像的語義特征從高層特征圖傳遞到低層特征圖,同時PAN 將圖像的定位特征從低層特征圖傳遞到高層特征圖,這兩種結構共同加強了頸部網絡的特征融合能力,充分融合了EGC-Net中關于煙火目標的全局上下文信息和通道信息。最終,在預測階段接收PAN輸出的3 個尺度的特征圖,并通過進一步信息融合輸出預測結果,即圖像中煙火目標的類別及位置信息。

圖3 EGC-YOLOX 網絡結構Fig.3 EGC-YOLOX network structure
為了說明EGC-Net 對煙火目標特征學習的有效性,采用梯度加權類激活熱力圖[27](Gradientweighted Class Activation Map,Grad-CAM)算法可視化EGC-Net 學習到的特征。
由于圖像分類任務中要提取的是圖像的全局特征,本文以圖像分類任務為例可視化EGCNet 提取圖像特征時關注的空間位置,對比了ResNet18[28]網絡和插入了EGC-Net 的EGCResNet18 網絡。以本文所使用的煙火圖像數據集的子集開展實驗,分3 類即火焰類(7 831 張)、煙霧類(14 394 張)、非煙火類(2 846 張)進行實驗。結果表明,EGC-ResNet18 網絡相比于原始ResNet18 網絡在模型大小基本不變的情況下,Top-1 分類準確率從94.72%提升到97.82%,提升了3.1%。在測試集中挑選3 幅圖像使用Grad-CAM 進行類激活熱力圖可視化,結果如圖4 所示,熱力圖局部越紅表示特征激活程度越強。可見,基礎網絡加入EGC-Net 結構后,在煙霧和火焰圖像中所關注的空間位置比原來更為精準。

圖4 圖像分類Grad-CAM 結果。(a)原圖像;(b)ResNet18結果;(c)EGC-ResNet18 結果。Fig.4 Grad-CAM results for image classification.(a)Origi‐nal image;(b)Result of ResNet18;(c)Result of EGC-ResNet18.
目標檢測任務會更多關注圖像的局部特征,進一步地,對比了在煙火檢測任務中原始YOLOX網絡和本文提出的EGC-YOLOX 網絡的Grad-CAM 結果,如圖5 所示。可見,EGC-YOLOX 比YOLOX 對于局部煙火目標的特征關注得更為精準,且更易于排除干擾,在同為真實煙火的位置特征激活程度也更強。由于EGC-Net既包含了全局上下文信息,同時也融合了通道注意力信息,能在關注目標周圍背景信息的同時也關注目標本身的特征,故使用了EGC-Net 的網絡。相比于原網絡,EGC-Net 對于圖像上的煙火目標有著更好的特征學習能力。

圖5 目標檢測Grad-CAM 結果。(a)輸入圖像;(b)YOLOX結果;(c)EGC-YOLOX結果。Fig.5 Grad-CAM results for object detection.(a)Input image;(b)Result of YOLOX;(c)Result of EGCYOLOX.
實驗平臺使用的框架為Pytorch 1.8.1,Python版本為3.7.9,模型訓練平臺處理器為Intel(R)Xeon(R)CPU E5-2620 v4@ 2.10 GHz,RAM 為64G,GPU 為NVIDIA Quadro GP100,顯存為16G,軟件環境為Windows 操作系統。
由于目前公開的煙火圖像數據集尤其是同時標注了火焰和煙霧目標的圖像數據集較少,本文自制了一個煙火圖像數據集,圖像總數為12 999幅,其中包括3 740 幅類火圖像和類煙圖像。實驗中訓練集、驗證集以及測試集的劃分比例為8∶1∶1。
模型訓練階段使用Adam 作為優化器,整個過程分為兩個階段:第一階段采用遷移學習方式凍結部分層進行訓練,學習率為0.001,迭代50 次,并設定學習率每次迭代之后進行衰減,衰減系數為0.005;第二階段解凍網絡所有層進行訓練,學習率為0.000 1,迭代100 次,同樣設定學習率每次迭代之后進行衰減,衰減系數為0.000 5。
由于圖像或視頻中煙火目標的形狀并不固定,通用的基于檢測框的目標檢測算法評價指標已不適用。從實用性的角度出發,由于煙火檢測的目的是發現圖像中的火焰或煙霧目標并進行及時報警處理,故對于一幅圖像而言,只要從中檢測到一處火焰或煙霧目標即可,而如果該圖像中沒有煙火目標,則不希望出現誤報。因此,本文引入了兩個煙火檢測任務的評價指標:
(1)圖像級召回率(Image-level Recall,ILR),即所有存在煙火目標的圖像中被至少檢測出一處火焰或煙霧目標的圖像所占的比例。
(2)圖像級誤報率(Image-level False Alarm Rate,ILFAR),即所有不存在煙火目標的圖像中被至少檢測出一處火焰或煙霧目標的圖像所占的比例。
設測試集中存在煙火目標的圖像總數為M,其中被算法檢測出存在火焰或煙火目標的圖像數為m。測試集中不存在煙火目標的圖像總數為N,其中被算法檢測出存在火焰或煙火目標的圖像數為n。則圖像級召回率與誤報率可按式(6)、(7)計算:

本文算法(EGC-YOLOX)和其他輕量級目標檢測網絡的對比實驗結果如表1 所示。

表1 輕量級目標檢測算法性能對比Tab.1 Performance comparison for lightweight algorithms of object detection
所對比算法包括YOLOv3-Tiny、YOLOv4-Tiny、YOLOv5s、原始YOLOX、插入了NLNet 結構的NL-YOLOX 以及插入了GC-Net 結構的GCYOLOX。除了圖像級召回率(ILR)、圖像級誤報率(ILFAR),表中還列出了網絡模型大小(Size)和推理時間(Inference Time)。
由表1 可見,本文所提出的EGC-YOLOX 算法在圖像級召回率和誤報率指標上均達到了最優。其檢測速度相比于YOLOv3-Tiny、YOLOv4-Tiny、YOLOv5s 這3 種算法有所下降,其原因在于YOLOX 算法的參數量更多,有效保障了算法的檢測精度,雖然速度有所下降,但仍然滿足實時檢測的需求。EGC-YOLOX 算法相比改進前的原YOLOX 算法在保持同樣速度的同時,圖像級召回率提升了4.8%,誤報率下降了4.39%,表明利用全局上下文信息可使網絡有更好的局部和全局特征學習能力,從而有效降低煙火檢測的漏檢率和誤檢率。此外,本文算法(EGC-YOLOX)相比于NL-YOLOX 和GC-YOLOX,不僅模型更加精簡,速度更快,而且圖像級召回率分別提升了1.37%和1.47%,圖像級誤報率分別下降了3.23%和0.49%,說明本文提出的EGC-Net 比改進前的NLNet 和GC-Net 具有更好的全局上下文或遠程依賴建模能力,從而有助于加強網絡學習過程中對視覺場景的全局理解。
分別使用原YOLOX 和改進后的EGCYOLOX 算法在測試集上檢測煙火目標,并從結果中挑選了幾組典型圖像進行可視化展示。結果如圖6 所示,圖6(a)、(b)兩列對比了含有煙火目標的圖像。原YOLOX 算法出現了誤檢或漏檢的情況,且對于檢測到的真實存在的煙火目標其置信度也低于EGC-YOLOX。圖6(c)、(d)兩列對比了含有類煙或類火等強干擾目標的圖像,原YOLOX 算法把燈光、夕陽晚霞誤檢為火焰目標,把灰塵、水霧誤檢為煙霧目標,若將其用于消防安全監控,這種誤檢情況會極大消耗人力物力;而改進后的EGC-YOLOX 算法在這些圖像中均表現出了更好的性能,具有更強的魯棒性,因而更具實用價值。

圖6 煙火檢測效果對比。(a)、(c)YOLOX 檢測結果;(b)、(d)對應的EGC-YOLOX 檢測結果。Fig.6 Effect comparison for smoke and fire detection.(a),(c)Results of YOLOX;(b),(d)Corresponding results of EGC-YOLOX.
另外,如圖7 所示,本文還選取了實際生活中的多個火災場景,包括汽車、火車、輪船、飛機、加油站、礦場、森林、高樓等,使用本文所提出的EGC-YOLOX 算法均能準確地檢測到各實際場景下的煙火目標。

圖7 本文算法在實際場景圖像中的煙火檢測結果Fig.7 Results of the proposed algorithm to detect smoke and fire in real-world images
針對現有輕量級目標檢測算法在煙火檢測任務中出現的漏檢和誤檢問題,本文提出了一種基于高效全局上下文網絡的輕量級煙火檢測算法。該算法在輕量級目標檢測網絡YOLOX 中插入了在NLNet 基礎上改進的EGC-Net 網絡結構,實現了建模圖像全局上下文信息并減少計算量的目的。對EGC-Net 的梯度加權類激活熱力圖(Grad-CAM)進行分析,結果表明EGC-Net 能增強網絡的局部和全局特征學習能力,將EGC-Net 與目標檢測網絡YOLOX 相結合構成EGC-YOLOX 網絡用于煙火檢測,通過有效建模煙火目標和背景的全局上下文信息提升了煙火檢測的精度和魯棒性。實驗結果表明,本文提出的EGC-YOLOX 煙火檢測算法的圖像級召回率為95.56%,圖像級誤報率為4.75%,均優于對比的其他典型輕量級目標檢測算法,且在速度上達到了實時要求。本文所提算法在安防和消防領域具有較好的實用價值和應用推廣價值,可用于實際場景下的火災監控和預警管理。