李 娜, 王 軍,2, 董興法*, 石紹鵬
(1. 蘇州科技大學 電子信息工程學院,江蘇 蘇州 215009;2. 中國科學院 長春光學精密機械與物理研究所,吉林 長春 130033)
由于指針式儀表易實現、維護成本低等特點,所以常用于電力、化工、石油等行業。變電站電力系統常處于高壓危險的環境中,人工讀取儀表示數具有工作量大、容易疲勞的缺點,導致識別效率低、誤差大、危險系數高,因此利用機器視覺、圖像處理等手段,自動檢測儀表位置和讀取儀表示數,提高了讀取儀表示數的準確度[1-2]。目前國內儀表讀數識別系統究存在識別速度慢、識別數值不精確等問題,還需進一步完善。
目前研究人員對儀表識別提出了一些研究算法。李全鵬等提出一種基于三次樣條插值的指針式儀表圖像分割方法,提取包含指針的圓形區域作為信息圖,對信息圖進行圖像分割,有效解決了指針陰影問題[3]。Zheng等提出一種基于Hough變換的讀數識別方法,利用Hough變換讀取角度識別的原理,對儀表指針角度與刻度的線性關系進行計算示數,但該方法Hough變換計算量大、識別速度慢的缺點[4]。童偉圓等建議使用不同參數的模板來匹配指針,克服了不均勻照明、背景干擾、影響因素,但這種方法對實際應用沒有優勢,應用復雜,識別準確性不高[5]。鐘志偉等提出了累計概率霍夫變換方法識別儀表,較好地解決了光照不均勻問題,但還存在參數難調、計算量大、識別速度慢等問題[6]。Yang提出了一種基于圓的區域累積直方圖(CRH)方法來精確定位指針,對照明具有魯棒性[7]。
本文提出一種改進的Hough變換算法提取儀表指針,采用Otsu算法自適應閾值分割儀表圖像,舍棄較小像素值,反復計算分割閾值,從而獲得最佳二值圖像,能較好地解決不均勻光照問題,再通過改進Hough變換算法結合圓心約束檢測儀表指針中心像素點。該算法對于指針式儀表檢測識別具有準確性高和速度快的優點。
根據儀表圖像特點,對采集到的圖像進行預處理,排除儀表圖像中其他物品干擾,增強儀表指針區域特征。使用Otsu算法分割出僅屬于指針區域的像素,再使用改進的Hough檢測儀表指針,然后根據角度法計算輸出儀表示數。具體算法流程如圖1所示。

圖1 算法流程圖 Fig 1 Algorithm flow chart
在變電站電力系統中,通過高清攝像頭采集圖像,通過無線傳輸將儀表圖像傳給電腦進行圖像處理[8],由于光照強度不同、背景干擾等外圍環境的不定因素,采集到的圖像中會包含大量噪聲。因此對采集的圖像進行預處理,通過圖像灰度、濾波、增強來突出儀表指針特征[9]。圖像濾波采用高斯濾波,對儀表圖像有較好的濾波效果,如圖2所示,采用灰度拉伸的形態學黑帽運算增強圖像對比度,如圖3所示。

圖2 高斯濾波后的圖像Fig.2 Gaussian filtered image

圖3 形態學黑帽運算Fig.3 Morphology black hat operation
由于采集到的儀表圖像受光照強度的影響,圖片的明暗程度不一樣,因此本文采用最大類間方差(Otsu)方法[10]進行自適應二值化處理。
假設前景與后景的分割閾值為T,前景像素點數占圖像像素比例為ω0,平均灰度為μ0,后景像素點數占圖像像素比例為ω1,平均灰度為μ1,圖像的總平均灰度為μ,前景與后景的類間方差為δ,表達式如公式(1)、(2)所示。
μ=ω0×μ0+ω1×μ1
(1)
δ=ω0×(μ-μ0)2+ω1×(μ-μ1)2
(2)
當式(2)中的δ達到最大值時,對應的T就是最佳分割閾值。
根據指針式儀表圖像特點,指針區域與背景區域有明顯區別,因此可以舍棄影響指針區域分割的背景區域像素值,重復使用Otsu算法,來獲取最佳閾值,具體實施步驟如下:
(1)對于圖像h×w,將圖像的平均灰度值μ作為初始閾值T,進行圖像分割。
(2)針對不同光線的圖像使用Otsu分割處理,記錄其最佳類間方差值,相近的類間方差計算平均值,這些平均值在一定區間內表示為d[d1,d2],如果類間方差在d范圍內,則現在二值圖像是最佳二值圖像,否則做第三步。
(3)使用初始閾值T進行分割后,記錄此時的前景ω0和背景ω1的像素位置,舍棄ω1的像素值,將第一次分割后前景ω0的圖像,再次使用Otsu得到分割閾值T。重復步驟(2)直到Otsu值在d范圍內,得到最佳二值圖像,如圖4所示。

圖4 本文Otsu算法的二值化圖像Fig.4 Otsu algorithm binary image in this paper
Hough變換直線檢測計算量較大,隨著像素點數的增加,計算量也呈線性增加[11],因此減少Hough變換檢測的像素點數并對真正需要檢測的像素點進行精準計算,是本文重點研究內容。
儀表讀數是以指針中心線對應的刻度數值為準[12]。在Hough變換直線檢測中,選取指針區域的中心點,指針經過表盤圓心,這些中心點與表盤圓心有共同的偏轉角度,即在極坐標中將這些中心點限定在圓點對應的曲線上。通過這些操作,可以極大地減少Hough變換計算量。
Hough變換直線檢測的基本原理是:檢測直線上一點對應極坐標的一條曲線,直線上所有點對應極坐標所有曲線都相交于一點,相交的這個點對應的直線就是要檢測的直線[13],如圖5所示。

圖5 直角坐標到極坐標的轉換。(a)直角坐標;(b)極坐標。Fig.5 Conversion from rectangular coordinates to polar coordinates. (a)Cartesian coordinates; (b) Polar coordinates.
假設在原始圖像空間(x,y)直線方程為:
y=kx+b
(3)
圖像空間和參數空間之間建立對偶變換:
ρ=xcosθ+ysinθ
(4)
Hough變換直線檢測轉換成極坐標點的檢測,只要進行點個數累加就能實現直線檢測。
對表盤圓心坐標的計算,本文提出用垂直平分線來確定表盤圓心,首先在模板圖像中確定儀表盤輪廓上3點分別是A、B、C,模板圖像的3個點對應實時采集圖像的3點,原理如圖6所示。

圖6 垂直平分線確定表盤中心原理Fig.6 Principle of the vertical bisector to determine the center of the dial
連接BC和AC,找這兩條線的垂直平分線。BC的垂直平分線與BC相交于點M,AC的垂直平分線與AC相交于點N,兩條垂直平分線相交于一點O,這個點O就是儀表盤圓心,點M和N也是圓心分別在BC和AC線上的投影,記A、B、C坐標分別為A(AX,AY),B(BX,BY),C(CX,CY)。因此在參數空間中相交的這一點就是圓心(ρ0,α0),計算M和N的坐標為:
(5)
(6)
(7)
(8)
根據垂直向量相乘等于零的方法計算出圓心坐標:

(9)

.
(10)
表盤圓心定位之后,將提取的指針區域二值化圖像分成若干行,對每一行像素灰度值進行檢測。表盤圓心定位后,將提取的指針連通區域分成若干行,然后對每一行像素灰度值進行檢測,判斷是否為連通區域特征點。將每一行的特征點檢測完成后,取這一行連通區域中心點,中心點選取方法如下:
如圖7所示,假設有兩條平行線l1、l2,選取平行線兩邊同一水平線兩點,分別為A、B,取AB中點P,過P點做一條分別垂直于l1、l2的垂線,垂線的交點為C、D。PD=PC,P點到兩條線的距離相等,因此P點就是我們要選取的中心點。

圖7 目標區域中心點示意圖Fig.7 Schematic diagram of the center point of the target area
指針區域中心點選取之后,結果如圖8所示。

圖8 中心點選取結果圖Fig.8 Center point selection results
改進的Hough變換檢測指針連續區域線段的中心點,結合圓心共線的方法,極大地減少了計算量,提高了檢測速度。
具體步驟:
(1)假設輸入圖像h×w,集合W≠φ。
(2)將前期處理過的儀表圖像進檢測,檢測到前景的這個區域有k段,每段像素設為an∈(1,2,......w)。
(3)將每段像素an與這段的指針寬度像素An比較,當an≤An時,標記第n段的像素中心點,將這些中心點記入集合W中。否則執行第二步。
(4)將W中的點限定在圓點對應的曲線上,進行Hough變換檢測。
通過以上流程檢測到指針后,獲得指針偏轉角度α,即指針與表盤零刻度的夾角。通過偏轉角度與儀表示數的線性關系,計算儀表的讀數。將表盤圓心設為圖像直角坐標系的原點,如圖9所示。

圖9 圖像直角坐標系Fig.9 Image rectangular coordinate system
壓力表范圍為0~2.5 Pa,指針與x軸之間的夾角范圍為-45°≤α≤225°。假設指針讀數獲得的是t,得出以下線性關系:
(11)
根據線性關系求出即為指針示數t。
本實驗運行硬件環境為以運行內存8 G,CPU為AMD FX-9800P,64位win10操作系統。軟件環境為Opencv計算機視覺庫VS2019運行環境。
對于本文提出的方法,儀表示值準確度與圓心檢測準確度相關。當拍攝角度不同時,表盤形狀會更偏向于橢圓,會對表盤圓心定位的準確性產生一定影響。


圖10 橢圓率對圓心坐標偏差的影響Fig.10 Influence of ellipticity on the deviation of circle center coordinates
從圖10可以看出,R越接近于1,圓心定位越準確,R越大則圓心坐標偏差波動越大。對于這一影響因素,圓心坐標定位后期將考慮選取多個點進行計算從減小誤差。
采用本文所提出的算法,使用Otsu算法進行圖像二值化。分別在正常光照條件下不同角度拍攝儀表圖像,光線暗亮程度都會影響儀表圖像處理。圖11是在光線暗的情況下,標準Otsu算法和本文提出的Otsu算法的二值化圖像比較,圖12是在光線亮的情況下,標準Otsu算法和本文提出的Otsu算法的二值圖像比較。

圖11 光線暗條件下兩種算法對比圖Fig.11 Comparison of the two algorithms under dark conditions

圖12 光線亮條件下兩種算法對比圖Fig.12 Comparison of the two algorithms under bright light conditions
經過儀表圖像二值化之后,利用改進Hough變換結合圓心約束檢測指針,結果如圖13所示。

圖13 改進Hough變換檢測結果圖 Fig.13 Diagram of improved Hough transform detection result
儀表讀數實驗結果如表1所示。在系統中,對儀表角度識別誤差要求在3°以內,相對于讀數要求在±0.066 7 MPa以內。改進算法的絕對誤差在0.02 MPa左右,滿足系統要求,也滿足儀表最小刻度0.1 MPa的精度。

表1 儀表讀數實驗結果Tab.1 Meter reading experiment results
本文對于目標區域中心點的選取,結合圓心約束的Hough變換,保證了本文算法的實時性。本文算法與常用于指針式儀表識別的兩種算法和文獻[14]提出的算法進行了實時性比較,如表2所示。本文算法時間降低了大約29.41%,識別速度更快。
本文利用Otsu算法獲取儀表指針二值圖像和改進的Hough變換處理圖像。Otsu自適應閾值分割儀表圖像,放棄較小像素,通過對分割閾值的反復計算來分割出僅屬于指針的像素。改進的Hough變換將分割出僅屬于指針的圖像分成若干行,提取每行前景區域的中心點,將中心點與表盤圓心共線進行表決統計。實驗結果表明,本文算法比其他算法時間降低了大約29.41%,儀表讀數誤差最大為4.76%。改進算法減少了計算量,提高了檢測速度,適用于在不同光照條件下對儀表進行均勻刻度識別,具有良好的實際應用前景。