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