摘要:消防機(jī)器人是輔助消防人員獲得火災(zāi)現(xiàn)場信息、及時做出決策的有力幫手。針對消防機(jī)器人在火災(zāi)現(xiàn)場消防作業(yè)時面臨的檢測精確度有待進(jìn)一步提高、模型運(yùn)算量大的問題,提出一種改進(jìn)YOLOv5的消防機(jī)器人火焰檢測算法。該方法在YOLOv5原始模型的特征提取部分加入Involution算子,擴(kuò)大感受野的同時使網(wǎng)絡(luò)更輕量化,并且在特征提取和特征融合部分加入CBAM注意力機(jī)制,增強(qiáng)網(wǎng)絡(luò)中對特征的提取,并保證底層特征圖的特征信息,還在損失函數(shù)計(jì)算中引入新的邊界框損失函數(shù)α-CIoU,以提升模型的收斂速度和對數(shù)據(jù)集的魯棒性。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的模型平均檢測精度達(dá)93.6%,模型計(jì)算量下降58%,該方法有效提升了火焰檢測的精度,降低了模型的計(jì)算量。
關(guān)鍵詞:火焰檢測;注意力機(jī)制;邊界框損失函數(shù)
中圖分類號:TP391.4 文獻(xiàn)標(biāo)志碼:A doi:10.3969/j.issn.1006-0316.2024.04.010
文章編號:1006-0316 (2024) 04-0067-07
Research on Flame Detection of Firefighting Robot Based on YOLOv5
CHEN Chunxia,WANG Ling,LI Yangyang,WANG Xianjun
( School of Mechanical Engineering, Sichuan University, Chengdu 610065, China )
Abstract:Firefighting robots strongly assist firefighters in obtaining information about fire scenes and making timely decisions. However, the detection accuracy and high computational complexity of the model in firefighting operations needs to be further improved. An improved YOLOv5 flame detection algorithm for fire-fighting robots is proposed. This method adopts the Involution operator to the feature extraction part of the original YOLOv5 model, which expands the receptive field and makes the network lighter. CBAM attention mechanism is introduced to the feature extraction and feature fusion part to further reform the feature extraction in the network. Furthermore, to ensure the feature information of the underlying feature map, a new bounding box loss function α-CIoU is added in the loss function calculation to improve the convergence speed of the model and the robustness to the data set. The experimental results demonstrate that the improved model achieves an average detection accuracy of 93.6% and reduces the computational workload of the model by 58%. This method effectively enhances the accuracy of flame detection while reducing the model's computational overhead.
Key words:flame detection;attention mechanisms;boundary box loss function
2022年全國消防救援隊(duì)伍共接報火災(zāi)82.5萬起,死亡2053人、受傷2122人,直接財(cái)產(chǎn)損失71.6億元,與2021年相比,起數(shù)、傷亡人數(shù)分別上升7.8%和1.2%[1]。財(cái)產(chǎn)損失和人員傷亡令人觸目驚心。及早檢測并獲得火災(zāi)現(xiàn)場的相關(guān)信息,才能最大程度上挽救國家和人民的財(cái)產(chǎn)損失,保障國民的生命安全。使用消防機(jī)器人配合滅火作業(yè)已經(jīng)成為一種必然趨勢。基于視頻圖像的實(shí)時檢測以及精準(zhǔn)識別是消防機(jī)器人實(shí)現(xiàn)高效滅火的關(guān)鍵,因此,對于消防機(jī)器人檢測的快速性和準(zhǔn)確性有著較高的要求。傳統(tǒng)目標(biāo)檢測算法檢測流程復(fù)雜、計(jì)算量較大,無法滿足消防機(jī)器人現(xiàn)場滅火時對火焰檢測的實(shí)時性與快速性要求。
目前基于深度學(xué)習(xí)的目標(biāo)檢測算法發(fā)展迅速,主要有Faster-RCNN(Region-Convolutional Neural Networks,基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò))、R-FCN(Region-based Fully Convolutional Network,基于區(qū)域的全卷積神經(jīng)網(wǎng)絡(luò))、SSD(Single Shot MultiBox Detector,單次多框檢測器)以及YOLO(You Only Look Once)。前兩者為雙步目標(biāo)檢測算法,后兩者為單步目標(biāo)檢測算法。單步目標(biāo)檢測算法在精度不下降過多的同時,兼具了運(yùn)算速度快、實(shí)時性好、對硬件要求低等優(yōu)點(diǎn),被廣泛應(yīng)用于目標(biāo)實(shí)時檢測領(lǐng)域中。并且,YOLO算法的精確度和檢測時間都明顯優(yōu)于其他三種算法[5]。
國內(nèi)外學(xué)者使用YOLO系列相關(guān)模型對火焰進(jìn)行檢測,取得了大量成果。ZHAO等[2]使用MobileNetV3替換骨干網(wǎng)絡(luò),使得參數(shù)數(shù)量減少62.78%,推理速度提高3.04倍。GOYAL S等[3]提出一種Fire-YOLO檢測模型,從三維擴(kuò)展特征提取網(wǎng)絡(luò),增強(qiáng)了火災(zāi)小目標(biāo)識別的特征傳播。王龍興等[4]增加Involution算子,引入CA(Coordinate Attention,協(xié)調(diào)注意力)注意力機(jī)制。改進(jìn)后的算法平均精度提高了3.9%,檢測速度提高了14%。宋華偉等[5]使用K-means聚類方法獲取數(shù)據(jù)集先驗(yàn)錨框,在頸部中引入雙向交叉尺度融合模塊,改進(jìn)后的算法平均精度提升了3.2%,檢測速度達(dá)243幀/s。陳露萌等[6]針對小火焰目標(biāo)引入一個小目標(biāo)檢測層,獲取小于8×8像素的火焰特征,使用α-CIoU作為新的邊界框損失函數(shù),改進(jìn)后的算法平均精度提高了7.4%,檢測速度達(dá)到68幀/s。常麗等[7]提出YOLOv5s-SRGAN融合算法,引入了CBAM(Convolutional Block Attention Module,卷積塊注意力模塊)注意力機(jī)制模塊和梯度均衡機(jī)制,火焰檢測的平均正確率提高了44%。
YOLOv5算法在檢測速度方面十分優(yōu)秀,但檢測精度還有待優(yōu)化提升。該算法存在以下缺陷:特征提取中使用Conv結(jié)構(gòu),卷積得到了大量特征圖,造成了特征冗余,檢測精度不高;YOLOv5網(wǎng)絡(luò)龐大,影響火焰的檢測速度。為解決上述問題,本文以最新的YOLOv5模型為基礎(chǔ),提出一種基于改進(jìn)模型的火焰檢測方法。首先,引入Involution算子,擴(kuò)大感受野,輕量化網(wǎng)絡(luò)結(jié)構(gòu)。其次,在特征提取網(wǎng)絡(luò)的前端以及特征融合網(wǎng)絡(luò)的尾部均加入CBAM注意力機(jī)制,增強(qiáng)網(wǎng)絡(luò)對重要特征的感知能力,以幫助模型更加精準(zhǔn)地定位和識別火焰目標(biāo)。最后,在損失函數(shù)的計(jì)算部分引入新的邊界框損失函數(shù)α-CIoU,以提升模型的收斂速度和魯棒性。
1 基于YOLOv5網(wǎng)絡(luò)算法改進(jìn)
1.1 "YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv5是一種實(shí)時目標(biāo)檢測算法,其在輸入端沿用前面YOLO系列算法本身自帶的Mosaic數(shù)據(jù)增強(qiáng)。Mosaic數(shù)據(jù)增強(qiáng)后的4張圖片如圖1所示。
YOLOv5的Backbone端包含了C3結(jié)構(gòu)和其他YOLO版本沒有的Focus結(jié)構(gòu)。Focus結(jié)構(gòu)的作用是切片。CSP(Cross Stage Partial)結(jié)構(gòu)將輸入特征圖分成兩個部分,將其中一個部分通過若干個卷積層后與另一個部分進(jìn)行跨階段連接,然后進(jìn)行特征融合,有效地減少網(wǎng)絡(luò)的參數(shù)數(shù)量,降低網(wǎng)絡(luò)的計(jì)算復(fù)雜度,提高網(wǎng)絡(luò)的泛化能力。Backbone尾端的SPPF(Spatial Pyramid Pooling Feature Fusion)結(jié)構(gòu)主要用于提供圖像特征,幫助模型更好地捕捉目標(biāo)的空間結(jié)構(gòu)和語言義信息,提高模型的運(yùn)行效率。
Neck部分主要用于生成特征金字塔,這將增強(qiáng)模型對不同尺度物體的檢測,使其能夠識別不同大小和尺度的同一物體。Neck部分中包含特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks,F(xiàn)PN)和路徑聚合網(wǎng)絡(luò)(Path Aggregation Network,PAN)兩種結(jié)構(gòu)。FPN是自頂向下的,主要通過上采樣融合特征信息,然后通過PAN結(jié)構(gòu)自底向上融合特征信息兩次,通過下采樣操作,融合特征信息,輸出預(yù)測的特征圖。
YOLOv5的輸出端即檢測層,主要作用是將特征圖轉(zhuǎn)換為目標(biāo)檢測的結(jié)果,包含了預(yù)測框、損失函數(shù)、非極大值抑制三部分。YOLOv5中的檢測層采用Anchor-free的方式進(jìn)行目標(biāo)檢測,直接預(yù)測物體的中心點(diǎn)、廣度和高度的緯度,以及物體分類。YOLOv5的損失函數(shù)包括邊界框損失函數(shù)、目標(biāo)置信度損失函數(shù)和分類損失函數(shù)。
1.2 "Involution算子
傳統(tǒng)的卷積操作存在一些缺點(diǎn),如限制卷積的感受野、針對小目標(biāo)或模糊圖像效果差、卷積濾波器內(nèi)部的信息冗余問題突出等。Involution算子可以根據(jù)數(shù)據(jù)特征自適應(yīng)地學(xué)習(xí)權(quán)重,通過內(nèi)部自適應(yīng)地調(diào)整卷積核的大小和位置,來提高特征表達(dá)能力和感受野。本文引入Involution算子,在不同位置上自適應(yīng)地分配權(quán)重,從而對空間域中信息最豐富的視覺元素進(jìn)行優(yōu)先排序,擴(kuò)大感受野,降低信息冗余問題的影響。該算子由兩部分組成,第一部分是生成卷積核,計(jì)算如式(1)所示;第二部分是計(jì)算內(nèi)卷積。具體實(shí)現(xiàn)方式為,將輸入的特征圖劃分成多個格子,每個格子內(nèi)部進(jìn)行卷積操作,如圖2所示。
H為圖像的高度;W為圖像的寬度;C為圖像的通道數(shù)。
首先通過φ變換得到對應(yīng)通道數(shù)的權(quán)重值,重新進(jìn)行排列,得到所需大小的卷積核。由于采用分組操作,此時獲取的卷積核通道數(shù)小于原圖的通道數(shù),故要對其進(jìn)行組內(nèi)廣播操作,從而獲取大小為K×K×C的卷積核。計(jì)算內(nèi)卷積是將特征圖上Xi,j的點(diǎn)擴(kuò)展到K×K大小后展開,再先與卷積核相乘,然后累加,輸出最終結(jié)果。
Hi,j=φ ( Xi,j )=W1σ (W0 Xi,j ) " " " " (1)
式中:Hi,j為生成的卷積核;φ表示φ變換;W0和W1為1×1的卷積,目的是對特征圖通道數(shù)進(jìn)行縮放,降低計(jì)算量;σ表示對特征向量進(jìn)行批標(biāo)準(zhǔn)化(Batch Normalization,BN)和激活函數(shù)操作。
1.3 引入CBAM注意力機(jī)制
CBAM是一種利用增強(qiáng)卷積神經(jīng)網(wǎng)絡(luò)感知野的注意力機(jī)制,主要由通路注意力和空間注意力兩部分組成,結(jié)構(gòu)圖如圖3所示。通道注意力模塊主要關(guān)注不同通道之間的特征重要性,通過對每個通道的特征圖F進(jìn)行全局平均池化,得到一個通道維度上的全局特征描述。然后,通過兩個全連接層(一般為一個全連接層和一個激活函數(shù)層),將全局特征描述映射為一個權(quán)重向量。最后,將這個權(quán)重向量與原始特征圖進(jìn)行元素乘法,得到加權(quán)后的特征圖,即Mc。空間注意力模塊將通道注意力模塊輸出的特征圖F'作為本模塊的輸入特征圖,通過在特征圖上應(yīng)用兩個并行的卷積操作,提取特征圖中不同尺度的特征。然后,通過一個sigmoid激活函數(shù)將這些特征融合起來,得到一個空間注意力圖,即Ms。最后將該特征圖和該模塊的輸入特征圖做乘法,得到最終生成的特征。表達(dá)式為:
F'=F×Mc (F ) " " " " " " " " " "(2)
F''=F×Ms (F' ) " " " " " " " " " (3)
本文在網(wǎng)絡(luò)的特征提取和特征融合階段分別加入CBAM注意力機(jī)制。改進(jìn)后的YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
1.4 邊界框損失函數(shù)
YOLOv5算法的損失函數(shù)由分類損失函數(shù)、目標(biāo)置信度損失函數(shù)及邊界框損失函數(shù)三部分組成。YOLOv5原始模型的邊界框損失函數(shù)為CIoU-loss。最初YOLO系列的邊界框損失函數(shù)為IoU(Intersection over Union),如圖5所示。IoU作邊界框損失函數(shù)時會存在兩個邊框不重合的情況,無法反映兩個邊框的距離,IoU的計(jì)算為0,出現(xiàn)梯度消失、不能進(jìn)行訓(xùn)練優(yōu)化的問題。
因此,陸續(xù)有學(xué)者提出了改進(jìn)的邊界框損失函數(shù)。Zheng等[11]提出的CIoU(Complete Intersection over Union)同時考慮了預(yù)測框和目標(biāo)框之間的中心點(diǎn)距離、重疊面積及長寬比問題,可以有效解決上述問題,且能夠加快模型收斂,其計(jì)算如式(4)~(6)所示。He等[12]提出一種新的功率邊界框損失函數(shù)α-CIoU,即在現(xiàn)有CIoU損失計(jì)算中引入功率冪變換,其計(jì)算如式(7)所示。
式中:L為邊界框損失函數(shù);IoU為預(yù)測框與真實(shí)框的交并比;b和 分別為真實(shí)框和預(yù)測框的中心點(diǎn), 為預(yù)測框與真實(shí)框的中心點(diǎn)的歐式距離;c為可以同時包含預(yù)測框和真實(shí)框的最小區(qū)域的對角線長度; 和 分別為真實(shí)框和預(yù)測框的寬高比; 為權(quán)重系數(shù); 為預(yù)測框與真實(shí)框的高度和寬度的相似度。
式(7)中,通過調(diào)節(jié)α的數(shù)值可以獲得不同的效果,當(dāng)α>1時會加大對目標(biāo)的損失和梯度權(quán)重,從而使回歸精度提升。α=3表現(xiàn)一貫良好,故本文選取α=3。
本文采用了新的邊界框損失函數(shù)α-CIoU。α-CIoU同時結(jié)合了α-IoU和CIoU的優(yōu)點(diǎn),能有效解決YOLOv5原始模型中邊界框損失函數(shù)的缺點(diǎn),并加快模型收斂,使回歸框定位更加精準(zhǔn),從而使模型檢測性能更好。
2 實(shí)驗(yàn)
2.1 數(shù)據(jù)集的改進(jìn)
訓(xùn)練神經(jīng)網(wǎng)絡(luò)需要大量數(shù)據(jù)。目前對于火焰沒有公開的統(tǒng)一數(shù)據(jù)集,所以本次實(shí)驗(yàn)的數(shù)據(jù)集源于自建,主要來自互聯(lián)網(wǎng)數(shù)據(jù)集,背景較為復(fù)雜,包含大量行人、樹木、房屋等干擾信息。為確保實(shí)驗(yàn)有效性,首先,對圖片進(jìn)行篩選,刪除相似度過高的圖片,但由于來源廣泛,仍存在部分圖片類似或重復(fù)的情況,共計(jì)4503張火災(zāi)圖片。其次,對圖像進(jìn)行數(shù)據(jù)增強(qiáng)處理,包括亮度平衡、鏡像、旋轉(zhuǎn)等,如圖6所示。利用開源軟件LabelImg對該數(shù)據(jù)集進(jìn)行標(biāo)注,標(biāo)注文件格式儲存為.txt,標(biāo)記類別為fire。最后,數(shù)據(jù)增強(qiáng)后的圖片共計(jì)8263張,按照7:2:1的比例將該數(shù)據(jù)集劃分為訓(xùn)練集5784張、驗(yàn)證集1652張和測試集827張,用于模型的訓(xùn)練和測試。
2.2 實(shí)驗(yàn)環(huán)境
此次實(shí)驗(yàn)采用64位Windows10專業(yè)版操作系統(tǒng),Pytorch2.0版本框架,集成開發(fā)環(huán)境為PyCharm。平臺硬件參數(shù)為:CPU為i7,內(nèi)存大小為32G,GPU為NVDIA GeForce RTX 3060 Laptop GPU。利用Python語言編寫程序代碼,并調(diào)用numpy、pandas、OpenCV等所需庫,實(shí)現(xiàn)火焰檢測模型的訓(xùn)練和測試。所構(gòu)建的網(wǎng)絡(luò)模型均基于PyTorch深度學(xué)習(xí)框架,開發(fā)環(huán)境為PyTorch 2.0.0,CUDA 11.7,Python 3.8。訓(xùn)練批次(batch size)為16,最大迭代次數(shù)(epoch)設(shè)為200。完成訓(xùn)練后,通過與原始YOLOv5模型及改進(jìn)的YOLOv5模型比較,驗(yàn)證改進(jìn)后的YOLOv5火焰檢測模型的正確性和有效性。
2.3 結(jié)果分析
2.3.1 改進(jìn)模型的性能分析
本文為驗(yàn)證改進(jìn)后的模型與原始模型檢測性能的影響,分別設(shè)計(jì)了4組實(shí)驗(yàn)。首先,實(shí)驗(yàn)均使用相同的數(shù)據(jù)集及相同的參數(shù)設(shè)置,以保證模型的有效性,實(shí)驗(yàn)結(jié)果如表1所示。
可以看出,YOLOv5原始網(wǎng)絡(luò)沒有使用任何改進(jìn)策略,檢測精度為92.8%,GLOPs為15.8。改進(jìn)網(wǎng)絡(luò)1在YOLOv5原始網(wǎng)絡(luò)的基礎(chǔ)上引入了Involution算子,擴(kuò)大感受野的同時使網(wǎng)絡(luò)更輕量化,減少參數(shù)與計(jì)算量,檢測精度上升0.2%,模型精度提升1%,GLOPs僅為原始網(wǎng)絡(luò)運(yùn)算量的42%;改進(jìn)網(wǎng)絡(luò)2在改進(jìn)網(wǎng)絡(luò)1的基礎(chǔ)上增加了CBAM注意力機(jī)制,增強(qiáng)了網(wǎng)絡(luò)中對特征的提取,并保證了底層特征圖的特征信息,同時有效抑制不必要的特征,檢測精度上升0.6%,同時由于增加網(wǎng)絡(luò)層數(shù)引入新的卷積操作,GLOPs略微有所上升;改進(jìn)網(wǎng)絡(luò)3在改進(jìn)網(wǎng)絡(luò)2的基礎(chǔ)上再引入了一種新的邊界框損失函數(shù)α-CIoU,使得當(dāng)目標(biāo)框與預(yù)測框不重合時,梯度消失的情況得以解決,模型收斂得更快,并且在回歸框定位時更加精準(zhǔn)。綜上所述,本文所提出的改進(jìn)YOLOv5模型比YOLOv5原始模型的火焰檢測精度提升0.8%,模型精度提升1.5%,GLOPs下降9.1,僅為原始網(wǎng)絡(luò)的42%。
2.3.2 測試結(jié)果
為證明提出的改進(jìn)YOLOv5火焰檢測模型具有良好普適性,能實(shí)現(xiàn)對絕大多數(shù)陌生火焰圖像的準(zhǔn)確檢測,通過測試集火焰圖像對模型進(jìn)行了測試,結(jié)果如圖7所示。測試集中的圖像與訓(xùn)練集以及驗(yàn)證集中的圖像無大量重疊,所以由檢測結(jié)果可知,基于改進(jìn)YOLOv5的火焰檢測模型能夠準(zhǔn)確識別出陌生火焰圖像中的火焰目標(biāo),模型具有良好的泛化性和魯棒性。
3 結(jié)束語
針對火焰檢測存在實(shí)時性不足的問題,本文提出了一種基于改進(jìn)YOLOv5模型的實(shí)時火焰檢測方法,該方法在YOLOv5原始模型的特征提取部分引入Involution算子,在特征提取以及特征融合部分引入CBAM注意力機(jī)制,在損失函數(shù)計(jì)算中引入新的邊界框損失α-CIoU。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的模型平均檢測精度達(dá)93.6%,模型精度為92.2%,10億次浮點(diǎn)運(yùn)算量下降9.1,僅為原始網(wǎng)絡(luò)的42%。該方法有效提升了火焰檢測的精度,降低了模型的運(yùn)算量。在未來的工作中,將針對消防機(jī)器人的工作場景及其本身的特性,調(diào)整模型的部署,同時收集更多不同背景、不同光線下的各類火焰圖像,豐富數(shù)據(jù)集,以增強(qiáng)模型應(yīng)對各種復(fù)雜場景的能力,進(jìn)一步提升模型的泛化性和魯棒性。
參考文獻(xiàn):
[1]國家消防救援局. 【消防要聞】2022全國警情與火災(zāi)情況[EB/OL]. [2023-3-24]. https://www.119.gov.cn/qmxfxw/xfyw/2023/ 36210.Shtml.
[2]ZHAO L,ZHI L,ZHAO C,et al. Fire-YOLO: A small target object detection method for fire inspection[J]. Sustainability,2022,14(9):4930.
[3]GOYAL S,SHAGILL M D,KAUR A,et al. A YOLO based technique for early forest fire detection[J]. Semanticscholar,2020(4):049620.
[4]王龍興,劉為國,朱洪波. 基于改進(jìn)YOLOv5算法的火災(zāi)圖像檢測研究[J]. 湖北民族大學(xué)學(xué)報(自然科學(xué)版),2022,40(2):196-201.
[5]宋華偉,屈曉娟,楊欣,等. 基于改進(jìn)YOLOv5的火焰煙霧檢測[J]. 計(jì)算機(jī)工程,2023,49(6):250-256.
[6]陳露萌,曹彥彥,黃民,等. 基于改進(jìn)YOLOv5的火焰檢測方法[J]. 計(jì)算機(jī)工程,2023,49(8):291-301,309.
[7]常麗,張雪,蔣輝,等. 融合YOLOv5s與SRGAN的實(shí)時隧道火災(zāi)檢測[J]. 電子測量與儀器學(xué)報,2022,36(8):223-230.
[8]陳思,張濤川,劉修泉,等. 基于YOLO神經(jīng)網(wǎng)絡(luò)及機(jī)器視覺的火焰檢測研究[J]. 信息技術(shù)與信息化,2022,264(3):107-110.
[9]李贊. 基于深度學(xué)習(xí)的火災(zāi)檢測研究與實(shí)現(xiàn)[D]. 銀川:寧夏大學(xué),2021.
[10]LIU Y,SHAO Z,TENG Y,et al. NAM:Normalization-based attention module[D]. Isaka:Comell University,2021.
[11]ZHENG Z,WANG P,REN D,et al. Enhancing geometric factors in model learning and inference for object detection and instance segmentation[EB/OL]. [2020-05-07]. https://arxiv.org/abs/2005. 03572.
[12]HE J,ERFANI S,MA X,et al. Alpha-IoU :A family of power intersection over union losses for bounding box regression[EB/OL]. [2021-10-26]. https://arxiv.org/abs/2110.13675.