程國建,李嘉欣,賈強
西安石油大學計算機學院(陜西 西安 710065)
眾所周知,石油行業在我國的國民經濟中占有重要的地位和作用,且擁有較大的生產規模。而井場的安全問題是一個備受關注的問題,井場作業的工人接打電話、工服穿戴不齊全、不合理佩戴安全帽等危險行為可能會引發一系列安全生產事故,而防止此類事故發生的關鍵在于消除工人的不規范行為。因此,對這些不規范行為進行精準、快速地識別,可為井場的生產作業提供可靠的保障[1]。
目前,井場作業現場大多安裝了視頻監控系統,這種系統能實時顯示監控畫面及其錄像,而對違規操作的鑒別基本上是借助人工辨別,無法做到實時的預防或干預。為了強化對井場安全生產的監管力度,考慮將深度學習算法應用其中,將識別結果直觀地輸出以便監管人員能及時發現違規行為并糾正工人,提高監管效率,避免事故的發生。
李辰政等[2]采用基于遷移學習的C3D網絡模型進行遷移訓練,結果表明使用遷移學習方法后的網絡模型對危險行為的平均識別率達到了83.2%。魏維等[3]提出了基于淺層與深層神經網絡相結合的輕量級深度學習模型,提高人體行為識別的準確性。周華平等[4]提出了一種基于YOLOv4-tiny 的多尺度特征融合方法,通過對原有的YOLOv4-tiny 模型進行改進,使其識別準確率提高了2.45%。Rahmani H等[5]提出基于非線性知識轉移模型的深度全連通神經網絡,能夠實現對任意視角下人體行為的認知轉換,在3D交叉視圖人類行為識別上獲得了較大的成功。Zhang P 等[6]采用VA-RNN 和VA-CNN 相結合的注意力機制,對人體骨骼圖像進行邊緣特征提取。研究結果顯示,該方法可以有效地將不同視角的骨骼圖變換成更加一致的虛擬視角,提高了識別的準確性。
上述研究結果為人體行為識別提供一系列的模型和算法,有效降低不規范行為的發生。但用于井場不規范行為識別的較少,主要原因在于其工作環境的特殊性、監控攝像頭多固定在較遠的位置、信息化水平不高、監管力度有限等。因此,為解決上述問題,將人員行為識別和目標檢測技術有機地結合起來,提出了一種基于改進YOLOv5 的井場作業風險智能分類識別方法。
YOLOv5 是一種單階段目標檢測算法,網絡結構如圖1 所示。一般可以將它劃分為4 個模塊,分別是輸入端、基準網絡、Neck 網絡與Head 輸出端[7]。

圖1 YOLOv5算法的網絡結構
1)輸入端是一個無監督的輸入數據集,用于訓練和評估模型。在模型訓練過程中,YOLOv5 采用Mosaic操作、自適應錨框計算與自適應圖片縮放[8]等方法對輸入圖片進行一系列處理,然后將其送入檢測網絡。
2)基準網絡主要負責進行特征提取和分類任務。基準網絡包含Focus 模塊、CSP 模塊和SPP 模塊;Focus 模塊是一種切片操作,將原始圖像通過切片操作變為320×320×12特征圖,再通過卷積操作變為320×320×32 特征圖;CSP 模塊分為兩部分,一部分通過Res unit 殘差塊增強特征學習能力,另一部分與上一部分的特征拼接,對特征進行歸一化處理;SPP 模塊將圖像的局部特征和全局特征進行特征融合。
3)Neck 網絡主要負責對特征進行多尺度特征融合,然后傳遞給Head 輸出層。Neck 結構使用FPN+PAN(特征金字塔)模塊、CSP2 模塊來強化網絡特征的融合能力[9],FPN 自上而下傳遞強語義特征,PAN自下而上傳遞定位特征。
4)Head 輸出層負責進行最終的回歸預測。Head 輸出層使用CIoU 創建Bounding box 的損失函數。
YOLOv5算法分類識別流程如圖2所示,主要分為以下3個部分:

圖2 YOLOv5算法分類識別流程
1)數據集的處理。通過油田現場監控攝像頭采集本文所需要的數據集,篩選出違規行為明顯的圖片,使用labelimg工具對不規范行為進行標注,劃分訓練集和驗證集。
2)模型的訓練。將標注的數據集在改進的YOLOv5 網絡中進行訓練,訓練后的模型學習到了不規范行為的各種特征,并產生一個權重文件。
3)不規范行為的檢測。將權重文件部署到模型上得到不規范行為分類識別模型。通過輸入圖像或在線視頻部署到模型中,進行識別和分類測試。
盡管YOLOv5在開源代碼庫和工程實踐中表現出了較好的檢測效果,但是在井場環境下工人工服是否穿戴完整、是否戴安全帽等方面存在著漏檢率高、效果不佳的問題[11]。因此,本文以YOLOv5算法為基礎,提出了一種新的改進方法,采用替換損失函數和引入注意力機制來改善以上問題,提升檢測效果。
1.2.1 SIoU 損失函數
YOLOv5 算法以CIoU Loss 為邊框回歸損失函數,并利用Logits 損失函數和二進制交叉熵來計算目標得分和類別概率損失[10]。在YOLOv5 算法中,雖然將預測框直接加入到分類模型中,但是未考慮真實框和預測框之間的不匹配,使得預測框在訓練過程中可能會位置不定,導致算法的收斂速度慢、效果差等問題。為解決以上問題,在Head輸出層使用SIoU 損失函數代替CIoU 損失函數,解決了真實框和預測框不匹配的問題,有效提升了算法的檢測精度和收斂速度[11]。SIoU損失函數包括以下4個部分:
1)角度損失:
式中:ch為真實框和預測框中心點之間的高度差,cm;σ為真實框和預測框中心點之間的距離[12],cm。
2)距離損失:
式中:ρt表示賦予的權重;()和(bcx,bcy)分別是真實框與預測框的中心坐標。
3)形狀損失:
式中:ωt表示比值權重;(w,h)是預測框的寬和高,(wgt,hgt)是真實框的寬和高;θ表示控制對形狀損失的關注程度。
4)SIoU損失:
SIoU損失函數的定義如下:
式中:B為預測框;Bgt為真實框;IoU表示預測框與真實框的交集;Δ 表示距離損失;Ω表示形狀損失。
1.2.2 注意力機制
深度學習中的注意力機制是一種模仿人類視覺和認知系統的方法,它允許模型對輸入序列的不同位置分配不同的權值,以便在處理每個序列元素時專注于最相關的部分。由于井場環境十分復雜,在檢測過程中受到復雜背景的干擾容易出現漏檢。所以針對此問題,在Neck網絡中添加注意力機制,以此來提高主干網絡的特征提取能力。SE注意力機制是典型的通道注意力機制,其網絡結構如圖3所示。

圖3 SE通道注意力機制網絡結構
由圖3可以看到,在原特征圖X中,各通道的重要程度相同,經過SE網絡之后,特征圖X*每個通道被賦予了顏色,不同顏色表示不同的權重;SEnet 通過自學習的方式掌握各通道的重要程度,使網絡關注對當前工作有用的通道而忽略不重要的通道,提高特征的判別能力。
SEnet的實現步驟包括以下3個部分:
1)壓縮(squeeze)。壓縮操作將特征圖X從[H,W,C]壓縮為[1,1,C][13]。通過降低特征圖的維度來減少計算量,加速模型的訓練過程,提高模型的泛化能力。
2)激勵(excitation)。激勵操作給每個特征通道賦予一個權重值,通過兩個全連接層構建通道間的相關性[14],使其輸出的權重和輸入特征圖的通道數相等。這有利于網絡學習輸入中的重要特征。
3)通道權重相乘(scale)。通道權重相乘操作將是將第二步激勵操作后得到的權重作用于特征圖X的每個通道,將特征圖(H×W×C)與權重(1×1×C)對應通道相乘得到特征圖X*。
通過油田現場的監控攝像頭采集大量井場作業以及違規行為的視頻,對于篩選出來有用的視頻,將其分幀成圖片,然后從大量的圖片中挑選出違章特征明顯的圖片,使用labelimg 工具進行人工標注,具體的識別對象及其標簽名稱見表1。

表1 識別對象及其標簽名稱
本次實驗共采集了750張圖片,使用其中的675張圖片作為訓練樣本,75張圖片作為測試樣本。其中,labelimg操作界面如圖4所示。本次訓練的迭代次數epoch 指定為100 次,輸入圖像大小為1 280×720,超參數batch_size 指定為5,初始學習率指定為0.01,通道數目為3,最終分類數目為5。

圖4 Labelimg操作界面
為了體現改進算法的有效性,在實驗配置相同的情況下,對原YOLOv5 算法與改進YOLOv5 算法進行了比較,對比結果見表2。

表2 YOLOv5算法和改進YOLOv5算法結果對比
表2 從平均準確率、平均召回率以及均值平均度3 個方面,對比分析了使用改進算法對網絡性能帶來的影響[15]。從表2可看出,相較原始算法,平均準確率提升3%,平均召回率提升1%。YOLOv5 算法和改進YOLOv5算法對每一類別的識別準確率見表3。

表3 YOLOv5算法和改進YOLOv5算法識別準確率
由表3 可以看出,在每個類別中,改進后的YOLOv5 算法識別準確率高于原始YOLOv5 算法。其中,無上工服類別的識別準確率從原始的56.5%提高到了83.6%,其識別精度提高了27.1%;工服齊全類別的識別精度提高了5.2%。針對無上工服、工服不全、工服齊全這3 類識別對象出現誤判的情況,分析原因可能是工人身體某些部分被其他物體遮擋,或某些工人將上工服脫掉拿在手里,使得模型無法準確識別。無安全帽類別的識別準確率由原始的71%提高到83%,識別準確率提高了12%,分析原因可能是圖像中工人的頭部被其他物體遮擋,或是監控攝像頭距離現場較遠,圖片中安全帽的尺寸非常小,導致模型不能正確識別。但總體來看,改進后的算法相較于原始算法對目標檢測的效果有明顯的提升。
訓練過程中兩種算法的P-R 曲線如圖5 所示,可以看到準確率與召回率成反比,準確率越高,召回率越低。曲線離(1,1)坐標越近,則表示算法的性能越好。

圖5 精確召回率曲線
由圖5 可以看到,在改進的YOLOv5 模型中均值平均度達到了88.1%,較原始的YOLOv5 模型相比,提高了9.8%。實驗結果表明,基于YOLOv5的改進算法能夠顯著提升目標檢測的準確性。
在數據集訓練結束后,會生成兩個權重文件,隨機選取一張圖片使用最優的權重文件來做推理測試,推理結果如圖6所示。

圖6 推理測試結果
在圖6 中可以看到4 個人都被檢測到工服齊全,可以看出其檢測效果不錯。
本文提出了基于改進YOLOv5算法的井場作業風險智能識別方法并應用,主要結論與認識如下:
1)針對井場中施工人員的一些不規范行為,提出了改進的YOLOv5 算法,通過替換損失函數和增加注意力機制模塊,能夠有效識別5 種不規范行為并有較高的準確性。
2)改進YOLOv5 算法相較于原始算法,平均準確率達到了93%,整體提高了3%;均值平均度達到了88.1%,整體提升了9.8%;其中對無上工服和無安全帽識別準確率分別提升了27.1%和12%。結果表明,改進YOLOv5 算法能夠有效識別工人的不規范行為,具有較高的預測精度和較好的實時性,獲得了較滿意的效果。
3)本研究的局限在于數據集的獲取上,模型的識別準確率有限。在后續的研究中會在獲取更多數據集的基礎上,繼續對現有算法進行改進,在保證算法檢測準確率的基礎上使其具有更強的魯棒性和泛化能力。