











摘 要:火災引發的經濟與人員損傷始終是社會的棘手問題,迫切需要能夠實時、準確監控火災發生的方案。針對城市火災場景復雜、目標小和定位要求高等問題,提出了一種改進YOLOv5 的城市火災場景下煙火目標檢測算法。整理收集到的網絡數據、構建數據集,并進行數據增強。基于YOLOv5s 算法模型,重構網絡結構,增加小目標檢測層,使模型更加關注小目標的檢測。嵌入了壓縮與激勵網絡(Squeeze-and-Excitation Network,SENet),使YOLOv5 模型的檢測精度進一步提升。討論了SENet 添加位置的問題。實驗結果表明,改進YOLOv5 算法的精確率達到了93. 7% ,與原YOLOv5s 相比召回率和平均精確度分別提高了1. 9% 、1. 6% ;在網絡中添加注意力模塊的位置不同,所產生的模型效果也不同。
關鍵詞:火災檢測;小目標樣本;YOLOv5;壓縮與激勵網絡
中圖分類號:TP399 文獻標志碼:A 開放科學(資源服務)標識碼(OSID):
文章編號:1003-3106(2024)06-1454-08
0 引言
目前,在火災安全防護及檢測相關領域研究中,對于自然火災已探索出了及時、有效的監控和解決方法。但隨著經濟發展,城鎮化、工業化快速推進,居民火災多發,造成了不可估量的損失。據國家應急管理部2022 年1—9 月統計顯示,全國共接報火災63. 68 萬起,其中電氣火災在火災總數中占比最高[1]。因此,迫切需要整合人工智能、大數據等領域的技術,研究自動火災監控方法,做到快速檢測、降低成本、更好地應對檢測環境雜亂,解決火災監測準確率偏低和漏報率偏高等問題。
傳統的火災特征提取,無論是最初的對單一特征進行提取,還是對多特征進行融合,都具有很強的主觀性,且泛化性不高,無法適應不同的環境。近年來,結合深度學習的卷積神經網絡等飛速發展,已廣泛應用于實際生活中。本文基于深度學習的目標檢測,由機器自主學習提取煙火特征,更具有研究價值。現階段基于深度學習的目標檢測算法可分為兩大類[2]:一類是一階段目標檢測算法,主要代表算法有SSD[3]、YOLO[4]、YOLOv3[5]、YOLOv5 等,這類方法直接在圖像上獲取目標特征信息,進而預測目標的位置和分類,無需提前生成候選區域;另一類是在目標檢測過程中分兩步完成,首先在圖片上生成預選框,然后再對目標進行分類或預測,該方法也稱為兩階段目標檢測算法,代表算法有R-CNN、FastR-CNN[6]、Faster R-CNN[7]等。
目前已有眾多學者在火災檢測領域做了相關研究。寧陽等[8]通過在DeeplabV3 +的解碼器部分增加低層特征來源,從而保留更多的細節信息,實現更加準確的火焰分割;然后將火焰視頻每幀分割得到的像素數組成火勢發展序列,基于關鍵點對序列進行分段和線性擬合,獲取火勢發展的關鍵趨勢。常麗等[9] 采用K-means 重新計算錨框尺寸,在YOLOv5s 基礎上融合SRGAN 算法,引入了CBAM[10]注意力機制模塊和梯度均衡機制,針對隧道火災得到了較好的檢測效果。喻麗春等[11]改進Mask R-CNN 算法,在其特征金字塔引入一條自下向上的特征融合,同時改進了損失函數,使火焰圖像識別邊框定位更準確。章曙光等[12]利用二維Haar小波變換提取火災圖像的煙火紋理光譜特征,并在YOLOv5 模型中使用嵌入CA 機制的CAC3 模塊,提升了火災場景下的煙火檢測性能。
本文的典型應用場景為城市環境下建筑電氣火災,電線或電氣設備著火時一般是在其內部,火災情況隨機性大,隱蔽性強。該場景下圖片背景豐富,存在遮擋現象,隨著煙霧擴散會使特征模糊,火焰初期閃爍、面積小,導致檢測目標較小。因此該場景下無論是外部拍照檢測,還是攝像頭采集畫面檢測,都是較為困難的。
由于煙火小目標對象分辨率低、像素占比小,在使用卷積神經網絡進行特征提取時局限性大,不足以對小目標進行表達[13]。在多次下采樣過程中,特征圖尺寸將會不斷減小,使小目標的特征提取難度繼續加大,甚至出現嚴重的誤檢、漏檢現象。
近兩年,也有許多學者為解決小目標檢測的問題,將YOLO 系列算法進行改進。牛為華等[14]針對道路小目標,在YOLOv5 特征融合部分采用了雙線性插值上采樣方法和CBAM 注意力機制模塊。韓俊等[15]面對無人機密集小目標檢測,構造了多尺度特征提取模塊。劉展威等[16]則選擇了在主干網絡中添加CA 模塊、修改損失函數等方案。以上研究都取得了較好的效果,可見改進YOLO 系列模型確實可為小目標檢測提供新思路,因此本文研究如下:
① 在YOLOv5 系列算法中選用YOLOv5s 作為本實驗的基礎模型,提出了一種應用于城市室外火災檢測的改進YOLOv5 算法,改進后的模型檢測效果較好,精確率達到了93. 7% 。
② 對YOLOv5 算法網絡結構進行改進,將原始的3 層檢測層擴展到4 層,讓網絡更加關注小目標的檢測,提高了算法在煙火密集場景下的表現。
③ 為解決煙火目標檢測的精度低等問題,插入了壓縮與激勵網絡(Squeeze-and-Excitation Network,SENet),分別在特征提取和特征融合部分以不同形式加入SENet,探索了本實驗SENet 插入的最優位置在Backbone 最后一層。
由實驗結果可知,改進YOLOv5 算法在煙火檢測中各評價指標更優,檢測煙火類別的召回率和平均精確度值提升明顯。
1 YOLOv5 概述
YOLO 系列是目前最熱門的目標檢測算法,其YOLOv5 模型具有高效、準確、實時等優點,在目標檢測領域已被廣泛應用[17-19]。YOLOv5 模型主要由輸入端、Backbone、Neck 和Head 四部分組成,其網絡結構如圖1 所示。其中Backbone 部分主要負責輸入圖像的特征提取;Neck 負責對特征圖進行多尺度特征融合,并把特征傳遞給預測層;Head 進行最終的回歸預測。
輸入端:本文采用Mosaic 數據增強,每組選取4 張圖片,進行隨機縮放、旋轉后進行拼貼,最終將其看成一個新的輸入圖像,很大程度上擴充了訓練集當中小目標的數量。使用自適應圖片縮放操作將輸入的不同尺寸圖像統一縮放至640 pixel× 640 pixel。
Backbone:本文以YOLOv5s 為例,原始的640 pixel× 640 pixel×3 的圖像經Focus 模塊切片操作,最終變成320 pixel× 320 pixel× 32 的特征圖。Backbone 的特征提取結構由C3、Conv 和SPPF 模塊組成。其中,在YOLOv5 模型中使用了大量的C3 模塊。C3 模塊在結構作用上基本相同于CSP 架構,由2 個分支組成,將數據分為兩部分,一部分為經過殘差結構和卷積層處理的圖像,將這部分數據與未經過處理的那部分進行拼接,最終再進行一次卷積得到輸入結果。C3 模塊很大程度上增加了網絡的深度和感受野,提高了網絡特征提取的能力。
Neck:YOLOv5 在Neck 部分使用了特征金字塔(Feature Pyramid Network,PPN)+ 路徑聚合網絡(Path Aggregation Network,PAN)結構。FPN[20]是一個自頂向下的特征金字塔,越上層的featuremap 經過不斷地卷積操作,攜帶有越強的紋理、顏色等語義特征,而在定位信息等特征上相對較弱。YOLOv5針對該特點,添加了PAN 結構,將低層的定位信息由下至上傳遞,這樣構成的新金字塔結構,同時具備了語義特征信息與定位特征信息。
Head:采用CIOU_LOSS 作為邊界框的損失函數和非極大值抑制(NonMaximum Suppression,NMS)用于抑制檢測時冗余的框。
2 改進YOLOv5 的火災檢測算法
2. 1 算法框架
本文針對小目標檢測存在的問題,分別從兩方面對YOLOv5 算法進行改進:第一,增加一個小目標檢測層,利用淺層特征層中包含的豐富的語義及位置信息精確定位識別小目標;第二,在Backbone 主干網絡的最后一層插入SENet 模塊,加強通道特征。改進的YOLOv5 網絡結構如圖2所示。
2. 2 小目標檢測層
在本文中,YOLOv5 模型針對煙火小目標的檢測效果并不理想。這是由于YOLOv5 模型的下采樣倍數較大,目標的局部細節特征產生損失,甚至出現了小目標信息丟失的情況。因此,本文提出了增加小目標檢測層,讓網絡更加關注煙火類小目標,使小目標的位置信息和特征細節更詳細,提高檢測效果。
具體來說,修改了特征融合網絡,增加了一組較小的先驗框,接著在原有模型基礎上,繼續對特征圖進行上采樣等處理,使特征圖繼續擴大,同時將獲取到的160 pixel×160 pixel 的特征圖與骨干網絡中的第二層特征圖進行Concat 融合,以獲取更大的特征圖,對于本文的煙火小目標檢測有著很好的改善。
2. 3 SENet
SENet[21]的目的在于通過建模顯示表示各通道之間的相互依賴性,從而實現強調有用特征、抑制無用特征的效果。SENet 作為輕量級的注意力機制,具有即插即用、結構簡單的特點,僅會小幅度增加網絡的運算量。SENet 結構如圖3 所示。
SENet 是一種用于對卷積神經網絡中通道維度的特征進行加權的方法。其中,SENet 包括2 個重要的操作:Squeeze 和Excitation。
Squeeze 操作使用全局平均池化將每個通道上的特征壓縮成一個全局特征向量,具體操作是通過每個通道的信息(W×H)轉化成1 個數值即1 個像素(1×1),當中的每一個數值都具有該通道的全局感受野。Squeeze 操作如下:
式中:H、W、C 為圖片的長、寬、維度,uc 為給定的H×W×C 的輸入,Zc 為擠壓后得到的1×1×C 的輸出。
Excitation 操作由2 個全連接層組成,用于對通道維度的特征進行加權。第一個全連接層使用ReLU 激活函數,ReLU 激活函數在輸入為正數時直接輸出,而輸入為負數時輸出為0,從而實現了非線性的特征變換和篩選。第二個全連接層使用Sigmoid 函數,目的是將通道的數值規范到(0,1),這個數值代表了各個通道在最終權重的占比,進而得到不同通道的激活值,最終實現了跨通道之間的交互作用。Excitation 操作如下:
s = Fex(z,W) = σ(W2 δ(W1 z)), (2)
式中:W1 為降維矩陣,W2 為升維矩陣,δ 為ReLU 激活函數,σ 為Sigmoid 激活函數。
該部分共進行了3 組SENet 添加位置對比實驗。這3 組對比實驗的目的是評估并比較添加SENet 與YOLOv5s 的基準模型之間的性能差異,以及驗證SENet 在不同層次的性能表現。
在第1 組實驗中,選擇在Backbone 的C3 模塊中插入SENet。在第2 組實驗中,選擇在模型的Backbone 的最后一層添加SENet。目的在于讓模型在學習過程中盡早受益于注意力機制的加強,模型可以更早地聚焦于輸入數據中的關鍵特征,并在后續的學習過程中更好地利用這些重要特征。第3 組實驗在模型的Neck 中引入SENet。由于在模型的深層次中,包含了煙火類目標更加抽象和高級的特征信息,本文試圖在較深層次引入SENet,以此提高模型在深層次特征方面的學習能力。
3 數據獲取與評價指標
3. 1 實驗環境
本文所使用的實驗配置環境如下:CPU 配置為13th Gen Intel(R)Core(TM)i9-13900KF;GPU 配置為NVIDIA GeForce RTX 4090,24 GB 顯存;操作系統為Windows 10;深度學習框架為PyTorch1. 7. 0;調用GPU 進行訓練,模型學習率為0. 01,學習動量為0. 937,訓練epochs 選用300。
3. 2 實驗數據集
本文通過網絡爬蟲等方式構建數據集。該數據集共計6 940 張圖片,包含火和煙2 類目標,類別數量分別為14 537 和21 045。
將數據集按照8 ∶ 1 ∶ 1 的比例劃分為訓練集、驗證集和測試集,其中驗證集為模型多次調參提供反饋信號,但訓練模型會對驗證集過擬合,所以仍需測試集來評估模型。
3. 3 數據預處理
(1)數據增強
首先采用YOLO 中Mosaic 數據增強策略,將4 張圖片進行拼接,組合成一張圖片,增加了數據的多樣性,同時也使每個樣本會有更大概率包含小目標,提升小目標檢測性能。混合4 張具有不同語義信息的圖片,讓模型檢測超出常規語境的目標,增加了模型的魯棒性。
其次采用Python 的ImageEnhance 庫實現對數據的增強。本文進行的數據增強包括以下幾種方式:對隨機25% 的圖像進行圖像翻轉,對隨機25%的圖像進行90°旋轉,對隨機25% 的圖像進行對比度為5 的數據增強。初始圖與增強圖對比如圖4所示。
(2)目標標注與文件轉換
選用矩形框對圖片中的火焰與煙霧進行標注,標注結束后在精靈標注助手中選擇. xml 文件導出,文件內容包含圖片大小,以及每個檢測框內的對象名與對象位置信息。其中實驗所需要關注的主要信息為對象名及位置。接下來將. xml 文件中的類別和坐標信息提取出來,轉化成txt 格式的標簽,其中每一行由5 個數據組成,第一個數據代表種類,后面4 個數據代表坐標。本文實驗中0 代表火,1 代表煙。文件轉換示例如圖5 所示。
3. 4 評價標準
通過評價指標可直接反映經過訓練后的模型性能。本文選取精確率(Precision,P )、召回率(Recall,R)、平均精確率(mean Average Precision,mAP)作為學習模型的評價指標。
準確率:檢測結果為煙霧與火焰當中,預測對的結果占全部檢測結果為煙霧與火焰的比例。
P = TP/TP + FP, (3)
式中:TP 表示預測框檢測為正樣本且檢測正確,FP表示將背景預測為檢測目標。
召回率:要檢測的煙霧與火焰目標是否被成功檢測到。
Recall = TP/TP + FN, (4)
式中:FN 表示未成功將物品檢測出來,將其當成了背景。
平均精確率:由煙霧與火焰的平均準確率相加求均值。
4 實驗結果與分析
4. 1 不同網絡架構下YOLOv5 算法對比實驗
未檢驗選擇訓練模型的合理性,設計了對比試驗,在每個YOLO 系列算法官方都會提供多個預訓練模型,基于本文預處理后的數據,選用YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x 四個不同版本結構做對比實驗,每個版本的模型大小、檢測速度和精確率各不相同。檢測效果對比如表1 所示,與其他結構相比,YOLOv5s 網絡模型的體積更小,檢測精確率最高;相較于YOLOv5m,雖然YOLOv5s 網絡的召回率略低,但模型體積下降了約66% ,模型較輕量。總之,因其檢測效果佳、速度快和易部署,本文選擇YOLOv5s 作為訓練模型是合理的。
4. 2 SENet 對比實驗
為驗證SENet 添加的有效性和添加SENet 的模型在深層次的學習能力,本文依據SENet 的添加位置不同,設計了3 個對比實驗。分別將SENet 融入C3 模塊中,以及2 組在不同位置添加SENet 的模型進行訓練,檢測結果如表2 所示。
與YOLOv5s 網絡結構的訓練效果相比,SENet1 -YOLOv5 實驗中3 個評價指標均下降了,P 僅有90. 4% ,R 為78. 5% ,mAP 為86. 4% 。在SENet2 -YOLOv5 改進實驗中,P 提高了1. 2% ,R 和mAP 分別提高了0. 5% 和0. 2% ,可看出在Backbone 添加SENet 后,模型性能有所提高。在SENet3 -YOLOv5改進實驗中,P 降低了0. 3% ,R 降低了0. 8% ,mAP降低了0. 1% 。因此,本實驗在C3 模塊和Neck 層添加SENet 的方式,使模型性能不升反降。3 組對比試實驗中,SENet2 -YOLOv5 檢測效果最好。可見,本實驗并不是在越深層添加注意力機制,模型的檢測效果越好,即本實驗模型的學習能力與注意力機制放置深度并不存在必然關系,仍然存在注意力提取和施加位置不對的可能。推測原因有以下2 點:
① 本文研究對象為煙火類小目標,網絡層次越深小目標保留的語義信息越少。可推測小目標的語義信息在深層次存在丟失的可能,注意力機制未能完成特征的重組。
② 卷積神經網絡進行多次下采樣后細節信息丟失。
4. 3 消融實驗
為了驗證本文對YOLOv5 算法所做的各項改進對城市火災下煙火檢測的影響,對各處改進點進行評估,實驗結果如表3 所示,“√”代表添加此模塊。由表3 可以看出,在YOLOv5s 模型關閉了數據預處理中的數據增強后,評價指標P 和mAP都有所下降。這也證明了數據增強的有效性,提高了模型的魯棒和泛化性。在增加小目標檢測層后,模型的R 和mAP 分別提高了2. 5% 、0. 7% ,但檢測精確度為89. 7% ,較改進前大大降低。在最終改進YOLOv5 實驗中,各評價指標均有所提高,P 為93. 7% ,雖然不敵SENet2 -YOLOv5 模型的精確度,但是克服了添加小目標檢測層后精確度不高的問題,R 較改進前也提高了1. 9% 。該方法的mAP 值達到了89. 8% ,在所有對比實驗中最高。
4. 4 改進算法檢測效果實驗
為更加直觀地展示改進YOLOv5 在城市火災場景下的煙火檢測效果,本文隨機選取測試集中多張圖片進行檢測。原標注圖像和改進YOLOv5 檢測結果如圖6 所示。可以看出,在密集標簽下,該模型也能達到較好的檢測效果。改進后的模型既保持了原模型對大目標檢測效果,又提高了對小目標的檢測能力。
5 結束語
本文在城市建筑電氣等火災檢測中,能準確識別出煙火目標,為遠程實時監控滅火提供了技術參考。在對數據集進行數據增強操作后,提出了改進YOLOv5 算法。優化了網絡模型,增加了小目標檢測層,該預測特征層通過將高層語義信息和低層傳遞的位置信息進行有效融合來預測本文的煙火小目標,然后用SENet 進一步提升模型檢測能力,并討論了3 種SENet 的添加位置的檢測效果。最后,經添加小目標檢測層和SENet 的改進YOLOv5 模型整體效果要優于YOLOv5 等目標檢測方法。
本文在實現城市建筑電氣火災等場景下的煙火檢測過程中,仍存在漏檢行為,煙類目標的漏檢考慮與背景相關,還需進一步處理,因此檢測效果還有提高的空間。改進后的模型體積雖無較大增長,但如何壓縮模型體積、使模型更加精簡以及提高檢測模型的有效性和高效性依舊是需要考慮的問題。
參考文獻
[1] 應急管理部舉行習近平總書記向國家綜合性消防救援隊伍授旗致訓詞4 周年專題新聞發布會[Z / OL].(2022-10-31)[2023-07-10]. https:∥www. mem. gov.cn / xw / xwfbh / 2022n10y31rxwfbh / wzsl_4260 / 202210 / t20221031_425195. shtml.
[2] 劉穎,劉紅燕,范九倫,等. 基于深度學習的小目標檢測研究與應用綜述[J]. 電子學報,2020,48 (3 ):590-601.
[3] LIU W,ANGUELOV D,ERHAN D,et al. SSD:SingleShot MultiBox Detector [C ]∥ Computer VisionECCV2016. Amsterdam:Springer,2016:21-37.
[4] REDMON J,DIVVALA S,GIRSHICK R,et al. You OnlyLook Once:Unified,Realtime Object Detection [EB /OL]. (2015 - 06 - 08)[2023 - 07 - 11]. https:∥ arxiv.org / abs / 1506. 02640.
[5] REDMON J,FARHADI A. YOLOv3:An Incremental Improvement[EB / OL]. (2018 - 04 - 08)[2023 - 07 - 11].https:∥arxiv. org / abs / 1804. 02767.
[6] GIRSHICK R. Fast RCNN[C]∥2015 IEEE InternationalConference on Computer Vision (ICCV). Santiago:IEEE,2015:1440-1448.
[7] REN S Q,HE K M,GIRSHICK R,et al. Faster RCNN:Towards Realtime Object Detection with Region ProposalNetworks[J]. IEEE Transactions on Pattern Analysis andMachine Intelligence,2017,39(6):1137-1149.
[8] 寧陽,杜建超,韓碩,等. 改進DeeplabV3 +的火焰分割與火情分析方法[J]. 西安電子科技大學學報,2021,48(5):38-46.
[9] 常麗,張雪,蔣輝,等. 融合YOLOv5s 與SRGAN 的實時隧道火災檢測[J]. 電子測量與儀器學報,2022,36(8):223-230.
[10] WOO S,PARK J,LEE J Y,et al. CBAM:ConvolutionalBlock Attention Module[C]∥15th European Conferenceon Computer Vision. Munich:Springer,2018:3-19.
[11] 喻麗春,劉金清. 基于改進Mask RCNN 的火焰圖像識別算法[J]. 計算機工程與應用,2020,56 (21 ):194-198.
[12] 章曙光,唐銳,邵政瑞,等. 一種基于小波變換的YOLOv5 火災檢測改進算法[J]. 無線電工程,2023,53(10):2303-2310.
[13] 劉洪江,王懋,劉麗華,等. 基于深度學習的小目標檢測綜述[J ]. 計算機工程與科學,2021,43 (8 ):1429-1442.
[14] 牛為華,殷苗苗. 基于改進YOLO v5 的道路小目標檢測算法[J]. 傳感技術學報,2023,36(1):36-44.
[15] 韓俊,袁小平,王準,等. 基于YOLOv5s 的無人機密集小目標檢測算法[J]. 浙江大學學報(工學版),2023,57(6):1224-1233.
[16] 劉展威,陳慈發,董方敏. 基于YOLOv5s 的航拍小目標檢測改進算法研究[J]. 無線電工程,2023,53 (10):2286-2294.
[17] 賈志,李茂軍,李婉婷. 基于改進YOLOv5+DeepSort 算法模型的交叉路口車輛實時檢測[J]. 計算機工程與科學,2023,45(4):674-682.
[18] 汪穎,王峰,李瑋,等. 用于復雜環境下果蔬檢測的改進YOLOv5 算法研究[J]. 中國農機化學報,2023,44(1):185-191.
[19] 楊國亮,楊浩,余帥英,等. 改進YOLOv5 的交通標志檢測算法[J]. 計算機工程與應用,2023,59 (10 ):262-269.
[20] LIN T Y,DOLL?R P,GIRSHICK R,et al. FeaturePyramid Networks for Object Detection[C]∥2017 IEEEConference on Computer Vision and Pattern Recognition.Honolulu:IEEE,2017:936-944.
[21] HU J,SHEN L,ALBANIE S,et al. SqueezeandExcitationNetworks[J]. IEEE Transactions on Pattern Analysis andMachine Intelligence,2020,42(8):2011-2023.
作者簡介
武 慧 女,(1988—),碩士研究生。主要研究方向:計算機視覺、圖像處理與深度學習。
楊玉竹 女,(2000—),碩士研究生。主要研究方向:計算機視覺、圖像處理與深度學習。
卜顯峰 男,(1966—),高級農藝師。主要研究方向:植物保護、計算機視覺。
(*通信作者)曹麗英 女,(1978—),博士,教授,碩士生導師。
主要研究方向:計算機視覺、圖像處理與深度學習。
基金項目:國家自然科學基金(U19A2061);吉林省科技廳中青年科技創新創業卓越人才(團隊)項目(創新類)(20220508133RC);吉林省科技發展計劃項目(20210404020NC)