王洪義,孔梅梅,徐榮青
(南京郵電大學電子與光學工程學院、微電子學院,江蘇 南京 210023)
近年來,火災發生頻率越來越高,且火災的發生往往伴隨著一定程度的人員傷亡、環境破壞以及財產損失。為了避免火災事故帶來的危害,應在火焰產生的初期階段對火焰進行準確快速的檢測,這不僅有利于及時控制火情,還可有效降低火災造成的惡劣影響。
鑒于火焰檢測的重要性,人們已對火焰檢測方法進行了廣泛的研究。目前,有基于人工定義火焰特征和基于卷積神經網絡2 種檢測方法。基于人工定義火焰特征的檢測方法,由于多數火焰目標較小以及陽光、燈光等與火焰顏色相似,因此該方法的檢測平均精度低、小目標火焰漏檢率高。人們使用將火焰的YUV顏色模型、形狀和運動特征相結合的方法[1]和將RGB 顏色模型與ViBe 背景提取算法相結合的方法[2]來提高基于人工定義火焰特征檢測方法的效果,但效果仍不理想。卷積神經網絡具有較好的自主學習性、容錯性以及較快的速度[3],常用于圖像的識別和分類。現今,用于火焰檢測的卷積神經網絡有CNN[4]、Faster RCNN[5]和YOLO[6]系列。其中,YOLO 系列相比于其他卷積神經網絡而言,能夠較好地提取圖像的全局信息,且可以進行端到端的訓練,用在火焰檢測中更具優勢。YOLOV5[7]是目前最新的卷積神經網絡,相較于其他YOLO 系列,YOLOV5 具有更快的速度和更高的平均精度。Dai 等[8]使用MobileNet 網絡替 換YOLOV3 的 主 干 網 絡。趙 媛 媛 等[9]在 原YOLOV3 的基礎上增加了第四層檢測層。但以上2種改進方法的火焰檢測平均精度低、小目標火焰漏檢率高,不能滿足火焰檢測的要求。
為了解決火焰檢測平均精度低、小目標漏檢率高的問題,本文提出一種改進YOLOV5 的火焰檢測算法。使用Transformer Encode[10]模塊代替原網絡中的部分卷積模塊,提升網絡提取不同局部特征的能力,提高火焰檢測的平均精度。在YOLOV5 的主干網絡和檢測頭中添加CBAM(Convolutional Block Attention Module)[11]注意力模塊,提升網絡檢測小目標的能力,降低火焰檢測的小目標漏檢率。
1.1 YOLOV5算法簡介
YOLOV5 算法由Ultralytics LLC 公司于2020 年5月份提出[7],其圖像推理速度比Faster RCNN[12]、YOLOV3[13]和YOLOV4[7]算法都要快,可達到140 幀/s[7]。YOLOV5 分 別 使 用CSPDarknrt53 作 為 主 干 網絡、PANet[15]作為頸部和YOLO 檢測頭[16]作為檢測頭,其網絡結構如圖1所示。
圖1 YOLOV5網絡結構圖
1.2 本文算法
本文使用Transformer Encode 模塊和CBAM 模塊改進原來的YOLOV5網絡,不僅提高了火焰檢測的平均精度,還降低了小目標火焰的漏檢率。改進YOLOV5網絡結構如圖2所示。
圖2 改進YOLOV5網絡結構圖
1.3 Transformer Encode
Transformer 模塊是谷歌公司于2017 年提出的一種簡單的神經網絡結構,其由Transformer Encode 和Transformer Decode 這2 部分組成[10],最初用于文本的識別。2020 年谷歌公司將Transformer Encode 模塊用于圖像識別[17]。Transformer Encode 由Embedded Patches、Multi-Head Attention、Add 和Feed Forward這4部分組成,其網絡結構如圖3所示。
圖3 Transformer Encode結構圖
在Transformer Encode 模塊中,首先將輸入的圖像進行Embedded Patches,得到一維的向量,然后通過Multi-Head Attention 和Add 得到全局自注意力特征圖,最后通過Feed Forward 和Add 獲得Transformer Encode的輸出。其中,Embedded Patches的作用是對輸入的圖像進行分割和位置編碼[17]。位置編碼不僅考慮圖像的內容信息,而且考慮不同位置的要素之間的相對距離,有效地關聯了物體之間的信息與位置[18]。Multi-Head Attention 的作用是不僅可以注意當前像素點的信息,還可以更好地獲取上下文語義信息[19]。Add 的作用是使輸入圖像從低層直接傳播到高層,一定程度上解決了網絡退化的問題[20]。Feed Forward的作用是防止模型輸出的退化[21]。
Multi-Head Attention 是Transformer Encode的重要組成部分,其結構如圖4所示。
圖4 Multi-Head Attention 結構圖
首先,Transformer Encode 的輸入矩陣通過3 個不同權重的變化矩陣得到的查詢矩陣Q,鍵值矩陣K和值矩陣V,然后通過點積注意力,計算自注意力特征圖,計算公式如式(1)所示。多個獨立的頭部可以關注不同的全局和局部信息。多頭注意力是通過多組變換矩陣和公式(1)獲得多個相互獨立的注意力特征圖,最后通過拼接得到多頭注意力圖[22],計算公式如式(2)所示。
其中,dk是矩陣Q、K的列數,softmax 是激活函數,W0、WiQ、WiK、WiV是線性變換時的參數矩陣。
Feed Forward 網絡由2 個線性變換函數和1 個ReLU 激活函數構成,Feed Forward 網絡操作函數(FFN)的計算公式如下:
其中,W1和W2表示權值矩陣,b1和b2表示偏置項,x表示Feed Forward網絡的輸入,max表示取最大值[23]。
相比于原YOLOV5 網絡中的CSP bottleneck 模塊,Transformer Encode 模塊能夠捕獲全局信息和豐富的上下文信息。本文使用Transformer Encode 模塊代替原YOLOV5 主干網絡末端的CSP bottleneck 模塊,增強了卷積神經網絡捕獲不同局部信息的能力,提高了火焰檢測的平均精度。
1.4 CBAM注意力
CBAM(Convolutional Block Attention Module)[24]是一個簡單有效的注意力模塊,可以集成到任何卷積神經網絡中,并且可以與基本網絡端到端地進行訓練[25]。注意力模塊由通道注意力和空間注意力2 個子模塊組成,網絡結構如圖5所示。
圖5 CBAM網絡結構圖
通道注意力主要關注圖像中的目標,而空間注意力則主要關注圖像中目標的位置信息[26]。CBAM 模塊對于任意給定的特征圖輸入F∈RC×H×W進行通道注意力運算和空間注意力運算。首先對輸入特征圖按通道數分別進行最大值池化和均值池化,池化后的2個一維向量共享一個全連接層,將全連接層輸出的2個特征圖按元素相加,使用Sigmoid 函數進行歸一化處理,生成通道注意力圖MC∈RC×1×1,再將MC與輸入特征圖按元素相乘,獲得通道注意力調整后的特征圖F′[27]。其次將F′按空間進行最大值池化和均值池化,將2 個池化生成的二維向量拼接后進行卷積操作[27],從而生成空間注意力圖MS∈R1×H×W,再將MS與F′按元素相乘得到CBAM 的最終輸出特征圖F″。CBAM總體運算過程可描述為:
其中 表示按元素相乘。
CBAM 模塊不僅能夠關注圖像中的目標,還能夠關注圖像中目標的位置。在原YOLOV5 網絡中增加CBAM 注意力模塊,能夠增強網絡提取圖像特征的能力,對于小目標火焰能夠較好地提取特征,可降低小目標火焰的漏檢率。
2.1 實驗環境
本文實驗基于Win10操作系統,顯卡為1塊16 GB NVIDIA Tesla P100,內存為125 GB。采用PyTorch深度學習框架和Python語言搭建YOLOV5網絡模型。
2.2 實驗數據集
本文的實驗數據集包括公開數據集BoWFire、Bilkent 大學公開火焰視頻庫和互聯網下載的火焰圖片,涵蓋室內、森林、城市建筑和工廠等多種場景,共3038 幅。實驗中的訓練集、驗證集、測試集和小目標火焰測試集劃分如表1所示。
表1 實驗數據集
2.3 實驗結果分析
本文評估指標采用平均精度(AP)、每秒鐘檢測圖片張數(FPS)和小目標漏檢率等較為常見的評價指標來評估本文算法的性能,其中平均精度計算公式為[28]:
式(6)中,TP 為火焰目標被正確檢測的圖像數量;
FP 為非火焰目標被檢測為火焰的圖像數量;
FN為火焰目標被漏檢的圖像數量。
2.3.1 AP和FPS分析
本次實驗使用改進YOLOV5火焰檢測算法,分別與目前使用較多的Faster RCNN、YOLOV3、YOLOV4和YOLOV5 等火焰檢測算法在同一測試集上進行實驗,實驗結果如表2所示。
表2 火焰檢測結果
由表2 分析可知,使用CBAM 注意力和Transform Encode 進行改進的YOLOV5算法相比于原YOLOV5、YOLOV4、YOLOV3 和Faster RCNN 等火焰檢測算法,平均精度分別提升了2.4 個百分點、2.2 個百分點、8.1個百分點和22.4 個百分點。改進后的YOLOV5 算法FPS 仍高于YOLOV4、YOLOV3 和Faster RCNN 等火焰檢測算法,達到34 幀/s,能夠滿足火焰檢測的實時性要求?;鹧鏅z測部分結果如圖6所示。
圖6 改進YOLOV5算法檢測結果
2.3.2 小目標漏檢率分析
為了進一步驗證基于改進YOLOV5 算法的火焰識別的有效性,本文使用以上5 種算法在500 幅小目標火焰圖像上進行實驗,實驗結果如表3所示。
表3 小目標火焰檢測結果
由表3 分析可知,使用CBAM 注意力和Transform Encode 進行改進的YOLOV5 算法相比于原YOLOV5、YOLOV4、YOLOV3 和Faster RCNN 等火焰檢測算法,小目標漏檢率分別降低了4.1個百分點、2.7個百分點、5.5個百分點和0.4個百分點。小目標火焰部分實驗結果如圖7所示。從圖7中可以看出改進后的YOLOV5算法對小目標火焰有較好的檢測能力。
圖7 小目標火焰檢測結果
2.4 消融實驗
本文通過構建消融實驗來逐步探索CBAM 注意力和Transform Encode 對原YOLOV5 算法的影響。使用數據集中的測試集和小目標火焰測試集作為本次實驗的圖像數據,實驗結果如表4所示。
表4 消融實驗結果
由表4 分析可知,CBAM 注意力和Transform Encode 對原YOLOV5 網絡的檢測能力有較大的提升。CBAM 注意力使原網絡的小目標漏檢率降低了3.9 個百分點,增強了原網絡對小目標的檢測能力。Transform Encode 使原網絡的平均精度提升了1.7 個百分點,提升了原網絡提取圖像特征的能力。
實驗結果表明,本文改進的YOLOV5火焰檢測算法能夠對各種場景下的火焰目標和小目標火焰進行有效的檢測,具有檢測平均精度高、漏檢率低等優點。
本文使用Transform Encode 模塊和CBAM 注意力模塊改進YOLOV5火焰檢測算法,增加了網絡捕獲不同局部信息和提取圖像特征的能力。相比于原YOLOV5、YOLOV4、YOLOV3 和Faster RCNN 等火焰檢測算法,改進后的YOLOV5算法具有較高的火焰檢測精度,其精度可達83.9%,同時具有較低的小目標火焰漏檢率,僅為1.6%。另外,FPS可達34幀/s,滿足火焰檢測的實時性要求。
猜你喜歡火焰注意力卷積最亮的火焰音樂天地(音樂創作版)(2022年1期)2022-04-26讓注意力“飛”回來小雪花·成長指南(2022年1期)2022-04-09基于3D-Winograd的快速卷積算法設計及FPGA實現北京航空航天大學學報(2021年9期)2021-11-02繽紛的火焰學苑創造·A版(2021年2期)2021-03-11從濾波器理解卷積電子制作(2019年11期)2019-07-04漂在水上的火焰動漫星空(興趣百科)(2019年5期)2019-05-11基于傅里葉域卷積表示的目標跟蹤算法北京航空航天大學學報(2018年1期)2018-04-20“揚眼”APP:讓注意力“變現”傳媒評論(2017年3期)2017-06-13吹不滅的火焰學與玩(2017年6期)2017-02-16A Beautiful Way Of Looking At Things第二課堂(課外活動版)(2016年2期)2016-10-21