凌宇志,徐家新,楊昊坤
(中海油信息科技有限公司,廣東 深圳 518000)
海洋石油作業環境復雜多變,海上油氣勘探、開采生產工作是一項高危險的工作,因此,安全一直是油氣生產工業的重中之重,也是企業生產過程中亟須解決的問題[1]。有毒及易燃易爆氣體泄漏、流程熱液異常刺漏、火災隱患等都是海洋石油作業中的安全隱患。為防止海上溢油、單點系泊、工人生產跌落、生產設備設施跑冒滴漏等事故的發生,中國海油公司制定了“五想五不干”等安全措施,同時針對海上油田平臺、油輪等制定了一系列的安全防范規范,通過加強人工巡檢等手段來預防事故發生。但由于油氣行業作業,尤其是海上油氣作業環境惡劣,以及受裝備、設備老化等諸多因素影響,事故依然時有發生,造成人員傷亡以及財產重大損失,產生極大的社會負面影響。
本文主要針對跑冒滴漏中的煙霧檢測問題進行研究,通過數據增廣方法對有限的樣本進行擴充,采用YOLO算法對視頻圖像樣本進行訓練,最終達成了煙霧檢測的目標。這不僅解放了定期巡查的企業員工,為企業節約了人力成本,更重要的是減少了人員在有害或危險環境中暴露的風險,將更多安全隱患消滅在爆發之前[2]。
YOLO算法屬于無候選框的目標檢測算法,具有檢測速度快、實用性強、依賴簡單、易于移植等優點,是目前最通用的目標檢測算法之一。經過這幾年的發展,YOLO算法已然成為實時目標檢測算法中的標桿。本文作者基于DarkNet開源框架,采用C語言對YOLO算法進行了編程運行,并將該程序應用于煙霧檢測應用當中,取得了較為理想的實驗結果。
數據增廣又名數據增強,是在數據訓練樣本不足或數據場景單一的情況下通過增加有限數據的多樣性和數據量,從而實現在有限數據中提取出更多的有效信息,讓有限數據產出更多價值的一種手段。數據增廣通用方法主要集中在數據圖像變換方面,常見的數據增廣有圖像亮度信息變換、圖像反轉、旋轉、高斯模糊等。
充足的訓練數據是保證深度學習網絡模型穩定的前提,但由于煙霧檢測技術起步較晚,不像人臉識別、口罩識別、安全帽識別等技術已經商業化并且建立了多個行業標準訓練數據集。煙霧的發生通常代表危險,視頻圖像采集難度極高。另外,煙火的危險性非常大,我們也難以進行大型的煙火實驗來采集煙霧數據。基于此,本文采用煙霧發生器結合后期特效模擬的手段對煙霧數據進行增廣[3]。
2.2.1 基于合成的煙霧數據集增廣
因為部分復雜場景,譬如高空場景、地底管廊管線等危險場景,無法部署煙霧發生器,所以我們考慮在這部分場景中使用特效軟件進行模擬,同時驗證模擬數據集能否代替部分真實數據。
電廠現場擁有百余枚監控攝像頭,可以通過錄制收集各類各點位的煙霧素材。為了保證素材不重復,本文采用間隔提取的方法,平均間隔2 s提取一張圖片。
針對位置過高、環境復雜類特殊場景,本文采用后期特效軟件進行素材合成。我們收集了180個不同種類的煙囪煙霧的真實素材,同時使用AfterEffects的Particular系統模擬了一系列煙霧效果。
2.2.2 特效合成
疊加模式是一種通過兩幅圖像的像素值的加權疊加來合成新圖像的方式,如式(1)所示。

式中,g是目標圖像;f0、f1是兩幅進行疊加的圖片;a是權重范圍(0~1)。從式(1)可知,黑色色塊通過疊加不影響底層圖像像素信息,可以做到不破壞原有像素圖像信息。
本文所使用的訓練數據都是單幀圖像,所以需要將收集到的視頻和特效合成后的視頻進行單幀截取。我們對視頻每秒提取5幀圖像。由于YOLO第一層卷積層輸入分辨率是608×608,而我們收集到的煙霧視頻分辨率基本是1920×1080,對于網絡訓練分辨率太高,所以通過resize到608×608分辨率進行進一步訓練。
本實驗采用labelimage進行標定工作,具體方法是:通過修改classes.txt自定義標類別為smoke,使用python打開labelimage軟件,在圖片上用創建矩形框包圍煙霧范圍,軟件生成對應PASCALVOC格式的xml標簽文件,之后利用python編寫的轉換器將生成的xml文件轉換為包含圖片樣版本路徑、標簽路徑、標定位置等信息的文本格式文件,為接下來的調用YOLO訓練做好準備[4]。
目標檢測領域中IoU是用以描述精度的性能指標,是指預測框與實際框所重疊占比,IoU損失的計算公式如式(2)所示。

本實驗采用正確率(Precision)、召回率(Recall)、平均精度(AP)、平均精度均值(mAP)作為模型的評判指標。正確率是所有預測為正樣本的結果中所有預測正確的比率,在本實驗中,TP代表正確檢測到煙霧的次數,FP表示錯誤檢測煙霧的次數,FN代表漏檢煙霧的次數。正確率Precision與召回率Recall的定義如式(4)、式(5)所示。

在本實驗中,由YOLO算法來實現目標檢測。YOLO算法基于dark net網絡進行編寫,實驗是在Win10系統上進行的,每次迭代訓練樣本數為64,學習率為0.005。當迭代次數分別為10 000和15 000時,學習率衰減至0.003和0.0005。
本方法設計兩組對照實驗,用于探討使用后期特效模擬的煙霧數據對真實拍攝數據的影響,以及使用模擬數據替代真實煙霧數據對模型性能的影響,多少百分比的模擬數據可以使模型達到一個最優值。
第一組實驗用于對比特效模擬的煙霧訓練集和真實煙霧訓練集。測試數據集:選取2 000張真實拍攝的煙霧素材作為測試數據集。真實數據集:選取2 000張真實錄制煙霧照片作為真實數據訓練集。如圖1所示。

圖1 真實數據集
模擬數據集:選取2 000張后期特效模擬照片作為模擬數據訓練集,模擬效果如圖2所示。

圖2 模擬數據集示例
檢測結果對比如表1所示。

表1 檢測結果對比
實驗結果表明,拍攝煙霧素材和使用后期模擬煙霧素材所構建的模型性能相差并不大,說明在樣本數據不足的情況下,使用特效模擬的數據可以替代部分真實拍攝數據。為了進一步探討在真實數據量不足的情況下,后期模擬素材對實際模型精準度有多大的影響,我們設計了第二組實驗。第二組對照實驗用于討論需要使用多少比例的后期模擬素材能夠讓模型精度達到一個比較好的狀態。我們分別設計了1∶1、5∶1、1∶5的比例訓練數據進行訓練,詳細數據如下。
(1)1∶1數據集:3 000張真實拍攝素材和3 000張后期特效模擬素材。
(2)5∶1數據集:5 000張真實拍攝素材和1 000張后期特效模擬素材。
(3)1∶5數據集:1 000張真實拍攝素材和5 000張后期特效模擬素材。
(4)真實數據集:6 000張真實拍攝素材。
不同比例訓練集訓練得出的模型對煙霧檢測的測試結果如表2所示。

表2 不同比例訓練集下測試結果
通過對比可以明顯看出,在各個比例下的真實拍攝素材和后期模擬素材中,1∶1的比例能讓模型擁有更好的性能,驗證了前面提出的猜想。
本文通過使用后期特效軟件制作上萬張煙霧場景圖片,結合現場實際拍攝的煙霧圖片,能夠讓模型更好地識別煙霧。通過兩組對比試驗可以看出,以1∶1比例將實際圖片和特效圖片混合,可以讓模型達到最佳性能,使用模擬素材提高了模型對煙霧識別的目標精準度。該算法及數據增廣方法同樣適用于其他目標檢測應用,譬如使用YOLO算法識別水滴滴漏。漏水檢測的素材同樣難以收集,通常做法是在需要漏水部位進行模擬漏水拍攝或是使用吊瓶一類工具進行滴漏模擬。我們可以考慮使用黑色幕布拍攝一系列漏水、濺射一類的畫面。如圖3所示。

圖3 液體滴漏示意
使用后期軟件進行二次合成加工,可以得到相對擬真的圖像。使用這類圖片結合實際拍攝素材,以1:1進行混合加入模型訓練,可以得到模型精準度超越單純只有實際拍攝素材訓練的模型,在樣本數量不足或現場條件有限而無法獲得大量訓練樣本的情況下很實用。■