王洪義,孔梅梅,徐榮青
(南京郵電大學(xué)電子與光學(xué)工程學(xué)院、微電子學(xué)院,江蘇 南京 210023)
近年來,火災(zāi)發(fā)生頻率越來越高,且火災(zāi)的發(fā)生往往伴隨著一定程度的人員傷亡、環(huán)境破壞以及財(cái)產(chǎn)損失。為了避免火災(zāi)事故帶來的危害,應(yīng)在火焰產(chǎn)生的初期階段對(duì)火焰進(jìn)行準(zhǔn)確快速的檢測(cè),這不僅有利于及時(shí)控制火情,還可有效降低火災(zāi)造成的惡劣影響。
鑒于火焰檢測(cè)的重要性,人們已對(duì)火焰檢測(cè)方法進(jìn)行了廣泛的研究。目前,有基于人工定義火焰特征和基于卷積神經(jīng)網(wǎng)絡(luò)2 種檢測(cè)方法?;谌斯ざx火焰特征的檢測(cè)方法,由于多數(shù)火焰目標(biāo)較小以及陽(yáng)光、燈光等與火焰顏色相似,因此該方法的檢測(cè)平均精度低、小目標(biāo)火焰漏檢率高。人們使用將火焰的YUV顏色模型、形狀和運(yùn)動(dòng)特征相結(jié)合的方法[1]和將RGB 顏色模型與ViBe 背景提取算法相結(jié)合的方法[2]來提高基于人工定義火焰特征檢測(cè)方法的效果,但效果仍不理想。卷積神經(jīng)網(wǎng)絡(luò)具有較好的自主學(xué)習(xí)性、容錯(cuò)性以及較快的速度[3],常用于圖像的識(shí)別和分類?,F(xiàn)今,用于火焰檢測(cè)的卷積神經(jīng)網(wǎng)絡(luò)有CNN[4]、Faster RCNN[5]和YOLO[6]系列。其中,YOLO 系列相比于其他卷積神經(jīng)網(wǎng)絡(luò)而言,能夠較好地提取圖像的全局信息,且可以進(jìn)行端到端的訓(xùn)練,用在火焰檢測(cè)中更具優(yōu)勢(shì)。YOLOV5[7]是目前最新的卷積神經(jīng)網(wǎng)絡(luò),相較于其他YOLO 系列,YOLOV5 具有更快的速度和更高的平均精度。Dai 等[8]使用MobileNet 網(wǎng)絡(luò)替 換YOLOV3 的 主 干 網(wǎng) 絡(luò)。趙 媛 媛 等[9]在 原YOLOV3 的基礎(chǔ)上增加了第四層檢測(cè)層。但以上2種改進(jìn)方法的火焰檢測(cè)平均精度低、小目標(biāo)火焰漏檢率高,不能滿足火焰檢測(cè)的要求。
為了解決火焰檢測(cè)平均精度低、小目標(biāo)漏檢率高的問題,本文提出一種改進(jìn)YOLOV5 的火焰檢測(cè)算法。使用Transformer Encode[10]模塊代替原網(wǎng)絡(luò)中的部分卷積模塊,提升網(wǎng)絡(luò)提取不同局部特征的能力,提高火焰檢測(cè)的平均精度。在YOLOV5 的主干網(wǎng)絡(luò)和檢測(cè)頭中添加CBAM(Convolutional Block Attention Module)[11]注意力模塊,提升網(wǎng)絡(luò)檢測(cè)小目標(biāo)的能力,降低火焰檢測(cè)的小目標(biāo)漏檢率。
YOLOV5 算法由Ultralytics LLC 公司于2020 年5月份提出[7],其圖像推理速度比Faster RCNN[12]、YOLOV3[13]和YOLOV4[7]算法都要快,可達(dá)到140 幀/s[7]。YOLOV5 分 別 使 用CSPDarknrt53 作 為 主 干 網(wǎng)絡(luò)、PANet[15]作為頸部和YOLO 檢測(cè)頭[16]作為檢測(cè)頭,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOV5網(wǎng)絡(luò)結(jié)構(gòu)圖
本文使用Transformer Encode 模塊和CBAM 模塊改進(jìn)原來的YOLOV5網(wǎng)絡(luò),不僅提高了火焰檢測(cè)的平均精度,還降低了小目標(biāo)火焰的漏檢率。改進(jìn)YOLOV5網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 改進(jìn)YOLOV5網(wǎng)絡(luò)結(jié)構(gòu)圖
Transformer 模塊是谷歌公司于2017 年提出的一種簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),其由Transformer Encode 和Transformer Decode 這2 部分組成[10],最初用于文本的識(shí)別。2020 年谷歌公司將Transformer Encode 模塊用于圖像識(shí)別[17]。Transformer Encode 由Embedded Patches、Multi-Head Attention、Add 和Feed Forward這4部分組成,其網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 Transformer Encode結(jié)構(gòu)圖
在Transformer Encode 模塊中,首先將輸入的圖像進(jìn)行Embedded Patches,得到一維的向量,然后通過Multi-Head Attention 和Add 得到全局自注意力特征圖,最后通過Feed Forward 和Add 獲得Transformer Encode的輸出。其中,Embedded Patches的作用是對(duì)輸入的圖像進(jìn)行分割和位置編碼[17]。位置編碼不僅考慮圖像的內(nèi)容信息,而且考慮不同位置的要素之間的相對(duì)距離,有效地關(guān)聯(lián)了物體之間的信息與位置[18]。Multi-Head Attention 的作用是不僅可以注意當(dāng)前像素點(diǎn)的信息,還可以更好地獲取上下文語義信息[19]。Add 的作用是使輸入圖像從低層直接傳播到高層,一定程度上解決了網(wǎng)絡(luò)退化的問題[20]。Feed Forward的作用是防止模型輸出的退化[21]。
Multi-Head Attention 是Transformer Encode的重要組成部分,其結(jié)構(gòu)如圖4所示。
圖4 Multi-Head Attention 結(jié)構(gòu)圖
首先,Transformer Encode 的輸入矩陣通過3 個(gè)不同權(quán)重的變化矩陣得到的查詢矩陣Q,鍵值矩陣K和值矩陣V,然后通過點(diǎn)積注意力,計(jì)算自注意力特征圖,計(jì)算公式如式(1)所示。多個(gè)獨(dú)立的頭部可以關(guān)注不同的全局和局部信息。多頭注意力是通過多組變換矩陣和公式(1)獲得多個(gè)相互獨(dú)立的注意力特征圖,最后通過拼接得到多頭注意力圖[22],計(jì)算公式如式(2)所示。
其中,dk是矩陣Q、K的列數(shù),softmax 是激活函數(shù),W0、WiQ、WiK、WiV是線性變換時(shí)的參數(shù)矩陣。
Feed Forward 網(wǎng)絡(luò)由2 個(gè)線性變換函數(shù)和1 個(gè)ReLU 激活函數(shù)構(gòu)成,F(xiàn)eed Forward 網(wǎng)絡(luò)操作函數(shù)(FFN)的計(jì)算公式如下:
其中,W1和W2表示權(quán)值矩陣,b1和b2表示偏置項(xiàng),x表示Feed Forward網(wǎng)絡(luò)的輸入,max表示取最大值[23]。
相比于原YOLOV5 網(wǎng)絡(luò)中的CSP bottleneck 模塊,Transformer Encode 模塊能夠捕獲全局信息和豐富的上下文信息。本文使用Transformer Encode 模塊代替原YOLOV5 主干網(wǎng)絡(luò)末端的CSP bottleneck 模塊,增強(qiáng)了卷積神經(jīng)網(wǎng)絡(luò)捕獲不同局部信息的能力,提高了火焰檢測(cè)的平均精度。
CBAM(Convolutional Block Attention Module)[24]是一個(gè)簡(jiǎn)單有效的注意力模塊,可以集成到任何卷積神經(jīng)網(wǎng)絡(luò)中,并且可以與基本網(wǎng)絡(luò)端到端地進(jìn)行訓(xùn)練[25]。注意力模塊由通道注意力和空間注意力2 個(gè)子模塊組成,網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 CBAM網(wǎng)絡(luò)結(jié)構(gòu)圖
通道注意力主要關(guān)注圖像中的目標(biāo),而空間注意力則主要關(guān)注圖像中目標(biāo)的位置信息[26]。CBAM 模塊對(duì)于任意給定的特征圖輸入F∈RC×H×W進(jìn)行通道注意力運(yùn)算和空間注意力運(yùn)算。首先對(duì)輸入特征圖按通道數(shù)分別進(jìn)行最大值池化和均值池化,池化后的2個(gè)一維向量共享一個(gè)全連接層,將全連接層輸出的2個(gè)特征圖按元素相加,使用Sigmoid 函數(shù)進(jìn)行歸一化處理,生成通道注意力圖MC∈RC×1×1,再將MC與輸入特征圖按元素相乘,獲得通道注意力調(diào)整后的特征圖F′[27]。其次將F′按空間進(jìn)行最大值池化和均值池化,將2 個(gè)池化生成的二維向量拼接后進(jìn)行卷積操作[27],從而生成空間注意力圖MS∈R1×H×W,再將MS與F′按元素相乘得到CBAM 的最終輸出特征圖F″。CBAM總體運(yùn)算過程可描述為:
其中 表示按元素相乘。
CBAM 模塊不僅能夠關(guān)注圖像中的目標(biāo),還能夠關(guān)注圖像中目標(biāo)的位置。在原YOLOV5 網(wǎng)絡(luò)中增加CBAM 注意力模塊,能夠增強(qiáng)網(wǎng)絡(luò)提取圖像特征的能力,對(duì)于小目標(biāo)火焰能夠較好地提取特征,可降低小目標(biāo)火焰的漏檢率。
本文實(shí)驗(yàn)基于Win10操作系統(tǒng),顯卡為1塊16 GB NVIDIA Tesla P100,內(nèi)存為125 GB。采用PyTorch深度學(xué)習(xí)框架和Python語言搭建YOLOV5網(wǎng)絡(luò)模型。
本文的實(shí)驗(yàn)數(shù)據(jù)集包括公開數(shù)據(jù)集BoWFire、Bilkent 大學(xué)公開火焰視頻庫(kù)和互聯(lián)網(wǎng)下載的火焰圖片,涵蓋室內(nèi)、森林、城市建筑和工廠等多種場(chǎng)景,共3038 幅。實(shí)驗(yàn)中的訓(xùn)練集、驗(yàn)證集、測(cè)試集和小目標(biāo)火焰測(cè)試集劃分如表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)集
本文評(píng)估指標(biāo)采用平均精度(AP)、每秒鐘檢測(cè)圖片張數(shù)(FPS)和小目標(biāo)漏檢率等較為常見的評(píng)價(jià)指標(biāo)來評(píng)估本文算法的性能,其中平均精度計(jì)算公式為[28]:
式(6)中,TP 為火焰目標(biāo)被正確檢測(cè)的圖像數(shù)量;FP 為非火焰目標(biāo)被檢測(cè)為火焰的圖像數(shù)量;FN為火焰目標(biāo)被漏檢的圖像數(shù)量。
2.3.1 AP和FPS分析
本次實(shí)驗(yàn)使用改進(jìn)YOLOV5火焰檢測(cè)算法,分別與目前使用較多的Faster RCNN、YOLOV3、YOLOV4和YOLOV5 等火焰檢測(cè)算法在同一測(cè)試集上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2所示。
表2 火焰檢測(cè)結(jié)果
由表2 分析可知,使用CBAM 注意力和Transform Encode 進(jìn)行改進(jìn)的YOLOV5算法相比于原YOLOV5、YOLOV4、YOLOV3 和Faster RCNN 等火焰檢測(cè)算法,平均精度分別提升了2.4 個(gè)百分點(diǎn)、2.2 個(gè)百分點(diǎn)、8.1個(gè)百分點(diǎn)和22.4 個(gè)百分點(diǎn)。改進(jìn)后的YOLOV5 算法FPS 仍高于YOLOV4、YOLOV3 和Faster RCNN 等火焰檢測(cè)算法,達(dá)到34 幀/s,能夠滿足火焰檢測(cè)的實(shí)時(shí)性要求。火焰檢測(cè)部分結(jié)果如圖6所示。
圖6 改進(jìn)YOLOV5算法檢測(cè)結(jié)果
2.3.2 小目標(biāo)漏檢率分析
為了進(jìn)一步驗(yàn)證基于改進(jìn)YOLOV5 算法的火焰識(shí)別的有效性,本文使用以上5 種算法在500 幅小目標(biāo)火焰圖像上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表3所示。
表3 小目標(biāo)火焰檢測(cè)結(jié)果
由表3 分析可知,使用CBAM 注意力和Transform Encode 進(jìn)行改進(jìn)的YOLOV5 算法相比于原YOLOV5、YOLOV4、YOLOV3 和Faster RCNN 等火焰檢測(cè)算法,小目標(biāo)漏檢率分別降低了4.1個(gè)百分點(diǎn)、2.7個(gè)百分點(diǎn)、5.5個(gè)百分點(diǎn)和0.4個(gè)百分點(diǎn)。小目標(biāo)火焰部分實(shí)驗(yàn)結(jié)果如圖7所示。從圖7中可以看出改進(jìn)后的YOLOV5算法對(duì)小目標(biāo)火焰有較好的檢測(cè)能力。
圖7 小目標(biāo)火焰檢測(cè)結(jié)果
本文通過構(gòu)建消融實(shí)驗(yàn)來逐步探索CBAM 注意力和Transform Encode 對(duì)原YOLOV5 算法的影響。使用數(shù)據(jù)集中的測(cè)試集和小目標(biāo)火焰測(cè)試集作為本次實(shí)驗(yàn)的圖像數(shù)據(jù),實(shí)驗(yàn)結(jié)果如表4所示。
表4 消融實(shí)驗(yàn)結(jié)果
由表4 分析可知,CBAM 注意力和Transform Encode 對(duì)原YOLOV5 網(wǎng)絡(luò)的檢測(cè)能力有較大的提升。CBAM 注意力使原網(wǎng)絡(luò)的小目標(biāo)漏檢率降低了3.9 個(gè)百分點(diǎn),增強(qiáng)了原網(wǎng)絡(luò)對(duì)小目標(biāo)的檢測(cè)能力。Transform Encode 使原網(wǎng)絡(luò)的平均精度提升了1.7 個(gè)百分點(diǎn),提升了原網(wǎng)絡(luò)提取圖像特征的能力。
實(shí)驗(yàn)結(jié)果表明,本文改進(jìn)的YOLOV5火焰檢測(cè)算法能夠?qū)Ω鞣N場(chǎng)景下的火焰目標(biāo)和小目標(biāo)火焰進(jìn)行有效的檢測(cè),具有檢測(cè)平均精度高、漏檢率低等優(yōu)點(diǎn)。
本文使用Transform Encode 模塊和CBAM 注意力模塊改進(jìn)YOLOV5火焰檢測(cè)算法,增加了網(wǎng)絡(luò)捕獲不同局部信息和提取圖像特征的能力。相比于原YOLOV5、YOLOV4、YOLOV3 和Faster RCNN 等火焰檢測(cè)算法,改進(jìn)后的YOLOV5算法具有較高的火焰檢測(cè)精度,其精度可達(dá)83.9%,同時(shí)具有較低的小目標(biāo)火焰漏檢率,僅為1.6%。另外,F(xiàn)PS可達(dá)34幀/s,滿足火焰檢測(cè)的實(shí)時(shí)性要求。