杜成波



摘要:水電站現場存在邊坡滾石、高處墜物、水位突變等諸多安全風險,采用有效手段對現場人員未佩戴安全帽和水位超限進行自動識別報警具有重要意義。利用現場視頻監控獲取實時圖像,借助圖像識別技術,提出了基于改進運動目標識別方法的安全帽檢測和水庫水位自動監控方法,并基于OpenCV平臺開發了相關監控程序,對進入視頻監控區域的現場工作人員以及水庫水位進行實時檢測,實現了自動實時監控和報警,提升了水電站現場安全管理水平。
關鍵詞:安全管理; 安全帽佩戴; 水位監控; 圖像識別; 視頻監控; 水電站
中圖法分類號: TV512;TP315
文獻標志碼: A
DOI:10.16232/j.cnki.1001-4179.2024.S1.047
0引 言
水電站現場環境復雜,存在諸多安全風險,如邊坡滾石、高處墜物、水位突變等,采用有效手段對現場人員未佩戴安全帽或水位超限進行自動識別報警和提醒具有重要意義。水電站場地范圍較大,目前現場一般都會布設視頻監控系統對一些重要區域進行重點監控,通常情況下會安排專職人員在監控室中集中監視視頻監控系統傳輸來的圖像畫面,并就發現的問題及時通知相關人員。基于視頻圖像識別技術的現場安全監控可以憑借自動化程序識別代替人工監視判斷,從而減輕人工監視的工作量。圖像識別技術屬于人工智能的一個重要領域,以圖像主要特征(幾何形狀、顏色、面積、周長、體積等)的識別為基礎,目前已經廣泛應用于智能交通、裂縫識別、指紋識別、人臉識別、運動目標識別、醫學研究等領域[1-2]。
本文針對水電站現場人員安全帽佩戴和水位監控等安全管理,基于現場視頻監控獲取的實時圖像,采用圖像識別技術,提出了改進的運動目標識別方法,利用OpenCV平臺開發了現場人員安全帽佩戴監控程序和水庫水位監控程序,實現自動實時監控和報警。
1現場人員安全帽佩戴監控
本文提出的現場人員安全帽佩戴檢測流程包括基于圖像識別的運動目標(人員)檢測、人員頭部檢測、人員佩戴安全帽識別等,并且針對現有圖像識別算法缺點進行了改進,以滿足現場視頻實時監控的要求。
1.1基于ViBe算法的運動目標檢測
基于圖像識別的運動目標檢測方法包括幀差法[3]、背景減除法(如混合高斯、平均背景、均值漂移、ViBe等)、光流法[4]、運動模板法[5]等。
其中,ViBe法與其他算法相比具有計算內存占用量低、性能較優等特點,因此本文采用ViBe算法來實現視頻圖像中運動目標(即移動的現場人員)的實時檢測。
ViBe算法的工作原理是:通過建立一定的規則將圖像中各個像素點識別并歸類為背景點或是前景點。ViBe算法中,將背景模型定義為圖像中每個像素點對應的像素值樣本集,在此基礎上將任意一幀圖像中每一個像素點新的像素值與其對應的像素值樣本集進行比較,來判斷該像素點是否屬于背景點,如果一個像素點新的像素值和樣本集中的采樣值比較接近,則它就應該屬于背景點,反之則屬于前景點。
ViBe算法的計算流程如下:
(1) 背景模型的初始化。該步驟僅通過第一幀圖像完成,考慮到單幀圖像中不可能包含像素點的時空分布信息,因此可以隨機選擇像素點相鄰點位的像素值作為背景模型樣本值。
(2) 背景模型的更新。背景模型能夠隨著圖像背景的不斷變化而相應動態更新,比如光照的變化、背景物體的變更等。更新策略一般分為2種:① 保守的更新策略,即始終不用前景點來更新背景模型,這種策略會引起死鎖,比如當初始化時如果一塊靜止的區域被錯誤地檢測為前景,那么它始終會被當做前景,這樣就會產生Ghost區域;② 盲目地更新策略,前景點和背景點都可以來更新背景模型,此種策略的缺點是緩慢移動的物體會融入背景中無法被檢測出來。ViBe算法采用的是保守更新策略+前景點計數法。前景點計數法的規則是:對像素點連續被檢測為前景點的次數進行統計,如果某個像素點連續N次被檢測為前景點,則將其更新為背景點。
背景模型的更新采用隨機的二次采樣策略,即當一個像素點被判斷為背景點時,僅采用一定的概率去更新背景模型,具體來說,當某個像素點被判斷為背景點時,采用1/P的概率去更新自己的像素值樣本值,并采用1/P的概率去更新其相鄰點位的像素值樣本值。更新相鄰點位的樣本值利用了像素值的空間傳播特性,有利于Ghost區域更快地被識別和消除。同時,當前景點計數達到臨界值N時,則將該像素點判斷為背景點,并采用1/P的概率去更新自己的像素值樣本值,同時采用隨機方法隨機選取一個樣本值進行更新。
OpenCV是一個開源的跨平臺計算機視覺分析方法庫,采用其提供的現有通用函數來實現特定需求的圖像識別程序開發,能夠較大程度地減輕開發量。本文基于OpenCV平臺,編寫了運用ViBe算法的視頻圖像運動目標檢測程序,程序偽代碼流程如下:
(1) 變量初始化。需要初始化的變量包括每個像素點的樣本個數變量pixSamples,存儲每個像素點對應像素樣本值的三維數組samples,以及存儲每個像素點被連續檢測為前景點次數的數組count。判斷像素點為背景點的兩個重要閾值:像素差異difference和像素差異內的匹配數matches。判斷像素點為前景點的閾值:連續判斷為前景點次數conCount,二次隨機采樣因子subSampFactor,背景像素值backGround和前景像素值foreGround。
(2) 背景模型初始化模塊。
即依次遍歷第一幀圖像中每個像素點的每個樣本,并對三維數組samples進行賦值的過程。具體地,對于任意一個樣本,隨機選取以該像素點為中心,以2個像素距離為邊長的正方形范圍內像素點位像素值進行采樣,并存儲在三維數組samples中,同時將每個像素點被連續判斷為前景點的次數N賦值為0。
(3) 背景模型更新模塊。在此模塊中,依次遍歷當前圖像幀上的每一個像素點,針對任意一個像素點,首先將其像素值依次與樣本值進行比較,如果二者距離差異小于閾值difference的樣本個數,且大于或等于matches時,則判定該像素點為背景點,否則為前景點。
如果被判斷為背景點,首先將該像素點被連續判斷為背景點的次數N賦值為0,并將輸出圖像中該像素點位置處的像素值設置為backGround;然后啟動二次采樣流程,依次采用二次隨機采樣因子subSampFactor隨機將該像素點的某一樣本值賦值為當前幀圖像中該像素點的像素值,同時隨機將該像素點某一相鄰像素點的某一樣本值賦值為當前幀圖像中該像素點的像素值。
如果被判斷為前景點,首先將該像素點被連續判斷為前景點的次數N+1,并將輸出圖像中該像素點位置處的像素值設置為foreGround;然后判斷該像素點連續被判斷為前景點的次數是不是小于conCount,如果是,則采用二次隨機采樣因子subSampFactor隨機將該像素點的某一樣本值賦值為當前幀圖像中該像素點的像素值。
1.2ViBe算法的改進
現有ViBe算法存在兩方面可以重點討論改進之處:
(1) 現有ViBe算法對Ghost區域(圖1)的消除效率不高,具體表現在Ghost區域識別及消除較為緩慢,且Ghost區域消除后的范圍內有運動物體經過時也會被誤判為背景,如圖2所示。
(2) 現有ViBe算法對原始視頻幀圖像進行了單通道處理,這樣雖然能提高算法分析處理的效率,但是因為單通道圖像色域范圍較為局限,有些前景像素由于與背景差別不大依舊易被誤判為背景,如圖3所示。
經分析,現有ViBe算法對Ghost區域消除效率不高的原因是:當像素點被連續檢測為前景的次數conCount滿足成為背景點的條件后,采用二次隨機采樣因子subSampFactor,隨機將該像素點的某一樣本值賦值為當前幀圖像中該像素點像素值的概率較低,導致該像素點的背景模型更新效率較低。針對這一問題有兩種改進方法:① 降低conCount,同時采用更大的隨機采樣因子增大采樣概率;② 采用該像素點當前幀圖像中相鄰的像素值對該像素點的樣本值進行全面更新,以擴大采樣范圍。上述2種改進方法同時使用時需要注意:① 對于圖像前幾幀被判斷為Ghost的區域(以下簡稱為初始化Ghost區域),宜采用該像素點當前幀圖像中相鄰的像素值對該像素點的樣本值進行全面更新,這樣可以提高初始化Ghost區域的消除效率;② 對于因為降低conCount同時增大隨機采樣概率而增大了背景模型的更新頻率,導致將短暫靜止的物體錯誤地判斷成背景而形成的Ghost區域(以下簡稱為過程中Ghost區域),此種情況下則適合采用該像素點第一幀圖像中相鄰的像素值對該像素點的樣本值進行全面更新。
對于如何判斷圖像檢測過程中出現的是初始化Ghost區域還是過程中Ghost區域,可在前若干幀圖像中對各像素點被判斷為前景點的次數進行統計后判定,如果前景點次數遠大于背景點次數,則判斷其屬于初始化Ghost區域。
針對有些前景像素與背景差別不大而被誤判為背景的問題,可以將圖像處理為3通道圖像,根據RGB像素進行判斷更加準確。
其他改進方面:① 縮小背景模型中像素點的樣本數量和采樣范圍,將采樣范圍縮小至像素點自身及上、下、左、右等5個像素點的位置;② 補充背景點的判定與更新條件,在經過上述方法判定的背景點和前景點構成的圖像中,依次判斷各像素點,若某一像素點四周均為背景點,則其也應為背景點。
采用改進后的ViBe方法對原視頻圖像進行檢測,結果如圖4~5所示。
1.3人員頭部檢測
通過ViBe算法獲取視頻圖像中運動人員目標后,需要在此基礎上進一步識別人員頭部區域。本文提出兩種人員頭部區域檢測的實現方法:圓形檢測法和包圍盒檢測法。
在圓形檢測法中,首先識別出運動人員目標所在區域內的圓形以及人形輪廓,根據輪廓的像素面積,剔除一些不是人形的輪廓。同時為了剔除一些識別出來但不屬于頭部區域的圓形,需設置兩個篩選條件:① 圓形的圓心需在某一人形輪廓之內;② 在滿足條件1的基礎上,同時需滿足圓心位于該輪廓頂部1/7輪廓高度范圍內(人頭高度一般為人身體高度的1/7)。
在包圍盒檢測法中,首先識別出運動人員目標的包圍盒以及人形輪廓,同樣可根據輪廓的像素面積剔除一些不是人形的輪廓。同時通過設置以下兩個篩選條件限定人員頭部區域的像素坐標范圍:① 像素坐標需在某一人形輪廓包圍盒頂部1/7高度范圍內;② 該像素坐標需在同一人形輪廓內。
1.4佩戴安全帽識別
水電站現場不同類別的工作人員佩戴不同顏色安全帽,如白色為業主管理人員,紅色為承包商人員,藍色為監理人員,這3種顏色與頭發的顏色有明顯區別,因此可通過對圖像顏色特征的識別來判斷現場人員是否佩戴了安全帽。
在確定了人員頭部位置的圓形以后,在圓形上半圓中的像素點對原視頻圖像該位置處的HSV值進行采樣,若滿足白、紅、藍任一顏色HSV范圍(表1)的像素點數目大于像素點總數的30%,則表示該人員頭部位置佩戴了該顏色的安全帽,否則提示報警。
本文基于OpenCV平臺,編寫了基于ViBe算法的現場人員安全帽佩戴識別程序,整體程序的算法流程如圖6所示,識別效果如圖7~8所示。其中圖8所示的黃色圓圈表示該人員未佩戴安全帽,紅色圓圈表示該人員佩戴了紅色安全帽。
2現場水位監控管理
為監控水電站現場重要區域的水位情況,除在水中設置水位標尺便于觀察讀數外,為實現遠程監控,現場通常會在該區域附近設置攝像頭。本文研究如何在現場設置視頻監控和水位標尺的基礎上,實現基于圖像識別技術的水位自動讀數,以替代人工讀數。
2.1水位刻度定位
水位刻度的定位,是在視頻監控圖像中識別出水面以上未被淹沒的水位刻度。
為此需根據水位刻度的一些顏色或形狀特征將其從圖像中識別出來。以圖9為例,其中水位刻度具有紅色的顏色特征,以及“E”形的形狀特征。本文基于紅色像素提取方法,實現圖像中水位刻度的定位,具體實現方法如下。
(1) 首先將圖像像素由RGB格式轉化成HSV格式。
(2) 循環HSV格式圖像的每個像素點,獲取各像素點對應的H、S、V值,依據表1中紅色像素H、S、V值所在區間,將判斷出非紅色像素點的像素值統一賦值為H=0,S=0,V=0。處理后的圖像如圖10所示。
(3) 將上一步處理后的圖像轉換成GRAY格式。
(4) 采用局部自適應閾值法[6]對圖像進行二值化處理,將圖像中像素值大于自適應閾值的像素點其像素值賦值為1,小于自適應閾值的像素點其像素值賦值為0。
(5) 采用連通域識別方法[7]對二值化處理后的圖像中連通域進行分析,并對各個連通域的包圍盒進行識別(圖11)。
2.2水位分析計算
定位了圖像中的水位刻度之后,根據圖像中已知水位的刻度,以及圖像中露出水面以上刻度的形狀特征來檢測識別當前水位。圖9攝像頭拍攝圖像范圍內,位置最高的刻度頂部所對應的水位為1 879.00 m,記為Hmax。水面以上的刻度個數可通過識別出的連通域個數來確定,將水面以上的各個刻度按照刻度包圍盒左下角點的y坐標從大到小進行排序,則當前水位的計算公式如下:
H≥Hmax-1,n≤1H=Hmax-(n-1)-排序序號為1的刻度包圍盒面積排序序號為2的刻度包圍盒面積,n>1式中:n為水面以上刻度連通域包圍盒個數。
根據上述公式計算,水位識別結果如圖12所示。
3結 語
本文運用改進的運動目標識別方法對水電站現場視頻監控系統獲取的視頻圖像進行分析,開發了現場人員安全帽佩戴、水位變化等識別監控程序,使得水電站現場管理工作更加安全、高效和智能。
同時,未來值得進一步加強無人機、移動互聯、機器人等技術與圖像識別技術在水電站現場安全管理中的深化應用,多重手段、全方位保障現場生產安全。
參考文獻:
[1]陽恩慧,張傲南,丁世海,等.基于三維光影模型的公路路面裂縫自動識別算法[J].西南交通大學學報,2017,52(2):288-294.
[2]崔鵬,張雪婷.一種基于塊共同特征值的人臉識別方法[J].計算機工程與科學,2017,39(4):777-784.
[3]鄧文浩,唐立才,張南鋒,等.基于改進的幀差法和Mean-shift結合的運動目標自動檢測與跟蹤[J].現代電子技術,2016,39(4):108-111.
[4]陳添丁,胡鑒,吳滌.稀疏光流快速計算的動態目標檢測與跟蹤[J].中國圖像圖形學報,2013,18(12):1593-1600.
[5]黨曉軍,尹俊文.一種基于模板匹配的運動目標跟蹤方法[J].計算機工程與應用,2010,46(5):173-176.
[6]張帆,彭中偉,蒙水金.基于自適應閾值的改進Canny邊緣檢測方法[J].計算機應用,2012,32(8):2296-2298.
[7]馬江林,趙忠明,孟瑜,等.海量遙感分類圖連通域標記方法[J].計算機工程,2008,34(1):262-264.
(編輯:胡旭東)