關鍵詞:YOLOv8;目標檢測;火情檢測;深度學習;注意力機制
中圖分類號:TP391 文獻標志碼:A
0 引言(Introduction)
火情檢測是一項具有重要意義的任務,它能夠保護人類的生命和財產安全,及時發(fā)現并采取措施防止火情蔓延是非常必要的[1]。目前,應用范圍較廣的火情檢測技術主要通過傳感器檢測火情的發(fā)生[2],但這些方法存在探測范圍有限、無法及時預警和需要定期維護等缺點[3]?;诖耍疚奶岢隽艘环N融合注意力機制及多尺度特征信息的YOLOv8[4]火情智能檢測算法。首先,以YOLOv8n作為框架在Neck部分使用CBAM(Convolutional Block Attention Module),幫助模型更加準確地檢測和定位火情。其次,為了更好地獲取并融合多尺度的火焰主體信息,在Backbone上使用了空洞空間卷積池化金字塔模塊,使模型能夠針對性地學習特征。最后,為了幫助模型更有效地學習,在Neck部分添加使用BiFPN模塊,以此獲得更好的表征能力,從而實現對火情的精確檢測。
1 基于計算機視覺的火情檢測(Fire detectionbased on computer vision)
近年來,計算機視覺和自然語言處理算法被廣泛應用于各行各業(yè)[5]。目標檢測作為計算機視覺算法的一個主要應用,被應用于航空航天探測、交通安全、工業(yè)設備產品檢測等領域[6],并且在火情檢測領域也有不少的應用與研究[7]。汪睿卿等[8]設計了細節(jié)特征融合模塊用于提取特征,以此提升火情檢測的精度。金仙力等[9]使用改進的三幀差分法配合改進的自適應高斯混合聚類GMM算法進行煙霧和火焰的檢測,從而提升算法的實時性和檢測性能。LU等[10]基于多任務學習對火情進行檢測,融合每個任務的優(yōu)勢提升檢測的準確度。張融等[11]結合目標檢測網絡FCOS(Fully Convolutional One-Stage)和GhostNet特征提取網絡檢測火情。KHAN 等[12]利用MobileNetV2模型的預訓練卷積層和全連接層解決森林火情的定位和分類問題。張為等[13]在特征提取網絡中添加DenseNet以增強特征復用,從而更好地檢測火情。雖然這些檢測方法在一定程度上實現了火情檢測的自動化,但是在檢測精度方面仍有待提升。
2 YOLOv8算法(YOLOv8 algorithm)
YOLOv8算法是目前應用較為廣泛的一階段目標檢測模型[14],按照網絡的寬度與深度從小到大排序依次分為YOLOv8s[15]、YOLOv8n[16]、YOLOv8m[17]、YOLOv8l[18] 和YOLOv8x[19]。YOLOv8模型主要由Input、Backbone、Neck和Head四部分構成。Input部分主要負責對原始數據進行處理和增強;Backbone部分主要負責對輸入圖像進行特征提取,其淺層網絡負責提取目標邊緣等底層特征,深層網絡負責構建高級語義信息;Neck部分主要負責對特征圖進行多尺度特征融合;Head部分負責進行最終的回歸預測。YOLOv8經歷了多個版本的優(yōu)化,研究人員在持續(xù)改進其結構的同時又保持了卓越的速度,以提升模型性能。這些改進使得YOLOv8成為一個穩(wěn)健、可靠的目標檢測模型。YOLOv8n模型是YOLOv8系列中最基礎的網絡之一,其具有較高的精度和較快的檢測速度,因此YOLOv8n更適合應用于火情的檢測。
3 基于改進YOLOv8 的火情智能檢測算法(Intelligent fire detection algorithm based onimproved YOLOv8)
為了應對現有火情檢測方法易受外部條件影響、準確率低的缺點,本文提出了基于改進YOLOv8的火情智能檢測算法。首先,通過引入CBAM[20]獲取通道信息和空間相關的位置信息;其次,使用空洞空間卷積池化金字塔模塊[21]對給定的輸入以不同采樣率的空洞卷積進行采樣,即以多個比例捕獲圖像的上下文信息;最后,在Neck部分使用BiFPN模塊[22],使模型能夠針對性地學習特征。基于改進YOLOv8的火情智能檢測算法網絡結構圖如圖1所示。
3.1CBAM 注意力模塊
為了幫助模型更加準確地定位和檢測火情,在Neck部分添加了CBAM,其不僅關注通道維度上的信息,還考慮了空間位置上的相關信息,這有助于模型更準確地定位和識別感興趣的對象,CBAM結構如圖2所示。CBAM 由兩個子模塊組成:通道注意力模塊(Channel Attention Module,CAM)和空間注意力模塊(Spatial Attention Module,SAM)。
3.1.1 通道注意力模塊(CAM)
CAM通過對特征圖在通道維度上進行平均池化和全連接網絡處理,以學習通道之間的相互關系,CAM 基本架構如圖3所示。首先,將特征圖F并行輸入MaxPool層和AvgPool層中;其次,經過Shared MLP模塊將通道數壓縮為原來的1/r倍,再擴張到原通道數,經過ReLU激活函數后,將兩個輸出結果進行逐元素相加;最后,通過Sigmoid激活函數得到最終的結果,其公式如下:
其中:F 為輸入的特征表示,σ 為Sigmoid激活函數。
通過計算通道的重要性權重,對不同通道的特征進行加權融合,使網絡能夠自適應地選擇和強化重要的通道特征,抑制不重要的通道特征。
3.1.2 空間注意力模塊(SAM)
SAM通過在空間維度上應用卷積層學習特征圖中每個空間位置的權重,SAM 的基本架構如圖4所示。首先,將經過CAM模塊得到的輸出結果通過MaxPool層和AvgPool層得到兩個特征圖;其次,經過Concat操作將兩個特征圖進行拼接;最后,經過卷積核后通過Sigmoid激活函數得到最終的結果,其公式如下:
SAM可以捕捉到不同空間位置之間的相關性,并根據特定任務的需求,自適應地調整特征圖的空間分布,有助于網絡更好地關注重要的空間位置,提高模型的檢測性能。本文“4.4.1”節(jié)的實驗表明,CBAM能夠提升模型的火情檢測準確率。
3.2 空洞空間卷積池化金字塔模塊
為了幫助模型提取多尺度的信息,從而更加精準地進行檢測及定位,在Backbone部分使用空洞空間卷積池化金字塔模塊??斩纯臻g卷積池化金字塔模塊使用具有不同采樣率的多個并行空洞卷積層,為每個采樣率提取的特征在單獨的分支中進一步處理,并融合后生成最終結果。該模塊通過不同的空洞率構建不同感受野的卷積核,用來獲取多尺度物體信息,空洞空間卷積池化金字塔模塊結構圖如圖5所示。本文“4.4.2”節(jié)的實驗表明,空洞空間卷積池化金字塔模塊能夠提升模型的火情檢測精度。
3.3BiFPN模塊
早期的物體檢測算法通常是在主干部分的最后一層特征添加檢測頭進行物體檢測,通常,此類算法無法有效地表征各個尺度的物體,因此提出了特征金字塔網絡(FPN)。在YOLOv8中采用的是路徑聚合網絡PANet,PANet的基本結構如圖6(a)所示。PANet的核心思想是構建一個自下而上的特征金字塔,以獲取不同尺度的特征表示。但是,由于它只是Fig.5 Structure diagram of Atrous spatial pyramid pooling module簡單地將不同尺度的特征調整成固定大小后進行簡單的求和,因此忽略了不同尺度信息對特征融合貢獻程度的差異。為了解決以上問題,本文引入了BiFPN模塊,通過引入雙向路徑和跨層連接融合更多的特征信息,使用動態(tài)的特征權重調整方式,使模型能夠關注到更多重要的層,BiFPN的基本結構如圖6(b)所示。本文“4.4.3”節(jié)的實驗表明,BiFPN模塊能夠提升模型的火情檢測精度。
4 實驗結果分析(Experimental results analysis)
4.1 火情數據集
本文使用的火情數據集均來自互聯網,并對其中標注不清、漏標的數據進行重新標注?;鹎閿祿纠鐖D7所示,數據集包含工業(yè)園區(qū)、森林及城市建筑等不同場景下的火情圖像數據。針對原始圖像較少的問題,利用數據增強技術對圖片進行裁剪、旋轉、拼接、加入噪聲以及強增對比度等方法擴大數據集,共得到2 056張圖片,形成小型火情圖像數據集。按照8∶1∶1的比例劃分,得到訓練集數據1 644張,測試集數據206張,驗證集數據206張。
4.2 評價指標
為了對本文提出的模型進行性能評估,進而對算法進行優(yōu)化,提高模型的準確率和泛化能力,具體采用精確率(Precision)、召回率(Recall)、mAP@0.5和mAP@0.5-0.95四個指標對模型性能進行分析評估。
4.3 不同目標檢
測算法的結果比較 為了驗證本文提出的方法在火情目標檢測上的先進性和適用性,在火情數據集上進行實驗,并與YOLO系列的其他模型進行比較,不同算法的火情檢測結果的定量比較如表1所示。
表1展示了各種目標檢測算法應用于火情數據集的檢測結果對比,本文方法與其他算法相比取得了最高的精確率值(69.7%),最高的mAP@0.5值(68.7%)以及最高的mAP@0.5-0.95值(36.7%),4個指標比基準算法YOLOv8n分別提高了1.4百分點、4.3百分點、5.1百分點和1.6百分點。與YOLO系列的一些主流算法YOLOv5m、YOLOv5l、YOLOv6和YOLOv8m相比,本文方法在精確率上分別提升4.0百分點、1.2百分點、10.1百分點和5.1百分點,mAP@0.5指標值相較于YOLOv5s的同類指標值提高了7.5百分點,分別比YOLOv6和YOLOv8m的同類指標值提高了11.9百分點和3.1百分點。以上結果驗證了本文方法具有較高的可行性。
4.4 消融實驗
本文通過消融實驗研究注意力機制、空洞空間卷積池化金字塔模型和BiFPN 模塊的重要性,實驗結果如表2和表3所示。
4.4.1 注意力機制的作用
本文在Neck部分使用CBAM 幫助模型更加精準地定位火情發(fā)生的位置,它不僅能捕獲跨通道的信息,還能捕獲方向感知和位置感知的信息。如表3所示,在添加CBAM 后,召回率、mAP@0.5和mAP@0.5-0.95分別提升了4.6百分點、3.5百分點和0.5百分點。如表2所示,本文還比較了一些其他主流的注意力機制,實驗結果表明,CBAM 的效果明顯優(yōu)于其他注意力機制的效果。
4.4.2 空洞空間卷積池化金字塔的作用
火情發(fā)生的場景非常多且容易受到周圍環(huán)境的影響。為了更好地檢測火情,在Backbone中使用了空洞空間卷積池化金字塔模塊。空洞空間卷積池化金字塔模塊通過不同的空洞率構建不同感受野的卷積核,用來獲取多尺度物體信息,有助于更加準確地檢測和定位火災。從表3中的數據可以看出,使用了空洞空間卷積池化金字塔模塊后,召回率、mAP@0.5和mAP@0.5-0.95分別提升了4.6百分點、3.1百分點和0.5百分點,但精確率略有下降。
4.4.3BiFPN模塊的作用
本文使用的BiFPN模塊可以通過優(yōu)化特征融合、信息傳遞以及調整特征權重提高模型的感知能力,進而提高檢測結果的準確性。從表3中的數據可以看出,使用BiFPN模塊后,召回率、mAP@0.5和mAP@0.5-0.95分別提升了9.9百分點、4.2百分點和0.9百分點,但精確率略有下降。
4.5 實驗結果分析
圖5展示了本文提出的火情智能檢測算法使用在火情數據集上的檢測結果。在不同的場景下,模型均能準確地檢測出火情。
為了驗證本文提出的方法能夠更有效地檢測出火災場景,實驗分別選取了數據集中不同場景下的圖像進行對比。在有多個火源的場景中,要想檢測出多個火源是比較困難的。如圖9所示,本文方法可以檢測出盡可能多的火源,并能做到準確迅速定位。
在火情發(fā)生的初期檢測出火情是十分重要的。然而,對小火苗的檢測十分困難,容易受到周圍環(huán)境的干擾,導致檢測效果差。如圖10所示,本文方法能夠在周圍環(huán)境復雜的情況下,有效地檢測出小火苗,具有良好的魯棒性。
5 結論(Conclusion)
為了提高火情檢測精度,本文提出了一種基于改進YOLOv8的火情智能檢測算法。首先,使用CBAM 獲取方向相關的位置信息,幫助模型更加準確地檢測和定位火情;其次,添加由不同空洞卷積組成的空洞空間卷積池化金字塔模塊獲取多尺度信息,提升模型的檢測精度;最后,使用BiFPN模塊幫助模型針對性地學習特征,關注更加重要的區(qū)域。在火情數據集上的實驗結果表明,相較于其他先進的目標檢測算法,本文算法在火情檢測上的效果最優(yōu),可以有效地檢測出火情。
作者簡介:
葉偉華(1991-),男,本科,高級工程師。研究領域:人工智能,軟件工程。
劉海雄(2000-),男,碩士生。研究領域:深度學習,圖像處理。
胡蓉(1974-),女,博士,教授。研究領域:圖像處理和模型識別。