張 帆, 靳曉妍
(湖南大學電氣與信息工程學院,湖南 長沙 410082)
水電站是實現水能到電能的水利樞紐工程,持續、穩定的電能對人民的日常生活與生命安全具有重要作用。在水電站的安全調控和運行優化過程中,實時水位數據具有重大意義。在水位測量領域,現有水位檢測方法主要有接觸式與非接觸式兩種[1-2]:常用的接觸式[3-4]方法有電容式、壓力式水位檢測方法等,這種方式與水體直接接觸,故障率相對較高;非接觸式[5-9]包括超聲波、雷達、圖像處理等檢測水位方法。超聲波、雷達檢測方法是向水體表面發射脈沖波,根據反射波的接收時間來計算水位高度,但波動水體對檢測的精度有較大影響,不適用于小型水電站。圖像處理檢測水位[10-18]方法在很多場景得到了應用,大多是通過模板匹配或圖像差分的方法辨識圖像中標尺的刻度來確定水位高度,但標尺很容易受水體污染腐蝕刻度,影響檢測精度,限制了這種方法的推廣應用。
本文提出一種基于移動激光與視頻圖像處理技術的水位監測方法,采用光斑提取與目標跟蹤算法識別激光軌跡,從而得到水位信息來計算水位高度。該方法不需要背景標尺,因此避免了水體污染標尺而影響檢測精度的問題。
所設計水位監測系統的結構示意圖如圖1所示。
圖1 系統結構圖
系統主要由背板、支架、擋板、嵌入式設備、攝像機、激光模組與電機組成。背板采用磨砂表面,支架采用鋼構支架,擋板安裝在支架上方,可以遮擋強光和雨水。嵌入式設備安裝在水平支架上,控制攝像機、激光模組與電機的開閉。攝像機固定在水平支架下沿,并斜向下面對背板,保證水位高低變化均處在攝像機拍攝范圍。電機帶動激光模組轉動,調整激光模組的角度,使激光模組照射在背板的激光點從上到下移動至水面。攝像機采集激光點移動期間的視頻圖像,檢測時根據圖像的顏色特征提取紅色激光點,根據激光點在視頻圖像中的移動軌跡確定水位線在圖像中的位置,依據幾何關系計算得到實際水位高度,并傳輸水位數據至服務器。系統結構原理圖如圖2所示。
圖2 系統結構原理圖
水位監測系統主要包括光斑提取、圖像水位判別與實際水位高度計算三個部分。
2.1.1 紅色區域提取
激光模組照射出的激光點顏色為紅色,其在自然界極少出現,所以根據圖像顏色特征進行光斑識別,從而提取目標光斑。傳統的圖像色彩分析大多基于RGB顏色模型,將紅、綠、藍三色通過加色法配置出人眼看到的顏色,難以單獨得到紅色區域。為了得到完整的紅色區域,將RGB格式的圖像轉換到HSV色彩空間,計算公式如下:
式中:R(Red)、G(Green)、B(Blue)——圖像的紅、綠、藍色彩分量;
H(Hue)——顏色的色調,如紅、黃、藍等,其度量范圍為 [0 180];
S(Saturation)——顏色的飽和度,指的是顏色的深淺程度,其范圍為 [0 255];
V(Value)——顏色的亮度,范圍為 [0 255]。
HSV顏色模型更加符合人眼能夠感知的顏色特性。轉換后的圖像如圖3(a)所示。根據OpenCV(open source computer vision library)提供的 HSV顏色模型標準,模糊紅色范圍為 H[0 10] &[156 180],S[43 255],V[46 255]。通過設定 HSV 三通道,特別是H通道的閾值對圖像進行分割,從而得到包含全部紅色光斑區域的灰度圖,由于反射的紅色光斑較淺,為了準確識別,將S通道的范圍適當放寬,可得到如圖3(b)的圖像。
2.1.2 形態學處理
經過閾值分割后的圖像光斑較小,形狀不規則,還可能存在一些噪點,影響目標光斑的提取,對圖像進行形態學處理可以去除光斑內的孔洞與噪點,得到更清晰的光斑圖像。膨脹和腐蝕是最基本的圖像形態學處理,在消除圖像毛刺,使輪廓光滑等方面具有優異效果。其中膨脹是求圖像的局部最大值,經過膨脹后的圖像擁有更大的高亮區域,可對光斑內部的區域進行填充,消除孔洞,腐蝕是求圖像的局部最小值,圖像經過腐蝕后高亮區域變小,還原圖像信息。對每幀圖像進行先膨脹后腐蝕的閉運算,填充光斑像素間斷,消除冗余像素。經過形態學處理后的圖像如圖3(c)所示。
2.1.3 中值濾波
形態學處理后的圖像可能存在由于環境干擾產生的噪聲,如熱噪聲、椒鹽噪聲等,需要對其進行低通濾波去噪,這里選用中值濾波,可以在保留圖像目標光斑的前提下濾除孤立噪聲點。中值濾波將與周圍一定區域的像素值差距過大的點判斷為噪聲點,對其按照周圍像素點的中值重新設定,從而消除噪聲。經過中值濾波后,小于設定大小區域的噪聲被濾除,期望的光斑會被保留,得到的圖像如圖3(d)所示。
圖3 圖像處理過程圖
2.2.1 靜止水體水位判別
為了得到光斑的移動軌跡,需要對檢測到的光斑進行跟蹤,由于攝像機為斜上方拍攝,光斑的形狀在移動中會發生變化,采用基于ASMS的目標跟蹤[19]算法跟蹤光斑位置。基于ASMS的目標跟蹤算法基于mean-shift框架。在OpenCV中,基于mean-shift的目標跟蹤算法主要過程為:1)對圖像中的目標區域進行直方圖描述;2)根據直方圖構建下一幀的反向投影圖;3)在反向投影圖中迭代找出與目標區域相似性最大處,即為目標移動的位置。
基于ASMS的目標跟蹤算法加入了先驗(尺度不劇變)作為正則項,提高目標跟蹤正確率,算法基本流程如下:
1)選取視頻圖像第一幀,將圖像中的光斑區域手動框選,將此區域作為模板區域,對此區域以直方圖形式進行描述。
2)設定相似性度量閾值,當計算得到的相似性度量函數結果大于等于此定值時,認為此處區域為跟蹤目標。
3)從下一幀圖像的上一幀圖像目標區域中心點開始迭代,與模板區域進行相似性對比,使用的相似性度量函數為:式中:u——區域直方圖的索引;因子矯正相似性的計算。
4)計算光斑區域的尺寸參數,將其作為正則項
5)對比同一圖像的所有待匹配區域與模板區域的相似性,選擇大于等于相似性度量閾值的區域作為本幀圖像的匹配結果,記錄此區域的中心點坐標。
6)重復步驟 3)、4)、5),對所有圖像進行處理,直至視頻所有圖像檢測結束。
經過以上步驟處理后可以得到直射光斑與反射光斑的移動軌跡坐標,觀察光斑軌跡發現,激光點移動過程主要分為以下四個階段:
1)系統開始運行后激光亮起,背板上端出現激光模組直射的激光點,由于光的反射,水面上出現反射激光點。
2)隨著直射激光點向下移動至接近水位線,水面上的反射激光點也接近水位線并向上移動。
3)直射激光點與反射激光點在水位線位置重合。
4)直射激光點繼續向下移動,反射激光點繼續向上移動,遠離水位線一定位置后熄滅。
激光軌跡示意圖如圖4所示。
故判斷,直射光斑與反射光斑的坐標差值為0或小于設定閾值時光斑坐標為水位線位置坐標,即圖4中c圖的位置。
2.2.2 波動水體水位判別
水體靜止只存在于少數情況,在實際生產中大多數情況下水體呈現波動狀態,水體波動情況下視頻圖像中的光斑狀態可能不同:當直射激光打在背板時,水面上可能出現復數反射光斑,且形狀不規則,面積變化較大,當直射激光打在水面時,水面可能由于水體波動出現多個光斑,背板上的反射光斑也可能為復數,或互相粘連。
為了將水位線以上和水位線以下的光斑進行區分,采取靜態數據分析中的數據聚類技術對濾波后的光斑圖像進行分析。
K-means算法[20]是最常用的聚類分析算法之一,它將距離越近的對象判定為相似性越大,以此為根據對多個對象進行分類,基本流程如下:
1)在整幅圖像中隨機選取K個對象作為聚類質心,本方法為了將圖像光斑依據水位線以上和水位線以下進行分類,取K=2。
2)假設光斑對象共有N個,對于每一個對象,找到距離它最近的質心作為標簽,若N=1,則直接分為一類,分類結束。計算方式如下:
式中:c——類標簽;
x——各個光斑對象;
3)對于同樣標簽的類,更新其質心,公式如下:
4)重復步驟2)和3),不斷劃分新的聚類,計算新的質心,直至新的質心和上一次計算的質心相同或差距小于設定的閾值,判斷此時聚類收斂,分類結束,記錄此時兩類光斑的質心位置。
光斑圖像經過分類后可得到直射激光點類與反射激光點類的移動軌跡,將兩類質心的移動軌跡作為直射與反射光斑的移動軌跡坐標。
由于水體波動、光照強等原因,水面上的激光點可能由于不清晰而導致誤檢,或由于光的反射呈現復數激光點,不能簡單地將兩個激光點重合時判斷為水位位置。觀察發現,當直射激光點到達水位線之前,較上端的光斑為直射激光點,且向下移動;當直射激光點到達水位線之后,較上端的激光為反射激光點,且向上移動。因此,判斷圖像上端首個激光點類的移動軌跡最下方為水位線位置。
構建系統幾何關系圖,如圖5所示。經過圖像水位判別方法后得到的水位在圖像中的位置為C,此處像素值即為AC的長度。攝像機采集圖像為640×480像素大小,圖像縱向長度AD為480像素,攝像機的廣角為41.41°,圖像中水位以上部分的角度∠AOC即α的大小可由下式計算:
圖5 系統幾何關系圖
攝像機在支架上的位置為O,圖5中虛線部分OA,OD為攝像機的廣角,其視野最高點為A,支架拐角處為Q。標尺測量得到AQ與OQ的長度,則∠AOQ即β的計算式為:
在 △OQC′′中,根據正切定理,可以得到水面以上背板的高度的計算式:
背板固定在墻壁上,已知背板長度QX,可得到水位線距離背板底端的高度的計算式:
通過以上計算得到實際水位高度,若計算水位線距離水底的高度,可在公式(8)中增加背板底端到水底的距離。系統事先設定一個固定值作為安全水位閾值,一旦實際水位等于或超過安全水位閾值,系統會發送警報至管理人員。
選用 Raspberry Pi基金會的 Raspberry Pi 4B 開發板作為嵌入式設備,支持4 GB運行內存,體積小,性能強。垂直水面的支架長度為1.8 m,水平支架長度為1.6 m,可以使攝像機廣角覆蓋水位高低變化極限。攝像機內置5 000萬像素,通過HDMI線與樹莓派進行數據傳輸。電機選用可240°旋轉的舵機,由樹莓派供電并工作在5 V電壓下。電機通過機械結構帶動激光模組勻速轉動,調整激光模組的角度,使激光模組照射在背板的紅色激光點從上到下移動至水面。多次試驗發現激光模組直接全壓(5 V)啟動會對其產生電流沖擊現象,縮短使用壽命,故選用PWM調壓啟動來保護激光模組。
系統安裝的實物圖如圖6所示。
圖6 實物安裝圖
分別在水位變化明顯的14:00-17:00與23:00-01:00時間段依據以下步驟進行實驗:
1)關閉水電站的發電機,將水體靜止時人工觀測水尺得到的水位數據作為水位高度依據。
2)記錄同一時間該水位檢測系統檢測的水位高度作為靜止水體測量水位方法的結果。
3)開啟水電站的發電機后,水體開始波動,系統重新檢測此時的水位高度,將此高度作為波動水體測量水位方法的結果。
4)使用基于模板匹配的圖像處理檢測水位方法測量此時的水位值。
選取時段的水位從51.48~177.84 cm,變化幅度為126.36 cm,白天進行48組對比實驗,夜晚進行34組對比實驗,該水位監測系統拍攝的每段視頻包含激光點從上到下移動一次的時間,均為23.74 s,每秒拍攝32幀,視頻處理所需時間在25~60 s之間,造成這種差距的原因是夜晚的視頻圖像基本為黑色,圖像信息較少,處理較快。模板匹配法在夜晚測量時進行人工補光。
計算得到的數據如表1所示,E為與人工測量水位相比的絕對誤差,系統靜止水體測量方法的數據量為N1,占比為σ1,系統波動水體測量方法的數據量為N2,占比為σ2,基于模板匹配的圖像處理檢測水位方法的數據量為N3,占比為σ3。
條件 樣本數E/cmN1σ1/%N2σ2/%N3σ3/%
白天 48<0.1 21 43.75 9 18.75 3 6.25 0.1~0.3 15 31.25 11 22.92 7 14.58 0.3~0.6 12 25.00 16 33.33 11 22.92 0.6~2 0 0 12 25.00 22 45.83>2 0 0 0 0 5 10.42
夜晚 34<0.1 18 52.94 6 17.65 3 8.82 0.1~0.3 12 35.29 7 20.59 4 11.76 0.3~0.6 4 11.76 12 35.29 7 20.59 0.6~2 0 0 9 26.47 16 47.06>2 0 0 0 0 4 11.76
以GB/T 50138—2010《水位觀測標準》為依據,采用自動監測設備檢測水位時,其系統平均誤差的計算方式為:
式中:Px——系統測量水位高度;
Pr——人工測量水位高度;
N——測量次數。
分別計算系統靜止水位檢測方法的平均誤差X1,系統波動水位檢測方法的平均誤差X2,模板匹配檢測水位方法的平均誤差X3,得到表2。
表2 不同條件下平均誤差表
根據統計數據,在水體靜止時任何光線條件下,該監測水位方法的測量誤差均小于0.6 cm,其中,在白天測量的平均誤差為0.24 cm,夜晚測量的平均誤差為0.15 cm,在水體波動時,該檢測水位方法的測量誤差均小于2.0 cm,其中,在白天測量的平均誤差為0.49 cm,夜晚測量的平均誤差為0.48 cm,可見該系統在任何光線條件、水體狀態下均可以滿足測量精度要求,且夜晚的測量精度略高于白天。
實驗結果表明,該系統檢測水位方法在不同光線、水體情況下均可正確檢測,測量誤差小于2.00 cm,滿足水位檢測精度要求,系統水位計算方法簡單,速度較快,證明了該水位檢測方法穩定有效。
本文提出了一種基于可見激光與視頻圖像處理技術的嵌入式水位監測方法,該方法不通過辨識水尺的刻度得到水位,而是通過識別可見激光從背板到水面的移動軌跡得到水位位置,避免水體污染標尺對檢測精度的影響,在波動水位檢測方面表現優異。另外,水位線識別只關注背板部分圖像,大多背景區域無需考慮,對圖像進行目標區域提取,提高了工作效率與檢測精度。
優化方向:由于支架的安裝只能在豎直墻壁上,使用場景具有一定的局限性,后續準備取消支架,將嵌入式設備、激光模組、電機和攝像機等硬件設備做成一個整體,可安裝在待測量水位對面的任意墻壁上,進一步擴大應用范圍。