張小雪,王 雨,吳思遠,孫幫勇,*
1 西安理工大學(xué)印刷包裝與數(shù)字媒體學(xué)院,陜西 西安 710054;
2 中國科學(xué)院西安光學(xué)精密機械研究所光譜成像技術(shù)重點實驗室,陜西 西安 710119
火災(zāi)是人類日常生活中的主要災(zāi)害之一,及時、準確地發(fā)現(xiàn)火災(zāi)可以為消防滅火、人員救助贏得寶貴時間,有效保障人們生命財產(chǎn)安全。隨著成像傳感器和智能計算的發(fā)展,火災(zāi)檢測已逐漸發(fā)展為寬波段探測和實時信息處理的自動檢測過程。
分析火災(zāi)檢測技術(shù)的發(fā)展過程可知,火災(zāi)檢測主要分為兩類:基于傳感器原理的火災(zāi)檢測和基于計算機視覺的火災(zāi)檢測?;趥鞲衅髟淼幕馂?zāi)檢測主要利用煙霧傳感器、顏色傳感器或者熱傳感器進行火焰或者煙霧的識別。應(yīng)用該類傳感器檢測火災(zāi)時,只有火焰或者煙霧彌散至傳感器一定距離范圍內(nèi)且達到濃度閾值才能觸發(fā)報警,因此無法對早期火災(zāi)進行準確預(yù)警,不適合用于較大場景或者相對開放的空間。同時,基于傳感器的火災(zāi)檢測方法誤檢率較高,在實際應(yīng)用中存在一定缺陷。
近年來,計算機視覺技術(shù)快速發(fā)展,在火災(zāi)檢測領(lǐng)域圍繞計算機視覺技術(shù)可分為基于機器學(xué)習(xí)和基于深度學(xué)習(xí)兩類檢測方法。基于機器學(xué)習(xí)的火災(zāi)檢測,肖瀟等[1]主要利用模式識別原理進行火焰特征與煙霧特征提取,進而實現(xiàn)火災(zāi)檢測?;馂?zāi)檢測的關(guān)鍵是對火災(zāi)特征的提取和識別,現(xiàn)有機器學(xué)習(xí)的檢測方法大多是通過研究火焰和煙霧的靜態(tài)特征和動態(tài)特征完成檢測。其中,靜態(tài)特征主要包括顏色特征、形狀特征、紋理特征和邊緣特征等;動態(tài)特征主要包括運動特征、形狀的變化等。例如,Demirel 等人[2]提出一種對火焰像素在YCrCb 顏色空間進行分類的算法,通過對火焰和非火焰像素進行訓(xùn)練,構(gòu)建了火焰像素分類器。但是該方法誤報率較高,無法運用到實際場景。Qiu等人[3]提出一種邊緣檢測算法用于分割火焰前景,但主要適用于背景簡單的火災(zāi)場景,在復(fù)雜背景下難以正確分割出火焰。邵婧等人[4]提出基于動態(tài)紋理特征分析的火災(zāi)檢測算法,對較大空間的火災(zāi)檢測率較高,但難以區(qū)分實際火災(zāi)區(qū)域和顏色與火焰近似的非火災(zāi)區(qū)域。為了降低誤報率,Surit 等人[5]通過提取火焰的靜態(tài)與動態(tài)特征,對接近火焰和煙霧特征的區(qū)域進行分析并提出一種誤檢率較低的火災(zāi)檢測模型。總體上,大部分基于機器學(xué)習(xí)的火災(zāi)檢測方法是針對特定的單一場景提出,所建立的檢測模型泛化能力差,容易受火災(zāi)區(qū)域周圍環(huán)境的影響,特別是光照、天氣等因素,難以適應(yīng)復(fù)雜實際場景的火災(zāi)檢測需求。
基于深度學(xué)習(xí)的火災(zāi)檢測方法在最近幾年取得了顯著性進展,具有準確性高、成本低、速度快等優(yōu)勢,已被證明可應(yīng)用于多種現(xiàn)實場景的火災(zāi)檢測任務(wù)。比如,Zhang 等人[6]提出了一種聯(lián)合的深度卷積網(wǎng)絡(luò)火災(zāi)分類器,首先在全局圖像上對火災(zāi)特征進行提取,然后在感興趣火災(zāi)區(qū)域使用細粒度面片分類器檢測火災(zāi)面片的精確位置。Dunnings 等人[7]在訓(xùn)練時間不變的情況下,使用降低復(fù)雜度的深卷積神經(jīng)網(wǎng)絡(luò)Inceptionv1 進行實時火災(zāi)區(qū)域檢測。Sharma 等人[8]在數(shù)量較少的火災(zāi)數(shù)據(jù)集上使用VGG16 和ResNet50預(yù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)進行火災(zāi)數(shù)據(jù)集的訓(xùn)練,并在全連接層上進行微調(diào)以增強這些網(wǎng)絡(luò)。后來,為了進一步提高火災(zāi)檢測性能,Akhloufi 等人[9]提出一種Deep-Fire 卷積神經(jīng)網(wǎng)絡(luò)算法,在復(fù)雜的火災(zāi)圖像上取得了較高檢測精度。任嘉鋒等人[10]基于改進的YOLOv3 網(wǎng)絡(luò)提出火災(zāi)檢測方法,其針對YOLOv3小目標識別性能不足的問題進行改進,將火災(zāi)檢測與識別任務(wù)轉(zhuǎn)換為多分類識別和坐標回歸問題。而繆偉志等人[11]通過改進YOLOv4 網(wǎng)絡(luò)并將其部署在嵌入式設(shè)備上進行森林火災(zāi)檢測,獲得了較低的誤檢率,不過實時性較差。劉凱等人[12]提出支持向量機算法,建立了實時監(jiān)測系統(tǒng)對森林火災(zāi)進行全天候自動檢測,但網(wǎng)絡(luò)的訓(xùn)練過程較復(fù)雜。為了減少模型復(fù)雜度,提高檢測速度,皮駿等人[13]基于YOLOv5s 的輕量化森林火災(zāi)檢測方法,進行了分類實驗,采用 Shufflenetv2替換主干網(wǎng)絡(luò),有效降低了參數(shù)量,不過檢測精度仍有待提高。以上基于深度學(xué)習(xí)的火災(zāi)檢測網(wǎng)絡(luò),在與訓(xùn)練集類似的場景下都獲得了相對滿意的檢測結(jié)果,但仍存在一些不足:1)模型的泛化能力仍有待提高,難以滿足復(fù)雜場景中多尺度火災(zāi)目標的檢測要求;2)對小目標的火災(zāi)檢測精度低,尤其是遠距離的小型火災(zāi)目標經(jīng)常被漏檢;3)模型的速度與精度難以達到平衡,在現(xiàn)實場景應(yīng)用中仍存在缺陷。
針對以上問題,本文基于YOLOv5s 網(wǎng)絡(luò)基礎(chǔ)框架,提出了一種基于級聯(lián)稀疏查詢機制的輕量化火災(zāi)檢測網(wǎng)絡(luò)LFNet。首先,對傳統(tǒng)YOLOv5s 的主干網(wǎng)絡(luò)CSPDarkNet 進行改進,在網(wǎng)絡(luò)中嵌入了一種輕量化的注意力模塊ECA[14](efficient channel attention),建立了新的主干網(wǎng)絡(luò)模塊ECDNet (efficient channel attention darkNet)。ECDNet 能夠在不同級別的特征層中提取細粒度更高的特征信息,解決了多尺度火焰特征導(dǎo)致的檢測精度低等問題;同時設(shè)計了一種新的輕量化級聯(lián)查詢模塊CSQH (cascade sparse query head,CSQH)用于預(yù)測火焰概率和位置,能夠在不增加網(wǎng)絡(luò)參數(shù)量的情況下提高較小火焰目標的檢測性能。
針對火災(zāi)檢測任務(wù),本文設(shè)計了一種輕量化的檢測網(wǎng)絡(luò)LFNet,結(jié)構(gòu)上主要包含:主干網(wǎng)絡(luò)ECDNet、深度特征提取模塊FPN+PAN 以及火災(zāi)預(yù)測模塊CSQH。如圖1 所示,火災(zāi)檢測過程中,首先,輸入彩色圖像在主干網(wǎng)絡(luò)ECDNet 中進行特征提取,獲得不同級別和不同細粒度的煙霧特征;然后,主干網(wǎng)絡(luò)提取的特征被送入深度特征提取模塊FPN+PAN 進行深度特征提取和融合,從而對煙霧特征進行深度處理和提??;最后,在設(shè)計的輕量化預(yù)測模塊CSQH 中引入級聯(lián)查詢機制,計算出不同尺度火焰目標的類別概率和位置。
圖1 LFNet 網(wǎng)絡(luò)架構(gòu)圖Fig.1 Network architecture of LFNet
現(xiàn)有火災(zāi)檢測系統(tǒng)多基于YOLOv5 主干網(wǎng)絡(luò)進行特征提取,然而通過大量實驗發(fā)現(xiàn),YOLOv5 主干網(wǎng)絡(luò)中的殘差結(jié)構(gòu)易造成部分細粒度特征丟失,使得一些類火和類煙目標被檢測為火焰,導(dǎo)致火災(zāi)檢測系統(tǒng)的誤檢率偏高。為此,本文對傳統(tǒng)的YOLOv5 主干網(wǎng)絡(luò)中的殘差結(jié)構(gòu)進行改進。如圖1 所示,主干網(wǎng)絡(luò)ECDNet 主要包括Focus 模塊、CBL 層、ECSP1_3模塊、ECSP1_9 模塊、SPP (spatial pyramid pooling)模塊以及ECSP2_3 模塊。首先輸入 640×640×3的彩色圖像到主干網(wǎng)絡(luò)ECDNet 中,F(xiàn)ocus 模塊對進入主干網(wǎng)絡(luò)的圖片進行切片處理得到 320×320×64的特征圖,切片操作目的解決圖像下采樣中的信息丟失問題。接著通過CBL 層和ECSP 模塊進行特征提取,其中殘差結(jié)構(gòu)ECSP1_3、ECSP1_9 以及ECSP2_3 中嵌入了輕量化注意力模塊ECA,有助于提高不同細粒度特征的提取精度,SPP 模塊有效地避免了對特征信息的重復(fù)提取。為了得到不同級別和不同細粒度的特征圖,文中采用步長為2 的3×3 卷積核提取特征,卷積核個數(shù)分別為 256、512、1024,選擇 C1:80×80×256、C2:40×40×512、C3:20×20×1024 三種不同尺寸的特征圖送入深度特征提取模塊進行特征融合。
ECSP 模塊是一種嵌入了ECA 注意力的輕量化殘差模塊,能夠在增加少量參數(shù)的情況下,有效避免網(wǎng)絡(luò)殘差結(jié)構(gòu)中細粒度特征的丟失,從而實現(xiàn)網(wǎng)絡(luò)特征提取能力的提升。ECA 注意力模塊本質(zhì)是一種未降維的跨通道交互模塊,其中,不降維有利于細粒度特征的提取,跨通道交互能夠降低模型復(fù)雜度并提高檢測精度。ECA 模塊的結(jié)構(gòu)如圖2 所示,H、W代表高和寬,C表示通道維數(shù)。若定義K代表跨通道交互的相鄰?fù)ǖ罃?shù),則其與所采用1×1卷積的卷積核數(shù)相同,也與通道維數(shù)C成正比。在ECA 模塊中,利用非線性函數(shù),當(dāng)確定通道維數(shù)C后,K值就可以自適應(yīng)地通過式(1)計算:
圖2 ECA 注意力模塊原理示意圖Fig.2 Efficient channel attention module
其中:|.|odd表示取最鄰近奇數(shù)操作,m 和o 是常數(shù),本文分別取為2 和1。另外,在特征提取部分的通道數(shù)C值設(shè)定為32,64,128,256,則通過公式計算可得,本文方法的K值分別為3、3、4、4。利用式(1)自適應(yīng)確定K值,能夠顯著降低特征提取過程的運算量。
ECA 注意力模塊通過對特征圖進行通道維度的注意力加權(quán),可以捕捉到空間上不同位置之間的關(guān)聯(lián)性。如圖3 所示,嵌入ECA 注意力模塊后可幫助ECDNet 更好地捕捉火災(zāi)特征。此外ECA 注意力模塊在增強特征表達的同時,可以減少計算資源的消耗,從而提高模型檢測性能和實時性。
圖3 (a)原圖;(b)注意力熱力圖Fig.3 (a) Original;(b) Attention mechanism heat map
深層特征提取模塊主要對主干網(wǎng)絡(luò)輸出的不同層級的特征圖進行多尺度融合,并將圖像特征傳遞給預(yù)測模塊。如 圖1 所示,深層特征提取采用了FPN+PAN 結(jié)合的雙金字塔結(jié)構(gòu)。FPN (Feature pyramid network,特征金字塔網(wǎng)絡(luò))自頂向下,將高層的語義特征往下傳遞,得到預(yù)測的特征圖[15]。而PAN (path aggregation network,路徑聚合網(wǎng)絡(luò))能夠針對FPN 傳遞的語義特征信息進一步增強和融合[16]。深層特征提取模塊通過在特征金字塔網(wǎng)絡(luò)FPN 的后面增加一個PAN 自底向上的路徑,用底層精確的定位信息來增強整個特征層次結(jié)構(gòu),從而縮短底層特征與高層特征之間的信息路徑。因此,主干網(wǎng)絡(luò)提取的淺層特征,通過FPN+PAN 模塊進一步提取后,得到特征圖更精確的語義信息和定位信息,這將有利于提高預(yù)測模塊對于小目標火災(zāi)的檢測精度。
為了提高小目標煙霧的檢測精度,本文在預(yù)測部分Head 中嵌入了用于提高小目標檢測精度的輕量化級聯(lián)稀疏查詢機制[17],建立了新的預(yù)測模塊CSQH。該模塊不僅能夠提高小火焰目標的檢測性能,而且所采用的級聯(lián)稀疏卷積降低了模型參數(shù)量,能夠提高模型速度。
CSQH 預(yù)測模塊的查詢操作包括查詢鍵、查詢層、查詢值。具體實現(xiàn)過程如圖1 所示,圖像被送入主干和深層特征提取模塊,經(jīng)過FPN+PAN 加工生成了一系列不同分辨率的特征圖 Pl(l為特征圖的級別)。Pl同時也作為預(yù)測模塊CSQH 中的查詢層(通過實驗,本文選擇從P3層開始查詢),每一層從上一層接收一組小目標的查詢鍵,即小目標的粗略位置,并應(yīng)用查詢操作生成稀疏特征圖。然后稀疏檢測頭和稀疏查詢頭利用查詢鍵預(yù)測對應(yīng)目標的查詢值,即上一層對應(yīng)目標的檢測框位置和類別概率,從而逐漸得到圖像中不同尺度的火災(zāi)類別概率和具體位置。
如圖4 所示,預(yù)測模塊包含兩個級聯(lián)的查詢操作,即:Large->Medium 和Medium->Small,其中Large,Medium,Small 指的是深層特征提取模塊所對應(yīng)的特征圖Pl中目標的不同尺度的級別。以Large->Medium 為例。首先,模塊在Large 級別層次的圖像對小目標進行標記(將規(guī)模小于預(yù)設(shè)閾值s的對象定義為小目標,閾值s為特征層Pl上的最小錨框尺度);其次,在預(yù)測推理的過程中,模塊選擇預(yù)測分數(shù)小于閾值s的位置作為查詢,并將這個位置映射到Medium 的特征圖中,具體的映射原理如式(2)所示:
圖4 級聯(lián)查詢機制模塊原理示意圖Fig.4 Cascade sparse query module
火災(zāi)檢測中目標類別概率通過CSQH 中的Classification 進行預(yù)測,如圖5 所示,原始圖像通過提取特征得到一系列特征圖,Classification 層分類時采用全連接層進行目標類別概率計算,經(jīng)過softmax函數(shù),將輸出形式轉(zhuǎn)化為概率形式。softmax函數(shù)定義如:
圖5 頭部預(yù)測原理示意圖Fig.5 Cascade sparse query head module
其中,xi表示向量x中第i個元素。
目標的位置信息通過Regression 進行預(yù)測,目標的具體位置通過坐標偏移量來表示,原理如:
其中:bx、by、bw、bh分別指目標錨框的中心坐標與寬高尺寸,pw和ph代表預(yù)設(shè)錨框的寬與高,σ指sigmoid 激活函數(shù);tx、ty、tw、th分別是目標框中心相對于預(yù)設(shè)錨框中心的偏移量;cx和cy代表目標所在的網(wǎng)格距圖像左上角距離。最后坐標偏移量與預(yù)設(shè)錨框進行轉(zhuǎn)換,輸出目標框位置。圖5 列出了一種火災(zāi)檢測中的代表圖像,檢測結(jié)果輸出以包圍框形式輸出。
YOLOv5 中錨框的生成采用k-means 聚類方法,在傳統(tǒng)的k-means 算法中,初始聚類中心的選擇具有隨機性,會導(dǎo)致聚類結(jié)果不穩(wěn)定和收斂速度慢的問題。k-means++方法在k-means 聚類基礎(chǔ)上,改善了聚類中心的初始化問題。此外,不同的數(shù)據(jù)集上預(yù)設(shè)的錨框尺寸各不相同,因此為了生成適用于不同尺度火災(zāi)的錨框,利用k-means++聚類方法進行錨框計算。具體聚類過程如下:
a) 從數(shù)據(jù)集Χ中隨機選擇一個真實框的寬高作為初始聚類中心c1。
b) 計算每個樣本與聚類中心的最小交并比距離D(x),依據(jù)概率計算式(5)選擇下一個聚類中心,式(5)為:
c) 重復(fù)步驟b),直到選出K個聚類中心。
d) 根據(jù)選定的聚類中心,計算xi到K個聚類中心的交并比距離,將每個樣本分配到最近的聚類中心。
e) 計算每個聚類的新中心,若聚類中心發(fā)生變化,更新聚類中心。原理為:
其中μi為聚類質(zhì)心,即聚類中所有樣本的平均值。
f) 重復(fù)步驟d)和步驟e),直到所有錨框的寬高不再變化或變化幅度很小,即生成最優(yōu)結(jié)果。
依據(jù)錨框數(shù)量與平均IOU 曲線,圖6 所示。實驗最終選擇9 個適用于火災(zāi)數(shù)據(jù)集的錨框尺寸,分別為SF-dataset 數(shù)據(jù)集:(26,33)、(47,68)、(93,69)、(91,128)、(64,241)、(185,126)、(159,259)、(320,247)、(453,459);D-fire 數(shù)據(jù)集:(10,13),(18,25),(23,54),(42,36),(46,94),(81,59),(88,145),(158,83),(221,205);FIRESENSE 數(shù)據(jù)集:(15,20),(31,33),(36,64),(67,76),(42,158),(141,87),(90,156),(158,183),(305,267)。三個數(shù)據(jù)集的聚類結(jié)果如圖7 所示。
圖6 SF-dataset 數(shù)據(jù)集上聚類實驗結(jié)果Fig.6 Clustering experiment results on SF-dataset
圖7 聚類結(jié)果。(a) SF-dataset;(b) D-fire;(c) FIRESENSEFig.7 Clustering results.(a) SF-dataset;(b) D-fire;(c) FIRESENSE
因此使用k-means++聚類算法,可保證每個錨框的差異性盡可能大,以滿足火災(zāi)檢測的聚類要求,從而提升模型訓(xùn)練時邊界框回歸的速度與精度。
有效的損失函數(shù)可提高模型的收斂速度與檢測精度。實驗設(shè)計的火災(zāi)檢測損失函數(shù)由置信度損失,類別損失,定位損失三部分加權(quán)組合而成:
其中:Losscon代表置信度損失函數(shù),為BCE 二值交叉熵損失函數(shù),Losscla代表類別損失函數(shù),為Quality Focal 損失函數(shù),Lossreg代表邊界框回歸損失函數(shù),為CIOU 損失函數(shù)。a,b,c代表三個可學(xué)習(xí)的損失函數(shù)權(quán)。BCE 損失函數(shù)用于預(yù)測矩形框的可信程度,取值范圍0~1,值越大說明矩形框中越可能存在目標,其原理如:
其中:x表示樣本,y表示標簽,φ表示預(yù)測的輸出,n表示樣本的總數(shù)量。
Quality Focal 損失函數(shù)用于解決類別中正負樣本不平衡分布的問題,其計算原理如:
其中:y為標簽,y′為預(yù)測結(jié)果,指數(shù)因子γ減少了易分樣本的關(guān)注度,特征貢獻率因子α用于調(diào)節(jié)難分和易分2 種樣本的特征權(quán)重貢獻率。
CIOU 損失函數(shù)用于預(yù)測邊界框的回歸位置,計算原理如式(10):
其中:B和Bgt為預(yù)測框和真實框,ρ為預(yù)測框與真實框中心點的距離,d為包圍預(yù)測框和真實框的最小包圍框的對角距離。w和h為預(yù)測矩形框的寬和高,wgt和hgt分別為真實矩形框的寬與高。υ為歸一化了預(yù)測框和真實框的比例差值,η為權(quán)衡長寬比例的平衡因子。實驗通過采用類別損失與邊界框回歸損失相結(jié)合的Quality Focal-CIOU 損失函數(shù),從而實現(xiàn)較快的訓(xùn)練收斂和預(yù)測框定位。
減少模型的參數(shù)量和計算量可以通過多種方法實現(xiàn),例如優(yōu)化主干網(wǎng)絡(luò),模型壓縮等。但是考慮到模型實時性,僅僅關(guān)注參數(shù)量與計算量是不夠的,還要關(guān)注模型在優(yōu)化之后的推理速度,有些優(yōu)化方案雖然減少了參數(shù)量與計算量,但模型的推理速度也在相應(yīng)增長,這將導(dǎo)致模型的實時性變差。因此實驗在對比了多種優(yōu)化方案后選擇使用Slimming 剪枝算法[18]對模型進行壓縮。
Slimming 剪枝算法利用BN (batch normalization)層的γ參數(shù)來衡量當(dāng)前通道的重要程度,并使用L1損失來稀疏化γ值。BN 層作為一種能加速網(wǎng)絡(luò)收斂及提高網(wǎng)絡(luò)性能的標準方法,被廣泛應(yīng)用于深度學(xué)習(xí)中,其基本公式如:
其中:zin和zout分別是BN 層的輸入和輸出,μB表示本批次該層輸入的均值,σB表示本批次該層輸入的方差。BN 層會對卷積后的輸出特征乘上γ因子,即縮放因子來調(diào)整其分布,如果γ因子很小,那么這個通道的輸出值也會很小,進而就代表著該通道對于后續(xù)網(wǎng)絡(luò)的貢獻就很小,在剪枝時就會刪減這些不重要的通道,保留較為重要的通道,從而實現(xiàn)模型的壓縮。Slimming 剪枝算法的定義公式如:
其中:(x,y)是訓(xùn)練的輸入和目標,為網(wǎng)絡(luò)中的可訓(xùn)練參數(shù),前一項代表卷積神經(jīng)網(wǎng)絡(luò)中的訓(xùn)練損失函數(shù),g(·)是縮放因子上的懲罰項,λ是兩項的平衡因子。
在顯示研究中,L1 為正則(g(s)=|s|),被廣泛地用于稀疏化。該剪枝算法包含三個步驟:稀疏正則化,剪枝,微調(diào),其中,稀疏正則化就是在模型訓(xùn)練時利用L1 損失來標記通道的重要程度,剪枝則是根據(jù)通道的重要程度進行修剪,而修剪不重要的通道可能會造成模型短暫的性能降低,因此在剪枝后還需要進行模型的微調(diào)。本文在進行模型稀疏正則化時僅利用原始訓(xùn)練集對模型進行稀疏訓(xùn)練,而在微調(diào)階段時才利用數(shù)據(jù)增強后的訓(xùn)練集進行稀疏訓(xùn)練,實現(xiàn)高效的輕量化算法。
本文在檢測網(wǎng)絡(luò)訓(xùn)練過程中,主要實驗參數(shù)設(shè)置如下:Batch size 為64,學(xué)習(xí)率為0.001,循環(huán)迭代輪次為300,采用Pytorch 框架,實驗GPU 為NVIDIA GTX 3090。
實驗中選用了三個火災(zāi)數(shù)據(jù)集,分別為D-fire 數(shù)據(jù)集、FIRESENSE 數(shù)據(jù)集以及SF-dataset 數(shù)據(jù)集。Dfire 為公開的數(shù)據(jù)集,由21527 張不同尺度的火災(zāi)煙霧圖片組成,包括森林中遠距離的火災(zāi)煙霧,郊外不同尺度的火災(zāi)煙霧以及草坪遠距離的小型火災(zāi)目標,數(shù)據(jù)集鏈接地址為:https://github.com/gaiasd/DFireDatase;FIRESENSE 為公開的數(shù)據(jù)集,由49 個視頻組成,包括日常生活類火物體背景下的火災(zāi)煙霧以及濃煙背景下的火災(zāi)煙霧,數(shù)據(jù)集鏈接地址為:https://www.kaggle.com/datasets/chrisfilo/firesense??紤]到D-fire 數(shù)據(jù)集和FIRESENSE 數(shù)據(jù)集中場景比較單一,特別是缺少室內(nèi)外建筑的多樣化火災(zāi)場景,本文建立了SF-dataset 數(shù)據(jù)集。SF-dataset 數(shù)據(jù)集包含多種挑戰(zhàn)性火災(zāi)場景,由18218 張火災(zāi)煙霧圖片組成,包括室外火災(zāi)煙霧以及室內(nèi)火災(zāi)煙霧等。本文將三種數(shù)據(jù)集分別按8:1:1 比例劃分為訓(xùn)練集、驗證集、測試集,具體分配如表1 所示。訓(xùn)練過程中,首先對火災(zāi)數(shù)據(jù)集進行數(shù)據(jù)預(yù)處理,通過讀取數(shù)據(jù)集的XML文本來獲得訓(xùn)練圖像的存儲路徑以及圖像中目標的標記像素坐標和目標類別。此外,為了使網(wǎng)絡(luò)能夠更好地學(xué)習(xí)到火災(zāi)的目標特征,需要對數(shù)據(jù)集進行數(shù)據(jù)增強。本文對訓(xùn)練圖像采用了翻轉(zhuǎn)、旋轉(zhuǎn)角度、隨機顏色、對比度增強、亮度增強等數(shù)據(jù)增強手段。
表1 三個數(shù)據(jù)集的訓(xùn)練集,驗證集,測試集的詳細統(tǒng)計數(shù)據(jù)Table 1 Numbers of training set,validation set and testing set for the three datasets
本文使用訓(xùn)練的LFNet 網(wǎng)絡(luò)對測試圖像進行了一系列實驗,以驗證所提出方法的有效性。實驗采用模型精度 (Precision)、召回率 (Recall)、準確率(Accuracy)、類別精度 (AP)、類別平均精度(mAP)、模型參數(shù)(Parameter)、檢測速度(FPS)等指標進行評價,各項指標定義如:
其中:TP (true positives)為正樣本被檢測正確的數(shù)量;FP (false positives)為負樣本被檢測為正樣本的數(shù)量;FN (false negatives)為背景被錯誤檢測為正樣本的數(shù)量;C表示類別數(shù)。
為了驗證提出的LFNet 網(wǎng)絡(luò)的有效性,實驗使用檢測精度(Precision)、召回率(Recall)等指標在三個火災(zāi)數(shù)據(jù)集上與經(jīng)典的檢測算法進行了對比實驗。對比方法包括3 類:3 種傳統(tǒng)的火災(zāi)檢測方法[2,19-20];3種現(xiàn)有的基于深度學(xué)習(xí)的火災(zāi)檢測方法Fire-YOLO[21]、EFDNet[22]、Pruned+KD[23]以及3 種主流的通用型目標檢測方法YOLOX-Tiny[24]、PicoDet[25]、YOLOv7[26]進行比較。此外,為了驗證網(wǎng)絡(luò)模型的輕量化,利用模型參數(shù)(Parameter)、檢測速度(Speed)等指標在SFdataset 數(shù)據(jù)集上與主流的輕量化檢測算法進行了對比實驗。對比方法包括兩類:5 種現(xiàn)有的基于深度學(xué)習(xí)的輕量化火災(zāi)檢測方法:M-YOLO[27]、Fire-YOLO[21]、EFDNet[22]、Y-Edge[25]、Pruned+KD[23]以及5 種主流的輕量化目標檢測方法 PPYOLO-Tiny[28]、YOLOXTiny[24]、PicoDet[25]、PP-YOLOE[29]、YOLOv7[26]。
表2 為不同對比方法在不同火災(zāi)數(shù)據(jù)集上以mAP、Precision、Recall 以及Accuracy 為客觀指標的實驗結(jié)果。通過實驗結(jié)果,可以發(fā)現(xiàn),對于相同的方法,無論在mAP、Recall、Precision 以及Accuracy 指標上,SF-dataset 數(shù)據(jù)集訓(xùn)練的模型的性能均優(yōu)于Dfire 和FIRESENSE 數(shù)據(jù)集,這主要是由于涵蓋了更多具有挑戰(zhàn)性的檢測場景,有助于網(wǎng)絡(luò)訓(xùn)練獲得更好的學(xué)習(xí)能力。在SF-dataset 數(shù)據(jù)集上,LFNet 網(wǎng)絡(luò)實現(xiàn)了最佳的mAP、Recall、Precision 以及Accuracy,分別為71.76%、54.98%、89.12%以及98.5%。而在三個數(shù)據(jù)集上,相比于其他的方法,傳統(tǒng)方法的各種性能指標均處于最低,這主要是由于傳統(tǒng)火災(zāi)檢測方法側(cè)重于顏色,運動以及紋理等手工特征來檢測火災(zāi),不能完全提取火災(zāi)的特征,從而導(dǎo)致檢測精度較低。相比之下,本文方法可以有效地提取火災(zāi)的特征,實現(xiàn)最佳的檢測性能。
表2 不同數(shù)據(jù)集上不同方法的精度對比實驗結(jié)果Table 2 Experimental precision results of different comparative methods on different datasets
表3 為不同方法在SF-dataset 數(shù)據(jù)集上以mAP、Speed、Flops、Parameter 以及Infer time 為指標的實驗結(jié)果。如表3 所示,本文方法實現(xiàn)了71.76%的mAP,在所有方法中實現(xiàn)了最佳的檢測性能。在Flops、Speed 以及Infer time 方面,PicoDet 達到了最優(yōu)的效果,但其mAP 為69.42%,比本文方法低2.34%,比次優(yōu)方法YOLOv7 低2.27%。通過實驗結(jié)果可以看出,盡管本文方法在檢測速度以及模型參數(shù)方面沒有實現(xiàn)最優(yōu),但比大多數(shù)方法表現(xiàn)更好,實現(xiàn)了實時的火災(zāi)檢測。因此綜合檢測性能的角度考慮,本文方法在各項檢測精度中最優(yōu),同時模型參數(shù)大小合適,處理速度較快,是一種輕量化,低延時和高精度的火災(zāi)檢測算法。此外,為了進一步驗證本文方法的有效性,本文將LFNet 方法與幾個具有代表性的方法進行了可視化的對比檢測實驗。圖8 為 LFNet、EFDNet、Y-Edge、M-YOLO、Fire-YOLO、YOLOXTiny、PicoDet、PP-YOLOE 以及YOLOv7 方法分別在三種火災(zāi)數(shù)據(jù)集上不同場景下可視化的火災(zāi)檢測效果。其中圖8 主要包含建筑物火災(zāi)和濃煙同時存在的檢測場景以及空曠的室外不同程度的火焰同時存在的檢測場景;圖9 主要包含森林中遠距離不同尺度的火災(zāi)同時存在的檢測場景以及草坪上遠距離火焰和近距離的小火焰同時存在的檢測場景;圖10 主要包含日常生活中火災(zāi)與類火物體同時存在的檢測場景以及霧霾與火災(zāi)同時存在的檢測場景。從可視化的檢測結(jié)果來看,本文方法無論是對于遠距離的小火災(zāi)還是不同尺度火災(zāi)變化的場景,都能實現(xiàn)一個最佳的檢測效果。
表3 SF-dataset 上不同方法的速度對比實驗結(jié)果Table 3 Experimental speed results of different comparative methods on SF-dataset
圖9 D-fire 數(shù)據(jù)集比較實驗檢測結(jié)果。(a) Images;(b) Ours;(c) EFDNet;(d) Y-Edge;(e) M-YOLO;(f) Fire-YOLO;(g) YOLOX-Tiny;(h) PicoDet;(i) PP-YOLOE;(j) YOLOv7;Fig.9 Comparison experiment detection results for the D-fire dataset.(a) Images;(b) Ours;(c) EFDNet;(d) Y-Edge;(e) M-YOLO;(f) Fire-YOLO;(g) YOLOX-Tiny;(h) PicoDet;(i) PP-YOLOE;(j) YOLOv7;
圖10 FIRESENSE 數(shù)據(jù)集比較實驗檢測結(jié)果。(a) Images;(b) Ours;(c) EFDNet;(d) Y-Edge;(e) M-YOLO;(f) Fire-YOLO;(g) YOLOX-Tiny;(h) PicoDet;(i) PP-YOLOE;(j) YOLOv7Fig.10 Comparison experiment detection results for the FIRESENSE dataset.(a) Images;(b) Ours;(c) EFDNet;(d) Y-Edge;(e) M-YOLO;(f) Fire-YOLO;(g) YOLOX-Tiny;(h) PicoDet;(i) PP-YOLOE;(j) YOLOv7
本文使用YOLOv5s 作為BaseNet,并采用五種策略在SF-dataset 上測試最有效的火災(zāi)檢測精度。為了驗證這些策略的性能,本文方法使用不同的設(shè)置進行了消融實驗:1)改進YOLOv5s 的主干網(wǎng)絡(luò)模塊為ECDNet;2)使用FPN+PAN 作為深層特征提取模塊;3)使用CSQH 預(yù)測模塊替換YOLOv5s 的預(yù)測頭部分;4)使用Quality-CIOU 作為網(wǎng)絡(luò)的損失函數(shù);5)利用Slimming 剪枝算法對網(wǎng)絡(luò)進行壓縮。
實驗結(jié)果如表4 所示,盡管BaseNet 的mAP 達到67.89%,但其性能仍不能滿足火災(zāi)檢測的要求,例如對于一些有類火物體存在的場景以及遠距離不同尺度的火災(zāi)場景,而且其模型參數(shù)大小達到了27.6 M。與BaseNet 相比,改進的主干網(wǎng)絡(luò)ECDNet 的mAP達到了68.89%,在不增加模型參數(shù)的情況下,獲得了1%的提高。在網(wǎng)絡(luò)ECDNet 的基礎(chǔ)上添加FPN+PAN,模型參數(shù)大小僅增加0.1 M,但模型mAP 從68.89%增加到70.15%,Recall 從50.96%增加到51.53%。由此可見,使用FPN+PAN 的特征融合方式有效提高了模型的檢測性能。而當(dāng)將網(wǎng)絡(luò)的BaseNet的預(yù)測頭部分替換成CSQH 時,模型的檢測速度達到了91 f/s,mAP 提高了0.46%,特別是對于遠距離小尺度火災(zāi)的檢測性能,有了明顯的改進。最后網(wǎng)絡(luò)在分別使用了 Quality Focal-CIOU 損失函數(shù)和Slimming 剪枝算法后,模型的檢測精度、模型參數(shù)大小以及檢測速度均有了一定的提升,模型的mAP最終實現(xiàn)了71.76%,模型參數(shù)大小僅為12.6M,速度達到了98 f/s。因此綜合實驗結(jié)果的各項指標,可以看出每種策略對于LFNet 的有效性和優(yōu)越性。
表4 消融實驗的實驗結(jié)果Table 4 Experimental results of Ablation experiments
為了驗證不同大小的訓(xùn)練數(shù)據(jù)集樣本比例、Batch size、不同模型輸入尺寸以及迭代次數(shù)epoch 對于所提出的LFNet 網(wǎng)絡(luò)火災(zāi)檢測精度的影響,實驗在SF-dataset 數(shù)據(jù)集上進行了多個參數(shù)測試,實驗結(jié)果如圖11 所示。
圖11 在SF-dataset 數(shù)據(jù)集上訓(xùn)練數(shù)據(jù)集樣本比例、Batch size、模型輸入尺寸以及迭代次數(shù)epoch 實驗結(jié)果(a)訓(xùn)練數(shù)據(jù)集樣本比例;(b) Batch size;(c)模型輸入尺寸;(d)迭代次數(shù)epochFig.11 Parameters experiment of percentage of training samples,batch size and patch size on the Santa Barbara dataset(a) Percentage of training dataset samples;(b) Batch size;(c) Model input size;(d) Epoch
圖11(a)顯示了不同大小訓(xùn)練數(shù)據(jù)集樣本比例對于模型精度的影響,在給定占比50%的訓(xùn)練數(shù)據(jù)集樣本的條件下,本文方法的mAP 指標已達到69.53%;在一定的范圍內(nèi),當(dāng)不斷提高訓(xùn)練樣本占比時,在80%的訓(xùn)練數(shù)據(jù)集樣本占比條件下,本文方法的mAP 達到了71.76%。
圖11(b)給出了不同Batch size 大小對于模型精度的影響,選定的Batch size 分別為8,16,32,64,128。從圖中可以看出,不同Batch size 條件下的mAP 指標存在一定差異,總體波動在2%之內(nèi)。
圖11(c)給出了不同的模型輸入尺寸對于模型精度的影響。從圖示結(jié)果可以看出,不同的模型輸入尺寸與模型精度成正比,模型輸入尺寸越大,模型精度也隨之提高,但同時也伴隨著模型參數(shù)大小的增加,這主要是由于隨著模型輸入尺寸的增加,網(wǎng)絡(luò)能夠捕捉更多的空間信息。因此,綜合模型的檢測精度與模型參數(shù)大小,本文最終選擇了640×640 作為模型輸入尺寸,在參數(shù)量足夠小的同時提高模型精度,實現(xiàn)了速度與精度的相對平衡。
圖11(d)給出了不同迭代次數(shù)(epoch)對于模型精度的影響,圖示可以看出不同epoch 對于mAP 指標的影響有一定的影響,波動在2%之內(nèi)。綜合考慮模型速度與精度,本次迭代次數(shù)選用300。
本文提出了一種基于級聯(lián)稀疏查詢機制的輕量化火災(zāi)檢測算法,有效緩解了當(dāng)前火災(zāi)檢測算法面臨的多尺度火災(zāi)的檢測精度低,對小目標的漏檢率較高以及速度與精度難以達到平衡等主要問題。本文采用輕量化的主干網(wǎng)絡(luò)ECDNet 在不同級別的特征層中提取細粒度更高的特征信息,解決了多尺度火焰特征導(dǎo)致的檢測精度低等問題;通過引入輕量化的CSQH 模塊提高對小目標的檢測性能;利用Slimming 剪枝算法來進一步減少模型參數(shù)量,使模型獲得更好的性能提升。實驗通過自建數(shù)據(jù)集以及公開的火災(zāi)數(shù)據(jù)集訓(xùn)練并搭建火災(zāi)檢測模型。實驗結(jié)果表明,在模型參數(shù)大小合適,速度較快的情況下,本文方法無論是在自建的火災(zāi)數(shù)據(jù)集還是公開的火災(zāi)數(shù)據(jù)集均達到了一個最優(yōu)的檢測效果,這將有利于基于計算機視覺的火災(zāi)檢測方法在工業(yè)的應(yīng)用。