羊冰清, 張周燕, 朱小良
( 東南大學(xué)能源與環(huán)境學(xué)院,江蘇 南京 210096)
液位是火電機組的重要熱工信號,為保障火電機組相關(guān)設(shè)備的安全運行,指示直觀的基地式液位儀表必不可少,如雙色水位計、云母(玻璃)水位計、磁翻板液位計[1]等,但這類儀表需巡檢人員就地讀數(shù)。隨著智慧電廠的不斷發(fā)展,對基礎(chǔ)設(shè)備的數(shù)字化也提出了更高的要求[2],利用數(shù)字圖像處理技術(shù)遠程監(jiān)視并自動得到儀表的液位數(shù)值具有重要的意義。
在液位圖像檢測中,孫斌等人[3]采用雙線性插值、最小誤差閾值分割、高斯拉普拉斯算子(Laplacian-of-Gaussian,LoG)邊緣檢測和橫豎端點尋線得到水位計的液位;馮廣[4]等人提出了一種改進的各向異性擴散濾波算法,結(jié)合圖像畸變矯正和自動亮化,實現(xiàn)了液位的自動讀數(shù);戚龍等人[5]利用線性平滑濾波、Otsu閾值化和Harris角點檢測識別丙烯生產(chǎn)過程的異常液位;Fernanade等人6]通過曲線擬合分界面的灰度變化,并將變增益自適應(yīng)算法應(yīng)用于混合沉降罐的液位檢測。
但在實際應(yīng)用中,由于攝像頭的拍攝范圍較大,圖像不僅包含基地式表,還有大量的背景信息,給液位圖像處理帶來干擾?,F(xiàn)有液位圖像處理算法很少提及如何從復(fù)雜背景中提取液位計的顯示部分。另外,由于安裝原因或監(jiān)視需要,攝像頭角度會發(fā)生變化,導(dǎo)致視物方向并非完全垂直于被射物體,使圖像產(chǎn)生透視失真,影響液位測量的準確性?,F(xiàn)有部分液位圖像檢測方法比較突出的問題是無法實現(xiàn)水位的動態(tài)校準。
鑒于以上問題,文中根據(jù)火電機組液位儀表具體特征,應(yīng)用數(shù)字圖像處理技術(shù),開發(fā)了一套圖形化測量系統(tǒng),提出將Canny邊緣檢測與窗口搜索峰值檢測結(jié)合,在整個儀表量程內(nèi)定位液位分界面的測量方法,并增加顏色閾值分割和基于標識點識別的攝像頭自標定以減少環(huán)境與攝像視角的影響。
以雙色水位計為例,基于數(shù)字圖像處理的液位檢測系統(tǒng)如圖1所示,該系統(tǒng)由照明光源、光學(xué)攝像頭、計算機處理與分析系統(tǒng)組成。
圖1 基于數(shù)字圖像處理的液位測量系統(tǒng)Fig.1 Liquid level measurement system based on digital image processing
(1) 光源:為保證可靠性和高壽命,采用發(fā)光二極管(light-emitting diodes,LED)的穹頂光源;為防止產(chǎn)生陰影并減少鏡面反射[7],采用明場漫射正面照明方式,如圖2所示。
圖2 照明方式Fig.2 Lighting mode
(2) 攝像頭:為提高系統(tǒng)分辨力和集成度,采用圖像傳感器為互補金屬氧化物半導(dǎo)體(complementary metal oxide semiconductor,CMOS)的高像素攝像頭,分辨率記為M×N。
(3) 攝像頭與計算機接口:為保證視頻數(shù)據(jù)快速傳輸和采集,采用串行總線(universal serial bus, USB) 。
(4) 數(shù)字圖像處理:對于攝像頭采集的液位圖像,首先進行預(yù)處理,一方面采用自適應(yīng)中值濾波抑制光電轉(zhuǎn)化過程與環(huán)境電磁信號引入的噪聲,另一方面采用顏色閾值分割確定儀表顯示部分在圖片中的位置,以消除環(huán)境背景的影響,同時減小計算量;然后采用Canny邊緣檢測算法得到二值化圖像,并增加梯度幅值的直方圖分析改善傳統(tǒng)算法無法自動設(shè)定雙閾值的缺點;最后利用窗口搜索峰值檢測確定邊緣圖像中的液位分界面,并通過模板識別標識點建立像素行與液位的映射關(guān)系,矯正透視失真引起的誤差,得到最終的液位數(shù)值。具體流程如圖3所示。
圖3 數(shù)字圖像處理步驟Fig.3 The steps of digital image processing
現(xiàn)有的濾波方法中,均值濾波和高斯濾波在去除噪聲的同時也造成了圖像邊緣的模糊;雙邊濾波能有效地去除噪聲并保護圖像細節(jié),但效果很大程度上取決于參數(shù)的選取。
為了保留圖像細節(jié)同時濾除噪聲,采用自適應(yīng)中值濾波[8-9]對采集圖像進行預(yù)處理得到平滑圖像f(x,y),按以下步驟遍歷所有像素點:
(1) 讀取像素點的RGB顏色數(shù)據(jù),并將其轉(zhuǎn)化為灰度圖像g(x,y),每一像素點的灰度值為:
g=0.299R+0.587G+0.114B
(1)
(2) 設(shè)定自適應(yīng)窗口最大像素尺寸Amax=9,并初始化3×3的十字形窗口wi;
(3) 計算當前窗口wi中像素點灰度的最大值Zmax,最小值Zmin和中值Zmed;
(4) 若Zmin (5) 如果窗口尺寸大小未超過Amax,轉(zhuǎn)至第三步再次計算擴大窗口;否則該像素點的灰度值為窗口灰度的中值,f(x,y)=Zmed; (6) 判斷像素點原始灰度值,若Zmin 根據(jù)儀表本身進行特定顏色的識別以確定水位計顯示部分的位置。 (1) 顏色空間轉(zhuǎn)化[10]。讀取拍攝圖片的RGB顏色數(shù)據(jù),為了方便后續(xù)顏色識別,將其轉(zhuǎn)化到HSV顏色空間,轉(zhuǎn)化公式如下: V=max(R,G,B)/255 (2) (3) (4) 若算得H<0,則: H=H+360 (5) (2) 顏色識別。選取指定顏色對原始圖像I(x,y)進行顏色閾值分割,得到二值化圖像C(x,y)。經(jīng)試驗,得到視覺紅色和視覺綠色的HSV范圍為:紅色(0~10/340~360, 0.35 ~ 1,0.3 ~ 1),綠色(80~150, 0.35 ~ 1,0.3 ~ 1)。以識別綠色為例,轉(zhuǎn)化過程如下: (6) (7) (4) 儀表定位。通過對二值化圖像的水平投影與垂直投影實現(xiàn)液位計在圖像中的定位。 現(xiàn)有的邊緣檢測算法中,經(jīng)典算子得到的邊緣較粗,定位精度不高,仍需細化處理;Laplacian算子和LoG算子采用二階微分,對噪聲敏感,且容易檢測到偽邊緣;曲面擬合法、多尺度法、松弛迭代法、神經(jīng)網(wǎng)絡(luò)法等計算量較大或需要大量訓(xùn)練樣本??紤]到算法的實時性、定位精度與抗干擾能力,采用Canny邊緣檢測算法。 Canny邊緣檢測算法[11]的檢測效果優(yōu)劣在于高低閾值的設(shè)定,而傳統(tǒng)的Canny算法往往采用試湊法[7]求得較為理想的雙閾值。因此增加基于梯度幅度的統(tǒng)計直方圖法自動選取雙閾值[12-13]。改進后的Canny邊緣檢測算法,具體步驟如下。 (1) 采用3×3鄰域一階偏導(dǎo)的有限差分Sobel算子計算平滑濾波后圖像的梯度幅值M(x,y)和梯度方向Q(x,y)。 (8) (9) 其中: φ1(x,y)=f(x,y)Gx (10) φ2(x,y)=f(x,y)Gy (11) Gx和Gy為X和Y方向上邊緣的卷積模板。 (2) 非極大值抑制。遍歷圖像,將像素點的梯度幅值M(x,y)與其3×3鄰域內(nèi)對應(yīng)其梯度方向Q(x,y)上最相近的兩個元素相比較,若不比它們的幅值大,則f(x,y)=0,即該像素點不是邊緣,否則令f(x,y)=M(x,y)。 (3) 設(shè)定梯度幅值的高閾值和低閾值。 ① 計算圖像梯度幅值M(x,y)的128級直方圖h(i),并尋找直方圖的非零起點(istart,h(istart))和非零終點(iend,h(iend)); ② 計算直方圖中從istart到iend的斜率, (12) ③ 尋找斜率最大值(ipeak,h(ipeak))的點作為直方圖一個凸點。若ipeak (13) 高閾值TH和低閾值TL分別為: TH=max [r(i)] (14) TL=0.4TH (15) (4) 確定邊緣點。梯度幅值比高閾值大的像素點為邊緣點,即灰度值為255,比低閾值小的為非邊緣像素點,即灰度值為0。而介于兩者之間的“準邊緣像素點”,只有其3×3鄰域內(nèi)存在確定邊緣點時,才可被標記為邊緣點。 得到邊緣圖像后,利用分界面上邊緣點數(shù)量明顯增加的性質(zhì)確定分界面液位。由于邊緣點數(shù)量變化比較復(fù)雜,采用一階峰值、二階峰值檢測等傳統(tǒng)峰值檢測[14]方法容易產(chǎn)生漏檢或錯檢。因此文中采用窗口搜索峰值檢測方法,步驟如下: (16) (17) (18) (3) 計算10鄰域內(nèi)的局部最大值pi及其像素行位置hi。 (19) 攝像頭成像原理圖如圖4所示。圖中,液位計量程AB對應(yīng)于圖像中的像素行A′B′,液位高度BC對應(yīng)于像素行B′C′。由于攝像頭的安裝方向偏離豎直方向角度α(未知),圖像存在一定的透視失真,即BC/AB≠B′C′/A′B′。 因此增加標識點D作為已知液位,并利用該點建立圖像的像素行h與真實液位H的映射關(guān)系H=f(h),實現(xiàn)測量系統(tǒng)的自標定。 圖4 攝像頭成像原理Fig.4 Camera imaging principle 采用模板匹配[15]的方式識別標識點形狀,首先為所要識別的標識提供一個邊緣模板T,模板在待檢測圖像上平移,搜索窗口所有對應(yīng)尺寸的子圖Sij,通過比較T與Sij的相似性,完成模板匹配過程,如圖5所示。 圖5 模板匹配原理Fig.5 The principle of template matching 衡量模板匹配相關(guān)性的公式如下: (20) 其中m,n為模板長寬;M,N為待匹配圖像的長寬。 選取一個誤差閾值ET,當E(i,j)>ET時停止該點的計算,繼續(xù)下一點的計算。標識點處的匹配誤差最小。通過識別并定位標識點D,得到它的映射關(guān)系HD=f(hD′)。 現(xiàn)已知A,B,D這 3處在圖像中的像素行hA′,hB′,hD′以及它們對應(yīng)的實際高度HA,HB,HD,對圖像中像素行到真實液位計高度的映射H=f(h) 進行Lagrange插值。一般的Lagrange插值多項式為: (21) 將H=f(h),HA=f(hA′),HB=f(hB′),HD=f(hD′)代入上式可得: (22) 將通過峰值得到液位點C在圖像中的像素行h=hC′代入式(24),得到對應(yīng)的實際高度HC為: (23) 3.1.1 云母(玻璃)水位計的液位檢測 實驗室中以玻璃管水位計模擬現(xiàn)場的云母(玻璃)水位計。圖6中,(a)為實驗室拍攝的原始圖像;(b)為經(jīng)顏色閾值分割識別為紅色區(qū)域的二值化圖像;(c)為經(jīng)改進的Canny邊緣檢測算法處理后的二值化圖像;(d)為空氣-水分界面處的局部放大圖。 圖6 玻璃管水位計圖像處理Fig.6 Image processing of glass tube water gauge 由圖6可知,文中顏色閾值分割能準確識別紅色,改進的Canny邊緣檢測算法能準確識別液位分界面。計算圖6(c)中識別為紅色區(qū)域的內(nèi)側(cè)上每行像素的邊緣點數(shù)量以及經(jīng)過10鄰域1階Savitzky-Golay濾波后的邊緣點數(shù)量,折線圖如圖7所示。 圖7 每行像素中邊緣點數(shù)量Fig.7 Number of edge points in per row of pixels 從圖7可看出:每行像素點中邊緣點的數(shù)量在200行、1300行以及3400行存在明顯的峰值,這3處位置分別對應(yīng)玻璃管頂部、空氣-水界面和玻璃管底部;且經(jīng)SG濾波后的峰值點更加明顯直觀。對濾波后的數(shù)據(jù)進行窗口搜索峰值檢測,得到的峰值點以及對應(yīng)的界面信息見表1。 表1 玻璃管水位計界面檢測結(jié)果Tab.1 Interface detection results of glass tube water gauge 通過模板匹配“數(shù)字2”成功找到圖6(a)中刻度20 cm的中部所在像素行hD′=2019,對應(yīng)的液位高度HD=21.5 cm。已知實驗中玻璃管水位計的量程為HA=50 cm,代入公式(23)得到空氣-水分界面的液位高度HC為32.43 cm。 3.1.2 雙色水位計的液位檢測 某亞臨界機組鍋爐汽包液位測量所用的雙色水位計如圖8所示。對于該水位計,采用顏色閾值分割識別儀表顯示部分的綠色和紅色區(qū)域;再通過改進的Canny算法得到定位部分的完整輪廓;最后進行水平投影即可得到液位高度。 圖8 雙色水位計Fig.8 Double color water meter 圖9為對圖8(b)結(jié)合顏色閾值分割與改進的Canny檢測算法后的結(jié)果圖。可見文中數(shù)字圖像處理算法能夠過濾噪聲和剔除背景顏色的干擾,實現(xiàn)了儀表顯示部分的定位與邊緣提取,具體信息如表2所示。 圖9 雙色水位計圖像處理結(jié)果Fig.9 Processing results of two color water level meter 名稱起始像素行終止像素行跨度像素行液位/cm實物圖紅色97167700.16綠色16923971現(xiàn)場圖 紅色246404159-3.07綠色404523120 結(jié)合表2的數(shù)據(jù)和雙色水位計的量程(-22 cm~+22 cm),按比例計算得到汽水分界面的液位高度,其中圖8(a)的液位為0.16 cm,圖8(b)的液位為-3.07 cm。 3.1.3 液位檢測方法的誤差 工業(yè)儀表精度等級的國家標準有0.1,0.2,0.5,1.0,1.5,2.5,4共7個等級[1],由最大引用誤差確定。圖6(a)玻璃管水位計(液位計1)的最小刻度為1 cm,量程為50 cm,對應(yīng)精度等級為1.0;圖8(a)所示的雙色水位計(液位計2)的最小刻度為1 cm,量程為44 cm,精度等級為1.5;圖8(b)雙色水位計(液位計3)的最小刻度為2 cm,量程為44 cm,精度等級為2.5。 對于以上的水位計,按其刻度讀取汽水界面的液位高度,并結(jié)合儀器誤差限得到液位真實值的范圍,計算測量系統(tǒng)的最大絕對誤差和最大引用誤差,計算公式如下: 液位真實值 = 液位計讀數(shù) ± 儀表誤差限; 最大引用誤差 = 絕對誤差最大值 / 儀表量程; 得到的計算結(jié)果如表3所示。由表可知,文中所述液位測量系統(tǒng),對于玻璃管水位計的示數(shù)檢測的最大引用誤差為1.14%,對于雙色水位計1的示數(shù)檢測的最大引用誤差為1.5%,對于雙色水位計2的示數(shù)檢測的最大引用誤差為2.43%??烧J為此測量系統(tǒng)能夠基本維持原水位計的精度等級,符合工業(yè)儀表的國家標準,滿足工業(yè)現(xiàn)場使用的要求。 表3 液位測量系統(tǒng)誤差Tab.3 Error of the liquid level measurement system 用來評價邊緣檢測性能的方法有Canny準則和Pratt品質(zhì)因數(shù)[16],主要對邊緣的定位性能和信噪比進行評價,與閾值的選取和濾波方法有關(guān)。此外,測量系統(tǒng)的誤差與峰值檢測的準確度密切相關(guān),下面對這3個方面的性能進行分析。 3.2.1 自適應(yīng)性能分析 對比玻璃管水位計圖6(a)和雙色水位計圖8(b),前者只有儀表,圖像簡單、灰度分布范圍窄,后者還包含現(xiàn)場環(huán)境,圖像復(fù)雜、灰度階級覆蓋廣,因此需設(shè)定不同的梯度閾值。分別對這兩幅圖進行改進的Canny邊緣檢測,其梯度幅值的128級直方圖分別如圖10、圖11所示。 圖10 玻璃水位計的梯度幅值直方圖Fig.10 Gradient amplitude histogram of glass water meter 圖11 雙色水位計的梯度幅值直方圖Fig.11 Gradient amplitude histogram of two color water level meter 對比圖10和圖11,前者的歸一化梯度幅值整體較小且主要集中在0~0.1的范圍內(nèi),后者的梯度幅值分布相對均勻,在0~0.5的范圍內(nèi)都有覆蓋。得到的不同的高低閾值如表4所示。 表4 不同圖像的自適應(yīng)高低閾值Tab.4 Adaptive high and low thresholds for different images 水位計梯度幅值最大值歸一化高閾值歸一化低閾值玻璃管水位計7.54E+040.031 50.012 6雙色水位計5.71E+040.149 60.059 8 表4表明,對不同儀表的水位計圖像進行檢測時,改進的Canny邊緣檢測算法有較好的自適應(yīng)性,能夠根據(jù)圖像不同的灰度分布和梯度分布設(shè)定相應(yīng)的高低閾值。解決了傳統(tǒng)的Canny檢測算法針對不同的圖像需要采用試湊法求得較為理想的雙閾值的問題。 3.2.2 抗噪性能分析 為模擬噪聲圖像,對圖6(a)和8(b)添加方差為0.04的高斯噪聲。以未添加噪聲的圖像經(jīng)改進Canny邊緣檢測算法處理后的圖像作為標準圖像fp,計算傳統(tǒng)Canny算法和本文改進算法處理后圖像fn的均方誤差(mean square error, MSR)和峰值信噪比(peak signal noise ratio, PSNR)[17],計算公式分別為: (26) (27) 其中M×N為圖像的分辨率,255為圖像的灰度級數(shù)。計算結(jié)果如表5所示。 表5 抗噪性能分析Tab.5 Analysis of anti-noise performance 由表5可知,改進Canny邊緣檢測算法與傳統(tǒng)算法相比,均方差更小,峰值信噪比更大。文中改進的Canny邊緣算法,由于增加了自適應(yīng)中值濾波和基于直方圖統(tǒng)計分析的雙閾值選取,能夠過濾更多噪聲和排除虛假邊緣點,因此具有更好的抗噪性能和更好的邊緣檢測效果。 3.2.3 尋峰效果分析 對于圖7(濾波后圖像),按本文窗口搜索峰值檢測設(shè)置同樣的基線、閾值和鄰域,不同方法的尋峰結(jié)果如表6所示。 表6 峰值檢測結(jié)果對比Tab.6 Comparison of peak detection results 結(jié)合實際峰值點的位置和表6,可以看出傳統(tǒng)的一階差分峰值檢測、二階差分峰值檢測和傅里葉自解卷積峰值檢測都找到了多余的峰值點。 由圖7可知,邊緣點隨像素行的變化不存在特定規(guī)律或趨勢,且局部變化比較劇烈,尖銳點和毛刺點多。傳統(tǒng)的一階差分峰值檢測、二階差分峰值檢測等方法放大了噪點,不適用于文中所述液位檢測問題。本文窗口搜索峰值檢測法先使用濾波得到平滑曲線,結(jié)合了局部最大值尋峰算法的特點,同時根據(jù)邊緣點數(shù)量的數(shù)學(xué)統(tǒng)計設(shè)置了峰值的閾值。因此相比與傳統(tǒng)的單一尋峰方法,窗口搜索峰值檢測法對于文中所述液位檢測問題具有更可靠更準確的尋峰結(jié)果。 文中所述液位測量系統(tǒng),利用改進的Canny邊緣檢測和窗口搜索峰值檢測,在對原測量裝置不做任何改變的情況下,實現(xiàn)了云母(玻璃)水位計和雙色水位計液位的信號遠傳和數(shù)字化。液位計算值的引用誤差在2.5%以內(nèi),能夠維持原水位計的精度等級。同時,該系統(tǒng)具備顏色閾值分割、自適應(yīng)中值濾波、直方圖分析和透視失真自矯正功能,增強了測量的抗干擾性和自適應(yīng)性。在應(yīng)用范圍上,除用在電廠設(shè)備液位的檢測上,在石油、化工領(lǐng)域的液位測量上也有廣闊的應(yīng)用前景。2.2 液位圖像的顏色閾值分割
2.3 液位圖像的邊緣檢測
2.4 液位分界面峰值檢測
2.5 攝像頭透視失真的自矯正
3 液位檢測實驗與結(jié)果分析
3.1 兩種基地式液位計的數(shù)字化檢測過程
3.2 系統(tǒng)檢測性能分析
4 結(jié)語