張 震, 晉志華, 陳可鑫
(1.鄭州大學(xué) 電氣與信息工程學(xué)院,河南 鄭州 450001;2.鄭州大學(xué) 計(jì)算機(jī)與人工智能學(xué)院,河南 鄭州 450001)
近年來(lái),隨著中國(guó)經(jīng)濟(jì)的高度發(fā)展,居民汽車擁有量不斷增加,地下車庫(kù)成為汽車的主要停泊地。然而,由于電氣短路、油箱漏油等原因,車輛在地下車庫(kù)停放時(shí)容易發(fā)生火災(zāi)。停車場(chǎng)車輛密度大、火焰燃燒迅速、場(chǎng)所較為封閉、施救難度大,一旦發(fā)生火災(zāi),經(jīng)濟(jì)損失巨大[1]。目前,大部分的公共場(chǎng)所都在使用傳統(tǒng)的光電感煙探測(cè)器。由于地下停車場(chǎng)空間大,并配備一定的通風(fēng)設(shè)備,使得傳統(tǒng)的煙霧火災(zāi)檢測(cè)裝置效果大大降低,且光電感煙探測(cè)器工作需要一定的顆粒濃度,所以實(shí)時(shí)性較差。車庫(kù)一般都安裝有監(jiān)控?cái)z像頭,因此將基于視頻的目標(biāo)檢測(cè)用于地下停車場(chǎng)的火災(zāi)檢測(cè)具有重要的研究意義。
當(dāng)前目標(biāo)檢測(cè)算法主要分為由R-CNN代表的二階段(two-stage)目標(biāo)檢測(cè)算法以及YOLO(you only look once)代表的一階段(one-stage)目標(biāo)檢測(cè)算法[2-3]。主流的二階段目標(biāo)檢測(cè)算法有 R-CNN[4]、Fast R-CNN[5]等,這類算法首先生成一系列作為樣本的候選框,再通過(guò)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行樣本分類。代表性的一階段目標(biāo)檢測(cè)算法有SSD[6]、YOLO等。以YOLO為代表的一階段目標(biāo)檢測(cè)算法僅需處理一次圖像就可以得到目標(biāo)的位置以及分類結(jié)果,相較于二階段目標(biāo)檢測(cè)算法,能夠有效提升目標(biāo)檢測(cè)的速度,因此更適用于實(shí)時(shí)性要求高的地下停車場(chǎng)火災(zāi)檢測(cè)問(wèn)題。
YOLOv5[7]在目標(biāo)檢測(cè)領(lǐng)域有著廣泛的應(yīng)用。考慮到地下停車場(chǎng)空間較大、發(fā)生火災(zāi)初期火焰目標(biāo)較小,原始的YOLOv5s模型在此條件下檢測(cè)效果較差,本文通過(guò)增加小目標(biāo)檢測(cè)層、增加注意力機(jī)制以及修改損失函數(shù)來(lái)提升對(duì)小型火焰目標(biāo)的檢測(cè)效果。
YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)分為輸入端Input、骨干網(wǎng)絡(luò)Backbone、頸部Neck和預(yù)測(cè)部分 Prediction。算法一共包含4個(gè)模型,按照模型由小到大分別是YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。其中,YOLOv5s的模型最小,相同實(shí)驗(yàn)環(huán)境下檢測(cè)速度最快、易于部署,且擁有較高的檢測(cè)精度,能夠滿足對(duì)火災(zāi)火焰實(shí)時(shí)檢測(cè)的要求。
YOLOv5模型在數(shù)據(jù)輸入端Input采用Mosaic數(shù)據(jù)增強(qiáng)算法對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練前處理。隨機(jī)讀取數(shù)據(jù)集中的4張?jiān)紙D片,對(duì)圖片進(jìn)行隨機(jī)縮放、翻轉(zhuǎn)、改變色域等操作,隨后將處理后的圖片進(jìn)行拼接,得到一個(gè)擁有更高復(fù)雜度的樣本。通過(guò)對(duì)數(shù)據(jù)集多次處理,可以大大增加數(shù)據(jù)集的復(fù)雜度,從而提升模型的泛化能力。
YOLOv5模型的骨干網(wǎng)絡(luò)Backbone采用了最新的Focus結(jié)構(gòu)。輸入矩陣經(jīng)過(guò)間隔采樣操作變?yōu)?個(gè)具有原矩陣信息的低維度矩陣,然后將4個(gè)矩陣在同一維度上進(jìn)行堆疊,使得堆疊后的新矩陣能夠得到更明顯的原始矩陣信息,大大提高了后續(xù)的特征提取的效率。YOLOv5在CSP模塊[8]中加入SPP模塊,有效地增加了主干特征的接收范圍,即提高了感受野,顯著地分離了最重要的上下文特征,從而提升了模型精度。
本文的主要工作主要體現(xiàn)在以下3個(gè)方面:在原模型的基礎(chǔ)上增加一個(gè)小目標(biāo)檢測(cè)層、加入改進(jìn)坐標(biāo)注意力結(jié)構(gòu)以及使用CIoU替換GIoU。
針對(duì)火災(zāi)初期火源目標(biāo)較小、原模型漏檢的問(wèn)題,在YOLOv5s模型的基礎(chǔ)上增加一個(gè)小目標(biāo)檢測(cè)層,通過(guò)增加模型對(duì)細(xì)粒特征的分辨能力,從而增強(qiáng)模型對(duì)小目標(biāo)的檢測(cè)效果,雖然增加了計(jì)算成本,但是能夠很好地檢出小型火焰目標(biāo)。
增加小目標(biāo)檢測(cè)層網(wǎng)絡(luò)如圖1所示,與原始YOLOv5s網(wǎng)絡(luò)相比,改進(jìn)后的網(wǎng)絡(luò)從骨干網(wǎng)絡(luò)的第2層就開(kāi)始特征增強(qiáng)、提取淺層特征;將提取到的特征圖與深層特征進(jìn)行融合,繼續(xù)進(jìn)行上采樣處理,特征圖繼續(xù)擴(kuò)大,與骨干網(wǎng)絡(luò)提取出的淺層特征進(jìn)行融合,得到具有更多特征信息的特征圖,并將富含細(xì)粒信息的特征圖向下層傳遞。由此,模型能夠提升對(duì)細(xì)粒信息的敏感度,從而提高對(duì)小目標(biāo)的檢測(cè)性能。
圖1 YOLOv5s增加檢測(cè)層結(jié)構(gòu)圖Figure 1 YOLOv5s added detection layer structure diagram
如圖2所示,不同的特征層對(duì)小目標(biāo)的感知是不同的,通過(guò)增加淺層的檢測(cè)層,以及提供更小的Anchor,使模型可以更好地關(guān)注小型目標(biāo)的信息,能夠提升模型對(duì)于小型火焰目標(biāo)的檢測(cè)能力。
圖2 不同特征層檢測(cè)不同大小目標(biāo)示意圖Figure 2 Schematic diagram of objects of different sizes detected by different feature layers
坐標(biāo)注意力機(jī)制[9](coordinate attention, CA)在SE注意力機(jī)制[10]的基礎(chǔ)上進(jìn)行了針對(duì)性的改進(jìn),保留了圖像的特征位置信息。相較于SE注意力模塊,該模塊不僅能獲取到空間方向上的長(zhǎng)程依賴,還能增強(qiáng)特征的位置信息表達(dá),同時(shí)增大網(wǎng)絡(luò)的全局感受野。
如圖3所示,通過(guò)將輸入特征分別進(jìn)行X軸與Y軸方向上的一維自適應(yīng)平均池化,從而分別得到保留有X軸與Y軸信息的獨(dú)立方向感知特征,其中一個(gè)空間方向捕獲長(zhǎng)程依賴,另一個(gè)空間方向保留精準(zhǔn)的位置信息。對(duì)得到的兩個(gè)一維特征在W維度上進(jìn)行拼接,再經(jīng)過(guò)一個(gè)卷積以及非線性激活函數(shù),緊接著將特征在通道維度進(jìn)行拆分,通過(guò)卷積以及Sigmoid激活函數(shù)得到兩個(gè)帶有特定空間方向長(zhǎng)程依賴的特征圖,這兩個(gè)特征圖可以互補(bǔ)地應(yīng)用到輸入特征圖來(lái)增強(qiáng)感興趣的目標(biāo)。通過(guò)與原特征進(jìn)行特征融合,最終得到在寬度與高度方向上帶有注意力權(quán)重的特征圖。
圖3 坐標(biāo)注意力機(jī)制網(wǎng)絡(luò)圖Figure 3 network diagram of coordinate attention mechanism
目前,常見(jiàn)的Backbone注意力結(jié)構(gòu)如圖4(a)、4(b)所示。其中,C3CA結(jié)構(gòu)是將注意力模塊嵌入YOLOv5的C3模塊中,即對(duì)每個(gè)特征層提取的特征均進(jìn)行注意力機(jī)制的處理;CA結(jié)構(gòu)是只對(duì)深層次的特征圖進(jìn)行特征的增強(qiáng)。
圖4 C3CA、CA結(jié)構(gòu)與本文結(jié)構(gòu)對(duì)比Figure 4 Comparison among C3CA, CA structure and this structure
本文提出一種新的間隔注意力結(jié)構(gòu),如圖4(c)所示。圖像經(jīng)過(guò)一次提取得到的特征圖經(jīng)過(guò)注意力機(jī)制,得到一個(gè)小感受野的、具有獨(dú)立方向感知特征的特征圖;該帶有位置信息的特征圖繼續(xù)進(jìn)行一次特征提取,然后再一次通過(guò)坐標(biāo)注意力機(jī)制,得到一個(gè)具有大感受野并具有獨(dú)立方向感知的特征圖。相較于常見(jiàn)的C3CA、CA結(jié)構(gòu),本文使用的間隔注意力結(jié)構(gòu)在Backbone中間隔使用了兩次注意力模塊,將第2、4個(gè)C3層替換為具有注意力機(jī)制的C3CA層。本文結(jié)構(gòu)能夠讓模型更加關(guān)注中小目標(biāo)的特征,有助于對(duì)深層次目標(biāo)的特征強(qiáng)化,使模型能夠更精準(zhǔn)地提取目標(biāo)特征,從而增強(qiáng)目標(biāo)檢測(cè)的精度。
相比于C3CA結(jié)構(gòu),本文結(jié)構(gòu)減少了兩個(gè)注意力模塊,模型的復(fù)雜度大大降低,使網(wǎng)絡(luò)模型更加精簡(jiǎn),有助于提升模型的檢測(cè)速度;相比于CA結(jié)構(gòu),本文結(jié)構(gòu)增加了在中間特征層的注意力模塊,通過(guò)注意力模塊提取的帶有位置信息的特征經(jīng)FPN結(jié)構(gòu)融合,得到更多的特征語(yǔ)義信息,能夠進(jìn)一步提升模型的檢測(cè)效果。
YOLOv5中采用GIoU Loss作為Bounding box的損失函數(shù)。如果預(yù)測(cè)框與真實(shí)框出現(xiàn)非相交的情況,此時(shí)梯度將變?yōu)?,神經(jīng)網(wǎng)絡(luò)將無(wú)法優(yōu)化,預(yù)測(cè)框與真實(shí)框的相對(duì)位置無(wú)法區(qū)分。考慮到上述情況,本文使用Complete IoU(CIoU) Loss[11]代替GIoU Loss。CIoU損失在考慮GIoU損失的基礎(chǔ)上,考慮了BBox的重疊面積、中心點(diǎn)距離以及BBox長(zhǎng)寬比的一致性,使模型得到更好的回歸效果。
當(dāng)前并沒(méi)有公開(kāi)的地下停車場(chǎng)火災(zāi)的數(shù)據(jù)集,本文選擇自定義數(shù)據(jù)集。其中圖像來(lái)自于包括CVPR實(shí)驗(yàn)室采集的KMU Fire and Smoke database火焰圖像[12]、停車場(chǎng)監(jiān)控模擬火災(zāi)視頻、室內(nèi)火焰模擬視頻以及網(wǎng)絡(luò)視頻等。為了更好地對(duì)小目標(biāo)火焰進(jìn)行檢測(cè),更快對(duì)地下停車場(chǎng)火災(zāi)做出反應(yīng),通過(guò)模擬實(shí)驗(yàn)采集一部分小型火焰圖像數(shù)據(jù)。另外,地下停車場(chǎng)光線較差,普通監(jiān)控?cái)z像機(jī)容易過(guò)曝,本文對(duì)這種情況也進(jìn)行了模擬。數(shù)據(jù)集包含夜晚、燈光、日光等多種場(chǎng)景,火焰目標(biāo)大小不同,共計(jì)3 420張圖片。本文通過(guò)labelImg標(biāo)注工具對(duì)數(shù)據(jù)集圖像進(jìn)行標(biāo)注,并保存為YOLO系列的txt格式。通過(guò)對(duì)數(shù)據(jù)進(jìn)行亂序排列,隨機(jī)選出訓(xùn)練集2 394張,測(cè)試集共513張,驗(yàn)證集共513張。數(shù)據(jù)集示例如圖5所示。
圖5 數(shù)據(jù)集示例圖Figure 5 Dataset example graph
訓(xùn)練集中所有標(biāo)簽框的大小分布如圖6所示,其中橫縱坐標(biāo)分別代表標(biāo)簽框的寬度和高度。圖中深藍(lán)色表示尺寸在該區(qū)域的標(biāo)簽圖較多,更符合火災(zāi)初期火焰目標(biāo)較小的情況,所以該數(shù)據(jù)集適用于本文研究的火焰目標(biāo)檢測(cè)的問(wèn)題。
圖6 標(biāo)簽框大小分布圖Figure 6 Label box size distribution
本文通過(guò)搭建PyTorch深度學(xué)習(xí)框架對(duì)自定義數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試。操作系統(tǒng)選用Windos10專業(yè)版21H2,CPU為Ryzen 5800X,GPU為GeForceRTX3060Ti,顯存為8 GB,內(nèi)存為32 GB,CUDA版本號(hào)為11.1.1,PyTorch版本號(hào)為1.8.0。
實(shí)驗(yàn)中訓(xùn)練參數(shù)設(shè)置如下:輸入圖像尺寸為像素640×640,batch size為16,epoch設(shè)置為100。
本實(shí)驗(yàn)中采用mAP0.5、參數(shù)量(parameters)、復(fù)雜度、精確率P(precision)、召回率R(recall)和幀率等指標(biāo)[13]作為模型性能的評(píng)價(jià)指標(biāo)。其中復(fù)雜度用GFLOPs衡量,1 GFLOPs=109FLOPs,FLOPs(floating point operations)為浮點(diǎn)運(yùn)算數(shù),可以衡量模型的復(fù)雜度。
在訓(xùn)練階段,選用Ultralytics6.0版本的YOLOv5s模型作為基準(zhǔn)模型,使用上述數(shù)據(jù)集對(duì)YOLOv5s模型與本文算法進(jìn)行重新訓(xùn)練,以下所示結(jié)果均為采用同一數(shù)據(jù)集得出。
為了提升對(duì)火災(zāi)初期小的火焰目標(biāo)的檢測(cè)效果,加入小目標(biāo)檢測(cè)層模型A與YOLOv5s對(duì)比如表1所示。加入小目標(biāo)檢測(cè)層后mAP0.5提升0.9百分點(diǎn),R提升1.2百分點(diǎn),由于增加了網(wǎng)絡(luò)的深度,導(dǎo)致模型復(fù)雜度上升,幀率有所下降。
加入小目標(biāo)檢測(cè)層后,置信度損失有較大的下降,置信度損失曲線如圖7所示。隨著迭代次數(shù)的增加,本文算法的置信度損失曲線明顯收斂更快、損失值更小。
圖7 置信度損失曲線Figure 7 Confidence loss curve
通過(guò)以上實(shí)驗(yàn),說(shuō)明采用小目標(biāo)檢測(cè)層雖然幀率有所降低,但是對(duì)火焰目標(biāo)的置信度誤差大大降低,對(duì)于小的火焰目標(biāo)的檢測(cè)置信度和對(duì)網(wǎng)絡(luò)的檢測(cè)精度有所提升。因此,通過(guò)增加FPN+PAN的網(wǎng)絡(luò)深度,以及增加小目標(biāo)檢測(cè)層,能夠有效提升網(wǎng)絡(luò)對(duì)小目標(biāo)的檢測(cè)效果。
為了加強(qiáng)檢測(cè)網(wǎng)絡(luò)對(duì)火焰目標(biāo)的特征提取能力,在網(wǎng)絡(luò)加入改進(jìn)的注意力模塊,并與主流的SE注意力機(jī)制、CBAM注意力機(jī)制、原CA注意力機(jī)制進(jìn)行對(duì)比,以驗(yàn)證本文改進(jìn)結(jié)構(gòu)的性能,結(jié)果如表2所示。其中,本文模型B的mAP0.5最高,相較于YOLOv5s網(wǎng)絡(luò),mAP0.5有1.8百分點(diǎn)的提升,R提升1.4百分點(diǎn);與主流的注意力機(jī)制SE、CBAM機(jī)制相對(duì)比,模型B檢測(cè)精度及檢測(cè)速度均最高;與C3CA、CA結(jié)構(gòu)相對(duì)比,模型B的mAP0.5分別提升0.9百分點(diǎn)、1.8百分點(diǎn),R分別提升2.8百分點(diǎn)、0.5百分點(diǎn)。
表2 消融實(shí)驗(yàn)2數(shù)據(jù)表Table 2 Data sheet of ablation experiment 2
為了驗(yàn)證CIoU替換YOLOv5s中GIoU后的效果,實(shí)驗(yàn)3對(duì)比了YOLOv5s替換目標(biāo)框損失函數(shù)前后的表現(xiàn),如表3所示。使用CIoU損失函數(shù)后,mAP0.5有0.6百分點(diǎn)的提升,R提升2.3百分點(diǎn),可見(jiàn)CIoU能夠顯著提升模型的召回率。并且可以優(yōu)化模型的檢測(cè)速度。
表3 消融實(shí)驗(yàn)3數(shù)據(jù)表Table 3 Data sheet of ablation experiment 3
對(duì)各個(gè)模塊的有效性及性能進(jìn)行驗(yàn)證后,與目前主流的目標(biāo)檢測(cè)算法YOLOv3、YOLOv5s以及YOLOv5m進(jìn)行對(duì)比,對(duì)比結(jié)果如表4所示。
表4 主流目標(biāo)檢測(cè)算法對(duì)比Table 4 Comparison of mainstream target detection algorithms
實(shí)驗(yàn)表明,本文算法在地下停車場(chǎng)火焰目標(biāo)檢測(cè)任務(wù)上可達(dá)到mAP0.5為92.0%的檢測(cè)精度。相較于未改進(jìn)前的YOLOv5s算法,本文算法的mAP0.5有1.8百分點(diǎn)的提升,R有2.0百分點(diǎn)的提升,雖然犧牲了一部分的檢測(cè)速度,但是得到了具有更好檢測(cè)精度的模型。相較于YOLOv5m算法,雖然兩種算法在精度上相當(dāng),但是本文算法具有較高的召回率R以及較高的幀率,具有較快的檢測(cè)速度,且本文算法權(quán)重僅為16.4 MB,遠(yuǎn)遠(yuǎn)小于YOLOv5m的41.5 MB,對(duì)檢測(cè)設(shè)備的配置要求更低。
為了更好地驗(yàn)證本文算法對(duì)于小型火焰目標(biāo)的檢測(cè)性能,從測(cè)試集中選取部分圖像數(shù)據(jù)進(jìn)行測(cè)試,如圖8所示。在圖8(a)中,本文算法在檢測(cè)精度上明顯高于原始模型。在圖8(b)中,YOLOv5s出現(xiàn)了漏檢,無(wú)法可靠地檢測(cè)出目標(biāo),而本文算法能夠準(zhǔn)確地檢測(cè)到火焰目標(biāo),主要是因?yàn)楸疚哪P驮黾恿诵∧繕?biāo)的檢測(cè)層,從而具有更強(qiáng)的分辨力,能夠更準(zhǔn)確地檢測(cè)到小型火焰目標(biāo)。在圖8(c)中,YOLOv5s模型沒(méi)有正確框選出火焰目標(biāo),而本文算法能夠準(zhǔn)確地框選出火焰目標(biāo),這歸結(jié)于坐標(biāo)注意力機(jī)制帶來(lái)了較大的感受野,增加了模型對(duì)火焰的感知能力,并且CIoU損失函數(shù)能夠提升預(yù)測(cè)時(shí)的定位精度。
目前地下停車場(chǎng)缺乏成熟的視頻火災(zāi)檢測(cè)算法,已有的技術(shù)依賴傳感器等設(shè)備,且無(wú)法針對(duì)火災(zāi)初期小型火焰目標(biāo)做出快速反應(yīng),本文提出一種改進(jìn)的YOLOv5火災(zāi)檢測(cè)算法。
為增強(qiáng)對(duì)小型火焰目標(biāo)的檢測(cè)性能,增加小目標(biāo)檢測(cè)層,提升了檢測(cè)網(wǎng)絡(luò)對(duì)小型火焰目標(biāo)的檢測(cè)效果;為提高模型對(duì)火焰特征的提取以及獲得更大的感受野,提出了一種新的間隔注意力結(jié)構(gòu),進(jìn)一步提升了網(wǎng)絡(luò)對(duì)火焰目標(biāo)的特征提取能力,且相較于C3CA、CA結(jié)構(gòu),本文改進(jìn)模型具有復(fù)雜度較低、精度高的特點(diǎn);為了提升定位精度、降低目標(biāo)漏檢率,使用CIoU損失函數(shù),提升了網(wǎng)絡(luò)的回歸性能。在實(shí)驗(yàn)設(shè)備不變的情況下,本文算法與原YOLOv5s相比,mAP0.5提升了1.8百分點(diǎn),召回率R提升了2.0百分點(diǎn),本文算法權(quán)重大小僅為16.4 MB,幀率在本文實(shí)驗(yàn)環(huán)境下能達(dá)到113幀/s。
實(shí)驗(yàn)表明,本文算法對(duì)火焰目標(biāo)較小的情況也能夠正確檢出,具有較高的精確率和召回率、較小的模型體積,易于部署,基本能夠滿足地下停車場(chǎng)對(duì)火災(zāi)實(shí)時(shí)檢測(cè)的要求。