李 娜, 王 軍,2, 董興法*, 石紹鵬
(1. 蘇州科技大學(xué) 電子信息工程學(xué)院,江蘇 蘇州 215009;2. 中國科學(xué)院 長春光學(xué)精密機(jī)械與物理研究所,吉林 長春 130033)
由于指針式儀表易實(shí)現(xiàn)、維護(hù)成本低等特點(diǎn),所以常用于電力、化工、石油等行業(yè)。變電站電力系統(tǒng)常處于高壓危險(xiǎn)的環(huán)境中,人工讀取儀表示數(shù)具有工作量大、容易疲勞的缺點(diǎn),導(dǎo)致識別效率低、誤差大、危險(xiǎn)系數(shù)高,因此利用機(jī)器視覺、圖像處理等手段,自動檢測儀表位置和讀取儀表示數(shù),提高了讀取儀表示數(shù)的準(zhǔn)確度[1-2]。目前國內(nèi)儀表讀數(shù)識別系統(tǒng)究存在識別速度慢、識別數(shù)值不精確等問題,還需進(jìn)一步完善。
目前研究人員對儀表識別提出了一些研究算法。李全鵬等提出一種基于三次樣條插值的指針式儀表圖像分割方法,提取包含指針的圓形區(qū)域作為信息圖,對信息圖進(jìn)行圖像分割,有效解決了指針陰影問題[3]。Zheng等提出一種基于Hough變換的讀數(shù)識別方法,利用Hough變換讀取角度識別的原理,對儀表指針角度與刻度的線性關(guān)系進(jìn)行計(jì)算示數(shù),但該方法Hough變換計(jì)算量大、識別速度慢的缺點(diǎn)[4]。童偉圓等建議使用不同參數(shù)的模板來匹配指針,克服了不均勻照明、背景干擾、影響因素,但這種方法對實(shí)際應(yīng)用沒有優(yōu)勢,應(yīng)用復(fù)雜,識別準(zhǔn)確性不高[5]。鐘志偉等提出了累計(jì)概率霍夫變換方法識別儀表,較好地解決了光照不均勻問題,但還存在參數(shù)難調(diào)、計(jì)算量大、識別速度慢等問題[6]。Yang提出了一種基于圓的區(qū)域累積直方圖(CRH)方法來精確定位指針,對照明具有魯棒性[7]。
本文提出一種改進(jìn)的Hough變換算法提取儀表指針,采用Otsu算法自適應(yīng)閾值分割儀表圖像,舍棄較小像素值,反復(fù)計(jì)算分割閾值,從而獲得最佳二值圖像,能較好地解決不均勻光照問題,再通過改進(jìn)Hough變換算法結(jié)合圓心約束檢測儀表指針中心像素點(diǎn)。該算法對于指針式儀表檢測識別具有準(zhǔn)確性高和速度快的優(yōu)點(diǎn)。
根據(jù)儀表圖像特點(diǎn),對采集到的圖像進(jìn)行預(yù)處理,排除儀表圖像中其他物品干擾,增強(qiáng)儀表指針區(qū)域特征。使用Otsu算法分割出僅屬于指針區(qū)域的像素,再使用改進(jìn)的Hough檢測儀表指針,然后根據(jù)角度法計(jì)算輸出儀表示數(shù)。具體算法流程如圖1所示。
圖1 算法流程圖 Fig 1 Algorithm flow chart
在變電站電力系統(tǒng)中,通過高清攝像頭采集圖像,通過無線傳輸將儀表圖像傳給電腦進(jìn)行圖像處理[8],由于光照強(qiáng)度不同、背景干擾等外圍環(huán)境的不定因素,采集到的圖像中會包含大量噪聲。因此對采集的圖像進(jìn)行預(yù)處理,通過圖像灰度、濾波、增強(qiáng)來突出儀表指針特征[9]。圖像濾波采用高斯濾波,對儀表圖像有較好的濾波效果,如圖2所示,采用灰度拉伸的形態(tài)學(xué)黑帽運(yùn)算增強(qiáng)圖像對比度,如圖3所示。
圖2 高斯濾波后的圖像Fig.2 Gaussian filtered image
圖3 形態(tài)學(xué)黑帽運(yùn)算Fig.3 Morphology black hat operation
由于采集到的儀表圖像受光照強(qiáng)度的影響,圖片的明暗程度不一樣,因此本文采用最大類間方差(Otsu)方法[10]進(jìn)行自適應(yīng)二值化處理。
假設(shè)前景與后景的分割閾值為T,前景像素點(diǎn)數(shù)占圖像像素比例為ω0,平均灰度為μ0,后景像素點(diǎn)數(shù)占圖像像素比例為ω1,平均灰度為μ1,圖像的總平均灰度為μ,前景與后景的類間方差為δ,表達(dá)式如公式(1)、(2)所示。
μ=ω0×μ0+ω1×μ1
(1)
δ=ω0×(μ-μ0)2+ω1×(μ-μ1)2
(2)
當(dāng)式(2)中的δ達(dá)到最大值時(shí),對應(yīng)的T就是最佳分割閾值。
根據(jù)指針式儀表圖像特點(diǎn),指針區(qū)域與背景區(qū)域有明顯區(qū)別,因此可以舍棄影響指針區(qū)域分割的背景區(qū)域像素值,重復(fù)使用Otsu算法,來獲取最佳閾值,具體實(shí)施步驟如下:
(1)對于圖像h×w,將圖像的平均灰度值μ作為初始閾值T,進(jìn)行圖像分割。
(2)針對不同光線的圖像使用Otsu分割處理,記錄其最佳類間方差值,相近的類間方差計(jì)算平均值,這些平均值在一定區(qū)間內(nèi)表示為d[d1,d2],如果類間方差在d范圍內(nèi),則現(xiàn)在二值圖像是最佳二值圖像,否則做第三步。
(3)使用初始閾值T進(jìn)行分割后,記錄此時(shí)的前景ω0和背景ω1的像素位置,舍棄ω1的像素值,將第一次分割后前景ω0的圖像,再次使用Otsu得到分割閾值T。重復(fù)步驟(2)直到Otsu值在d范圍內(nèi),得到最佳二值圖像,如圖4所示。
圖4 本文Otsu算法的二值化圖像Fig.4 Otsu algorithm binary image in this paper
Hough變換直線檢測計(jì)算量較大,隨著像素點(diǎn)數(shù)的增加,計(jì)算量也呈線性增加[11],因此減少Hough變換檢測的像素點(diǎn)數(shù)并對真正需要檢測的像素點(diǎn)進(jìn)行精準(zhǔn)計(jì)算,是本文重點(diǎn)研究內(nèi)容。
儀表讀數(shù)是以指針中心線對應(yīng)的刻度數(shù)值為準(zhǔn)[12]。在Hough變換直線檢測中,選取指針區(qū)域的中心點(diǎn),指針經(jīng)過表盤圓心,這些中心點(diǎn)與表盤圓心有共同的偏轉(zhuǎn)角度,即在極坐標(biāo)中將這些中心點(diǎn)限定在圓點(diǎn)對應(yīng)的曲線上。通過這些操作,可以極大地減少Hough變換計(jì)算量。
Hough變換直線檢測的基本原理是:檢測直線上一點(diǎn)對應(yīng)極坐標(biāo)的一條曲線,直線上所有點(diǎn)對應(yīng)極坐標(biāo)所有曲線都相交于一點(diǎn),相交的這個(gè)點(diǎn)對應(yīng)的直線就是要檢測的直線[13],如圖5所示。
圖5 直角坐標(biāo)到極坐標(biāo)的轉(zhuǎn)換。(a)直角坐標(biāo);(b)極坐標(biāo)。Fig.5 Conversion from rectangular coordinates to polar coordinates. (a)Cartesian coordinates; (b) Polar coordinates.
假設(shè)在原始圖像空間(x,y)直線方程為:
y=kx+b
(3)
圖像空間和參數(shù)空間之間建立對偶變換:
ρ=xcosθ+ysinθ
(4)
Hough變換直線檢測轉(zhuǎn)換成極坐標(biāo)點(diǎn)的檢測,只要進(jìn)行點(diǎn)個(gè)數(shù)累加就能實(shí)現(xiàn)直線檢測。
對表盤圓心坐標(biāo)的計(jì)算,本文提出用垂直平分線來確定表盤圓心,首先在模板圖像中確定儀表盤輪廓上3點(diǎn)分別是A、B、C,模板圖像的3個(gè)點(diǎn)對應(yīng)實(shí)時(shí)采集圖像的3點(diǎn),原理如圖6所示。
圖6 垂直平分線確定表盤中心原理Fig.6 Principle of the vertical bisector to determine the center of the dial
連接BC和AC,找這兩條線的垂直平分線。BC的垂直平分線與BC相交于點(diǎn)M,AC的垂直平分線與AC相交于點(diǎn)N,兩條垂直平分線相交于一點(diǎn)O,這個(gè)點(diǎn)O就是儀表盤圓心,點(diǎn)M和N也是圓心分別在BC和AC線上的投影,記A、B、C坐標(biāo)分別為A(AX,AY),B(BX,BY),C(CX,CY)。因此在參數(shù)空間中相交的這一點(diǎn)就是圓心(ρ0,α0),計(jì)算M和N的坐標(biāo)為:
(5)
(6)
(7)
(8)
根據(jù)垂直向量相乘等于零的方法計(jì)算出圓心坐標(biāo):
(9)
.
(10)
表盤圓心定位之后,將提取的指針區(qū)域二值化圖像分成若干行,對每一行像素灰度值進(jìn)行檢測。表盤圓心定位后,將提取的指針連通區(qū)域分成若干行,然后對每一行像素灰度值進(jìn)行檢測,判斷是否為連通區(qū)域特征點(diǎn)。將每一行的特征點(diǎn)檢測完成后,取這一行連通區(qū)域中心點(diǎn),中心點(diǎn)選取方法如下:
如圖7所示,假設(shè)有兩條平行線l1、l2,選取平行線兩邊同一水平線兩點(diǎn),分別為A、B,取AB中點(diǎn)P,過P點(diǎn)做一條分別垂直于l1、l2的垂線,垂線的交點(diǎn)為C、D。PD=PC,P點(diǎn)到兩條線的距離相等,因此P點(diǎn)就是我們要選取的中心點(diǎn)。
圖7 目標(biāo)區(qū)域中心點(diǎn)示意圖Fig.7 Schematic diagram of the center point of the target area
指針區(qū)域中心點(diǎn)選取之后,結(jié)果如圖8所示。
圖8 中心點(diǎn)選取結(jié)果圖Fig.8 Center point selection results
改進(jìn)的Hough變換檢測指針連續(xù)區(qū)域線段的中心點(diǎn),結(jié)合圓心共線的方法,極大地減少了計(jì)算量,提高了檢測速度。
具體步驟:
(1)假設(shè)輸入圖像h×w,集合W≠φ。
(2)將前期處理過的儀表圖像進(jìn)檢測,檢測到前景的這個(gè)區(qū)域有k段,每段像素設(shè)為an∈(1,2,......w)。
(3)將每段像素an與這段的指針寬度像素An比較,當(dāng)an≤An時(shí),標(biāo)記第n段的像素中心點(diǎn),將這些中心點(diǎn)記入集合W中。否則執(zhí)行第二步。
(4)將W中的點(diǎn)限定在圓點(diǎn)對應(yīng)的曲線上,進(jìn)行Hough變換檢測。
通過以上流程檢測到指針后,獲得指針偏轉(zhuǎn)角度α,即指針與表盤零刻度的夾角。通過偏轉(zhuǎn)角度與儀表示數(shù)的線性關(guān)系,計(jì)算儀表的讀數(shù)。將表盤圓心設(shè)為圖像直角坐標(biāo)系的原點(diǎn),如圖9所示。
圖9 圖像直角坐標(biāo)系Fig.9 Image rectangular coordinate system
壓力表范圍為0~2.5 Pa,指針與x軸之間的夾角范圍為-45°≤α≤225°。假設(shè)指針讀數(shù)獲得的是t,得出以下線性關(guān)系:
(11)
根據(jù)線性關(guān)系求出即為指針示數(shù)t。
本實(shí)驗(yàn)運(yùn)行硬件環(huán)境為以運(yùn)行內(nèi)存8 G,CPU為AMD FX-9800P,64位win10操作系統(tǒng)。軟件環(huán)境為Opencv計(jì)算機(jī)視覺庫VS2019運(yùn)行環(huán)境。
對于本文提出的方法,儀表示值準(zhǔn)確度與圓心檢測準(zhǔn)確度相關(guān)。當(dāng)拍攝角度不同時(shí),表盤形狀會更偏向于橢圓,會對表盤圓心定位的準(zhǔn)確性產(chǎn)生一定影響。
圖10 橢圓率對圓心坐標(biāo)偏差的影響Fig.10 Influence of ellipticity on the deviation of circle center coordinates
從圖10可以看出,R越接近于1,圓心定位越準(zhǔn)確,R越大則圓心坐標(biāo)偏差波動越大。對于這一影響因素,圓心坐標(biāo)定位后期將考慮選取多個(gè)點(diǎn)進(jìn)行計(jì)算從減小誤差。
采用本文所提出的算法,使用Otsu算法進(jìn)行圖像二值化。分別在正常光照條件下不同角度拍攝儀表圖像,光線暗亮程度都會影響儀表圖像處理。圖11是在光線暗的情況下,標(biāo)準(zhǔn)Otsu算法和本文提出的Otsu算法的二值化圖像比較,圖12是在光線亮的情況下,標(biāo)準(zhǔn)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
經(jīng)過儀表圖像二值化之后,利用改進(jìn)Hough變換結(jié)合圓心約束檢測指針,結(jié)果如圖13所示。
圖13 改進(jìn)Hough變換檢測結(jié)果圖 Fig.13 Diagram of improved Hough transform detection result
儀表讀數(shù)實(shí)驗(yàn)結(jié)果如表1所示。在系統(tǒng)中,對儀表角度識別誤差要求在3°以內(nèi),相對于讀數(shù)要求在±0.066 7 MPa以內(nèi)。改進(jìn)算法的絕對誤差在0.02 MPa左右,滿足系統(tǒng)要求,也滿足儀表最小刻度0.1 MPa的精度。
表1 儀表讀數(shù)實(shí)驗(yàn)結(jié)果Tab.1 Meter reading experiment results
本文對于目標(biāo)區(qū)域中心點(diǎn)的選取,結(jié)合圓心約束的Hough變換,保證了本文算法的實(shí)時(shí)性。本文算法與常用于指針式儀表識別的兩種算法和文獻(xiàn)[14]提出的算法進(jìn)行了實(shí)時(shí)性比較,如表2所示。本文算法時(shí)間降低了大約29.41%,識別速度更快。
本文利用Otsu算法獲取儀表指針二值圖像和改進(jìn)的Hough變換處理圖像。Otsu自適應(yīng)閾值分割儀表圖像,放棄較小像素,通過對分割閾值的反復(fù)計(jì)算來分割出僅屬于指針的像素。改進(jìn)的Hough變換將分割出僅屬于指針的圖像分成若干行,提取每行前景區(qū)域的中心點(diǎn),將中心點(diǎn)與表盤圓心共線進(jìn)行表決統(tǒng)計(jì)。實(shí)驗(yàn)結(jié)果表明,本文算法比其他算法時(shí)間降低了大約29.41%,儀表讀數(shù)誤差最大為4.76%。改進(jìn)算法減少了計(jì)算量,提高了檢測速度,適用于在不同光照條件下對儀表進(jìn)行均勻刻度識別,具有良好的實(shí)際應(yīng)用前景。