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