沈竺霖
(大慶油田信息技術公司杏區分公司,黑龍江 大慶 163000)
當前工業背景下,智能視頻監控系統進入了油田環境應用領域,這種利用智能視頻分析技術來輔助實現監控的體系,重點依賴計算機視覺(Computer Vision,CV)技術和人工智能(Artificial Intelligence,AI)技術[1],能夠自動識別出視頻圖像中的異常,從而大大提升監控工作的效率。
對于油田工業環境來說,智能監控系統的反應時間關系到油田生產的安全,也是保證國家資產不受侵害的要點所在。這決定了油田智能監控系統的技術應用重點是以智能圖像識別作為最核心的技術,但同時相關流媒體傳輸技術和數據庫訪問技術也在同步引入。三個方面的技術成為支持油田智能監控系統運行的根本所在。
智能視頻圖像識別技術是對視頻監控內容進行識別和分析的技術,決定著視頻監控的精確性和反應速度等多方面行為特征。該項技術會對視頻監控圖像進行區分,確定出背景和前景兩個部分。在油田工業環境中,背景多為相對靜止的采油設備及無人值守的工作環境,前景則是除此以外出現在視頻畫面中的其他活動主體。分析過程需要重點將背景和前景進行分離識別,目前能夠實現這一目的的常見技術方案有幀差法和背景差分法兩種[2]。
幀差法主要考慮到當空間中的三維物體發生相對位移時,其投影在視頻中的二維圖像也會產生相應的變化,并且對于連續的視頻流場景而言,每一幀二維圖像都會呈現出連續特征。因此,可以利用這樣的特征針對圖像序列展開分析,基于時間差分圖像對運動目標區域進行提取。將時間軸上不同位置的兩幅灰度圖進行差分計算,可獲取灰度差分圖像[3]。位于背景上的點會在這個過程中通過減法剔除,剩下的就是處于運動狀態的前景,也就是需要進行自動識別的部分。幀差法通過對比相鄰幀之間的相關性和灰度差來分析視頻圖像的運動特征,從而掌握物體運動造成的區域差異。實際計算過程中會設定一個固定的閾值T作為差分圖中差分值的大小標記,如果超過這一閾值即展開相應的計算。具體來說,首先定義相鄰兩幀的圖像像素值分別為Fk-1(x,y)和Fk(x,y),則兩幀圖像差值計算為:

對應于前文中的閾值,可以對式(1)進行二值化得到:

式(2)的意義在于,當某圖像的像素差值超過閾值,即認定為前景,否則即為背景,這是對于前景和背景的判斷。在獲取到前景圖像的基礎上利用形態學濾波進行處理,即首先利用形態學的閉運算消除運動目標由于表面灰度變化而產生的間斷,獲取到完整的運動目標,而后進一步利用開運算對目標輪廓進行平滑,消除噪聲,最終獲取到的圖像即為檢測目標。此種方法相對而言比較簡單,在響應時間方面表現良好,因此得到了廣泛應用。但是在幀差法的計算過程中,閾值T是一個比較關鍵的因素,在不同的環境下需要確定不同的閾值,閾值過大會造成無法實現有效識別,而閾值過小又會造成系統識別過程的過敏。針對這一問題,目前大多考慮在幀差法的基礎之上進行改進,即在確定閾值的時候選用更為復雜的算法而非選擇一個常值。改進之后的算法大多也還是會繼承幀差法簡單快速的特征,保持不過于復雜的計算和良好的實時特征,因此對應用環境具有良好的適應性。但是當攝像機發生偏移時幀差法就會失效,因此這種方法無法對識別目標展開有效的跟蹤[4]。
與幀差法相比,背景差分法的優勢比較明顯,其主要應用于固定攝像機的運動檢測工作環境,并且同樣具有算法簡單、實時性強、復雜度低的特征。背景差分法選用一個固定的背景圖像,將獲取到的視頻圖像與之進行對比來判斷是否存在變化。背景差分法會依據需要檢測目的的不同而選用不同的標準進行變化區域的提取,從而實現前景目標的識別。
背景積分法引入時間參數t,如果將t時刻背景模型參考記為Fb(t),當前獲取到的圖像記為Fk(t),則背景差分圖像可以表示為:

在背景差分法的計算中,同樣需要設定一個閾值T,如果Dk(x,y,t)>T則判定其為前景點,否則列為背景點。在背景差分法中,首先需要建立背景模型,而后保持更新,才能進一步計算背景差分并展開后續的處理工作。在這些環節中,前兩個方面主要是對背景模型進行初始化和修正,這也是背景差分法的核心所在,只有建立起盡可能符合具體情況的參照,才能區分出精確的前景進行識別[5]。
在背景差分法中,場景的確定需要符合具體情況。對于背景中相對靜止的物體,需要確定一個變化閾值,其中光照、陰影、其他類似的周期性運動以及攝像機正常抖動形成的干擾等,都應當納入到背景環境中。通常而言,可以通過為背景建模的方式來獲取用于參照的背景圖像,這其中最簡便的方法當數對時域加權平均濾波。這種方法產生參考圖像的速度快,對于計算和存儲資源占用小,但是對于環境中的干擾因素抵御性也比較差,現在多考慮利用混合高斯模型對其進行改善。
背景差分法會不斷對背景模型進行調整,因此被列為當前固定攝像頭運動目標檢測最好的方法之一,大多也以此種算法作為油田工業環境的監測支撐。
對于油田工業化環境而言,一個完整的智能視頻監控系統從硬件上看,主要包括熱成像攝像機、云臺、網絡視頻服務器、流媒體服務器以及集中存儲服務器等幾個部分。除去必要的網絡設備外,這些設備基本可以分為前端和服務器兩類,其中服務器又可以分為分布式(專業)服務器和總服務器兩類。實現智能視頻監控系統的核心在于兩個方面,一是設備的遠程控制,二是自動控制體系。
設備控制主要包括油田監控體系中的攝像機和云臺的遠程控制。攝像機控制包括攝像機的變倍、調焦、亮度、對比度、銳化以及圖像增強等,云臺的控制則主要指云臺的轉動和自動巡航。以海康威視設備為例,sdk 函數NET_DVR_PTZControlWith Speed 即能夠實現轉動和自動巡航控制,其函數原型為BOOLNET_DVR_PTZControl WithSpeed(LONGIRealHandle,DWORDdwPTZCommand,DWORDdwStop,DWORDdwSpeed)。
在基本控制的基礎之上進一步展開自動控制的實現,具體包括落實預置點的設置和自動輪詢功能兩個環節,這是構成智能視頻監控系統的核心所在。
2.2.1 預置點設置
預置點的設置是實現自動輪詢的前提。在油田工業環境中,監控點的攝像機大多會選擇油井或者該點相關設備方向進行監控并且將其設置為預置點。監控人員在日常工作時能夠遠程控制云臺或者攝像機移動以查看工業環境各方面情況,而在停止操作或者想要對油井設備進行查看時可以采用自動調整或快速切換。預置點的設置通過預置點結構體來實現,預制點結構體包括預置點的水平角度以及仰俯角度等細節,其具體定義代碼為:

進行預置點設置時,將云臺或者攝像機運行到確定的位置,然后按下設置按鈕。以海康威視設備為例,其sdk 函數NET_DVR_PTZPreset_Other 用于實現預置點的設定,能夠保存這一位置的云臺參數并記錄為對應的預置點。調用已經設置好的預置點時,系統會先對預置點的設置情況進行詢問,得到確定結果之后再獲取相關參數,并且執行自定義的預置點調用函數Preset_Excute。考慮到調用功能可能會在多個對話框使用,因此對其進行單獨定義以保持其靈活性。具體來說,該函數首先確認監控節點是否處于預覽狀態,其次判斷對應的預置點具體屬于哪一個監控點的第幾個預置點,最后調用NET_DVR_PTZPreset_Other 函數來實現預置點的回歸。
2.2.2 自動輪詢
自動輪詢功能對于一個特定的監控點會設定多個預置點,即云臺或者攝像機會有不同的角度來對不同方向的情況進行查看。因此在自動執行任務時,該監控點同樣需要自行更改預置點來對不同方向的情況進行監控和確認。對于一個監控點設置有多個預置點的情況,可以由工作人員選擇具體切換到哪個預置點進行查看,也可以交由自動化系統輪詢執行,自動依次查看各個預置點的監控畫面并且進行識別。
展開自動輪詢之前,具體的路徑即各個預置點訪問的先后順序可以由用戶自行確定,而后系統會自動執行。系統在執行過程中對相應的畫面進行監視和分析。在輪詢的過程中,攝像機在不同預置點停留的時間同樣可以由用戶預先設定。輪詢路徑結構體的定義代碼為:

在以上結構體中,bSet 用于標記輪詢路徑的可用性或者有效性,nStrat*以及nEnd*分別用于表示輪詢工作的開始時間和結束時間,nTime 以及nSpeed 用于標記在每一個預置點停留的時間以及在不同的預置點進行切換時前端的移動速度。
正處于執行狀態的自動輪詢任務同樣有對應的結構體,實現代碼如下:

以上代碼中各項參數主要對當前輪詢任務的執行情況進行記錄,如nPatrolRouteldx 用于標記輪詢線路的身份,而nWaitingTime 則用于標記在當前狀態下停留的時間,用于在某個條件得到滿足時觸發下一個動作。
輪詢路徑確定之后,OnTimer 函數會進行自動控制,系統每間隔4 s 對相關參數與目前的任務執行情況進行對比,并且確定相應的動作。該函數還用于計算對應預置點的停留時間,當滿足預設的時間條件才會執行下一個動作,朝向下一個預置點運行。PatrolMotion 函數則用于支持工作人員改變自動輪詢狀態,是自動輪詢過程中人工命令的接入接口。
在油田工業環境中,智能視頻監控系統的價值不容忽視,關系到油田工業每一個細節的安全。唯有深入地了解其運作機理,才能切實對系統進行優化,保證油田環境安全水平穩步提升。