孫召龍,徐 昕,朱云龍,田 楓
(1.中國石油化工股份有限公司勝利油田分公司現河采油廠,山東東營 257000;2.東北石油大學計算機與信息技術學院,黑龍江大慶 163318;3.慶新油田開發有限責任公司,黑龍江大慶 163000)
吸煙行為是油田作業現場十大禁令之一,若不加以控制會增加引發火災的可能,從而造成重大財產損失和人員傷亡的事故發生。目前油田作業現場大多是通過煙霧探測器和人工監控方式對吸煙行為進行管控,但煙霧傳感器受空間限制,在戶外場景下即空間很大時,煙霧傳感器檢測的準確率會降低,而人工監控方式在浪費人力的同時又無法實現檢測的實時性。因此,在油田作業現場精準又實時地檢測吸煙行為是一個急需解決的難題。
常見的吸煙報警系統主要是基于煙霧伴隨性對空間內煙霧濃度進行閾值判定的傳統吸煙檢測技術,雖然煙霧傳感器靈敏度較高,但在空曠通風的戶外場景下對吸煙行為識別效果并不理想。隨著圖像處理和模式識別技術的發展[1-3],吸煙檢測技術形成兩大分支,即基于傳統算法及基于深度學習的檢測。傳統的吸煙檢測方法多基于煙霧的顏色特征來進行吸煙或火災預警。Qin Luxing[4]等通過提取顏色矩、HOG和LBP空間下的煙霧特征來進行森林火災預警。基于深度學習的吸煙檢測可分為基于候選窗口和基于回歸兩類,張日東[5]等將Haar-Adaboost車窗檢測算法和基于HSV空間的混合高斯煙霧檢測算法相結合,對出租汽車司機的吸煙行為進行檢測。馬曉菲[6]等通過改進的MTCNN人臉檢測算法確定嘴部區域定位,再經過MobileNet-v1遷移學習的分類算法,構建基于人臉分析的吸煙行為檢測算法模型。Faster-RCNN是基于候選框多階段檢測的主流框架。李倩[7]等以Faster-RCNN作為骨干網絡并和FPN特征金字塔相結合進行吸煙行為檢測。該方法有效降低了漏檢率,但同樣缺乏實時性檢測。為此,有學者提出YOLO[8],SSD,YOLOv2,YOLO9000[9]等基于回歸的目標檢測框架。YOLO系列框架通過網絡以端到端的形式一步完成目標檢測任務。王夢依[10]等對YOLOv3目標檢測框架進行了結構改進和參數尋優,構建吸煙檢測系統。YOLOv5是目前YOLO家族最新的框架,有學者基于此模型用于口罩佩戴識別[11-13]。當前,在油田作業現場的場景下對吸煙行為精準并實時檢測仍是一個亟需解決的難點。
2020年5月,Ultralytics LCC公司提出由PyTorch編寫的YOLOv5模型,該模型集成了YOLOv3中的FPN多尺度檢測及YOLOv4中的Mosaic數據增強和SPP結構,其結構如圖1所示。YOLOv5模型大小可調節,共有四種網絡結構即YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x。四種網絡結構的區別在于Backbone及Neck部分的CSP結構寬度和深度不同,即卷積的次數和殘差塊的數目不一樣。同時YOLOv5模型的體積很小,最小模型YOLOv5s的權重數據文件大小為27MB,是YOLOv4權重數據的九分之一[14-15]。除此之外,其推理速度達每秒140fps,滿足監控視頻實時性檢測的需求。

圖1 YOLOv5網絡結構圖Fig.1 Structure diagram of YOLOv5
Backbone部分的核心是CSP結構。CSP結構是YOLOv5四個模型的區別所在,即卷積操作和殘差值處理次數不同,所以對于不同數據集的訓練表現也有所不同。在YOLOv5模型中Backbone和Neck部分都存在CSP結構,而在YOLOv4模型中只有Backbone部分融合了CSP結構。對于CSP這種跨階段特征信息傳遞策略所接觸的階段越長越有利于模型的訓練,這也是YOLOv5在YOLOv4基礎上的改進之處。CSP模塊首先將基礎層的特征映射劃分為兩部分,在劃分的同時做特征信息的備份,然后通過跨階段層次結構將其合并。這樣避免在信息傳遞的過程中丟失底層特征信息,并且有效地減少信息集成過程中特征重復的可能。另外由于跨階段使用拆分和合并操作,使得該策略能夠顯著降低計算成本,從而在保證準確率的同時實現模型輕量化。
Neck部分中采用了FPN+PAN的結構。FPN結構采用自上而下的方式處理圖片特征,對高層的特征信息通過上采樣操作進行傳遞與融合,獲得預測的特征圖。PAN采用自下向上的特征金字塔思想,將FPN每層所獲得的特征預測圖向上再做一次特征提取與融合,具體結構如圖2所示。該結構融合了當前尺度和以前尺度的特征,能夠實現從不同的主干層對不同的檢測層進行特征的參數聚合,得到預測的特征圖。該模塊在一定程度上可以提升小尺寸目標的檢測性能,提高網絡的魯棒性,增強訓練過程。

圖2 FPN+PAN結構Fig.2 Structure of FPN and PAN
本次實驗在Intel Core i7 6700處理器,主頻為4 GHz,內存為32 GiB,顯卡型號為GeForce RTX 3080 Ti的PC機上進行,在Ubantu18.04環境下利用深度學習框架Pytorch對YOLOv5模型進行訓練與測試。訓練模型的參數設置如表1所示,模型的訓練次數Epochs設為300;批次大小Batch size是指訓練時一次性輸入網絡的圖片數目,與顯卡的顯存大小有關,將其設為8;由于提高輸入分辨率在一定程度上會提高小目標檢測精度,所以輸入分辨率img-size在原始值為640的基礎上增加64,調至為704;置信度閾值conf_thres和IoU閾值Iou_thres用于非極大值抑制迭代篩選的處理過程,分別設為0.001和0.65。

表1 YOLOv5訓練參數設置Tab.1 Training parameter setting of YOLOv5
由于通過Python爬蟲代碼爬取的谷歌和百度圖片大多屬于特寫圖片,并不滿足油田作業現場戶外下中距離的吸煙檢測需求。所以本文自行創建吸煙數據集,采用兩種方式進行采集,總共采集4196張圖片。第一種采集方式是通過放大室外監控攝像頭截取的吸煙圖片,另一種采集方式是先自行錄制不同場景下的吸煙視頻,再按照一定的幀數間隔截取視頻中的圖片。數據集采集完成后是數據集的標注部分,使用LabelImg標注工具,用矩形框選定手拿煙和嘴叼煙區域。標注后生成的是遵循PASCAL VOC格式的XML文件,并將中心點的坐標即標注框的寬和高以偏移量的方式存儲到TXT文件中,使得訓練時可以忽略不同圖像的尺寸,提高小目標檢測精度。
2.3.1 模型性能對比
YOLOv5共有四種預訓練模型,每種網絡的深度和寬度不同,所以在不同數據集上表現會有所不同。為獲取更適用于油田作業現場中距離的吸煙數據集所對應的權重數據,分別用YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x四種網絡進行訓練,并用300張測試集對四種模型進行性能對比,通過計算四種模型在測試集上的精確率均值(mAP)及召回率來評價模型的性能。精確率P又稱查準率,如公式(1)所示;召回率R又稱查全率,如公式(2)所示。

公式(1)和公式(2)中,TP表示將正類別預測為正確類別的個數;FP表示將負類別預測為正確類別的個數;FN表示將正類別預測為負類別的個數。YOLOv5四種預訓練模型測試的結果如表2所示。
由表2可知,YOLOv5s模型用時最短、檢測速度最快,每秒能夠檢測16幅圖片。YOLOv5m模型的召回率及mAP值最高,其中召回率比YOLOv5l模型高出3.07個百分點,達到了89%,且YOLOv5m模型的精準率相對于YOLOv5s模型、YOLOv5l模型和YOLOv5x模型分別高出1.22、0.27和1.03個百分點。四個模型對吸煙行為檢測樣例如圖3所示。

表2 不同模型性能對比Tab.2 Performance comparison of different models
從圖3的檢測對比可以看出,該模型對戶外場景下中距離的小目標檢測效果明顯,方框為檢測算法輸出的邊界框,目標框上的數值表示預測精確率。從算法測試結果可以看出,YOLOv5m的預測精確率較高為0.78,優于其他三種檢測模型。
2.3.2 YOLOv5m模型最優性能
綜合上述不同模型的測試性能及測試效果,本文選用由YOLOv5m模型訓練得到的最佳權重數據。圖4描繪了YOLOv5m模型訓練時的精確率和訓練損失隨迭代次數的變化值。當訓練次數Epochs的值較小時,精確率從0開始快速上升,訓練損失值由0.8開始迅速下降,標志著網絡模型開始對圖片特征進行學習。隨著訓練次數的增加,精確率曲線上升的速度逐漸變慢,以振蕩的形式繼續上升,訓練損失曲線逐漸平穩到一個穩定值。當訓練次數Epochs為200附近時,精確率曲線趨于穩定,波動減少。當訓練次數Epochs為250時,精確率曲線趨向為0.926的穩定值,訓練損失曲線趨向為0.012的穩定值。由此可知YOLOv5m模型訓練過程穩定,性能優良。

圖4 YOLOv5m實驗損失和精度值Fig.4 Loss and accuracy of YOLOv5m network
本文首先進行數據采集與預處理,得到更符合油田作業現場的吸煙數據集,通過對比YOLOv5四種預訓練模型所得的性能結果和檢測效果,得到最優權重數據。實驗結果表明,該方法可以快速、精準地識別出吸煙行為,為油田作業現場的安全性提供了一定的保障。