梁 磊,侯欣偉,李一帆,白巖冰,劉鵬宇
(1.北京市南水北調團城湖管理處,北京 100195;2.北京工業大學信息學部,北京 100124;3.先進信息網絡北京實驗室,北京 100124;4.北京工業大學計算智能與智能系統北京市重點實驗室,北京 100124)
通過信息化、數字化和智能化手段提升泵站安全風險的感知和檢測水平是泵站安全監管發展的趨勢。[1]泵站作為水利工程的重要樞紐,其日常運行中涉及的大型電機、變壓器等大型設備也給作業人員帶來一定的安全風險,因此需要對泵站重點區域進行安全帽佩戴檢測、人員入侵檢測和煙火檢測以避免安全事故的發生。由于人工巡檢存在監管不及時、效率低下等多種弊端,因此迫切需要適合泵站場景下的安全風險檢測技術,保障泵站內部的平穩運行。
目前對于安全風險檢測任務的研究主要分為傳統方法和基于深度學習的方法。傳統方法主要通過邊緣檢測、特征聯合和支持向量機等方法對目標區域進行檢測。Rubaiya和Silva等人將梯度直方圖算法與圖像頻域信息相結合先確定人體區域位置,最后使用圓形霍夫變換來檢測人員是否佩戴安全帽。Guan等人提出了一種由顏色注意模塊(MCM)的重復塊組成的顏色注意神經網絡,通過每個MCM模塊提取該區域的顏色特征信息,從而實現對煙火的檢測。[2]吳春香等人通過邊緣檢測算子和腐蝕膨脹等操作進行檢測,再通過聯合特征學習實現人員入侵檢測。由于傳統方法比較依賴特征提取和特征匹配的結果,在復雜場景下的檢測精度不佳,難以適用于泵站復雜場景下的安全風險檢測任務。隨著深度學習技術的發展,越來越多的學者嘗試將深度學習技術應用于安全風險檢測任務。Long等人將一階段目標檢測模型SSD算法應用于安全帽檢測任務中,通過神經網絡實現特征的提取,但是無法適應人員密集場景下的安全帽檢測任務。[3]Huang等人對Yolov3進行改進,通過對預測帽框進行像素統計并結合對應的權重得到最終預測的輸出結果,但是對于遮擋現象多的場景的檢測效果顯得不盡人意。Mukhriddin Mukhiddinov等人通過帶有卷積注意力模塊和h-swish激活函數對YOLOv4進行改進,提高了煙火檢測任務的檢測速度,但對煙霧的檢測精度有待提高[4]。
為了應對泵站場景下的安全風險檢測任務中存在的特征提取能力不足和環境因素干擾等問題,本文以YOLOX目標檢測模型為基礎,提出一種泵站場景下的安全風險檢測算法,在特征提取網絡中引入梯度流特征提取模塊和坐標注意力機制,同時在特征融合網絡中引入BiFPN結構提升不同尺寸目標特征的融合效果。通過對比實驗可知,本文所提算法在泵站場景下的檢測效果要優于常見目標檢測算法,能夠有效應對泵站場景下的安全風險檢測任務。
本文所提的目標檢測網絡主要包含輸入端、主干網絡、特征融合網絡和預測網絡4個部分,分別負責輸入圖像的預處理、特征提取、特征融合和目標位置、類別的預測工作。特征提取網絡中引入梯度流特征提取模塊和坐標注意力機制,在特征融合網絡中采用BiFPN結構提高不同尺寸目標特征的融合效果,具體的網絡結構如圖1所示。

圖1 改進型安全風險檢測網絡結構圖
1.1.1改進的主干網絡
主干網絡在目標檢測模型中負責輸入圖像的特征提取工作,安全風險檢測任務中經常出現的誤檢、漏檢等現象均與特征提取網絡的特征提取能力有直接聯系。[5]改進后的模型將原始的YOLOX模型中的Res特征提取模塊替換成了特征提取能力更強的C2F_CA模塊,結構如圖2所示。

圖2 特征提取模塊結構對比圖
原始的Res模塊借鑒了CSPNet提取分流的思想,同時結合殘差結構理念提出的。Res模塊主要包含了兩個分支,主分支梯度流模塊是由輸入特征圖X經過CBS操作后,采用多個Bottleneck堆疊而成,其作用是對特征圖進行降維以減少參數的計算量,另一個分支則經過一個CBS操作后與主分支通過concat操作拼接在一起得到最終輸出特征。[6]Res模塊的主分支只是通過Bottleneck的堆疊操作獲得了最后一層梯度Bottleneck的輸出結果,忽視了Bottleneck降維過程中其他梯度層的特征信息。本文在借鑒了ELAN思想的基礎上設計了如圖2(b)所示的C2F_CA模塊,C2F_CA模塊刪除了原本的次分支結構以減少模塊的計算量,輸入特征在經過CBS操作和Split操作后采用并行的方式對Bottleneck進行堆疊,將每一層Bottleneck的輸出進行保留,最終通過concat操作進行特征信息的拼接。相較于原本的Res模塊,C2F_CA模塊采用并行結構在不增加龐雜計算量的同時獲得了更加豐富的梯度流信息,提高了網絡的特征提取能力。
利用深層網絡提取的特征圖,不同的通道包含著不同的特征信息,學習不同通道間的特征信息對提高檢測的準確度具有重要意義[7],因此本文采用了結合通道信息和特征空間位置信息的輕量型注意力機制Coordinate Attention。其具體的結構如圖3所示:

圖3 坐標注意力機制結構圖結構示意圖
為提高泵站安全風險檢測算法的檢測速度,本文選擇采用計算速度更快的SimSPPF模塊替換原始YOLOX-s中的SPP模塊[10],兩種模塊的具體結構如圖4所示。

圖4 SPP模塊和SimSPPF模塊結構對比圖
SPP模塊中采用并行池化的方式將輸入分為4個分支,[10]其中3個分支分別采用池化核為5、9、13的最大池化操作,另一個分支不進行任何操作,最后將4個分支的結果拼接整合,幫助模型在提高特征融合效果的同時降低計算量。池化操作的計算量與池化核的大小有關,一般池化核越大,計算量就越大。相較于SPP模塊在并行池化時采用了池化核為5、9、13的最大池化,SimSPPF模塊選擇采用3個池化核為5的最大池化通過串行加并行的方式進行改進。SimSPPF模塊將原本SPP模塊中池化核為9的最大池化操作分解為兩次池化核為5的最大池化操作的疊加,因此可以充分利用第1次池化核為5的最大池化計算結果,在第1個池化核為5的最大池化后串聯1個池化核為5的最大池化,得到與池化核為9的最大池化相同的結果的同時通過降低池化核大小減少了模塊的計算量。同理,池化核為13的最大池化也是由3個池化核為5的最大池化串聯而成。SimSPPF模塊將SPP模塊中采用的SiLu激活函數替換成了速度更快的ReLu激活函數,[11]通過上述操作,SimSPPF在幾乎不改變結果的同時大大降低了模塊的計算量,進一步降低了移動端部署的算力壓力。
1.1.2改進型的Neck網絡
原始的YOLOX-s算法的特征融合網絡采用FPN和PANet相結合的方式構建特征金字塔結構,具體結構如圖5(a)所示。FPN將深層具有的強語義信息傳遞到淺層特征中,[12]而PANet將淺層特征具有的強位置信息傳遞到深層特征中,通過FPN和PANet的結合實現不同尺寸大小檢測層的參數聚合,最終實現不同層級之間的特征融合。其中PANet的輸入均為FPN處理過的特征信息而缺少主干網絡提取的原始特征信息,這可能會導致學習偏差,在特征融合時會存在特征信息丟失的問題。因此本文所提G-YOLOX算法采用BiFPN結構[13]對特征金字塔進行改進,具體結構如圖5(b)所示。

圖5 特征金字塔結構對比圖
H-YOLOX的預測頭依舊沿用了YOLOX-s的解耦頭結構,損失函數主要分為分類損失和回歸損失兩部分,分類損失采用的是BCELoss,回歸損失則是由CIOU_Loss組成,最終的損失由上述損失經過加權計算獲得。其中BCELoss的計算方法如下公式所示。
(1)
式中,P′—對應預測的值;y—判斷是否是真實類別的標簽,y=1時表示模型預測的目標為對應真實類別目標,y=0時表示模型預測的目標不是對應的真實目標。CIOU_Loss的計算方法如下所示:
(2)
式中,ρ—歐式距離;b、bgt—預測框、真實框的中心點;c—預測框和真實框的對角線距離;α—權重系數;v—測量的長寬比。
(3)
式中,A—真實框;B—預測框;IOU—判斷真實框和預測框的重合程度標準。
本文使用的數據集為在泵站監控下實地拍攝的圖片,共3500張,包含佩戴安全帽和未佩戴安全帽、有煙火和無煙火及有人員闖入違禁區域和無人員闖入違禁區域6類目標。為防止網絡訓練時出現過擬合的情況,通過左右翻轉、平移、拉伸、旋轉和裁剪等方式對數據樣本進行擴充,最終將數據集擴充到10123張。通過圖像標注軟件LabelImg進行圖像標注,并按照8∶1∶1的比例劃分訓練集、驗證集和測試集,輸入的圖像尺寸大小統一為640×640。
本文實驗的操作系統為Ubuntu18.02,CPU為intel-i7-10875,GPU為NVIDIA GeForce RTX 3080,并基于遷移學習的策略使用預訓練權重進行訓練,加速模型的收斂。訓練的學習率為0.0005,Batchsize為32,epoch為100,并使用adam作為優化器。
本文采用目標檢測任務常用的精確率(Precision)、召回率(Recall)均值平均精度(mAP)作為評價指標,其中Precision表示模型預測為正樣本且真實標注為正樣本占模型預測為正樣本的整體比例,Recall表示模型預測為正樣本且真實標注為正樣本占全部正樣本的比例,[14]具體的計算方法如式(4)—(5)所示:
(4)
(5)
式中,TP—模型預測為正例且真實標注為正例;FP—模型預測為正例而真實標注為負例;FN—模型預測為負例而真實標注為正例。AP值用來評估某一類目標的預測效果,[15]一般是Precision的值在(0,1)區間內對Recall進行積分獲得的值,mAP為多類目標的AP均值,具體計算方法如式(6)—(7)所示。
(6)
(7)
式中,n—目標類別數;i—當前類別的序號。
為證明本文所提方法的有效性,選取原始的YOLOX作為基準,并在此基礎上添加本文所提不同模塊進行驗證,具體結果見表1。根據結果可以發現原始的YOLOX在本數據集上的精確率和召回率分別達到了89.21%和84.17%,均值平均精度達到了86.91%。在添加了本文提出的mAP模塊后均有所提升,所提最終算法mAP達到了93.5%,證明本文所提方法在泵站場景下安全風險檢測任務的可行性。

表1 安全風險檢測算法消融實驗性能評估表
3.3.1定性分析
為驗證本文所提算法H-YOLOX算法的性能,本文選擇與目前常見效果較好的YOLOv5、YOLOX和YOLOv7三種常見的目標檢測算法在相同的實驗環境和超參數設置中進行對比實驗。實驗采用的數據集為本文所建數據集,訓練的epoch均為100,具體效果如圖6所示。由圖中可以看出,在安全帽檢測、人員入侵檢測和煙火檢測中,其他的算法均有漏檢目標的情況出現,因此足以證明本文所提的方法在復雜的泵站場景下安全風險檢測效果要優于其他常見的目標檢測算法。

圖6 不同算法效果對比圖
3.3.2定量分析
為更好的分析本文方法與常見的目標檢測算法的性能對比,我們選用mAP作為評價指標來衡量安全風險檢測的準確率,最終本文所提方法mAP達到了93.5%,損失Loss隨epoch變化如圖7所示。

圖7 訓練損失折線圖
同時,與常見的目標檢測算法YOLOv5、YOLOX和YOLOv7等算法相比,mAP均有不同程度的提高,性能對比結果見表2,足以證明本文所提方法的優越性,能夠適用于泵站復雜場景下的安全風險檢測問題。

表2 本文模型與主流目標檢測模型性能對比表
為解決泵站場景下遠距離小尺寸目標和特征遮擋給安全風險檢測技術帶來的檢測精度不佳,本文以YOLOX目標檢測模型為基礎,提出一種泵站場景下的安全風險檢測算法,在特征提取網絡中引入梯度流特征提取模塊和坐標注意力機制,同時在特征融合網絡中引入BiFPN結構提升不同尺寸目標特征的融合效果。通過對比實驗可知,本文所提算法能夠有效解決泵站場景下的安全風險檢測問題,最終mAP達到了94.78%,后續將考慮設計更加輕量化的模型來提升安全風險檢測的速度。