王一旭,肖小玲,王鵬飛,向家富
長江大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,湖北 荊州 434023
在日常生活中,火災(zāi)會對人類帶來巨大的傷害,危害人類的身體健康,同時(shí)會影響社會健康發(fā)展和人民財(cái)產(chǎn)安全。而火災(zāi)在發(fā)生初期是很容易被撲滅的,因此,通過對火災(zāi)發(fā)生初期的煙霧與火焰進(jìn)行迅速準(zhǔn)確的檢測是非常有必要的,可以很大程度上減少火災(zāi)帶來的危害與損失[1]。
早期的火災(zāi)識別是通過傳感器實(shí)現(xiàn)的,基于溫度,煙霧顆粒等物理數(shù)據(jù)采樣來進(jìn)行識別[2]。這種方法在特定環(huán)境中有著不錯(cuò)的表現(xiàn),但在室外和復(fù)雜環(huán)境中會受到大量干擾,導(dǎo)致檢測精度會大幅下降,同時(shí)這種方法也無法獲取現(xiàn)場實(shí)時(shí)圖像。隨著計(jì)算機(jī)視覺技術(shù)的發(fā)展與進(jìn)步,Toereyin等人[3]通過小波變換來檢測火焰閃爍周期與火災(zāi)的顏色變換,結(jié)合時(shí)間與顏色的變化信息來減少對顏色相似的物體出現(xiàn)誤檢的情況。王文豪等人[4]通過采用二維最大熵自動閾值法對火災(zāi)圖像進(jìn)行分割處理,分割后再提取可疑區(qū)域;對可疑區(qū)域的火焰進(jìn)行識別。Tian等人[5]通過像素間的相關(guān)性、主成分分析初步識別出圖像中的煙霧,并通過純煙霧圖片中獲得的模型,對疑似區(qū)域進(jìn)一步進(jìn)行分離,來提取出圖片中的煙霧圖像。
近年來,深度學(xué)習(xí)已在許多領(lǐng)域超過傳統(tǒng)的人工方法[6],相對于傳統(tǒng)的計(jì)算機(jī)視覺檢測中的人工提取特征,深度學(xué)習(xí)方法能提取出更抽象、更深層次的特征,可以使模型泛化性更好,并且在火焰檢測中也取得了不錯(cuò)的成績[7]。Wu等人[8]在當(dāng)時(shí)主流的目標(biāo)檢測框架Faster R-CNN、YOLOv1和SSD來進(jìn)行火焰檢測,并發(fā)現(xiàn)SSD精度最高,檢測效率最好,提出了用于移動設(shè)備上的輕量化網(wǎng)絡(luò)tiny-YOLO;Li等人[9]在Faster R-CNN、R-FCN、SSD、YOLOv3等目標(biāo)檢測算法與計(jì)算機(jī)視覺方法在火焰檢測上的表現(xiàn),發(fā)現(xiàn)目標(biāo)檢測算法的精度率高于手工提取特征的算法,同時(shí)YOLOv3算法擁有最高的檢測精度與速度。謝書翰等人[10]在對YOLOv4網(wǎng)絡(luò)進(jìn)行改進(jìn)的同時(shí)在網(wǎng)絡(luò)預(yù)測頭中加入通道注意力模塊,以此來提高對煙霧的檢測精度。在目前現(xiàn)有的大部分算法只對火焰與煙霧進(jìn)行單獨(dú)檢測,而在火災(zāi)發(fā)生時(shí),煙霧和火焰都是關(guān)鍵信息,所以煙霧和火焰的檢測重要性是一致的,同時(shí)險(xiǎn)情出現(xiàn)時(shí)的煙霧與火焰大多為小目標(biāo)。而現(xiàn)有算法仍然存在檢測精度低,難以準(zhǔn)確檢測到小目標(biāo),速度不滿足日常需要,在復(fù)雜環(huán)境中誤檢、漏檢率高等問題。
因此,提出一種基于YOLOv5s的小目標(biāo)煙霧火焰檢測算法,并針對現(xiàn)有問題進(jìn)行改進(jìn)。首先基于公開數(shù)據(jù)集創(chuàng)建了一個(gè)內(nèi)容全面豐富的煙霧火焰數(shù)據(jù)集,并通過結(jié)構(gòu)相似性算法[11]剔除相似圖片,使模型在訓(xùn)練時(shí)效率更高,有更好的泛化能力;之后融合SimAM注意力機(jī)制[12],在不增加網(wǎng)絡(luò)參數(shù)的情況下,加強(qiáng)特征提取能力,提高檢測精度;通過結(jié)合加權(quán)雙向特征金字塔網(wǎng)絡(luò)(BiFPN)結(jié)構(gòu)修改Neck結(jié)構(gòu)[13],加強(qiáng)了特征提取與融合的過程,提高小目標(biāo)的檢測精度;最后使用遺傳算法[14]在自建數(shù)據(jù)集上優(yōu)化超參數(shù),更進(jìn)一步提高模型的檢測能力,可以在火災(zāi)發(fā)生初期做出準(zhǔn)確迅速的檢測,保護(hù)生命與財(cái)產(chǎn)安全。
YOLOv5[15]是目前廣泛使用的目標(biāo)檢測網(wǎng)絡(luò)之一,憑借檢測精度高、推理速度快等特點(diǎn),在各種工業(yè)問題取得了不錯(cuò)的成果[16-18]。同時(shí),YOLOv5也一直在更新迭代,目前版本為6.0,也是綜合表現(xiàn)最好的版本。選用的YOLOv5s網(wǎng)絡(luò)為YOLOv5的輕量化版本,更符合實(shí)時(shí)火災(zāi)檢測的要求。YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv5s結(jié)構(gòu)Fig.1 Structure of YOLOv5s
YOLOv5s網(wǎng)絡(luò)主要分成4個(gè)部分:輸入(input)、主干網(wǎng)絡(luò)(backone)、頸部(neck)以及預(yù)測頭(head)。其中backone由CBS、CSP1_X、SPPF構(gòu)成。neck部分由CSP2、上采樣(upsample)和相加模塊(concat)構(gòu)成,最后在head中進(jìn)行預(yù)測并輸出結(jié)果。其中CBS模塊由卷積(Conv),批量歸一化(batch normalization,BN)和SilU激活函數(shù)構(gòu)成。
CSP模塊借鑒了CSPNet結(jié)構(gòu)[19],可以在不影響模型精度的情況下,有效地減少計(jì)算量,并提高推理速度。YOLOv5根據(jù)backone和neck的不同,分別設(shè)計(jì)出了CSP1_X和CSP2模塊。CSP1_X通過Res模塊[20]在不同層中控制網(wǎng)絡(luò)的深度,結(jié)構(gòu)如圖2所示。
圖2 CSP1結(jié)構(gòu)Fig.2 Structure of CSP1
CSP2主要用在neck部分,有效地提高了網(wǎng)絡(luò)的特征融合能力,結(jié)構(gòu)如圖3所示。
圖3 CSP2結(jié)構(gòu)Fig.3 Structure of CSP2
在backone的最后采用了快速空間金字塔池化(fast spatial pyramid pooling,SPPF),將不同感受野的特征圖融合,以此提高特征圖的表達(dá)能力。原理上與SPPNet[21]類似,但運(yùn)行速度更快,結(jié)構(gòu)如圖4所示。
圖4 SPPF結(jié)構(gòu)Fig.4 Structure of SPPF
數(shù)據(jù)集是深度學(xué)習(xí)網(wǎng)絡(luò)的基本,優(yōu)秀的數(shù)據(jù)集能讓模型有更強(qiáng)的魯棒性和泛化性,為解決現(xiàn)有數(shù)據(jù)集的限制,制作了一個(gè)多場景的復(fù)雜煙霧與火焰數(shù)據(jù)集,數(shù)據(jù)來源于多個(gè)公共火災(zāi)數(shù)據(jù)集,Bilkent大學(xué)火焰視頻庫VisiFire、BoWFire Dataset、FD-Dataset,搜索引擎搜索和網(wǎng)絡(luò)火焰煙霧視頻截取,如圖5所示。
圖5 數(shù)據(jù)集示例Fig.5 Dataset examples
同時(shí)獲取到的數(shù)據(jù)大多沒有標(biāo)注或標(biāo)注不全,將對數(shù)據(jù)重新標(biāo)注,對數(shù)據(jù)采用最大外接矩形框標(biāo)注,將顯著特征都包括進(jìn)去,標(biāo)注為fire、smoke兩個(gè)類,標(biāo)注格式為YOLO格式,如圖6所示。
圖6 標(biāo)注示例Fig.6 Annotation example
由于大部分?jǐn)?shù)據(jù)來源于網(wǎng)絡(luò),存在大量的相似圖片,為提高數(shù)據(jù)集中數(shù)據(jù)的質(zhì)量,減少重復(fù)數(shù)據(jù)的出現(xiàn),提高網(wǎng)絡(luò)的學(xué)習(xí)效率,對數(shù)據(jù)集中的圖片進(jìn)行結(jié)構(gòu)相似性(structural similarity,SSIM)計(jì)算,如式(1):
其中C1、C2為常數(shù),避免分母為0的情況,常取0.01和0.03,μ表示圖的平均亮度,計(jì)算過程為式(2):
其中,N為圖像的像素點(diǎn)總數(shù),xi標(biāo)識每個(gè)圖像的像素值。σ表示圖的對比度,計(jì)算過程為式(3):
兩張圖片通過計(jì)算,可得到一個(gè)SSIM index,值在0到1之間,越大表明兩張圖片越相似,在數(shù)據(jù)集中,對SSIM index大于0.85的兩張圖片定義為相似,只保存其中一張。
在數(shù)據(jù)集收集與整理后,總共有9 981張圖片,每張圖片中至少含有一個(gè)標(biāo)簽,對數(shù)據(jù)集進(jìn)行統(tǒng)計(jì),結(jié)果如圖7、8所示。
圖7中,縱坐標(biāo)軸為標(biāo)簽數(shù)量,橫坐標(biāo)為標(biāo)簽名,數(shù)據(jù)集中有足夠數(shù)量的煙霧與火焰,經(jīng)過相似度檢查后,可以認(rèn)為已經(jīng)包含日常生活中絕大部分火災(zāi)中的火焰和煙霧場景。
圖7 標(biāo)簽數(shù)量Fig.7 Number of labels
如圖8表示標(biāo)簽的分布。圖8(a)中,橫坐標(biāo)x為標(biāo)簽中心橫坐標(biāo)與圖像寬度的比值,縱坐標(biāo)y為標(biāo)簽中心縱坐標(biāo)與圖像高度的比值,數(shù)值越大或越小表示越靠近圖像的邊緣,從圖中可知,數(shù)據(jù)分布廣泛,集中在圖像的中部。
圖8標(biāo)簽分布Fig.8 Label distribution
圖8(b)中,橫坐標(biāo)width為標(biāo)簽寬度與圖像寬度的比值,縱坐標(biāo)height為標(biāo)簽高度與圖像高度的比值,數(shù)值越大,標(biāo)簽框在圖像中的占比就越大。從圖8中可知,數(shù)據(jù)集中包含各種大小的數(shù)據(jù),主要為中小目標(biāo)數(shù)據(jù),更貼合實(shí)際情況。同時(shí)為保證模型的泛化性,也有一定數(shù)量的其他大小數(shù)據(jù)。
計(jì)算機(jī)視覺中的注意力機(jī)制,目的是模仿人類視覺系統(tǒng),能夠有效地在復(fù)雜場景中找到顯著區(qū)域。通過注意力機(jī)制,可以對輸入圖像的特征進(jìn)行動態(tài)權(quán)重調(diào)整。注意力機(jī)制已經(jīng)在許多視覺任務(wù)中取得了成功[22]。
SimAM注意力模塊不同于現(xiàn)有1-D通道注意力和2-D空域注意力,無需額外參數(shù)去推導(dǎo)出3-D注意力權(quán)值,簡單且高效,只需通過一個(gè)Energy函數(shù)來計(jì)算注意力權(quán)重。SimAM注意力模塊原理如圖9所示。
圖9 SimAM注意力模塊Fig.9 SimAM module of attention
通過3-D權(quán)重,對特征中的每個(gè)點(diǎn)都賦上單獨(dú)的標(biāo)量,通過這種統(tǒng)一權(quán)重,使得特征更具有全局性,很適合用于需要考慮全局性的煙霧火焰的檢測。計(jì)算過程如式(4)所示:
其中輸出結(jié)果為增強(qiáng)后的特征,X為輸入的特征,⊙為點(diǎn)積運(yùn)算,并且通過sigmoid函數(shù)限制E中可能出現(xiàn)的過大值,E為每個(gè)通道上的能量函數(shù),計(jì)算過程如式(5)所示:
其中t為輸入的特征的值,t∈X,λ為常數(shù)1E-4,μ和σ2分別表示X中每個(gè)通道上的均值與方差,計(jì)算過程為式(6)、(7):
其中M=H×W,表示每個(gè)通道上的值的數(shù)量。通過計(jì)算可獲得每個(gè)點(diǎn)的權(quán)重,以此來改善網(wǎng)絡(luò)的識別效果,同時(shí)也不會為網(wǎng)絡(luò)增加額外的參數(shù)。在多次實(shí)驗(yàn)后,SimAM層加在backone中的最后一層中效果最好。
為加強(qiáng)網(wǎng)絡(luò)對小目標(biāo)的檢測能力,且不擴(kuò)大輸入的分辨率,將在網(wǎng)絡(luò)的第三層,也就是CSP1_1部分增加一個(gè)特征圖輸出,接入Neck部分作為P2輸出,輸入的大小為640×640時(shí),P2的特征圖大小為160×160,每格特征圖對應(yīng)輸入圖中以4×4的感受野,可以更好檢測小目標(biāo),同時(shí)也可在特征融合的過程中為其他層提供信息。但是P2的部分僅經(jīng)過4倍下采樣,干擾信息較多,為更好地提取特征,將對YOLOv5s的Neck部分進(jìn)行改進(jìn)。
YOLOv5s的Neck參考了PANet[23]的思想,對從主干網(wǎng)絡(luò)獲取的特征,進(jìn)行上采樣之后再進(jìn)行下采樣融合,使得每個(gè)特征能包含更多的信息,如圖10所示。
圖10 原有Neck結(jié)構(gòu)Fig.10 Structure of original Neck
在P2加入后,為了Neck能對特征進(jìn)行更好地融合,將借鑒BiFPN的結(jié)構(gòu)對原有的Neck部分進(jìn)行改進(jìn),在P3層增加一個(gè)上采樣與P2層融合,同時(shí)在P3層增加一個(gè)上采樣節(jié)點(diǎn)。并在P3、P4層增加到輸出節(jié)點(diǎn)的通路,可在不增加太多復(fù)雜度的情況下融合特征,最終改進(jìn)的結(jié)構(gòu)如圖11所示。
圖11 改進(jìn)后的Neck結(jié)構(gòu)Fig.11 Structure of improved Neck
如圖11所示,改進(jìn)后的結(jié)構(gòu)增加了些許復(fù)雜度,但每個(gè)特征圖能融合更多的信息,能在提高在檢測時(shí)的精度。同時(shí),原有的特征融合過程中并沒有對不同特征進(jìn)行區(qū)分,僅僅為簡單的相加融合,在改進(jìn)后的Neck結(jié)構(gòu)中,將特征融合優(yōu)化為帶權(quán)特征融合,區(qū)分每個(gè)權(quán)重的重要性,使用快速歸一化融合(fast normalized fusion)來計(jì)算,過程為式(8):
其中,I為輸入值,O為輸出值,通過計(jì)算可以使所有的權(quán)重值在0和1之間。以P3融合過程為例,計(jì)算過程為式(9)、(10):
式中Conv代表卷積操作,Resize為上采樣或下采樣,各參數(shù)和計(jì)算流程如圖12所示。
圖12 計(jì)算流程與參數(shù)Fig.12 Calculation process and parameters
基于以上描述,改進(jìn)后的Neck輸出的每個(gè)特征圖能包含更多信息,且加強(qiáng)了對小目標(biāo)的檢測能力。整體改進(jìn)后的YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)如圖13所示。
圖13 改進(jìn)后的YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)Fig.13 Network structure of improved YOLOv5s
遺傳算法(genetic algorithm,GA)最早是計(jì)算數(shù)學(xué)中用于解決最佳化的搜索算法,通過遺傳算法可以得到問題的優(yōu)質(zhì)解。在深度學(xué)習(xí)領(lǐng)域中,最優(yōu)的超參數(shù)能最大化地發(fā)揮網(wǎng)絡(luò)的性能,從而提高模型的檢測能力。通過遺傳算法找出網(wǎng)絡(luò)的最優(yōu)超參數(shù)。目前已有相關(guān)成果[24-26]。使用遺傳算法對優(yōu)化后的YOLOv5s網(wǎng)絡(luò)的部分超參數(shù)在自建的數(shù)據(jù)集上尋找最優(yōu)值,算法流程如圖14所示。
其中,編碼過程就是把參數(shù)轉(zhuǎn)換到遺傳算法的搜索空間,轉(zhuǎn)為遺傳算法的染色體結(jié)構(gòu)數(shù)據(jù),解碼的過程就是反過來,將染色體結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換為原有數(shù)據(jù)。適應(yīng)度為當(dāng)前參數(shù)訓(xùn)練后的模型在測試集上的檢測精度。
選擇、交叉與變異操作都是遺傳算子。選擇操作是指從設(shè)定的范圍中以選擇前幾代中優(yōu)秀的數(shù)據(jù)作為遺傳對象,個(gè)體的適應(yīng)度越高越容易被選擇。交叉操作是選擇兩個(gè)父代,通過一定的概率對兩個(gè)染色體結(jié)構(gòu)數(shù)據(jù)的交換組合,把父代的優(yōu)秀特征遺傳給子串,從而產(chǎn)生新的優(yōu)秀個(gè)體。變異操作是防止遺傳算法在優(yōu)化過程中陷入局部最優(yōu)解,在搜索過程中,需要對個(gè)體進(jìn)行變異,對染色體結(jié)構(gòu)數(shù)據(jù)進(jìn)行變化。種群數(shù)量定義為選定的父代范圍,算法只在固定的種群數(shù)量中選定父代。
在自建的數(shù)據(jù)集上進(jìn)行超參數(shù)進(jìn)化,將YOLOv5s原有的超參數(shù)設(shè)定為初始值,在改進(jìn)后的YOLOv5s網(wǎng)絡(luò)上進(jìn)行進(jìn)化,并設(shè)定選擇算子的選擇范圍為5,交叉算子為80%的隨機(jī)交叉,變異算子的概率為0.01,進(jìn)化的輪次為300次,最終結(jié)果如表1所示。
表1 進(jìn)化的參數(shù)列表Table 1 Evolutionary parameters list
實(shí)驗(yàn)環(huán)境硬件配置:CPU為AMD R7 5800H,GPU為NVIDIA RTX 3070 Laptop,操作系統(tǒng)為Windows10,編譯環(huán)境為Python3.8+Pytorch1.10.1+CUDA11.3。
在訓(xùn)練開始前通過K-means算法對初始錨框進(jìn)行聚類,結(jié)果為[18,28,43,37,52,110],[90,66,96,144,157,117],[270,150,192,237,346,221],[305,350,532,253,548,352]。訓(xùn)練時(shí)對數(shù)據(jù)集使用在線增強(qiáng),在每個(gè)epoch中對數(shù)據(jù)進(jìn)行色調(diào)、飽和度、亮度的變換,以一定的概率進(jìn)行平移、縮放操作,并加上Mosaic數(shù)據(jù)增強(qiáng),使得每個(gè)epoch學(xué)習(xí)的數(shù)據(jù)都有一定變化,進(jìn)一步提升模型泛化能力,減少過擬合的可能性。將原始數(shù)據(jù)集按照8∶1∶1的比例劃分為訓(xùn)練集,驗(yàn)證集和測試集。訓(xùn)練集7 985張圖片,驗(yàn)證集和測試集的數(shù)量為998張,同時(shí)進(jìn)行相關(guān)性分析,避免測試集中出現(xiàn)數(shù)據(jù)泄露,保證訓(xùn)練結(jié)果可靠真實(shí)。為保證實(shí)驗(yàn)結(jié)果的準(zhǔn)確性與嚴(yán)謹(jǐn)性,所有數(shù)據(jù)皆為3次實(shí)驗(yàn)后統(tǒng)計(jì)取平均值。
實(shí)驗(yàn)結(jié)果采用精確度(precision,P)、召回率(recall,R)、平均精度(average precision,AP),和平均精度均值(mean average precision,mAP)等作為評價(jià)指標(biāo),計(jì)算公式為式(11)~(14):
其中TP(true postives)為預(yù)測正確的正類樣本數(shù)量,F(xiàn)P(false postives)為預(yù)測錯(cuò)誤的正類樣本數(shù)量,F(xiàn)N(false negatives)為預(yù)測錯(cuò)誤的負(fù)類樣本數(shù)量,n為數(shù)據(jù)集中的類別數(shù)。設(shè)定AP的IoU檢測閾值為0.5,即評價(jià)指標(biāo)為AP@0.5與mAP@0.5。同時(shí)為進(jìn)一步發(fā)揮模型性能,對每個(gè)置信度閾值(confidence threshold)下的指標(biāo)進(jìn)行判斷,如圖15所示。
圖15 不同置信度閾值下模型性能Fig.15 Model Performance under different confidence thresholds
從15圖可知,當(dāng)置信度閾值設(shè)定為0.5時(shí),各項(xiàng)指標(biāo)綜合最高,由此表示此時(shí)的模型性能最好,其中precision為82.1%,recall為70.4%,mAP為78.9%。
首先對自建數(shù)據(jù)集的有效性進(jìn)行分析,目前還沒有權(quán)威的煙霧火焰公開數(shù)據(jù)集,將與廣泛使用的VisiFire火焰數(shù)據(jù)集,目前Kaggle上火焰煙霧體量最大的數(shù)據(jù)集fire smoke dataset[27]進(jìn)行對比。
將YOLOv5s在3個(gè)數(shù)據(jù)集上分別進(jìn)行訓(xùn)練,并選用1張不在數(shù)據(jù)集中的現(xiàn)實(shí)圖片進(jìn)行對比,結(jié)果如圖16所示。
圖16 數(shù)據(jù)集對比Fig.16 Comparison of datasets
由圖16可知,VisiFire數(shù)據(jù)集中僅包含火焰標(biāo)注,無法檢測到煙霧類別,同時(shí)因數(shù)據(jù)量過少,訓(xùn)練的模型泛化性不是很好,而fire smoke dataset數(shù)據(jù)集訓(xùn)練的模型中雖然能檢測到火焰煙霧圖像,但置信度不高,同時(shí)也沒有將煙霧完全檢測到,自建數(shù)據(jù)集所訓(xùn)練模型的檢測效果是最好的。
之后將SimAM注意力機(jī)制對目前廣泛使用的SE、CBAM注意力機(jī)制進(jìn)行對比。將3種注意力機(jī)制分別加入到Y(jié)OLOv5s中的實(shí)驗(yàn)結(jié)果,如表2所示。
表2 注意力機(jī)制對比Table 2 Comparison of attention mechanism
對YOLOv5s和改進(jìn)后的YOLOv5s進(jìn)行對比實(shí)驗(yàn),設(shè)定batchsize為16,輸入為640×640,部分超參數(shù)采用表1中的結(jié)果。同時(shí),為避免過擬合出現(xiàn),在模型訓(xùn)練過程中不設(shè)定固定的epoch數(shù)量,而是在100個(gè)epoch后啟用早停(early stopping)機(jī)制,當(dāng)發(fā)現(xiàn)模型在驗(yàn)證集上基本沒有改善時(shí)就自動停止訓(xùn)練,在相同的網(wǎng)絡(luò)配置下,越早停止的訓(xùn)練說明模型訓(xùn)練的效率更高,學(xué)習(xí)速度更快。模型訓(xùn)練的訓(xùn)練損失和驗(yàn)證損失的對比,如圖17所示。
圖17 損失值對比Fig.17 Comparison of loss value
從圖17可知,改進(jìn)后的網(wǎng)絡(luò)中,box_loss、obj_loss、cls_loss在訓(xùn)練集與驗(yàn)證集中都比YOLOv5s網(wǎng)絡(luò)更小,未出現(xiàn)嚴(yán)重過擬合現(xiàn)象,且訓(xùn)練花費(fèi)時(shí)間更短,學(xué)習(xí)速率更高。改進(jìn)后的網(wǎng)絡(luò)比原網(wǎng)絡(luò)收斂更快,在訓(xùn)練時(shí)更有效率。
為進(jìn)一步展現(xiàn)網(wǎng)絡(luò)的改進(jìn)效果,對網(wǎng)絡(luò)的mAP@0.5數(shù)據(jù)進(jìn)行對比,結(jié)果如圖18所示。
圖18 平均精度均值對比Fig.18 Comparison of mAP
從圖18可知,改進(jìn)后的網(wǎng)絡(luò)比原YOLOv5s的精度指標(biāo)更高,在火焰和煙霧檢測中更有優(yōu)勢。同時(shí)因?yàn)閿?shù)據(jù)集中大部分?jǐn)?shù)據(jù)為小目標(biāo)數(shù)據(jù),當(dāng)精度提升后,可以認(rèn)定為對小目標(biāo)檢測效果提升。
為更全面地展示改進(jìn)的網(wǎng)絡(luò)的優(yōu)勢,與主流的輕量級目標(biāo)檢測網(wǎng)絡(luò)YOLOv3-Tiny、YOLOv4-Tiny、
EfficentDet-D0、YOLOX-Tiny、NanoDet-p-m-1.5x、YOLOv5-lite-g進(jìn)行對比實(shí)驗(yàn),在與改進(jìn)后網(wǎng)絡(luò)使用的訓(xùn)練集上訓(xùn)練,之后在同一測試集對比,為保證每個(gè)網(wǎng)絡(luò)發(fā)揮最佳性能,對每個(gè)網(wǎng)絡(luò)設(shè)置合適的輸入大小。對比結(jié)果如表3所示。
通過表3數(shù)據(jù)可知,改進(jìn)后的YOLOv5s的精度遠(yuǎn)高于其他網(wǎng)絡(luò),參數(shù)量和權(quán)重大小也仍然滿足輕量級網(wǎng)絡(luò)的要求,同時(shí)對比原YOLOv5s網(wǎng)絡(luò),因?yàn)榫W(wǎng)絡(luò)結(jié)構(gòu)的改變,提高了少量的參數(shù)量和權(quán)重大小。但并未明顯影響檢測速度,仍可滿足實(shí)時(shí)檢測的要求。
表3 網(wǎng)絡(luò)對比結(jié)果Table 3 Network comparison results
為進(jìn)一步驗(yàn)證改進(jìn)的有效性,對各項(xiàng)改進(jìn)進(jìn)行消融實(shí)驗(yàn)測試,測試結(jié)果如表4所示。
由表4數(shù)據(jù)可知,各部分改進(jìn)都有效果,在加入SimAM注意力機(jī)制后,檢測精度有明顯提高,同時(shí)訓(xùn)練得也更快,其中SimAM機(jī)制中帶來的3-D權(quán)重很適合用于火焰與煙霧的檢測,之后加入Neck改進(jìn)的部分后,加強(qiáng)了對小目標(biāo)的檢測,優(yōu)化了多尺度特征的融合過程,對火焰的檢測有明顯改善,煙霧上也有更高的精度,同時(shí)也因?yàn)榫W(wǎng)絡(luò)復(fù)雜度的提高,對訓(xùn)練輪次有所增加,檢測速度有微量下降。最后使用遺傳算法優(yōu)化的超參數(shù)后,精度提升,訓(xùn)練效率更高,表示模型性能發(fā)揮得更好。
表4 消融實(shí)驗(yàn)結(jié)果Table 4 Ablation experimental results
為更直觀對比網(wǎng)絡(luò)改進(jìn)后的結(jié)果,選取測試集中部分圖片與現(xiàn)實(shí)圖片進(jìn)行測試,為更明顯的對比結(jié)果,對兩個(gè)網(wǎng)絡(luò)的置信度閾值都設(shè)置為0.25,結(jié)果如圖19所示。
圖19左邊為YOLOv5s檢測結(jié)果,右邊為改進(jìn)后的YOLOv5s檢測結(jié)果。圖(a)煙霧中的火焰,受到遮擋且火焰目標(biāo)較小,左邊雖然能檢測到目標(biāo),但置信度不高,且無法細(xì)分火焰,右邊準(zhǔn)確地檢測到被遮擋的火焰,且對煙霧的檢測中更準(zhǔn)確。圖(b)中右圖對小目標(biāo)的檢測效果更好,同時(shí)沒有對較為稀疏的煙霧產(chǎn)生誤檢。數(shù)據(jù)中不會將類似煙霧標(biāo)注,因?yàn)樵诨馂?zāi)檢測中這種煙霧并沒有太多參考價(jià)值。圖(c)中煙霧與背景混淆,存在一個(gè)小目標(biāo)火焰,右圖比左圖更好地檢測到了煙霧的輪廓,同時(shí)對小火焰的置信度更高。圖(d)中左圖漏檢了被遮擋的小火焰,同時(shí)將云朵誤檢為煙霧,右圖檢測到了被遮擋的小火焰,并且沒有誤檢,對火焰的檢測效果也更好。圖(e)為現(xiàn)實(shí)生活中的圖片,火焰與煙霧中背景復(fù)雜,存在干擾。相對于左圖,右圖中對煙霧與火焰的置信度更高,檢測框更貼近現(xiàn)實(shí)。
圖19 檢測結(jié)果對比Fig.19 Comparison of detection results
針對目前火災(zāi)檢測算法中對煙霧誤檢,對小目標(biāo)火焰漏檢的情況,提出一種基于YOLOv5s改進(jìn)的小目標(biāo)火焰檢測算法,首先為增加模型的魯棒性和泛化能力,基于公開數(shù)據(jù)集制作了一個(gè)數(shù)量充足,內(nèi)容復(fù)雜的煙霧火焰自建數(shù)據(jù)集,對網(wǎng)絡(luò)改進(jìn)之處為在主干網(wǎng)絡(luò)中增加3-D注意力機(jī)制SimAM,對Neck部分進(jìn)行修改,增加一個(gè)檢測尺度,優(yōu)化特征融合過程,提高模型對小目標(biāo)的火焰以及煙霧的檢測精度。通過遺傳算法在自建數(shù)據(jù)集上優(yōu)化網(wǎng)絡(luò)超參數(shù),進(jìn)一步提升模型的性能。經(jīng)過實(shí)驗(yàn)表明,改進(jìn)后的網(wǎng)絡(luò)相較于YOLOv5s,在沒有過多增加參數(shù)與權(quán)重大小的情況下,對火焰與煙霧中精度更高,提升了對小目標(biāo)的檢測精度,能滿足實(shí)時(shí)檢測的需要。在后續(xù)中,可對結(jié)構(gòu)進(jìn)一步調(diào)整,擴(kuò)充學(xué)習(xí)的數(shù)據(jù)集,以達(dá)到更好的檢測效果。