梁 磊,侯欣偉,李一帆,白巖冰,劉鵬宇
(1.北京市南水北調(diào)團(tuán)城湖管理處,北京 100195;2.北京工業(yè)大學(xué)信息學(xué)部,北京 100124;3.先進(jìn)信息網(wǎng)絡(luò)北京實(shí)驗(yàn)室,北京 100124;4.北京工業(yè)大學(xué)計(jì)算智能與智能系統(tǒng)北京市重點(diǎn)實(shí)驗(yàn)室,北京 100124)
通過信息化、數(shù)字化和智能化手段提升泵站安全風(fēng)險(xiǎn)的感知和檢測水平是泵站安全監(jiān)管發(fā)展的趨勢。[1]泵站作為水利工程的重要樞紐,其日常運(yùn)行中涉及的大型電機(jī)、變壓器等大型設(shè)備也給作業(yè)人員帶來一定的安全風(fēng)險(xiǎn),因此需要對泵站重點(diǎn)區(qū)域進(jìn)行安全帽佩戴檢測、人員入侵檢測和煙火檢測以避免安全事故的發(fā)生。由于人工巡檢存在監(jiān)管不及時(shí)、效率低下等多種弊端,因此迫切需要適合泵站場景下的安全風(fēng)險(xiǎn)檢測技術(shù),保障泵站內(nèi)部的平穩(wěn)運(yùn)行。
目前對于安全風(fēng)險(xiǎn)檢測任務(wù)的研究主要分為傳統(tǒng)方法和基于深度學(xué)習(xí)的方法。傳統(tǒng)方法主要通過邊緣檢測、特征聯(lián)合和支持向量機(jī)等方法對目標(biāo)區(qū)域進(jìn)行檢測。Rubaiya和Silva等人將梯度直方圖算法與圖像頻域信息相結(jié)合先確定人體區(qū)域位置,最后使用圓形霍夫變換來檢測人員是否佩戴安全帽。Guan等人提出了一種由顏色注意模塊(MCM)的重復(fù)塊組成的顏色注意神經(jīng)網(wǎng)絡(luò),通過每個(gè)MCM模塊提取該區(qū)域的顏色特征信息,從而實(shí)現(xiàn)對煙火的檢測。[2]吳春香等人通過邊緣檢測算子和腐蝕膨脹等操作進(jìn)行檢測,再通過聯(lián)合特征學(xué)習(xí)實(shí)現(xiàn)人員入侵檢測。由于傳統(tǒng)方法比較依賴特征提取和特征匹配的結(jié)果,在復(fù)雜場景下的檢測精度不佳,難以適用于泵站復(fù)雜場景下的安全風(fēng)險(xiǎn)檢測任務(wù)。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,越來越多的學(xué)者嘗試將深度學(xué)習(xí)技術(shù)應(yīng)用于安全風(fēng)險(xiǎn)檢測任務(wù)。Long等人將一階段目標(biāo)檢測模型SSD算法應(yīng)用于安全帽檢測任務(wù)中,通過神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)特征的提取,但是無法適應(yīng)人員密集場景下的安全帽檢測任務(wù)。[3]Huang等人對Yolov3進(jìn)行改進(jìn),通過對預(yù)測帽框進(jìn)行像素統(tǒng)計(jì)并結(jié)合對應(yīng)的權(quán)重得到最終預(yù)測的輸出結(jié)果,但是對于遮擋現(xiàn)象多的場景的檢測效果顯得不盡人意。Mukhriddin Mukhiddinov等人通過帶有卷積注意力模塊和h-swish激活函數(shù)對YOLOv4進(jìn)行改進(jìn),提高了煙火檢測任務(wù)的檢測速度,但對煙霧的檢測精度有待提高[4]。
為了應(yīng)對泵站場景下的安全風(fēng)險(xiǎn)檢測任務(wù)中存在的特征提取能力不足和環(huán)境因素干擾等問題,本文以YOLOX目標(biāo)檢測模型為基礎(chǔ),提出一種泵站場景下的安全風(fēng)險(xiǎn)檢測算法,在特征提取網(wǎng)絡(luò)中引入梯度流特征提取模塊和坐標(biāo)注意力機(jī)制,同時(shí)在特征融合網(wǎng)絡(luò)中引入BiFPN結(jié)構(gòu)提升不同尺寸目標(biāo)特征的融合效果。通過對比實(shí)驗(yàn)可知,本文所提算法在泵站場景下的檢測效果要優(yōu)于常見目標(biāo)檢測算法,能夠有效應(yīng)對泵站場景下的安全風(fēng)險(xiǎn)檢測任務(wù)。
本文所提的目標(biāo)檢測網(wǎng)絡(luò)主要包含輸入端、主干網(wǎng)絡(luò)、特征融合網(wǎng)絡(luò)和預(yù)測網(wǎng)絡(luò)4個(gè)部分,分別負(fù)責(zé)輸入圖像的預(yù)處理、特征提取、特征融合和目標(biāo)位置、類別的預(yù)測工作。特征提取網(wǎng)絡(luò)中引入梯度流特征提取模塊和坐標(biāo)注意力機(jī)制,在特征融合網(wǎng)絡(luò)中采用BiFPN結(jié)構(gòu)提高不同尺寸目標(biāo)特征的融合效果,具體的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 改進(jìn)型安全風(fēng)險(xiǎn)檢測網(wǎng)絡(luò)結(jié)構(gòu)圖
1.1.1改進(jìn)的主干網(wǎng)絡(luò)
主干網(wǎng)絡(luò)在目標(biāo)檢測模型中負(fù)責(zé)輸入圖像的特征提取工作,安全風(fēng)險(xiǎn)檢測任務(wù)中經(jīng)常出現(xiàn)的誤檢、漏檢等現(xiàn)象均與特征提取網(wǎng)絡(luò)的特征提取能力有直接聯(lián)系。[5]改進(jìn)后的模型將原始的YOLOX模型中的Res特征提取模塊替換成了特征提取能力更強(qiáng)的C2F_CA模塊,結(jié)構(gòu)如圖2所示。
圖2 特征提取模塊結(jié)構(gòu)對比圖
原始的Res模塊借鑒了CSPNet提取分流的思想,同時(shí)結(jié)合殘差結(jié)構(gòu)理念提出的。Res模塊主要包含了兩個(gè)分支,主分支梯度流模塊是由輸入特征圖X經(jīng)過CBS操作后,采用多個(gè)Bottleneck堆疊而成,其作用是對特征圖進(jìn)行降維以減少參數(shù)的計(jì)算量,另一個(gè)分支則經(jīng)過一個(gè)CBS操作后與主分支通過concat操作拼接在一起得到最終輸出特征。[6]Res模塊的主分支只是通過Bottleneck的堆疊操作獲得了最后一層梯度Bottleneck的輸出結(jié)果,忽視了Bottleneck降維過程中其他梯度層的特征信息。本文在借鑒了ELAN思想的基礎(chǔ)上設(shè)計(jì)了如圖2(b)所示的C2F_CA模塊,C2F_CA模塊刪除了原本的次分支結(jié)構(gòu)以減少模塊的計(jì)算量,輸入特征在經(jīng)過CBS操作和Split操作后采用并行的方式對Bottleneck進(jìn)行堆疊,將每一層Bottleneck的輸出進(jìn)行保留,最終通過concat操作進(jìn)行特征信息的拼接。相較于原本的Res模塊,C2F_CA模塊采用并行結(jié)構(gòu)在不增加龐雜計(jì)算量的同時(shí)獲得了更加豐富的梯度流信息,提高了網(wǎng)絡(luò)的特征提取能力。
利用深層網(wǎng)絡(luò)提取的特征圖,不同的通道包含著不同的特征信息,學(xué)習(xí)不同通道間的特征信息對提高檢測的準(zhǔn)確度具有重要意義[7],因此本文采用了結(jié)合通道信息和特征空間位置信息的輕量型注意力機(jī)制Coordinate Attention。其具體的結(jié)構(gòu)如圖3所示:
圖3 坐標(biāo)注意力機(jī)制結(jié)構(gòu)圖結(jié)構(gòu)示意圖
為提高泵站安全風(fēng)險(xiǎn)檢測算法的檢測速度,本文選擇采用計(jì)算速度更快的SimSPPF模塊替換原始YOLOX-s中的SPP模塊[10],兩種模塊的具體結(jié)構(gòu)如圖4所示。
圖4 SPP模塊和SimSPPF模塊結(jié)構(gòu)對比圖
SPP模塊中采用并行池化的方式將輸入分為4個(gè)分支,[10]其中3個(gè)分支分別采用池化核為5、9、13的最大池化操作,另一個(gè)分支不進(jìn)行任何操作,最后將4個(gè)分支的結(jié)果拼接整合,幫助模型在提高特征融合效果的同時(shí)降低計(jì)算量。池化操作的計(jì)算量與池化核的大小有關(guān),一般池化核越大,計(jì)算量就越大。相較于SPP模塊在并行池化時(shí)采用了池化核為5、9、13的最大池化,SimSPPF模塊選擇采用3個(gè)池化核為5的最大池化通過串行加并行的方式進(jìn)行改進(jìn)。SimSPPF模塊將原本SPP模塊中池化核為9的最大池化操作分解為兩次池化核為5的最大池化操作的疊加,因此可以充分利用第1次池化核為5的最大池化計(jì)算結(jié)果,在第1個(gè)池化核為5的最大池化后串聯(lián)1個(gè)池化核為5的最大池化,得到與池化核為9的最大池化相同的結(jié)果的同時(shí)通過降低池化核大小減少了模塊的計(jì)算量。同理,池化核為13的最大池化也是由3個(gè)池化核為5的最大池化串聯(lián)而成。SimSPPF模塊將SPP模塊中采用的SiLu激活函數(shù)替換成了速度更快的ReLu激活函數(shù),[11]通過上述操作,SimSPPF在幾乎不改變結(jié)果的同時(shí)大大降低了模塊的計(jì)算量,進(jìn)一步降低了移動端部署的算力壓力。
1.1.2改進(jìn)型的Neck網(wǎng)絡(luò)
原始的YOLOX-s算法的特征融合網(wǎng)絡(luò)采用FPN和PANet相結(jié)合的方式構(gòu)建特征金字塔結(jié)構(gòu),具體結(jié)構(gòu)如圖5(a)所示。FPN將深層具有的強(qiáng)語義信息傳遞到淺層特征中,[12]而PANet將淺層特征具有的強(qiáng)位置信息傳遞到深層特征中,通過FPN和PANet的結(jié)合實(shí)現(xiàn)不同尺寸大小檢測層的參數(shù)聚合,最終實(shí)現(xiàn)不同層級之間的特征融合。其中PANet的輸入均為FPN處理過的特征信息而缺少主干網(wǎng)絡(luò)提取的原始特征信息,這可能會導(dǎo)致學(xué)習(xí)偏差,在特征融合時(shí)會存在特征信息丟失的問題。因此本文所提G-YOLOX算法采用BiFPN結(jié)構(gòu)[13]對特征金字塔進(jìn)行改進(jìn),具體結(jié)構(gòu)如圖5(b)所示。
圖5 特征金字塔結(jié)構(gòu)對比圖
H-YOLOX的預(yù)測頭依舊沿用了YOLOX-s的解耦頭結(jié)構(gòu),損失函數(shù)主要分為分類損失和回歸損失兩部分,分類損失采用的是BCELoss,回歸損失則是由CIOU_Loss組成,最終的損失由上述損失經(jīng)過加權(quán)計(jì)算獲得。其中BCELoss的計(jì)算方法如下公式所示。
(1)
式中,P′—對應(yīng)預(yù)測的值;y—判斷是否是真實(shí)類別的標(biāo)簽,y=1時(shí)表示模型預(yù)測的目標(biāo)為對應(yīng)真實(shí)類別目標(biāo),y=0時(shí)表示模型預(yù)測的目標(biāo)不是對應(yīng)的真實(shí)目標(biāo)。CIOU_Loss的計(jì)算方法如下所示:
(2)
式中,ρ—?dú)W式距離;b、bgt—預(yù)測框、真實(shí)框的中心點(diǎn);c—預(yù)測框和真實(shí)框的對角線距離;α—權(quán)重系數(shù);v—測量的長寬比。
(3)
式中,A—真實(shí)框;B—預(yù)測框;IOU—判斷真實(shí)框和預(yù)測框的重合程度標(biāo)準(zhǔn)。
本文使用的數(shù)據(jù)集為在泵站監(jiān)控下實(shí)地拍攝的圖片,共3500張,包含佩戴安全帽和未佩戴安全帽、有煙火和無煙火及有人員闖入違禁區(qū)域和無人員闖入違禁區(qū)域6類目標(biāo)。為防止網(wǎng)絡(luò)訓(xùn)練時(shí)出現(xiàn)過擬合的情況,通過左右翻轉(zhuǎn)、平移、拉伸、旋轉(zhuǎn)和裁剪等方式對數(shù)據(jù)樣本進(jìn)行擴(kuò)充,最終將數(shù)據(jù)集擴(kuò)充到10123張。通過圖像標(biāo)注軟件LabelImg進(jìn)行圖像標(biāo)注,并按照8∶1∶1的比例劃分訓(xùn)練集、驗(yàn)證集和測試集,輸入的圖像尺寸大小統(tǒng)一為640×640。
本文實(shí)驗(yàn)的操作系統(tǒng)為Ubuntu18.02,CPU為intel-i7-10875,GPU為NVIDIA GeForce RTX 3080,并基于遷移學(xué)習(xí)的策略使用預(yù)訓(xùn)練權(quán)重進(jìn)行訓(xùn)練,加速模型的收斂。訓(xùn)練的學(xué)習(xí)率為0.0005,Batchsize為32,epoch為100,并使用adam作為優(yōu)化器。
本文采用目標(biāo)檢測任務(wù)常用的精確率(Precision)、召回率(Recall)均值平均精度(mAP)作為評價(jià)指標(biāo),其中Precision表示模型預(yù)測為正樣本且真實(shí)標(biāo)注為正樣本占模型預(yù)測為正樣本的整體比例,Recall表示模型預(yù)測為正樣本且真實(shí)標(biāo)注為正樣本占全部正樣本的比例,[14]具體的計(jì)算方法如式(4)—(5)所示:
(4)
(5)
式中,TP—模型預(yù)測為正例且真實(shí)標(biāo)注為正例;FP—模型預(yù)測為正例而真實(shí)標(biāo)注為負(fù)例;FN—模型預(yù)測為負(fù)例而真實(shí)標(biāo)注為正例。AP值用來評估某一類目標(biāo)的預(yù)測效果,[15]一般是Precision的值在(0,1)區(qū)間內(nèi)對Recall進(jìn)行積分獲得的值,mAP為多類目標(biāo)的AP均值,具體計(jì)算方法如式(6)—(7)所示。
(6)
(7)
式中,n—目標(biāo)類別數(shù);i—當(dāng)前類別的序號。
為證明本文所提方法的有效性,選取原始的YOLOX作為基準(zhǔn),并在此基礎(chǔ)上添加本文所提不同模塊進(jìn)行驗(yàn)證,具體結(jié)果見表1。根據(jù)結(jié)果可以發(fā)現(xiàn)原始的YOLOX在本數(shù)據(jù)集上的精確率和召回率分別達(dá)到了89.21%和84.17%,均值平均精度達(dá)到了86.91%。在添加了本文提出的mAP模塊后均有所提升,所提最終算法mAP達(dá)到了93.5%,證明本文所提方法在泵站場景下安全風(fēng)險(xiǎn)檢測任務(wù)的可行性。
表1 安全風(fēng)險(xiǎn)檢測算法消融實(shí)驗(yàn)性能評估表
3.3.1定性分析
為驗(yàn)證本文所提算法H-YOLOX算法的性能,本文選擇與目前常見效果較好的YOLOv5、YOLOX和YOLOv7三種常見的目標(biāo)檢測算法在相同的實(shí)驗(yàn)環(huán)境和超參數(shù)設(shè)置中進(jìn)行對比實(shí)驗(yàn)。實(shí)驗(yàn)采用的數(shù)據(jù)集為本文所建數(shù)據(jù)集,訓(xùn)練的epoch均為100,具體效果如圖6所示。由圖中可以看出,在安全帽檢測、人員入侵檢測和煙火檢測中,其他的算法均有漏檢目標(biāo)的情況出現(xiàn),因此足以證明本文所提的方法在復(fù)雜的泵站場景下安全風(fēng)險(xiǎn)檢測效果要優(yōu)于其他常見的目標(biāo)檢測算法。
圖6 不同算法效果對比圖
3.3.2定量分析
為更好的分析本文方法與常見的目標(biāo)檢測算法的性能對比,我們選用mAP作為評價(jià)指標(biāo)來衡量安全風(fēng)險(xiǎn)檢測的準(zhǔn)確率,最終本文所提方法mAP達(dá)到了93.5%,損失Loss隨epoch變化如圖7所示。
圖7 訓(xùn)練損失折線圖
同時(shí),與常見的目標(biāo)檢測算法YOLOv5、YOLOX和YOLOv7等算法相比,mAP均有不同程度的提高,性能對比結(jié)果見表2,足以證明本文所提方法的優(yōu)越性,能夠適用于泵站復(fù)雜場景下的安全風(fēng)險(xiǎn)檢測問題。
表2 本文模型與主流目標(biāo)檢測模型性能對比表
為解決泵站場景下遠(yuǎn)距離小尺寸目標(biāo)和特征遮擋給安全風(fēng)險(xiǎn)檢測技術(shù)帶來的檢測精度不佳,本文以YOLOX目標(biāo)檢測模型為基礎(chǔ),提出一種泵站場景下的安全風(fēng)險(xiǎn)檢測算法,在特征提取網(wǎng)絡(luò)中引入梯度流特征提取模塊和坐標(biāo)注意力機(jī)制,同時(shí)在特征融合網(wǎng)絡(luò)中引入BiFPN結(jié)構(gòu)提升不同尺寸目標(biāo)特征的融合效果。通過對比實(shí)驗(yàn)可知,本文所提算法能夠有效解決泵站場景下的安全風(fēng)險(xiǎn)檢測問題,最終mAP達(dá)到了94.78%,后續(xù)將考慮設(shè)計(jì)更加輕量化的模型來提升安全風(fēng)險(xiǎn)檢測的速度。